Add new KMD delay parameter for direct submission

Related-To: NEO-5845

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2021-12-17 18:42:13 +00:00
committed by Compute-Runtime-Automation
parent 9d5907c8d0
commit 82096a5472
40 changed files with 219 additions and 120 deletions

View File

@ -30,6 +30,8 @@ GEN11TEST_F(Gen11DeviceCaps, GivenWhenGettingKmdNotifyPropertiesThenItIsDisabled
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
GEN11TEST_F(Gen11DeviceCaps, WhenCheckingCompressionThenItIsDisabled) { GEN11TEST_F(Gen11DeviceCaps, WhenCheckingCompressionThenItIsDisabled) {

View File

@ -61,6 +61,8 @@ GEN12LPTEST_F(Gen12LpDeviceCaps, WhenCheckingCapsThenKmdNotifyMechanismIsCorrect
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
GEN12LPTEST_F(Gen12LpDeviceCaps, WhenCheckingCapsThenCompressionIsDisabled) { GEN12LPTEST_F(Gen12LpDeviceCaps, WhenCheckingCapsThenCompressionIsDisabled) {

View File

@ -21,4 +21,6 @@ BDWTEST_F(BdwDeviceCaps, WhenCheckingKmdNotifyPropertiesThenKmdNotifyIsEnabledCo
EXPECT_EQ(5000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -44,6 +44,8 @@ GEN8TEST_F(Gen8DeviceCaps, WhenCheckingKmdNotifyMechanismThenPropertiesAreSetCor
EXPECT_EQ(5000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
GEN8TEST_F(Gen8DeviceCaps, WhenCheckingCompressionThenItIsDisabled) { GEN8TEST_F(Gen8DeviceCaps, WhenCheckingCompressionThenItIsDisabled) {

View File

@ -20,4 +20,6 @@ BXTTEST_F(BxtDeviceCapsWindows, GivenWhenGettingKmdNotifyPropertiesThenItIsDisab
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -95,6 +95,8 @@ CFLTEST_F(HwInfoConfigTestLinuxCfl, WhenConfiguringHwInfoThenInformationIsCorrec
EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(outKmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
CFLTEST_F(HwInfoConfigTestLinuxCfl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) { CFLTEST_F(HwInfoConfigTestLinuxCfl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) {

View File

@ -20,4 +20,6 @@ CFLTEST_F(CflDeviceCapsWindows, GivenWhenGettingKmdNotifyPropertiesThenItIsDisab
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -102,6 +102,8 @@ GLKTEST_F(HwInfoConfigTestLinuxGlk, WhenConfiguringHwInfoThenInformationIsCorrec
EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(outKmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
GLKTEST_F(HwInfoConfigTestLinuxGlk, GivenInvalidInputWhenConfiguringHwInfoThenErrorIsReturned) { GLKTEST_F(HwInfoConfigTestLinuxGlk, GivenInvalidInputWhenConfiguringHwInfoThenErrorIsReturned) {

View File

@ -20,4 +20,6 @@ GLKTEST_F(GlkDeviceCapsWindows, WhenCheckingKmdNotifyPropertiesThenKmdNotifyIsEn
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -137,6 +137,8 @@ KBLTEST_F(HwInfoConfigTestLinuxKbl, WhenConfiguringHwInfoThenInformationIsCorrec
EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(outKmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
KBLTEST_F(HwInfoConfigTestLinuxKbl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) { KBLTEST_F(HwInfoConfigTestLinuxKbl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) {

View File

@ -20,4 +20,6 @@ KBLTEST_F(KblDeviceCapsWindows, GivenWhenGettingKmdNotifyPropertiesThenItIsDisab
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -135,6 +135,8 @@ SKLTEST_F(HwInfoConfigTestLinuxSkl, WhenConfiguringHwInfoThenInformationIsCorrec
EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(5000, outKmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_TRUE(outKmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(200000, outKmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(outKmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, outKmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
SKLTEST_F(HwInfoConfigTestLinuxSkl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) { SKLTEST_F(HwInfoConfigTestLinuxSkl, GivenUnknownDevIdWhenConfiguringHwInfoThenErrorIsReturned) {

View File

@ -20,4 +20,6 @@ SKLTEST_F(SklDeviceCapsWindows, GivenWhenGettingKmdNotifyPropertiesThenItIsDisab
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_FALSE(pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(0, pDevice->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }

View File

@ -26,12 +26,13 @@ struct KmdNotifyTests : public ::testing::Test {
cmdQ.reset(new MockCommandQueue(&context, device.get(), nullptr, false)); cmdQ.reset(new MockCommandQueue(&context, device.get(), nullptr, false));
*device->getDefaultEngine().commandStreamReceiver->getTagAddress() = taskCountToWait; *device->getDefaultEngine().commandStreamReceiver->getTagAddress() = taskCountToWait;
cmdQ->getGpgpuCommandStreamReceiver().waitForFlushStamp(flushStampToWait); cmdQ->getGpgpuCommandStreamReceiver().waitForFlushStamp(flushStampToWait);
overrideKmdNotifyParams(true, 2, true, 1, false, 0); overrideKmdNotifyParams(true, 2, true, 1, false, 0, false, 0);
} }
void overrideKmdNotifyParams(bool kmdNotifyEnable, int64_t kmdNotifyDelay, void overrideKmdNotifyParams(bool kmdNotifyEnable, int64_t kmdNotifyDelay,
bool quickKmdSleepEnable, int64_t quickKmdSleepDelay, bool quickKmdSleepEnable, int64_t quickKmdSleepDelay,
bool quickKmdSleepEnableForSporadicWaits, int64_t quickKmdSleepDelayForSporadicWaits) { bool quickKmdSleepEnableForSporadicWaits, int64_t quickKmdSleepDelayForSporadicWaits,
bool quickKmdSleepEnableForDirectSubmission, int64_t quickKmdSleepDelayForDirectSubmission) {
auto &properties = hwInfo->capabilityTable.kmdNotifyProperties; auto &properties = hwInfo->capabilityTable.kmdNotifyProperties;
properties.enableKmdNotify = kmdNotifyEnable; properties.enableKmdNotify = kmdNotifyEnable;
properties.delayKmdNotifyMicroseconds = kmdNotifyDelay; properties.delayKmdNotifyMicroseconds = kmdNotifyDelay;
@ -39,6 +40,8 @@ struct KmdNotifyTests : public ::testing::Test {
properties.delayQuickKmdSleepMicroseconds = quickKmdSleepDelay; properties.delayQuickKmdSleepMicroseconds = quickKmdSleepDelay;
properties.enableQuickKmdSleepForSporadicWaits = quickKmdSleepEnableForSporadicWaits; properties.enableQuickKmdSleepForSporadicWaits = quickKmdSleepEnableForSporadicWaits;
properties.delayQuickKmdSleepForSporadicWaitsMicroseconds = quickKmdSleepDelayForSporadicWaits; properties.delayQuickKmdSleepForSporadicWaitsMicroseconds = quickKmdSleepDelayForSporadicWaits;
properties.enableQuickKmdSleepForDirectSubmission = quickKmdSleepEnableForDirectSubmission;
properties.delayQuickKmdSleepForDirectSubmissionMicroseconds = quickKmdSleepDelayForDirectSubmission;
} }
class MockKmdNotifyHelper : public KmdNotifyHelper { class MockKmdNotifyHelper : public KmdNotifyHelper {
@ -103,7 +106,7 @@ HWTEST_F(KmdNotifyTests, givenTaskCountWhenWaitUntilCompletionCalledThenAlwaysTr
} }
HWTEST_F(KmdNotifyTests, givenTaskCountAndKmdNotifyDisabledWhenWaitUntilCompletionCalledThenTryCpuPollingWithoutTimeout) { HWTEST_F(KmdNotifyTests, givenTaskCountAndKmdNotifyDisabledWhenWaitUntilCompletionCalledThenTryCpuPollingWithoutTimeout) {
overrideKmdNotifyParams(false, 0, false, 0, false, 0); overrideKmdNotifyParams(false, 0, false, 0, false, 0, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_CALL(*csr, waitForCompletionWithTimeout(false, 0, taskCountToWait)).Times(1).WillOnce(::testing::Return(true)); EXPECT_CALL(*csr, waitForCompletionWithTimeout(false, 0, taskCountToWait)).Times(1).WillOnce(::testing::Return(true));
@ -154,7 +157,7 @@ HWTEST_F(KmdNotifyTests, givenEnabledQuickSleepWhenWaitUntilCompleteIsCalledThen
} }
HWTEST_F(KmdNotifyTests, givenDisabledQuickSleepWhenWaitUntilCompleteWithQuickSleepRequestIsCalledThenUseBaseDelayValue) { HWTEST_F(KmdNotifyTests, givenDisabledQuickSleepWhenWaitUntilCompleteWithQuickSleepRequestIsCalledThenUseBaseDelayValue) {
overrideKmdNotifyParams(true, 1, false, 0, false, 0); overrideKmdNotifyParams(true, 1, false, 0, false, 0, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
auto expectedTimeout = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds; auto expectedTimeout = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds;
@ -180,7 +183,7 @@ HWTEST_F(KmdNotifyTests, givenZeroFlushStampWhenWaitIsCalledThenDisableTimeout)
} }
HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsSporadicWaitThenOverrideQuickSleepRequest) { HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsSporadicWaitThenOverrideQuickSleepRequest) {
overrideKmdNotifyParams(true, 3, true, 2, true, 1); overrideKmdNotifyParams(true, 3, true, 2, true, 1, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds; auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds;
@ -193,7 +196,7 @@ HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsSporadicWaitThenOverrid
} }
HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsNotSporadicWaitThenOverrideQuickSleepRequest) { HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsNotSporadicWaitThenOverrideQuickSleepRequest) {
overrideKmdNotifyParams(true, 3, true, 2, true, 9999999); overrideKmdNotifyParams(true, 3, true, 2, true, 9999999, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds; auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds;
@ -203,14 +206,14 @@ HWTEST_F(KmdNotifyTests, givenNonQuickSleepRequestWhenItsNotSporadicWaitThenOver
} }
HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenPowerSavingModeIsRequestedThenTimeoutIsEnabled) { HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenPowerSavingModeIsRequestedThenTimeoutIsEnabled) {
overrideKmdNotifyParams(false, 3, false, 2, false, 9999999); overrideKmdNotifyParams(false, 3, false, 2, false, 9999999, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_CALL(*csr, waitForCompletionWithTimeout(true, 1, ::testing::_)).Times(1).WillOnce(::testing::Return(true)); EXPECT_CALL(*csr, waitForCompletionWithTimeout(true, 1, ::testing::_)).Times(1).WillOnce(::testing::Return(true));
csr->waitForTaskCountWithKmdNotifyFallback(taskCountToWait, 1, false, true); csr->waitForTaskCountWithKmdNotifyFallback(taskCountToWait, 1, false, true);
} }
HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModeAndCallWaitThenTimeoutIsEnabled) { HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModeAndCallWaitThenTimeoutIsEnabled) {
overrideKmdNotifyParams(false, 3, false, 2, false, 9999999); overrideKmdNotifyParams(false, 3, false, 2, false, 9999999, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_CALL(*csr, waitForCompletionWithTimeout(true, 1, ::testing::_)).Times(1).WillOnce(::testing::Return(true)); EXPECT_CALL(*csr, waitForCompletionWithTimeout(true, 1, ::testing::_)).Times(1).WillOnce(::testing::Return(true));
cmdQ->throttle = QueueThrottle::LOW; cmdQ->throttle = QueueThrottle::LOW;
@ -218,7 +221,7 @@ HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModeAndCal
} }
HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModButThereIsNoFlushStampeAndCallWaitThenTimeoutIsDisabled) { HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModButThereIsNoFlushStampeAndCallWaitThenTimeoutIsDisabled) {
overrideKmdNotifyParams(false, 3, false, 2, false, 9999999); overrideKmdNotifyParams(false, 3, false, 2, false, 9999999, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_CALL(*csr, waitForCompletionWithTimeout(false, 0, ::testing::_)).Times(1).WillOnce(::testing::Return(true)); EXPECT_CALL(*csr, waitForCompletionWithTimeout(false, 0, ::testing::_)).Times(1).WillOnce(::testing::Return(true));
@ -227,7 +230,7 @@ HWTEST_F(KmdNotifyTests, givenKmdNotifyDisabledWhenQueueHasPowerSavingModButTher
} }
HWTEST_F(KmdNotifyTests, givenQuickSleepRequestWhenItsSporadicWaitOptimizationIsDisabledThenDontOverrideQuickSleepRequest) { HWTEST_F(KmdNotifyTests, givenQuickSleepRequestWhenItsSporadicWaitOptimizationIsDisabledThenDontOverrideQuickSleepRequest) {
overrideKmdNotifyParams(true, 3, true, 2, false, 0); overrideKmdNotifyParams(true, 3, true, 2, false, 0, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds; auto expectedDelay = device->getHardwareInfo().capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds;
@ -259,7 +262,7 @@ HWTEST_F(KmdNotifyTests, givenTaskCountLowerThanHwTagWhenWaitCalledThenDontMulti
} }
HWTEST_F(KmdNotifyTests, givenDefaultCommandStreamReceiverWhenWaitCalledThenUpdateWaitTimestamp) { HWTEST_F(KmdNotifyTests, givenDefaultCommandStreamReceiverWhenWaitCalledThenUpdateWaitTimestamp) {
overrideKmdNotifyParams(true, 3, true, 2, true, 1); overrideKmdNotifyParams(true, 3, true, 2, true, 1, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_NE(0, mockKmdNotifyHelper->lastWaitForCompletionTimestampUs.load()); EXPECT_NE(0, mockKmdNotifyHelper->lastWaitForCompletionTimestampUs.load());
@ -270,7 +273,7 @@ HWTEST_F(KmdNotifyTests, givenDefaultCommandStreamReceiverWhenWaitCalledThenUpda
} }
HWTEST_F(KmdNotifyTests, givenDefaultCommandStreamReceiverWithDisabledSporadicWaitOptimizationWhenWaitCalledThenDontUpdateWaitTimestamp) { HWTEST_F(KmdNotifyTests, givenDefaultCommandStreamReceiverWithDisabledSporadicWaitOptimizationWhenWaitCalledThenDontUpdateWaitTimestamp) {
overrideKmdNotifyParams(true, 3, true, 2, false, 0); overrideKmdNotifyParams(true, 3, true, 2, false, 0, false, 0);
auto csr = createMockCsr<FamilyType>(); auto csr = createMockCsr<FamilyType>();
EXPECT_EQ(0, mockKmdNotifyHelper->lastWaitForCompletionTimestampUs.load()); EXPECT_EQ(0, mockKmdNotifyHelper->lastWaitForCompletionTimestampUs.load());
@ -298,7 +301,7 @@ TEST_F(KmdNotifyTests, givenTaskCountDiffLowerThanMinimumToCheckAcLineWhenObtain
EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine); EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine);
int64_t timeout = 0; int64_t timeout = 0;
helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true); helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true, false);
EXPECT_EQ(0u, helper.updateAcLineStatusCalled); EXPECT_EQ(0u, helper.updateAcLineStatusCalled);
} }
@ -313,7 +316,7 @@ TEST_F(KmdNotifyTests, givenTaskCountDiffGreaterThanMinimumToCheckAcLineAndDisab
EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine); EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine);
int64_t timeout = 0; int64_t timeout = 0;
helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true); helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true, false);
EXPECT_EQ(1u, helper.updateAcLineStatusCalled); EXPECT_EQ(1u, helper.updateAcLineStatusCalled);
} }
@ -322,7 +325,7 @@ TEST_F(KmdNotifyTests, givenKmdWaitModeNotActiveWhenObtainTimeoutParamsThenFalse
MockKmdNotifyHelper helper(&(hwInfo->capabilityTable.kmdNotifyProperties)); MockKmdNotifyHelper helper(&(hwInfo->capabilityTable.kmdNotifyProperties));
int64_t timeout = 0; int64_t timeout = 0;
auto enableTimeout = helper.obtainTimeoutParams(timeout, false, 1, 1, 1, false, false); auto enableTimeout = helper.obtainTimeoutParams(timeout, false, 1, 1, 1, false, false, false);
EXPECT_FALSE(enableTimeout); EXPECT_FALSE(enableTimeout);
EXPECT_FALSE(timeout); EXPECT_FALSE(timeout);
@ -338,7 +341,7 @@ TEST_F(KmdNotifyTests, givenTaskCountDiffGreaterThanMinimumToCheckAcLineAndEnabl
EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine); EXPECT_EQ(10u, KmdNotifyConstants::minimumTaskCountDiffToCheckAcLine);
int64_t timeout = 0; int64_t timeout = 0;
helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true); helper.obtainTimeoutParams(timeout, false, hwTag, taskCountToWait, 1, false, true, false);
EXPECT_EQ(0u, helper.updateAcLineStatusCalled); EXPECT_EQ(0u, helper.updateAcLineStatusCalled);
} }
@ -349,7 +352,7 @@ TEST_F(KmdNotifyTests, givenDisabledKmdNotifyMechanismWhenAcLineIsDisconnectedTh
helper.acLineConnected = false; helper.acLineConnected = false;
int64_t timeout = 0; int64_t timeout = 0;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, 2, false, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, 2, false, true, false);
EXPECT_TRUE(timeoutEnabled); EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(KmdNotifyConstants::timeoutInMicrosecondsForDisconnectedAcLine, timeout); EXPECT_EQ(KmdNotifyConstants::timeoutInMicrosecondsForDisconnectedAcLine, timeout);
@ -363,7 +366,7 @@ TEST_F(KmdNotifyTests, givenEnabledKmdNotifyMechanismWhenAcLineIsDisconnectedThe
helper.acLineConnected = false; helper.acLineConnected = false;
int64_t timeout = 0; int64_t timeout = 0;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, 2, false, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, 2, false, true, false);
EXPECT_TRUE(timeoutEnabled); EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(hwInfo->capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds, timeout); EXPECT_EQ(hwInfo->capabilityTable.kmdNotifyProperties.delayKmdNotifyMicroseconds, timeout);
@ -376,7 +379,7 @@ TEST_F(KmdNotifyTests, givenDisabledKmdNotifyMechanismAndFlushStampIsZeroWhenAcL
int64_t timeout = 0; int64_t timeout = 0;
FlushStamp flushStampToWait = 0; FlushStamp flushStampToWait = 0;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, false);
EXPECT_FALSE(timeoutEnabled); EXPECT_FALSE(timeoutEnabled);
} }
@ -390,7 +393,7 @@ TEST_F(KmdNotifyTests, givenDisabledKmdNotifyMechanismWhenPowerSavingModeIsSetTh
int64_t timeout = 0; int64_t timeout = 0;
FlushStamp flushStampToWait = 1; FlushStamp flushStampToWait = 1;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, false);
EXPECT_TRUE(timeoutEnabled); EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(1, timeout); EXPECT_EQ(1, timeout);
} }
@ -401,7 +404,7 @@ TEST_F(KmdNotifyTests, givenDisabledKmdNotifyMechanismWhenPowerSavingModeIsReque
int64_t timeout = 0; int64_t timeout = 0;
FlushStamp flushStampToWait = 1; FlushStamp flushStampToWait = 1;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, true, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, true, true, false);
EXPECT_TRUE(timeoutEnabled); EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(1, timeout); EXPECT_EQ(1, timeout);
} }
@ -415,7 +418,49 @@ TEST_F(KmdNotifyTests, givenEnabledKmdNotifyMechanismWhenPowerSavingModeIsSetAnd
int64_t timeout = 0; int64_t timeout = 0;
FlushStamp flushStampToWait = 0; FlushStamp flushStampToWait = 0;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true); bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, false);
EXPECT_FALSE(timeoutEnabled); EXPECT_FALSE(timeoutEnabled);
EXPECT_EQ(0, timeout); EXPECT_EQ(0, timeout);
} }
TEST_F(KmdNotifyTests, givenEnabledKmdDirectSubmissionNotifyMechanismWhenDirectSubmissionIsEnabledThenSelectDelayTimeoutForDirectSubmission) {
overrideKmdNotifyParams(true, 150, false, 0, false, 0, true, 20);
MockKmdNotifyHelper helper(&(hwInfo->capabilityTable.kmdNotifyProperties));
constexpr int64_t expectedTimeout = 20;
constexpr bool directSubmission = true;
int64_t timeout = 0;
FlushStamp flushStampToWait = 1;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, directSubmission);
EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(expectedTimeout, timeout);
}
TEST_F(KmdNotifyTests, givenEnabledKmdDirectSubmissionNotifyMechanismWhenDirectSubmissionIsDisabledThenSelectBaseDelayTimeout) {
overrideKmdNotifyParams(true, 150, false, 0, false, 0, true, 20);
MockKmdNotifyHelper helper(&(hwInfo->capabilityTable.kmdNotifyProperties));
constexpr int64_t expectedTimeout = 150;
constexpr bool directSubmission = false;
int64_t timeout = 0;
FlushStamp flushStampToWait = 1;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, directSubmission);
EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(expectedTimeout, timeout);
}
TEST_F(KmdNotifyTests, givenDisabledKmdDirectSubmissionNotifyMechanismWhenDirectSubmissionIsEnabledThenSelectBaseDelayTimeout) {
overrideKmdNotifyParams(true, 150, false, 0, false, 0, false, 20);
MockKmdNotifyHelper helper(&(hwInfo->capabilityTable.kmdNotifyProperties));
constexpr int64_t expectedTimeout = 150;
constexpr bool directSubmission = true;
int64_t timeout = 0;
FlushStamp flushStampToWait = 1;
bool timeoutEnabled = helper.obtainTimeoutParams(timeout, false, 1, 2, flushStampToWait, false, true, directSubmission);
EXPECT_TRUE(timeoutEnabled);
EXPECT_EQ(expectedTimeout, timeout);
}

View File

@ -68,6 +68,8 @@ TEST_F(DeviceFactoryTest, WhenOverridingUsingDebugManagerThenOverridesAreApplied
auto refDelayQuickKmdSleepMicroseconds = hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds; auto refDelayQuickKmdSleepMicroseconds = hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepMicroseconds;
auto refEnableQuickKmdSleepForSporadicWaits = hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits; auto refEnableQuickKmdSleepForSporadicWaits = hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits;
auto refDelayQuickKmdSleepForSporadicWaitsMicroseconds = hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds; auto refDelayQuickKmdSleepForSporadicWaitsMicroseconds = hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds;
auto refEnableQuickKmdSleepForDirectSubmission = hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission;
auto refDelayQuickKmdSleepForDirectSubmissionMicroseconds = hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds;
DebugManager.flags.OverrideEnableKmdNotify.set(!refEnableKmdNotify); DebugManager.flags.OverrideEnableKmdNotify.set(!refEnableKmdNotify);
DebugManager.flags.OverrideKmdNotifyDelayMicroseconds.set(static_cast<int32_t>(refDelayKmdNotifyMicroseconds) + 10); DebugManager.flags.OverrideKmdNotifyDelayMicroseconds.set(static_cast<int32_t>(refDelayKmdNotifyMicroseconds) + 10);
@ -78,6 +80,9 @@ TEST_F(DeviceFactoryTest, WhenOverridingUsingDebugManagerThenOverridesAreApplied
DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.set(!refEnableQuickKmdSleepForSporadicWaits); DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.set(!refEnableQuickKmdSleepForSporadicWaits);
DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.set(static_cast<int32_t>(refDelayQuickKmdSleepForSporadicWaitsMicroseconds) + 12); DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.set(static_cast<int32_t>(refDelayQuickKmdSleepForSporadicWaitsMicroseconds) + 12);
DebugManager.flags.OverrideEnableQuickKmdSleepForDirectSubmission.set(!refEnableQuickKmdSleepForDirectSubmission);
DebugManager.flags.OverrideDelayQuickKmdSleepForDirectSubmissionMicroseconds.set(static_cast<int32_t>(refDelayQuickKmdSleepForDirectSubmissionMicroseconds) + 15);
platformsImpl->clear(); platformsImpl->clear();
executionEnvironment = constructPlatform()->peekExecutionEnvironment(); executionEnvironment = constructPlatform()->peekExecutionEnvironment();
success = DeviceFactory::prepareDeviceEnvironments(*executionEnvironment); success = DeviceFactory::prepareDeviceEnvironments(*executionEnvironment);
@ -94,6 +99,11 @@ TEST_F(DeviceFactoryTest, WhenOverridingUsingDebugManagerThenOverridesAreApplied
hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
EXPECT_EQ(refDelayQuickKmdSleepForSporadicWaitsMicroseconds + 12, EXPECT_EQ(refDelayQuickKmdSleepForSporadicWaitsMicroseconds + 12,
hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
EXPECT_EQ(!refEnableQuickKmdSleepForDirectSubmission,
hwInfo->capabilityTable.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
EXPECT_EQ(refDelayQuickKmdSleepForDirectSubmissionMicroseconds + 15,
hwInfo->capabilityTable.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
} }
TEST_F(DeviceFactoryTest, givenZeAffinityMaskSetWhenCreateDevicesThenProperNumberOfDevicesIsReturned) { TEST_F(DeviceFactoryTest, givenZeAffinityMaskSetWhenCreateDevicesThenProperNumberOfDevicesIsReturned) {

View File

@ -156,6 +156,8 @@ OverrideEnableQuickKmdSleep = -1
OverrideQuickKmdSleepDelayMicroseconds = -1 OverrideQuickKmdSleepDelayMicroseconds = -1
OverrideEnableQuickKmdSleepForSporadicWaits = -1 OverrideEnableQuickKmdSleepForSporadicWaits = -1
OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds = -1 OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds = -1
OverrideEnableQuickKmdSleepForDirectSubmission = -1
OverrideDelayQuickKmdSleepForDirectSubmissionMicroseconds = -1
PowerSavingMode = 0 PowerSavingMode = 0
CsrDispatchMode = 0 CsrDispatchMode = 0
OverrideDefaultFP64Settings = -1 OverrideDefaultFP64Settings = -1

View File

@ -855,7 +855,8 @@ inline void CommandStreamReceiverHw<GfxFamily>::waitForTaskCountWithKmdNotifyFal
int64_t waitTimeout = 0; int64_t waitTimeout = 0;
bool enableTimeout = false; bool enableTimeout = false;
enableTimeout = kmdNotifyHelper->obtainTimeoutParams(waitTimeout, useQuickKmdSleep, *getTagAddress(), taskCountToWait, flushStampToWait, forcePowerSavingMode, this->isKmdWaitModeActive()); enableTimeout = kmdNotifyHelper->obtainTimeoutParams(waitTimeout, useQuickKmdSleep, *getTagAddress(), taskCountToWait, flushStampToWait, forcePowerSavingMode, this->isKmdWaitModeActive(),
this->isAnyDirectSubmissionEnabled());
PRINT_DEBUG_STRING(DebugManager.flags.LogWaitingForCompletion.get(), stdout, PRINT_DEBUG_STRING(DebugManager.flags.LogWaitingForCompletion.get(), stdout,
"\nWaiting for task count %u at location %p. Current value: %u\n", "\nWaiting for task count %u at location %p. Current value: %u\n",

View File

@ -314,6 +314,8 @@ DECLARE_DEBUG_VARIABLE(int32_t, OverrideEnableQuickKmdSleep, -1, "-1: dont overr
DECLARE_DEBUG_VARIABLE(int32_t, OverrideQuickKmdSleepDelayMicroseconds, -1, "-1: dont override, 0: infinite timeout, >0: timeout in microseconds") DECLARE_DEBUG_VARIABLE(int32_t, OverrideQuickKmdSleepDelayMicroseconds, -1, "-1: dont override, 0: infinite timeout, >0: timeout in microseconds")
DECLARE_DEBUG_VARIABLE(int32_t, OverrideEnableQuickKmdSleepForSporadicWaits, -1, "-1: dont override, 0: disable, 1: enable. It works only when QuickKmdSleep is enabled.") DECLARE_DEBUG_VARIABLE(int32_t, OverrideEnableQuickKmdSleepForSporadicWaits, -1, "-1: dont override, 0: disable, 1: enable. It works only when QuickKmdSleep is enabled.")
DECLARE_DEBUG_VARIABLE(int32_t, OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds, -1, "-1: dont override, >0: timeout in microseconds") DECLARE_DEBUG_VARIABLE(int32_t, OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds, -1, "-1: dont override, >0: timeout in microseconds")
DECLARE_DEBUG_VARIABLE(int32_t, OverrideEnableQuickKmdSleepForDirectSubmission, -1, "-1: dont override, 0: disable, 1: enable. It works only when QuickKmdSleep is enabled.")
DECLARE_DEBUG_VARIABLE(int32_t, OverrideDelayQuickKmdSleepForDirectSubmissionMicroseconds, -1, "-1: dont override, >0: timeout in microseconds")
DECLARE_DEBUG_VARIABLE(int32_t, PowerSavingMode, 0, "0: default 1: enable. Whenever driver waits on GPU and its not ready, put waiting thread to sleep and wait for notification.") DECLARE_DEBUG_VARIABLE(int32_t, PowerSavingMode, 0, "0: default 1: enable. Whenever driver waits on GPU and its not ready, put waiting thread to sleep and wait for notification.")
DECLARE_DEBUG_VARIABLE(int32_t, CsrDispatchMode, 0, "Chooses DispatchMode for Csr") DECLARE_DEBUG_VARIABLE(int32_t, CsrDispatchMode, 0, "Chooses DispatchMode for Csr")
DECLARE_DEBUG_VARIABLE(int32_t, RenderCompressedImagesEnabled, -1, "-1: default, 0: disabled, 1: enabled") DECLARE_DEBUG_VARIABLE(int32_t, RenderCompressedImagesEnabled, -1, "-1: default, 0: disabled, 1: enabled")

View File

@ -37,12 +37,14 @@ const PLATFORM EHL::platform = {
const RuntimeCapabilityTable EHL::capabilityTable{ const RuntimeCapabilityTable EHL::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max36BitAddress, // gpuAddressSpace MemoryConstants::max36BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationEHL, // isSimulation &isSimulationEHL, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -65,8 +67,6 @@ const RuntimeCapabilityTable EHL::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -38,12 +38,14 @@ const PLATFORM ICLLP::platform = {
const RuntimeCapabilityTable ICLLP::capabilityTable{ const RuntimeCapabilityTable ICLLP::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationICLLP, // isSimulation &isSimulationICLLP, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -66,8 +68,6 @@ const RuntimeCapabilityTable ICLLP::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
false, // ftr64KBpages false, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -37,12 +37,14 @@ const PLATFORM LKF::platform = {
const RuntimeCapabilityTable LKF::capabilityTable{ const RuntimeCapabilityTable LKF::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max36BitAddress, // gpuAddressSpace MemoryConstants::max36BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationLKF, // isSimulation &isSimulationLKF, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -65,8 +67,6 @@ const RuntimeCapabilityTable LKF::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -35,12 +35,14 @@ const RuntimeCapabilityTable ADLP::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}, {aub_stream::ENGINE_RCS, {true, true}},
{aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max64BitAppAddress, // gpuAddressSpace MemoryConstants::max64BitAppAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationADLP, // isSimulation &isSimulationADLP, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -63,8 +65,6 @@ const RuntimeCapabilityTable ADLP::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // instrumentationEnabled true, // instrumentationEnabled
true, // ftr64KBpages true, // ftr64KBpages
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -35,12 +35,14 @@ const RuntimeCapabilityTable ADLS::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}, {aub_stream::ENGINE_RCS, {true, true}},
{aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max64BitAppAddress, // gpuAddressSpace MemoryConstants::max64BitAppAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationADLS, // isSimulation &isSimulationADLS, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -63,8 +65,6 @@ const RuntimeCapabilityTable ADLS::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // instrumentationEnabled true, // instrumentationEnabled
true, // ftr64KBpages true, // ftr64KBpages
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -43,12 +43,14 @@ const RuntimeCapabilityTable DG1::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}, {aub_stream::ENGINE_RCS, {true, true}},
{aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max64BitAppAddress, // gpuAddressSpace MemoryConstants::max64BitAppAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationDG1, // isSimulation &isSimulationDG1, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -71,8 +73,6 @@ const RuntimeCapabilityTable DG1::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
true, // supportCacheFlushAfterWalker true, // supportCacheFlushAfterWalker

View File

@ -35,12 +35,14 @@ const RuntimeCapabilityTable RKL::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}, {aub_stream::ENGINE_RCS, {true, true}},
{aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationRKL, // isSimulation &isSimulationRKL, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -63,8 +65,6 @@ const RuntimeCapabilityTable RKL::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -39,12 +39,14 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}, {aub_stream::ENGINE_RCS, {true, true}},
{aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max64BitAppAddress, // gpuAddressSpace MemoryConstants::max64BitAppAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationTGLLP, // isSimulation &isSimulationTGLLP, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -67,8 +69,6 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // instrumentationEnabled true, // instrumentationEnabled
true, // ftr64KBpages true, // ftr64KBpages
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -41,51 +41,51 @@ const PLATFORM BDW::platform = {
const RuntimeCapabilityTable BDW::capabilityTable{ const RuntimeCapabilityTable BDW::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{50000, 5000, 200000, true, true, true}, // kmdNotifyProperties {50000, 5000, 200000, 0, true, true, true, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
80, // defaultProfilingTimerResolution 80, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationBDW, // isSimulation &isSimulationBDW, // isSimulation
PreemptionMode::Disabled, // defaultPreemptionMode "core", // platformType
aub_stream::ENGINE_RCS, // defaultEngineType "", // deviceName
0, // maxRenderFrequency PreemptionMode::Disabled, // defaultPreemptionMode
30, // clVersionSupport aub_stream::ENGINE_RCS, // defaultEngineType
CmdServicesMemTraceVersion::DeviceValues::Bdw, // aubDeviceId 0, // maxRenderFrequency
0, // extraQuantityThreadsPerEU 30, // clVersionSupport
64, // slmSize CmdServicesMemTraceVersion::DeviceValues::Bdw, // aubDeviceId
sizeof(BDW::GRF), // grfSize 0, // extraQuantityThreadsPerEU
36u, // timestampValidBits 64, // slmSize
32u, // kernelTimestampValidBits sizeof(BDW::GRF), // grfSize
false, // blitterOperationsSupported 36u, // timestampValidBits
true, // ftrSupportsInteger64BitAtomics 32u, // kernelTimestampValidBits
true, // ftrSupportsFP64 false, // blitterOperationsSupported
true, // ftrSupports64BitMath true, // ftrSupportsInteger64BitAtomics
true, // ftrSvm true, // ftrSupportsFP64
true, // ftrSupportsCoherency true, // ftrSupports64BitMath
false, // ftrSupportsVmeAvcTextureSampler true, // ftrSvm
false, // ftrSupportsVmeAvcPreemption true, // ftrSupportsCoherency
false, // ftrRenderCompressedBuffers false, // ftrSupportsVmeAvcTextureSampler
false, // ftrRenderCompressedImages false, // ftrSupportsVmeAvcPreemption
false, // ftr64KBpages false, // ftrRenderCompressedBuffers
true, // instrumentationEnabled false, // ftrRenderCompressedImages
"core", // platformType false, // ftr64KBpages
"", // deviceName true, // instrumentationEnabled
false, // sourceLevelDebuggerSupported false, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker
true, // supportsImages true, // supportsImages
false, // supportsDeviceEnqueue false, // supportsDeviceEnqueue
true, // supportsPipes true, // supportsPipes
true, // supportsOcl21Features true, // supportsOcl21Features
false, // supportsOnDemandPageFaults false, // supportsOnDemandPageFaults
true, // supportsIndependentForwardProgress true, // supportsIndependentForwardProgress
true, // hostPtrTrackingEnabled true, // hostPtrTrackingEnabled
false, // levelZeroSupported false, // levelZeroSupported
true, // isIntegratedDevice true, // isIntegratedDevice
true, // supportsMediaBlock true, // supportsMediaBlock
false // fusedEuEnabled false // fusedEuEnabled
}; };
WorkaroundTable BDW::workaroundTable = {}; WorkaroundTable BDW::workaroundTable = {};

View File

@ -39,12 +39,14 @@ const PLATFORM BXT::platform = {
const RuntimeCapabilityTable BXT::capabilityTable{ const RuntimeCapabilityTable BXT::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
52.083, // defaultProfilingTimerResolution 52.083, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationBXT, // isSimulation &isSimulationBXT, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -67,8 +69,6 @@ const RuntimeCapabilityTable BXT::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
false, // ftr64KBpages false, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -34,12 +34,14 @@ const PLATFORM CFL::platform = {
const RuntimeCapabilityTable CFL::capabilityTable{ const RuntimeCapabilityTable CFL::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationCFL, // isSimulation &isSimulationCFL, // isSimulation
"core", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -62,8 +64,6 @@ const RuntimeCapabilityTable CFL::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"core", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -34,12 +34,14 @@ const PLATFORM GLK::platform = {
const RuntimeCapabilityTable GLK::capabilityTable{ const RuntimeCapabilityTable GLK::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{30000, 0, 0, true, false, false}, // kmdNotifyProperties {30000, 0, 0, 0, true, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
52.083, // defaultProfilingTimerResolution 52.083, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationGLK, // isSimulation &isSimulationGLK, // isSimulation
"lp", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -62,8 +64,6 @@ const RuntimeCapabilityTable GLK::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
false, // ftr64KBpages false, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"lp", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -34,12 +34,14 @@ const PLATFORM KBL::platform = {
const RuntimeCapabilityTable KBL::capabilityTable{ const RuntimeCapabilityTable KBL::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationKBL, // isSimulation &isSimulationKBL, // isSimulation
"core", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -62,8 +64,6 @@ const RuntimeCapabilityTable KBL::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"core", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -42,12 +42,14 @@ const PLATFORM SKL::platform = {
const RuntimeCapabilityTable SKL::capabilityTable{ const RuntimeCapabilityTable SKL::capabilityTable{
EngineDirectSubmissionInitVec{ EngineDirectSubmissionInitVec{
{aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationSKL, // isSimulation &isSimulationSKL, // isSimulation
"core", // platformType
"", // deviceName
PreemptionMode::MidThread, // defaultPreemptionMode PreemptionMode::MidThread, // defaultPreemptionMode
aub_stream::ENGINE_RCS, // defaultEngineType aub_stream::ENGINE_RCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -70,8 +72,6 @@ const RuntimeCapabilityTable SKL::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"core", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
true, // supportsVme true, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -28,6 +28,8 @@ struct RuntimeCapabilityTable {
double defaultProfilingTimerResolution; double defaultProfilingTimerResolution;
size_t requiredPreemptionSurfaceSize; size_t requiredPreemptionSurfaceSize;
bool (*isSimulation)(unsigned short); bool (*isSimulation)(unsigned short);
const char *platformType;
const char *deviceName;
PreemptionMode defaultPreemptionMode; PreemptionMode defaultPreemptionMode;
aub_stream::EngineType defaultEngineType; aub_stream::EngineType defaultEngineType;
uint32_t maxRenderFrequency; uint32_t maxRenderFrequency;
@ -50,8 +52,6 @@ struct RuntimeCapabilityTable {
bool ftrRenderCompressedImages; bool ftrRenderCompressedImages;
bool ftr64KBpages; bool ftr64KBpages;
bool instrumentationEnabled; bool instrumentationEnabled;
const char *platformType;
const char *deviceName;
bool debuggerSupported; bool debuggerSupported;
bool supportsVme; bool supportsVme;
bool supportCacheFlushAfterWalker; bool supportCacheFlushAfterWalker;
@ -83,6 +83,8 @@ inline bool operator==(const RuntimeCapabilityTable &lhs, const RuntimeCapabilit
result &= (lhs.kmdNotifyProperties.delayKmdNotifyMicroseconds == rhs.kmdNotifyProperties.delayKmdNotifyMicroseconds); result &= (lhs.kmdNotifyProperties.delayKmdNotifyMicroseconds == rhs.kmdNotifyProperties.delayKmdNotifyMicroseconds);
result &= (lhs.kmdNotifyProperties.delayQuickKmdSleepMicroseconds == rhs.kmdNotifyProperties.delayQuickKmdSleepMicroseconds); result &= (lhs.kmdNotifyProperties.delayQuickKmdSleepMicroseconds == rhs.kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
result &= (lhs.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds == rhs.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); result &= (lhs.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds == rhs.kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
result &= (lhs.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission == rhs.kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
result &= (lhs.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds == rhs.kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
result &= (lhs.kmdNotifyProperties.enableKmdNotify == rhs.kmdNotifyProperties.enableKmdNotify); result &= (lhs.kmdNotifyProperties.enableKmdNotify == rhs.kmdNotifyProperties.enableKmdNotify);
result &= (lhs.kmdNotifyProperties.enableQuickKmdSleep == rhs.kmdNotifyProperties.enableQuickKmdSleep); result &= (lhs.kmdNotifyProperties.enableQuickKmdSleep == rhs.kmdNotifyProperties.enableQuickKmdSleep);
result &= (lhs.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits == rhs.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); result &= (lhs.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits == rhs.kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);

View File

@ -19,7 +19,8 @@ bool KmdNotifyHelper::obtainTimeoutParams(int64_t &timeoutValueOutput,
uint32_t taskCountToWait, uint32_t taskCountToWait,
FlushStamp flushStampToWait, FlushStamp flushStampToWait,
bool forcePowerSavingMode, bool forcePowerSavingMode,
bool kmdWaitModeActive) { bool kmdWaitModeActive,
bool directSubmissionEnabled) {
if (flushStampToWait == 0) { if (flushStampToWait == 0) {
return false; return false;
} }
@ -44,6 +45,8 @@ bool KmdNotifyHelper::obtainTimeoutParams(int64_t &timeoutValueOutput,
timeoutValueOutput = KmdNotifyConstants::timeoutInMicrosecondsForDisconnectedAcLine; timeoutValueOutput = KmdNotifyConstants::timeoutInMicrosecondsForDisconnectedAcLine;
} else if (quickKmdSleepRequest && properties->enableQuickKmdSleep) { } else if (quickKmdSleepRequest && properties->enableQuickKmdSleep) {
timeoutValueOutput = properties->delayQuickKmdSleepMicroseconds; timeoutValueOutput = properties->delayQuickKmdSleepMicroseconds;
} else if (directSubmissionEnabled && properties->enableQuickKmdSleepForDirectSubmission) {
timeoutValueOutput = properties->delayQuickKmdSleepForDirectSubmissionMicroseconds;
} else { } else {
timeoutValueOutput = getBaseTimeout(multiplier); timeoutValueOutput = getBaseTimeout(multiplier);
} }

View File

@ -17,12 +17,15 @@ struct KmdNotifyProperties {
int64_t delayKmdNotifyMicroseconds; int64_t delayKmdNotifyMicroseconds;
int64_t delayQuickKmdSleepMicroseconds; int64_t delayQuickKmdSleepMicroseconds;
int64_t delayQuickKmdSleepForSporadicWaitsMicroseconds; int64_t delayQuickKmdSleepForSporadicWaitsMicroseconds;
int64_t delayQuickKmdSleepForDirectSubmissionMicroseconds;
// Main switch for KMD Notify optimization - if its disabled, all below are disabled too // Main switch for KMD Notify optimization - if its disabled, all below are disabled too
bool enableKmdNotify; bool enableKmdNotify;
// Use smaller delay in specific situations (ie. from AsyncEventsHandler) // Use smaller delay in specific situations (ie. from AsyncEventsHandler)
bool enableQuickKmdSleep; bool enableQuickKmdSleep;
// If waits are called sporadically use QuickKmdSleep mode, otherwise use standard delay // If waits are called sporadically use QuickKmdSleep mode, otherwise use standard delay
bool enableQuickKmdSleepForSporadicWaits; bool enableQuickKmdSleepForSporadicWaits;
// If direct submission is enabled, use direct submission delay, otherwise use standard delay
bool enableQuickKmdSleepForDirectSubmission;
}; };
namespace KmdNotifyConstants { namespace KmdNotifyConstants {
@ -42,7 +45,8 @@ class KmdNotifyHelper {
uint32_t taskCountToWait, uint32_t taskCountToWait,
FlushStamp flushStampToWait, FlushStamp flushStampToWait,
bool forcePowerSavingMode, bool forcePowerSavingMode,
bool kmdWaitModeActive); bool kmdWaitModeActive,
bool directSubmissionEnabled);
bool quickKmdSleepForSporadicWaitsEnabled() const { return properties->enableQuickKmdSleepForSporadicWaits; } bool quickKmdSleepForSporadicWaitsEnabled() const { return properties->enableQuickKmdSleepForSporadicWaits; }
MOCKABLE_VIRTUAL void updateLastWaitForCompletionTimestamp(); MOCKABLE_VIRTUAL void updateLastWaitForCompletionTimestamp();

View File

@ -196,6 +196,8 @@ int HwInfoConfig::configureHwInfoDrm(const HardwareInfo *inHwInfo, HardwareInfo
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideQuickKmdSleepDelayMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepMicroseconds); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideQuickKmdSleepDelayMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.get(), kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.get(), kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForDirectSubmission.get(), kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForDirectSubmissionMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
return 0; return 0;
} }

View File

@ -47,6 +47,8 @@ int HwInfoConfig::configureHwInfoWddm(const HardwareInfo *inHwInfo, HardwareInfo
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideQuickKmdSleepDelayMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepMicroseconds); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideQuickKmdSleepDelayMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepMicroseconds);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.get(), kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.get(), kmdNotifyProperties.enableQuickKmdSleepForSporadicWaits);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds); KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForSporadicWaitsMicroseconds);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideEnableQuickKmdSleepForDirectSubmission.get(), kmdNotifyProperties.enableQuickKmdSleepForDirectSubmission);
KmdNotifyHelper::overrideFromDebugVariable(DebugManager.flags.OverrideDelayQuickKmdSleepForDirectSubmissionMicroseconds.get(), kmdNotifyProperties.delayQuickKmdSleepForDirectSubmissionMicroseconds);
// Product specific config // Product specific config
int ret = configureHardwareCustom(outHwInfo, osIface); int ret = configureHardwareCustom(outHwInfo, osIface);

View File

@ -39,12 +39,14 @@ const RuntimeCapabilityTable XE_HP_SDV::capabilityTable{
{aub_stream::ENGINE_CCS1, {true, false, true, true}}, {aub_stream::ENGINE_CCS1, {true, false, true, true}},
{aub_stream::ENGINE_CCS2, {true, false, true, true}}, {aub_stream::ENGINE_CCS2, {true, false, true, true}},
{aub_stream::ENGINE_CCS3, {true, false, true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS3, {true, false, true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationXEHP, // isSimulation &isSimulationXEHP, // isSimulation
"core", // platformType
"", // deviceName
PreemptionMode::ThreadGroup, // defaultPreemptionMode PreemptionMode::ThreadGroup, // defaultPreemptionMode
aub_stream::ENGINE_CCS, // defaultEngineType aub_stream::ENGINE_CCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -67,8 +69,6 @@ const RuntimeCapabilityTable XE_HP_SDV::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"core", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
true, // supportCacheFlushAfterWalker true, // supportCacheFlushAfterWalker

View File

@ -47,12 +47,14 @@ const RuntimeCapabilityTable PVC::capabilityTable{
{aub_stream::ENGINE_BCS6, {true, false, true, true}}, {aub_stream::ENGINE_BCS6, {true, false, true, true}},
{aub_stream::ENGINE_BCS7, {true, false, true, true}}, {aub_stream::ENGINE_BCS7, {true, false, true, true}},
{aub_stream::ENGINE_BCS8, {true, false, true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_BCS8, {true, false, true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
maxNBitValue(57), // gpuAddressSpace maxNBitValue(57), // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationPVC, // isSimulation &isSimulationPVC, // isSimulation
"core", // platformType
"", // deviceName
PreemptionMode::ThreadGroup, // defaultPreemptionMode PreemptionMode::ThreadGroup, // defaultPreemptionMode
aub_stream::ENGINE_CCS, // defaultEngineType aub_stream::ENGINE_CCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -75,8 +77,6 @@ const RuntimeCapabilityTable PVC::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"core", // platformType
"", // deviceName
false, // sourceLevelDebuggerSupported false, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
false, // supportCacheFlushAfterWalker false, // supportCacheFlushAfterWalker

View File

@ -39,12 +39,14 @@ const RuntimeCapabilityTable DG2::capabilityTable{
{aub_stream::ENGINE_CCS1, {true, false, true, true}}, {aub_stream::ENGINE_CCS1, {true, false, true, true}},
{aub_stream::ENGINE_CCS2, {true, false, true, true}}, {aub_stream::ENGINE_CCS2, {true, false, true, true}},
{aub_stream::ENGINE_CCS3, {true, false, true, true}}}, // directSubmissionEngines {aub_stream::ENGINE_CCS3, {true, false, true, true}}}, // directSubmissionEngines
{0, 0, 0, false, false, false}, // kmdNotifyProperties {0, 0, 0, 0, false, false, false, false}, // kmdNotifyProperties
MemoryConstants::max48BitAddress, // gpuAddressSpace MemoryConstants::max48BitAddress, // gpuAddressSpace
0, // sharedSystemMemCapabilities 0, // sharedSystemMemCapabilities
83.333, // defaultProfilingTimerResolution 83.333, // defaultProfilingTimerResolution
MemoryConstants::pageSize, // requiredPreemptionSurfaceSize MemoryConstants::pageSize, // requiredPreemptionSurfaceSize
&isSimulationDG2, // isSimulation &isSimulationDG2, // isSimulation
"dg2", // platformType
"", // deviceName
PreemptionMode::ThreadGroup, // defaultPreemptionMode PreemptionMode::ThreadGroup, // defaultPreemptionMode
aub_stream::ENGINE_CCS, // defaultEngineType aub_stream::ENGINE_CCS, // defaultEngineType
0, // maxRenderFrequency 0, // maxRenderFrequency
@ -67,8 +69,6 @@ const RuntimeCapabilityTable DG2::capabilityTable{
false, // ftrRenderCompressedImages false, // ftrRenderCompressedImages
true, // ftr64KBpages true, // ftr64KBpages
true, // instrumentationEnabled true, // instrumentationEnabled
"dg2", // platformType
"", // deviceName
true, // sourceLevelDebuggerSupported true, // sourceLevelDebuggerSupported
false, // supportsVme false, // supportsVme
true, // supportCacheFlushAfterWalker true, // supportCacheFlushAfterWalker