mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
fix: Move evict after unlock to wddm layer
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
0306b77297
commit
a0f683e42b
@@ -226,10 +226,10 @@ void *WddmMock::lockResource(const D3DKMT_HANDLE &handle, bool applyMakeResident
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void WddmMock::unlockResource(const D3DKMT_HANDLE &handle) {
|
||||
void WddmMock::unlockResource(const D3DKMT_HANDLE &handle, bool applyMakeResidentPriorToLock) {
|
||||
unlockResult.called++;
|
||||
unlockResult.success = true;
|
||||
Wddm::unlockResource(handle);
|
||||
Wddm::unlockResource(handle, applyMakeResidentPriorToLock);
|
||||
}
|
||||
|
||||
void WddmMock::kmDafLock(D3DKMT_HANDLE handle) {
|
||||
|
||||
@@ -94,7 +94,7 @@ class WddmMock : public Wddm {
|
||||
bool submit(uint64_t commandBuffer, size_t size, void *commandHeader, WddmSubmitArguments &submitArguments) override;
|
||||
bool waitOnGPU(D3DKMT_HANDLE context) override;
|
||||
void *lockResource(const D3DKMT_HANDLE &handle, bool applyMakeResidentPriorToLock, size_t size) override;
|
||||
void unlockResource(const D3DKMT_HANDLE &handle) override;
|
||||
void unlockResource(const D3DKMT_HANDLE &handle, bool applyMakeResidentPriorToLock) override;
|
||||
void kmDafLock(D3DKMT_HANDLE handle) override;
|
||||
bool isKmDafEnabled() const override;
|
||||
void setKmDafEnabled(bool state);
|
||||
|
||||
@@ -1136,7 +1136,7 @@ TEST_F(WddmLockWithMakeResidentTests, givenAllocationThatDoesntNeedMakeResidentB
|
||||
wddm->lockResource(ALLOCATION_HANDLE, false, 0x1000);
|
||||
EXPECT_TRUE(mockTemporaryResources->resourceHandles.empty());
|
||||
EXPECT_EQ(0u, wddm->makeResidentResult.called);
|
||||
wddm->unlockResource(ALLOCATION_HANDLE);
|
||||
wddm->unlockResource(ALLOCATION_HANDLE, false);
|
||||
}
|
||||
|
||||
TEST_F(WddmLockWithMakeResidentTests, givenAllocationThatNeedsMakeResidentBeforeLockWhenLockThenCallBlockingMakeResident) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -93,7 +93,7 @@ TEST_F(WddmKmDafListenerTest, givenInvalidAllocationWhenLockResourceFailsThenKmD
|
||||
}
|
||||
|
||||
TEST_F(WddmKmDafListenerTest, givenWddmWhenUnlockResourceIsCalledThenKmDafListenerNotifyUnlockIsFedWithCorrectParams) {
|
||||
wddmWithKmDafMock->unlockResource(ALLOCATION_HANDLE);
|
||||
wddmWithKmDafMock->unlockResource(ALLOCATION_HANDLE, false);
|
||||
|
||||
EXPECT_EQ(wddmWithKmDafMock->featureTable->flags.ftrKmdDaf, wddmWithKmDafMock->getKmDafListenerMock().notifyUnlockParametrization.ftrKmdDaf);
|
||||
EXPECT_EQ(wddmWithKmDafMock->getAdapter(), wddmWithKmDafMock->getKmDafListenerMock().notifyUnlockParametrization.hAdapter);
|
||||
@@ -103,7 +103,7 @@ TEST_F(WddmKmDafListenerTest, givenWddmWhenUnlockResourceIsCalledThenKmDafListen
|
||||
EXPECT_EQ(wddmWithKmDafMock->getGdi()->escape.mFunc, wddmWithKmDafMock->getKmDafListenerMock().notifyUnlockParametrization.pfnEscape);
|
||||
}
|
||||
TEST_F(WddmKmDafListenerTest, givenInvalidAllocationWhenUnlockResourceIsCalledThenKmDafListenerIsNotNotified) {
|
||||
wddmWithKmDafMock->unlockResource(0);
|
||||
wddmWithKmDafMock->unlockResource(0, false);
|
||||
|
||||
EXPECT_FALSE(wddmWithKmDafMock->getKmDafListenerMock().notifyUnlockParametrization.ftrKmdDaf);
|
||||
EXPECT_EQ(0u, wddmWithKmDafMock->getKmDafListenerMock().notifyUnlockParametrization.hAdapter);
|
||||
|
||||
@@ -1454,10 +1454,11 @@ TEST_F(WddmMemoryManagerSimpleTest, givenLocalMemoryKernelIsaWithMemoryCopiedWhe
|
||||
memoryManager->freeGraphicsMemory(allocation);
|
||||
if (makeResidentPriorToLockRequired) {
|
||||
EXPECT_EQ(1u, mockTemporaryResources->removeResourceResult.called);
|
||||
EXPECT_EQ(1u, mockTemporaryResources->evictResourceResult.called);
|
||||
} else {
|
||||
EXPECT_EQ(0u, mockTemporaryResources->removeResourceResult.called);
|
||||
EXPECT_EQ(0u, mockTemporaryResources->evictResourceResult.called);
|
||||
}
|
||||
EXPECT_EQ(0u, mockTemporaryResources->evictResourceResult.called);
|
||||
}
|
||||
TEST_F(WddmMemoryManagerSimpleTest, whenDestroyingNotLockedAllocationThatDoesntNeedMakeResidentBeforeLockThenDontEvictAllocationFromWddmTemporaryResources) {
|
||||
DebugManagerStateRestore restorer;
|
||||
|
||||
Reference in New Issue
Block a user