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_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
|
- `VKD3D_VULKAN_DEVICE` - a zero-based device index. Use to force the selected
|
||||||
Vulkan device.
|
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
|
- `VKD3D_DISABLE_EXTENSIONS` - a list of Vulkan extensions that vkd3d-proton should
|
||||||
not use even if available.
|
not use even if available.
|
||||||
- `VKD3D_TEST_DEBUG` - enables additional debug messages in tests. Set to 0, 1
|
- `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;
|
VkPhysicalDeviceProperties device_properties;
|
||||||
VkPhysicalDevice device = VK_NULL_HANDLE;
|
VkPhysicalDevice device = VK_NULL_HANDLE;
|
||||||
VkPhysicalDevice *physical_devices;
|
VkPhysicalDevice *physical_devices;
|
||||||
|
const char *filter;
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
VkResult vr;
|
VkResult vr;
|
||||||
|
|
||||||
|
filter = getenv("VKD3D_FILTER_DEVICE_NAME");
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
if ((vr = VK_CALL(vkEnumeratePhysicalDevices(vk_instance, &count, NULL))) < 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)
|
if (i == device_index)
|
||||||
device = physical_devices[i];
|
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)
|
if (device_properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU && !dgpu_device)
|
||||||
dgpu_device = physical_devices[i];
|
dgpu_device = physical_devices[i];
|
||||||
else if (device_properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU && !igpu_device)
|
else if (device_properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU && !igpu_device)
|
||||||
|
|
Loading…
Reference in New Issue