Advertise the shader{Uniform,Storage}BufferArrayDynamicIndexing features.

This means that arrays in the `Uniform` storage class decorated with
`Block` or `BufferBlock` (or in the `StorageBuffer` class with `Block`)
can be indexed with dynamically uniform constants. I see nothing in the
MSL spec which forbids this.
This commit is contained in:
Chip Davis 2018-09-20 13:34:03 -05:00
parent 5185ffc01f
commit 544645de05

View File

@ -487,6 +487,8 @@ void MVKPhysicalDevice::initFeatures() {
_features.shaderStorageImageMultisample = true;
_features.shaderStorageImageReadWithoutFormat = true;
_features.shaderStorageImageWriteWithoutFormat = true;
_features.shaderUniformBufferArrayDynamicIndexing = true;
_features.shaderStorageBufferArrayDynamicIndexing = true;
_features.shaderClipDistance = true;
_features.shaderInt16 = true;
_features.multiDrawIndirect = true;
@ -566,9 +568,9 @@ void MVKPhysicalDevice::initFeatures() {
// VkBool32 shaderStorageImageMultisample; // done
// VkBool32 shaderStorageImageReadWithoutFormat; // done
// VkBool32 shaderStorageImageWriteWithoutFormat; // done
// VkBool32 shaderUniformBufferArrayDynamicIndexing;
// VkBool32 shaderUniformBufferArrayDynamicIndexing; // done
// VkBool32 shaderSampledImageArrayDynamicIndexing;
// VkBool32 shaderStorageBufferArrayDynamicIndexing;
// VkBool32 shaderStorageBufferArrayDynamicIndexing; // done
// VkBool32 shaderStorageImageArrayDynamicIndexing;
// VkBool32 shaderClipDistance; // done
// VkBool32 shaderCullDistance;