mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
fix: don't setup notifyAubCapture callback when not needed
Related-To: NEO-11080 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a58c56c0c1
commit
92316c8cd6
@@ -14,16 +14,6 @@
|
||||
|
||||
using GmmCallbacksTests = ::Test<GmmCallbacksFixture>;
|
||||
|
||||
HWTEST_F(GmmCallbacksTests, givenCsrWithoutAubDumpWhenNotifyAubCaptureCallbackIsCalledThenDoNothing) {
|
||||
UltCommandStreamReceiver<FamilyType> csr(*executionEnvironment, 0, 1);
|
||||
uint64_t address = 0xFEDCBA9876543210;
|
||||
size_t size = 1024;
|
||||
|
||||
auto res = GmmCallbacks<FamilyType>::notifyAubCapture(&csr, address, size, true);
|
||||
|
||||
EXPECT_EQ(1, res);
|
||||
}
|
||||
|
||||
HWTEST_F(GmmCallbacksTests, whenWriteL3CalledThenWriteTwoMmio) {
|
||||
using MI_LOAD_REGISTER_IMM = typename FamilyType::MI_LOAD_REGISTER_IMM;
|
||||
|
||||
|
||||
@@ -863,12 +863,17 @@ struct WddmCsrCompressionTests : ::testing::Test {
|
||||
WddmMock *myMockWddm;
|
||||
};
|
||||
|
||||
struct WddmCsrCompressionParameterizedTest : WddmCsrCompressionTests, ::testing::WithParamInterface<bool /*compressionEnabled*/> {
|
||||
struct WddmCsrCompressionParameterizedTest : WddmCsrCompressionTests, ::testing::WithParamInterface<std::tuple<bool /*compressionEnabled*/, bool /*aub capture mode*/>> {
|
||||
void SetUp() override {
|
||||
compressionEnabled = GetParam();
|
||||
std::tie(compressionEnabled, aubCaptureMode) = GetParam();
|
||||
if (aubCaptureMode) {
|
||||
debugManager.flags.SetCommandStreamReceiver.set(3);
|
||||
}
|
||||
}
|
||||
|
||||
DebugManagerStateRestore restorer;
|
||||
bool compressionEnabled;
|
||||
bool aubCaptureMode;
|
||||
};
|
||||
|
||||
HWTEST_P(WddmCsrCompressionParameterizedTest, givenEnabledCompressionWhenInitializedThenCreatePagetableMngr) {
|
||||
@@ -884,8 +889,13 @@ HWTEST_P(WddmCsrCompressionParameterizedTest, givenEnabledCompressionWhenInitial
|
||||
ASSERT_NE(nullptr, mockWddmCsr.pageTableManager.get());
|
||||
|
||||
auto mockMngr = reinterpret_cast<MockGmmPageTableMngr *>(mockWddmCsr.pageTableManager.get());
|
||||
EXPECT_EQ(1u, mockMngr->setCsrHanleCalled);
|
||||
EXPECT_EQ(&mockWddmCsr, mockMngr->passedCsrHandle);
|
||||
|
||||
if (aubCaptureMode) {
|
||||
EXPECT_EQ(1u, mockMngr->setCsrHanleCalled);
|
||||
EXPECT_EQ(&mockWddmCsr, mockMngr->passedCsrHandle);
|
||||
} else {
|
||||
EXPECT_EQ(0u, mockMngr->setCsrHanleCalled);
|
||||
}
|
||||
|
||||
GMM_TRANSLATIONTABLE_CALLBACKS expectedTTCallbacks = {};
|
||||
unsigned int expectedFlags = TT_TYPE::AUXTT;
|
||||
@@ -908,9 +918,10 @@ HWTEST_F(WddmCsrCompressionTests, givenDisabledCompressionWhenInitializedThenDon
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(
|
||||
WddmCsrCompressionParameterizedTestCreate,
|
||||
,
|
||||
WddmCsrCompressionParameterizedTest,
|
||||
::testing::Bool());
|
||||
::testing::Combine(::testing::Bool(),
|
||||
::testing::Bool()));
|
||||
|
||||
struct WddmCsrCompressionTestsWithMockWddmCsr : public WddmCsrCompressionTests {
|
||||
|
||||
|
||||
@@ -185,7 +185,58 @@ TEST(WddmGfxPartitionTests, WhenInitializingGfxPartitionThen64KBHeapsAreUsed) {
|
||||
EXPECT_EQ(wddm->gfxPartition.Standard64KB.Base + rootDeviceIndex * heapStandard64KBSize, gfxPartition.getHeapBase(HeapIndex::heapStandard64KB));
|
||||
}
|
||||
|
||||
TEST_F(Wddm20WithMockGdiDllTests, whenSetDeviceInfoSucceedsThenDeviceCallbacksArePassedToGmmMemory) {
|
||||
TEST_F(Wddm20WithMockGdiDllTests, givenDefaultScenarioWhenSetDeviceInfoSucceedsThenDeviceCallbacksWithoutNotifyAubCaptureArePassedToGmmMemory) {
|
||||
GMM_DEVICE_CALLBACKS_INT expectedDeviceCb{};
|
||||
wddm->init();
|
||||
auto gdi = wddm->getGdi();
|
||||
auto gmmMemory = static_cast<MockGmmMemoryBase *>(wddm->getGmmMemory());
|
||||
|
||||
expectedDeviceCb.Adapter.KmtHandle = wddm->getAdapter();
|
||||
expectedDeviceCb.hDevice.KmtHandle = wddm->getDeviceHandle();
|
||||
expectedDeviceCb.hCsr = nullptr;
|
||||
expectedDeviceCb.PagingQueue = wddm->getPagingQueue();
|
||||
expectedDeviceCb.PagingFence = wddm->getPagingQueueSyncObject();
|
||||
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnAllocate = gdi->createAllocation;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnDeallocate = gdi->destroyAllocation;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnDeallocate2 = gdi->destroyAllocation2;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnMapGPUVA = gdi->mapGpuVirtualAddress;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnMakeResident = gdi->makeResident;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnEvict = gdi->evict;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnReserveGPUVA = gdi->reserveGpuVirtualAddress;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnUpdateGPUVA = gdi->updateGpuVirtualAddress;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnWaitFromCpu = gdi->waitForSynchronizationObjectFromCpu;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnLock = gdi->lock2;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnUnLock = gdi->unlock2;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnEscape = gdi->escape;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnFreeGPUVA = gdi->freeGpuVirtualAddress;
|
||||
expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnNotifyAubCapture = nullptr;
|
||||
|
||||
EXPECT_EQ(expectedDeviceCb.Adapter.KmtHandle, gmmMemory->deviceCallbacks.Adapter.KmtHandle);
|
||||
EXPECT_EQ(expectedDeviceCb.hDevice.KmtHandle, gmmMemory->deviceCallbacks.hDevice.KmtHandle);
|
||||
EXPECT_EQ(expectedDeviceCb.hCsr, gmmMemory->deviceCallbacks.hCsr);
|
||||
EXPECT_EQ(expectedDeviceCb.PagingQueue, gmmMemory->deviceCallbacks.PagingQueue);
|
||||
EXPECT_EQ(expectedDeviceCb.PagingFence, gmmMemory->deviceCallbacks.PagingFence);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnAllocate, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnAllocate);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnDeallocate, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnDeallocate);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnDeallocate2, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnDeallocate2);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnMapGPUVA, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnMapGPUVA);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnMakeResident, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnMakeResident);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnEvict, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnEvict);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnReserveGPUVA, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnReserveGPUVA);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnUpdateGPUVA, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnUpdateGPUVA);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnWaitFromCpu, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnWaitFromCpu);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnLock, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnLock);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnUnLock, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnUnLock);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnEscape, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnEscape);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnFreeGPUVA, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnFreeGPUVA);
|
||||
EXPECT_EQ(expectedDeviceCb.DevCbPtrs.KmtCbPtrs.pfnNotifyAubCapture, gmmMemory->deviceCallbacks.DevCbPtrs.KmtCbPtrs.pfnNotifyAubCapture);
|
||||
}
|
||||
|
||||
TEST_F(Wddm20WithMockGdiDllTests, givenHwWithAubCaptureWhenSetDeviceInfoSucceedsThenNotifyAubCaptureDeviceCallbackIsPassedToGmmMemory) {
|
||||
|
||||
DebugManagerStateRestore restorer{};
|
||||
debugManager.flags.SetCommandStreamReceiver.set(3);
|
||||
GMM_DEVICE_CALLBACKS_INT expectedDeviceCb{};
|
||||
wddm->init();
|
||||
auto gdi = wddm->getGdi();
|
||||
|
||||
Reference in New Issue
Block a user