Hello AMD Community,
I have an issue with the interoperablility functionality.
- Create vulkan image and bind it to the memory with external memory functionality.
- Get Win32Handle of it.
- Import the handle to the OpenGL via GL_EXT_memory_object extension
- Create Texture with this memory.
- Attach it to FBO
- make vulkan render call
- Blit imported texture ( as FBO attachment) to the default FBO eg. GL_BACK_LEFT
==> The issue is the blitted image is completely brocken. I can see parts of the resulting image but the image is tolally scrambled.
Here is the link of a simple example:
Also tried to use imported texture as shader input - the problem remains.
Tried different Hardware (RX 580 to Vega 54) with the newest drivers and on Win10 x64 (1903) same issue. Seems to be driver Problem either on Vulkan or OpenGL side (or both) . Or maybe I am just missing something?
This post could be related to the Vulkan / OpenGL interoperability problems (see last posts)
Thanks for your help in advance!
Side note: The code works properly on the concurrent hardware.
Thank you for reporting the issue. From the above description, our "OpenGL and Vulkan" developer forum looks better place to report it than the driver support forum. Hence I've moved your post to the "OpenGL and Vulkan" forum and also whitelisted you for our DevGurus community.
Yeah that is exactly how it should look like :-). Can I assume the problem is solved? If so is there a driver version that i could test with?
And thank you very much!
And there is another small issue I found:
VkPhysicalDeviceIDProperties::driverUUID returns different values than its OpenGL counterpart. I dont know whether in case VK-OpenGL interoperability this parameter has to match.VK Specs however seems to demand this.
Yes, we found the root cause of the issue. As the Vulkan spec 1.1.127 mentions in bullet point #1 of Valid Usage section under VkMemoryAllocateInfo, if a memory object were going to be exported, it should be marked as dedicated.
Yeah! That was it. Im very sorry for complaining, that was all my fault.:-)
I had the check, but our pNext chain creator was broken. ( However there is some inconsistency (I guess): Exporting/importing memory from one vkapi instance to another was possible, despite the missing dedicaded allocation create info.)
Thank you for investigation and help!