diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 5c42fbc5..91450c61 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -2d6ce39bda9af95b78da6bcd8d60fb0ffac4f14d +c9210427b9ab547d41f1af804dedae581b382965 diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index dcc4570c..9583b200 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -48,7 +48,7 @@ extern "C" { */ #define MVK_VERSION_MAJOR 1 #define MVK_VERSION_MINOR 0 -#define MVK_VERSION_PATCH 22 +#define MVK_VERSION_PATCH 23 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 1d08714a..e272b356 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -533,6 +533,10 @@ void MVKPhysicalDevice::initFeatures() { if ( [_mtlDevice supportsFeatureSet: MTLFeatureSet_iOS_GPUFamily3_v1] ) { _features.occlusionQueryPrecise = true; + } + if ( [_mtlDevice supportsFeatureSet: MTLFeatureSet_iOS_GPUFamily3_v2] ) { + _features.shaderSampledImageArrayDynamicIndexing = true; + _features.shaderStorageImageArrayDynamicIndexing = true; } if ( [_mtlDevice supportsFeatureSet: MTLFeatureSet_iOS_GPUFamily2_v4] ) { _features.depthClamp = true; @@ -553,6 +557,8 @@ void MVKPhysicalDevice::initFeatures() { if ( [_mtlDevice supportsFeatureSet: MTLFeatureSet_macOS_GPUFamily1_v3] ) { _features.multiViewport = true; + _features.shaderSampledImageArrayDynamicIndexing = true; + _features.shaderStorageImageArrayDynamicIndexing = true; } #endif @@ -596,9 +602,9 @@ void MVKPhysicalDevice::initFeatures() { // VkBool32 shaderStorageImageReadWithoutFormat; // done // VkBool32 shaderStorageImageWriteWithoutFormat; // done // VkBool32 shaderUniformBufferArrayDynamicIndexing; // done -// VkBool32 shaderSampledImageArrayDynamicIndexing; +// VkBool32 shaderSampledImageArrayDynamicIndexing; // done // VkBool32 shaderStorageBufferArrayDynamicIndexing; // done -// VkBool32 shaderStorageImageArrayDynamicIndexing; +// VkBool32 shaderStorageImageArrayDynamicIndexing; // done // VkBool32 shaderClipDistance; // done // VkBool32 shaderCullDistance; // VkBool32 shaderFloat64;