cancel
Showing results for 
Search instead for 
Did you mean: 

OpenGL & Vulkan

a_devaykin
Adept I

Matching Vulkan and OpenGL device UUID

Hello.

I'm having troubles with picking correct device for Vulkan-OpenGL interop. On our PCs with AMD cards, OpenGLreports slightly different device UUID than Vulkan does.

I use the following code to get OpenGL device UUIDs:

Snippet

Snippet
GLint numDevices = 0;
glGetIntegerv(GL_NUM_DEVICE_UUIDS_EXT, &numDevices);
for (auto i = 0; i < numDevicesi++) {
OpenGlUuid currentUuid;
glGetUnsignedBytei_vEXT(GL_DEVICE_UUID_EXTGLuint(i), &currentUuid[0]);
resultVector.push_back(currentUuid);
}

for device number i. And in Vulkan I use

VkPhysicalDeviceIDProperties::deviceUUID

It looks like the ID given by Vulkan is missing first 4 bytes. For the GPU on my PC OpenGL reports

0x1 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0

while Vulkan gives

0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0

Is there some particular scheme how this IDs are build/how to interpret and match them? Are they supposed to be equal/matchable at all (as they do on the other vendors GPUs we test our software on)?

Thank you.

0 Likes
1 Solution
dorisyan
Staff

Hi a.devaykin‌, This issue has been fixed by my team member, Thanks for your report! 

pastedImage_1.png

View solution in original post

10 Replies
dipak
Big Boss

Hi a.devaykin‌,

Thank you for your query. Our OpenGL & Vulkan developer forum seems better place to ask this query, so I'm moving it there. Also I have added you in the DevGurus 's whitelist.

Thanks.

a_devaykin
Adept I

Moreover, the latest driver update seems to have changed both UUID reported by OpenGL and by Vulkan. Not they have nothing in common at all.

Anybody? Does anybody know?

0 Likes

Hi a.devaykin, Thanks for your report! Does your app works well on NV's platform?

0 Likes

Hello.

Sorry I posted the wrong code - it was for getting LUID from DirectX for Vulkan-DirectX interop. This part works - LUID from Vulkan and LUID from DirectX match. I've updated post to have the correct snippet.

What does not work is matching UUID from OpenGL and Vulkan for at least AMD Radeon Pro WX9100. With the recent driver update UUID of that GPU changed, but still does not match between OpenGL and Vulkan. Nvidia GPUs and some other AMD GPUs like e.g. RX 5700 XT have matching UUIDs between Vulkan and OpenGL.

Side note: what else changed with the recent driver update is device name reported by Vulkan. Now it is "Unknown AMD GPU' for Radeon Pro WX9100, although OpenGL reports correct device name.

Thank you for support. Looking forward to hearing from you.

0 Likes

OK, I got it. Could you please provide a minimal code to reproduce this issue?

0 Likes

Hello.

I've created a repo with a very basic OpenGL and Vulkan context creation and device UUIDs printing: GitHub - adevaykin/AMDBugreportDeviceUUID: Repro case for AMD bug report 

Should be enough to open in Visual Studio, change VulkanSDK path (include and lib) to a valid one, compile and run. Device UUIDs are listed in the terminal.

Please let me know if I can help further.

Thank you.

0 Likes

OK! Thanks for that, we will reproduce and solve this problem as soon as possible.

0 Likes

Thank you! Are there any public bug tracker where I could follow the status of the bug?

0 Likes
dorisyan
Staff

Hi a.devaykin‌, This issue has been fixed by my team member, Thanks for your report! 

pastedImage_1.png

a_devaykin
Adept I

Thanks!

0 Likes