feature: Enable dispatch monitor fence from wait

Resolves: NEO-8240
Related-To: NEO-8067

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2023-08-09 08:44:22 +00:00
committed by Compute-Runtime-Automation
parent 8213c2a0cd
commit 7330974116
4 changed files with 11 additions and 5 deletions

View File

@@ -42,6 +42,8 @@ WddmDirectSubmission<GfxFamily, Dispatcher>::WddmDirectSubmission(const DirectSu
this->gpuVaForAdditionalSynchronizationWA = this->completionFenceAllocation->getGpuAddress() + 8u;
}
this->disableMonitorFence = true;
if (DebugManager.flags.DirectSubmissionDisableMonitorFence.get() != -1) {
this->disableMonitorFence = DebugManager.flags.DirectSubmissionDisableMonitorFence.get();
}

View File

@@ -17,10 +17,6 @@ constexpr static auto gfxProduct = IGFX_METEORLAKE;
#include "shared/source/xe_hpg_core/mtl/os_agnostic_product_helper_mtl.inl"
namespace NEO {
template <>
bool ProductHelperHw<gfxProduct>::isTlbFlushRequired() const {
return false;
}
template <>
bool ProductHelperHw<gfxProduct>::isTimestampWaitSupportedForEvents() const {

View File

@@ -407,7 +407,15 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSwitchingRingBufferStartedAndWai
EXPECT_NE(expectedWaitFence, wddm->waitFromCpuResult.uint64ParamPassed);
}
HWTEST_F(WddmDirectSubmissionTest, whenCreateWddmDirectSubmissionThenDisableMonitorFence) {
MockWddmDirectSubmission<FamilyType, RenderDispatcher<FamilyType>> wddmDirectSubmission(*device->getDefaultEngine().commandStreamReceiver);
EXPECT_TRUE(wddmDirectSubmission.disableMonitorFence);
}
HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenUpdatingTagValueThenExpectcompletionFenceUpdated) {
DebugManagerStateRestore restorer;
DebugManager.flags.DirectSubmissionDisableMonitorFence.set(0);
uint64_t address = 0xFF00FF0000ull;
uint64_t value = 0x12345678ull;
MonitoredFence &contextFence = osContext->getResidencyController().getMonitoredFence();

View File

@@ -14,7 +14,7 @@ using namespace NEO;
using MtlProductHelperWindows = ProductHelperTestWindows;
MTLTEST_F(MtlProductHelperWindows, whenCheckIsTlbFlushRequiredThenReturnProperValue) {
EXPECT_FALSE(productHelper->isTlbFlushRequired());
EXPECT_TRUE(productHelper->isTlbFlushRequired());
}
MTLTEST_F(MtlProductHelperWindows, whenCheckingIsTimestampWaitSupportedForEventsThenReturnTrue) {