mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Close adapter after veryfing adapter luid from HDC
Related-To: NEO-4952 Change-Id: Ieac35973895baec92ae7f093b1b693cd60994022 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
@ -88,7 +88,12 @@ class WddmMock : public Wddm {
|
||||
uint64_t *getPagingFenceAddress() override;
|
||||
void waitOnPagingFenceFromCpu() override;
|
||||
void createPagingFenceLogger() override;
|
||||
bool verifyAdapterLuid(LUID adapterLuid) const override { return verifyAdapterLuidReturnValue; }
|
||||
bool verifyAdapterLuid(LUID adapterLuid) const override {
|
||||
if (callBaseVerifyAdapterLuid) {
|
||||
return Wddm::verifyAdapterLuid(adapterLuid);
|
||||
}
|
||||
return verifyAdapterLuidReturnValue;
|
||||
}
|
||||
|
||||
bool configureDeviceAddressSpace() {
|
||||
configureDeviceAddressSpaceResult.called++;
|
||||
@ -142,6 +147,7 @@ class WddmMock : public Wddm {
|
||||
|
||||
NTSTATUS createAllocationStatus = STATUS_SUCCESS;
|
||||
bool verifyAdapterLuidReturnValue = true;
|
||||
bool callBaseVerifyAdapterLuid = false;
|
||||
bool mapGpuVaStatus = true;
|
||||
bool callBaseDestroyAllocations = true;
|
||||
bool failOpenSharedHandle = false;
|
||||
|
@ -1269,8 +1269,8 @@ HWTEST_F(Wddm20WithMockGdiDllTests, givenNonGen12LPPlatformWhenConfigureDeviceAd
|
||||
EXPECT_EQ(NEO::windowsMinAddress, wddm->getWddmMinAddress());
|
||||
}
|
||||
|
||||
struct GdiWithMockedCloseFunc : public Gdi {
|
||||
GdiWithMockedCloseFunc() : Gdi() {
|
||||
struct GdiWithMockedCloseFunc : public MockGdi {
|
||||
GdiWithMockedCloseFunc() : MockGdi() {
|
||||
closeAdapter = mockCloseAdapter;
|
||||
GdiWithMockedCloseFunc::closeAdapterCalled = 0u;
|
||||
GdiWithMockedCloseFunc::closeAdapterCalledArgPassed = 0u;
|
||||
@ -1451,7 +1451,7 @@ TEST(DiscoverDevices, whenDriverInfoHasIncompatibleDriverStoreThenHwDeviceIdIsNo
|
||||
}
|
||||
|
||||
TEST(VerifyHdcTest, givenHdcHandleFromCorrectAdapterLuidWhenVerifyHdcHandleIsCalledThenSuccessIsReturned) {
|
||||
auto gdi = std::make_unique<MockGdi>();
|
||||
auto gdi = std::make_unique<GdiWithMockedCloseFunc>();
|
||||
auto osEnv = std::make_unique<OsEnvironmentWin>();
|
||||
osEnv->gdi = std::move(gdi);
|
||||
|
||||
@ -1466,20 +1466,25 @@ TEST(VerifyHdcTest, givenHdcHandleFromCorrectAdapterLuidWhenVerifyHdcHandleIsCal
|
||||
RootDeviceEnvironment rootDeviceEnvironment(executionEnvironment);
|
||||
|
||||
WddmMock wddm(std::move(hwDeviceId), rootDeviceEnvironment);
|
||||
wddm.callBaseVerifyAdapterLuid = true;
|
||||
|
||||
size_t hdcHandle = 0x1;
|
||||
|
||||
auto status = wddm.Wddm::verifyHdcHandle(hdcHandle);
|
||||
|
||||
EXPECT_EQ(1u, GdiWithMockedCloseFunc::closeAdapterCalled);
|
||||
EXPECT_EQ(MockGdi::adapterHandleForHdc, GdiWithMockedCloseFunc::closeAdapterCalledArgPassed);
|
||||
|
||||
EXPECT_TRUE(status);
|
||||
|
||||
status = wddm.Wddm::verifyHdcHandle(0u);
|
||||
|
||||
EXPECT_EQ(1u, GdiWithMockedCloseFunc::closeAdapterCalled);
|
||||
EXPECT_FALSE(status);
|
||||
}
|
||||
|
||||
TEST(VerifyHdcTest, givenHdcHandleFromInvalidAdapterLuidWhenVerifyHdcHandleIsCalledThenFailureIsReturned) {
|
||||
auto gdi = std::make_unique<MockGdi>();
|
||||
auto gdi = std::make_unique<GdiWithMockedCloseFunc>();
|
||||
auto osEnv = std::make_unique<OsEnvironmentWin>();
|
||||
osEnv->gdi = std::move(gdi);
|
||||
|
||||
@ -1494,6 +1499,7 @@ TEST(VerifyHdcTest, givenHdcHandleFromInvalidAdapterLuidWhenVerifyHdcHandleIsCal
|
||||
RootDeviceEnvironment rootDeviceEnvironment(executionEnvironment);
|
||||
|
||||
WddmMock wddm(std::move(hwDeviceId), rootDeviceEnvironment);
|
||||
wddm.callBaseVerifyAdapterLuid = true;
|
||||
|
||||
size_t hdcHandle = 0x1;
|
||||
|
||||
@ -1501,11 +1507,16 @@ TEST(VerifyHdcTest, givenHdcHandleFromInvalidAdapterLuidWhenVerifyHdcHandleIsCal
|
||||
|
||||
auto status = wddm.Wddm::verifyHdcHandle(hdcHandle);
|
||||
|
||||
EXPECT_EQ(1u, GdiWithMockedCloseFunc::closeAdapterCalled);
|
||||
EXPECT_EQ(MockGdi::adapterHandleForHdc, GdiWithMockedCloseFunc::closeAdapterCalledArgPassed);
|
||||
|
||||
EXPECT_FALSE(status);
|
||||
|
||||
MockGdi::adapterLuidToReturn = {0x1234, 0x5679};
|
||||
|
||||
status = wddm.Wddm::verifyHdcHandle(hdcHandle);
|
||||
|
||||
EXPECT_EQ(2u, GdiWithMockedCloseFunc::closeAdapterCalled);
|
||||
EXPECT_EQ(MockGdi::adapterHandleForHdc, GdiWithMockedCloseFunc::closeAdapterCalledArgPassed);
|
||||
EXPECT_FALSE(status);
|
||||
}
|
||||
|
Reference in New Issue
Block a user