diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index aee9bfa9..c383c6e2 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -377,6 +377,8 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll - `VK_EXT_shader_atomic_float` *(requires Metal 3.0)* - `VK_EXT_shader_demote_to_helper_invocation` *(requires Metal Shading Language 2.3)* - `VK_EXT_shader_stencil_export` *(requires Mac GPU family 2 or iOS GPU family 5)* +- `VK_EXT_shader_subgroup_ballot` *(requires Mac GPU family 2 or Apple GPU family 4)* +- `VK_EXT_shader_subgroup_vote` *(requires Mac GPU family 2 or Apple GPU family 4)* - `VK_EXT_shader_viewport_index_layer` - `VK_EXT_subgroup_size_control` *(requires Metal 2.1 on Mac or Metal 2.2 and Apple family 4 on iOS)* - `VK_EXT_surface_maintenance1` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 565c96a1..4fcf9f63 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,6 +22,8 @@ Released TBD - `VK_EXT_4444_formats` - `VK_EXT_calibrated_timestamps` - `VK_EXT_shader_demote_to_helper_invocation` + - `VK_EXT_shader_subgroup_ballot` + - `VK_EXT_shader_subgroup_vote` - Ensure non-dispatch compute commands don't interfere with compute encoding state used by dispatch commands. - Support `VK_PRESENT_MODE_IMMEDIATE_KHR` if `VkPresentTimeGOOGLE::desiredPresentTime` is zero. - Support maximizing the concurrent executing compilation tasks via `MVKConfiguration::shouldMaximizeConcurrentCompilation` diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 6f1034c8..ce73e44a 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -55750be7886a96008b964e75e1eb4a5a6c369a2a +aafcc207ea82308722124db2575aa95f42cb99c9 diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index f18470bc..623fab99 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -3112,6 +3112,8 @@ void MVKPhysicalDevice::initExtensions() { } if (!_metalFeatures.simdPermute && !_metalFeatures.quadPermute) { pWritableExtns->vk_KHR_shader_subgroup_extended_types.enabled = false; + pWritableExtns->vk_EXT_shader_subgroup_ballot.enabled = false; + pWritableExtns->vk_EXT_shader_subgroup_vote.enabled = false; } if (!_metalFeatures.shaderBarycentricCoordinates) { pWritableExtns->vk_KHR_fragment_shader_barycentric.enabled = false; diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 37461e62..6bd5c9a1 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -120,6 +120,8 @@ MVK_EXTENSION(EXT_separate_stencil_usage, EXT_SEPARATE_STENCIL_USAGE MVK_EXTENSION(EXT_shader_atomic_float, EXT_SHADER_ATOMIC_FLOAT, DEVICE, 13.0, 16.0) MVK_EXTENSION(EXT_shader_demote_to_helper_invocation, EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION, DEVICE, 11.0, 14.0) MVK_EXTENSION(EXT_shader_stencil_export, EXT_SHADER_STENCIL_EXPORT, DEVICE, 10.14, 12.0) +MVK_EXTENSION(EXT_shader_subgroup_ballot, EXT_SHADER_SUBGROUP_BALLOT, DEVICE, 10.14, 13.0) +MVK_EXTENSION(EXT_shader_subgroup_vote, EXT_SHADER_SUBGROUP_VOTE, DEVICE, 10.14, 13.0) MVK_EXTENSION(EXT_shader_viewport_index_layer, EXT_SHADER_VIEWPORT_INDEX_LAYER, DEVICE, 10.11, 8.0) MVK_EXTENSION(EXT_subgroup_size_control, EXT_SUBGROUP_SIZE_CONTROL, DEVICE, 10.14, 13.0) MVK_EXTENSION(EXT_surface_maintenance1, EXT_SURFACE_MAINTENANCE_1, INSTANCE, 10.11, 8.0)