vkd3d: Introduce VKD3D_FILTER_DEVICE_NAME.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
This commit is contained in:
parent
326d1cde60
commit
c76f37d41c
|
@ -155,6 +155,7 @@ commas or semicolons.
|
|||
- `VKD3D_LOG_FILE` - If set, redirects `VKD3D_DEBUG` logging output to a file instead.
|
||||
- `VKD3D_VULKAN_DEVICE` - a zero-based device index. Use to force the selected
|
||||
Vulkan device.
|
||||
- `VKD3D_FILTER_DEVICE_NAME` - skips devices that don't include this substring.
|
||||
- `VKD3D_DISABLE_EXTENSIONS` - a list of Vulkan extensions that vkd3d-proton should
|
||||
not use even if available.
|
||||
- `VKD3D_TEST_DEBUG` - enables additional debug messages in tests. Set to 0, 1
|
||||
|
|
|
@ -1597,10 +1597,13 @@ static HRESULT vkd3d_select_physical_device(struct vkd3d_instance *instance,
|
|||
VkPhysicalDeviceProperties device_properties;
|
||||
VkPhysicalDevice device = VK_NULL_HANDLE;
|
||||
VkPhysicalDevice *physical_devices;
|
||||
const char *filter;
|
||||
uint32_t count;
|
||||
unsigned int i;
|
||||
VkResult vr;
|
||||
|
||||
filter = getenv("VKD3D_FILTER_DEVICE_NAME");
|
||||
|
||||
count = 0;
|
||||
if ((vr = VK_CALL(vkEnumeratePhysicalDevices(vk_instance, &count, NULL))) < 0)
|
||||
{
|
||||
|
@ -1640,6 +1643,12 @@ static HRESULT vkd3d_select_physical_device(struct vkd3d_instance *instance,
|
|||
if (i == device_index)
|
||||
device = physical_devices[i];
|
||||
|
||||
if (filter && !strstr(device_properties.deviceName, filter))
|
||||
{
|
||||
INFO("Device %s doesn't match filter %s, skipping.\n", device_properties.deviceName, filter);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (device_properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU && !dgpu_device)
|
||||
dgpu_device = physical_devices[i];
|
||||
else if (device_properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU && !igpu_device)
|
||||
|
|
Loading…
Reference in New Issue