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
This is a large PR that adds significant improvements to the handling of bindless resources and descriptor indexing functionality.
Add support for Metal3 argument buffers.
Support argument buffers on all platforms, when Metal 3 is available.
Support argument buffers on macOS when Metal3 is not available.
Use Metal argument buffers by default when they are available.
Revert MVKConfiguration::useMetalArgumentBuffers and env var MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS to a boolean value, and enable it by default.
Update max number of bindless buffers and textures per stage to 1M, per Apple Docs.
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.
This is a large PR that adds significant improvements to the handling of bindless resources and descriptor indexing functionality.
MVKConfiguration::useMetalArgumentBuffers
and env varMVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS
to a boolean value, and enable it by default.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.