diff --git a/core/os_interface/windows/wddm/wddm.cpp b/core/os_interface/windows/wddm/wddm.cpp index 04be7c8e2d..d7164b58e7 100644 --- a/core/os_interface/windows/wddm/wddm.cpp +++ b/core/os_interface/windows/wddm/wddm.cpp @@ -254,7 +254,8 @@ std::unique_ptr Wddm::discoverDevices() { // Check for adapters that include either "Intel" or "Citrix" (which may // be virtualizing one of our adapters) in the description if ((wcsstr(OpenAdapterDesc.Description, L"Intel") != 0) || - (wcsstr(OpenAdapterDesc.Description, L"Citrix") != 0)) { + (wcsstr(OpenAdapterDesc.Description, L"Citrix") != 0) || + (wcsstr(OpenAdapterDesc.Description, L"Virtual Render") != 0)) { char deviceId[16]; sprintf_s(deviceId, "%X", OpenAdapterDesc.DeviceId); bool choosenDevice = (DebugManager.flags.ForceDeviceId.get() == "unk") || (DebugManager.flags.ForceDeviceId.get() == deviceId); diff --git a/unit_tests/os_interface/windows/wddm20_tests.cpp b/unit_tests/os_interface/windows/wddm20_tests.cpp index f718f7bc97..be75686e0b 100644 --- a/unit_tests/os_interface/windows/wddm20_tests.cpp +++ b/unit_tests/os_interface/windows/wddm20_tests.cpp @@ -139,6 +139,14 @@ TEST(Wddm20EnumAdaptersTest, WhenAdapterDescriptionContainsDCHIAndgdrclPathConta EXPECT_NE(nullptr, hwDeviceId.get()); } +TEST(WddmDiscoverDevices, WhenAdapterDescriptionContainsVirtualRenderThenAdapterIsDiscovered) { + VariableBackup descriptionBackup(&UltIDXGIAdapter1::description); + descriptionBackup = L"Virtual Render"; + + auto hwDeviceId = Wddm::discoverDevices(); + EXPECT_NE(nullptr, hwDeviceId.get()); +} + TEST(Wddm20EnumAdaptersTest, expectTrue) { const HardwareInfo *hwInfo = platformDevices[0];