mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 00:53:02 -05:00
The typed descriptor heaps write a null descriptor for a null guest image, and the device therefore required VK_EXT_robustness2's nullDescriptor. MoltenVK has the extension but not the feature, so on macOS no Vulkan device opened and every GPU test was skipped. The feature is now enabled when the device has it. Without it, the device creates a placeholder image per typed image heap: 1x1, cleared to zero, of the heap's dimension, sample count, numeric class and access, and a null guest image binds the placeholder of its heap. A heap whose placeholder the device cannot create throws when a null image reaches it. TechnicalDebt.md lists where a placeholder differs from a null descriptor. agc_placeholder_images checks every image resource the recompiler maps to a heap against that heap's placeholder, so the two cannot drift apart, and agc_shader_device_profile now expects a device without nullDescriptor to be accepted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>