Verify HDC handle when returning devices for GL sharing

Resolves: NEO-4952
Change-Id: I298bb26aacd2cc5ad7206f7fff2b2235098fb8bf
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2020-08-07 08:03:07 +02:00
committed by sys_ocldev
parent c2a4835943
commit 418db08517
11 changed files with 194 additions and 13 deletions

View File

@@ -1059,4 +1059,15 @@ void Wddm::createPagingFenceLogger() {
}
}
bool Wddm::verifyHdcHandle(size_t hdcHandle) const {
D3DKMT_OPENADAPTERFROMHDC openAdapterFromHdcStruct{};
openAdapterFromHdcStruct.hDc = reinterpret_cast<HDC>(hdcHandle);
auto status = getGdi()->openAdapterFromHdc(&openAdapterFromHdcStruct);
if (STATUS_SUCCESS != status) {
DEBUG_BREAK_IF(true);
return false;
}
return openAdapterFromHdcStruct.AdapterLuid.HighPart == hwDeviceId->getAdapterLuid().HighPart && openAdapterFromHdcStruct.AdapterLuid.LowPart == hwDeviceId->getAdapterLuid().LowPart;
}
} // namespace NEO