mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
Indium and QuartzCore took the first memory type a resource allowed. The Vulkan spec orders a type with no flags before every DEVICE_LOCAL type, and NVIDIA exposes such system-RAM types, so on NVIDIA private buffers, textures and framebufferOnly drawables could land in system RAM. They now take the first allowed DEVICE_LOCAL type and fall back to the old choice; shared and managed resources are unchanged. The drawable's exported image is a dedicated Vulkan allocation, but the OpenGL import never set GL_DEDICATED_MEMORY_OBJECT_EXT, which EXT_external_objects requires. Mesa ignores it; it is the suspected cause of the black screen on NVIDIA in issue #3. The import's GL errors were never checked (reportGLErrors is compiled out), so a failure was silent. /tmp/metal-device.log now lists the selected device's memory heaps and types, the memory type chosen per resource kind (with the old choice and changed=yes/no), and the result of the first drawable and semaphore imports into OpenGL (later ones only on failure). Practice match on the RX 6600: all choices changed=no, import dedicated=yes with no GL errors, semaphore ok, match=yes. Not run on NVIDIA. Co-Authored-By: Claude Opus 5.5 <[email protected]>