diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2023-03-28 11:17:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-28 11:17:27 +0200 |
| commit | d62838a2f41f7ece5e804bbf86ec167255077212 (patch) | |
| tree | 6c9f5263fe31734596f50d11df15737911d87d0e /Source/Core | |
| parent | 012044eb64afd1551e76440f760ce92e36d3f92c (diff) | |
| parent | 196c684ac19691b4589b7d5b056ca82a4129e62f (diff) | |
Merge pull request #11690 from degasus/asciiart
Shaders: Reintroduce the old Ascii-Art shader.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | 1 | ||||
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/VulkanContext.cpp | 8 |
2 files changed, 6 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index 49b007f43b..3555a6c9b7 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -79,6 +79,7 @@ static const char SUBGROUP_HELPER_HEADER[] = R"( #extension GL_KHR_shader_subgroup_basic : enable #extension GL_KHR_shader_subgroup_arithmetic : enable #extension GL_KHR_shader_subgroup_ballot : enable + #extension GL_KHR_shader_subgroup_shuffle : enable #define SUPPORTS_SUBGROUP_REDUCTION 1 #define IS_HELPER_INVOCATION gl_HelperInvocation diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp index 4834a69bb8..5b5f2ffaee 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp +++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp @@ -981,9 +981,11 @@ void VulkanContext::PopulateShaderSubgroupSupport() // We require basic ops (for gl_SubgroupInvocationID), ballot (for subgroupBallot, // subgroupBallotFindLSB), and arithmetic (for subgroupMin/subgroupMax). - constexpr VkSubgroupFeatureFlags required_operations = VK_SUBGROUP_FEATURE_BASIC_BIT | - VK_SUBGROUP_FEATURE_ARITHMETIC_BIT | - VK_SUBGROUP_FEATURE_BALLOT_BIT; + // Shuffle is enabled as a workaround until SPIR-V >= 1.5 is enabled with broadcast(uniform) + // support. + constexpr VkSubgroupFeatureFlags required_operations = + VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT | + VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_SHUFFLE_BIT; m_supports_shader_subgroup_operations = (subgroup_properties.supportedOperations & required_operations) == required_operations && subgroup_properties.supportedStages & VK_SHADER_STAGE_FRAGMENT_BIT && |
