Derek Lesho (@dlesho) commented about dlls/win32u/opengl.c:
return NULL;}
+static BOOL win32u_query_renderer( UINT index, UINT attribute, void *value ) +{
- struct egl_platform *egl;
- LUID luid;
- UINT mask;
- TRACE( "index %u, attribute %#x, value %p\n", index, attribute, value );
- if (attribute == GL_NUM_DEVICE_UUIDS_EXT)
- {
*(GLuint *)value = list_count( &devices_egl );
I'm not sure this is correct, as far as I understand the spec, GL_DRIVER_UUID_EXT should only include the devices used for the current context, for situations like multi-gpu.
(https://registry.khronos.org/OpenGL/extensions/EXT/EXT_external_objects.txt) "Because contexts may be associated with multiple physical GPUs in some cases, multiple values are returned for device UUIDs and multiple bits are set in the device node masks."
If I'm not mistaken, this could cause problems for apps following the spec, and failing when there is no Vulkan Device-Group containing every device in the system.
"When sharing with Vulkan device groups, the device UUIDs used by the context must match those of the Vulkan physical devices in the Vulkan device group."