Skip to content
  • Bill Hollings's avatar
    Cleanup and refactor Metal argument buffers. · 30c5b926
    Bill Hollings authored
    - Update SPIRV-Cross version to include latest argument buffer fixes.
    - Disable CompilerMSL::Options::force_active_argument_buffer_resources.
    
    - Track OpArrayLength buffer-sizes buffer as an auxiliary buffer in each
      descriptor set argument buffer, as this is how SPIRV-Cross expects it.
    
    - Revert MVKConfiguration::useMetalArgumentBuffers and env var
      MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS to boolean value, because
      descriptor indexing value is not longer required.
    - Update max number of buffer and textures per stage to 1M.
    
    - Refactor and simplify calculating argument buffer resource indexes
    	- Remove MVKShaderStageResourceBinding::resourceIndex,
    	  and track resource index incrementing locally.
    	- Update MVKDescriptorSetLayout::_descriptorCount & _mtlResourceCount
      	  from within MVKDescriptorSetLayoutBinding.
    
    - Refactor and simplify tracking argument buffer usage
    	- Rename MVKDeviceTrackingMixin::isUsingDescriptorSetMetalArgumentBuffers()
    	  to isUsingMetalArgumentBuffers(), and allow it to be overridden in
    	  MVKDescriptorSetLayout.
    	- Move and rename MVKDevice::_isUsingDescriptorSetMetalArgumentBuffers
    	  to MVKPhysicalDevice::_isUsingMetalArgumentBuffers.
    	- Remove MVKPhysicalDevice::supportsDescriptorSetMetalArgumentBuffers();
    	- Remove MVKDescriptorSetLayout::isUsingMetalArgumentBuffer() and replace
    	  with overridden isUsingMetalArgumentBuffers() function.
    	- Rename MVKDescriptorSet::isUsingMetalArgumentBuffer to hasMetalArgumentBuffer().
    	- Remove MVKDescriptorSetLayoutBinding::isUsingMetalArgumentBuffer().
    	- Remove MVKDescriptorSetLayout::isPushDescriptorLayout().
    
    - Update debugging logging
    	- Refactor and enhance ability to log descriptor set descriptions for debugging.
    	- MVKPipelineLayout support debug logging and remove a few unused member functions.
    	- Adjust whitespace in logging of instances and devices.
    
    - Update MVK_PRIVATE_API_VERSION to version 43.
    30c5b926