KhronosGroup / MoltenVK

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
Apache License 2.0
4.63k stars 402 forks source link

Improvements to bindless resources and descriptor indexing #2260

Closed billhollings closed 1 day ago

billhollings commented 3 days ago

This is a large PR that adds significant improvements to the handling of bindless resources and descriptor indexing functionality.

Further detailed outlines of the additions and changes to functionality are contained in the notes for each commit.

The new use of argument buffers by default, plus the use of either Metal3 argument buffers or argument buffer encoding, all pass the same CTS tests that are passed using discrete resource indexes, and that were being passed prior to these changes.

billhollings commented 2 days ago

@cdavis5e

Thanks for reviewing this large PR so quickly!

I made one suggested change, responded to the others, and asked for your thoughts on a couple of discussion items.