--- src/amd/vulkan/radv_device.c | 10 ++++++++-- src/amd/vulkan/radv_shader.c | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 4fc7392e65..e50b661cac 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -939,8 +939,14 @@ void radv_GetPhysicalDeviceProperties2( (VkPhysicalDeviceSubgroupProperties*)ext; properties->subgroupSize = 64; properties->supportedStages = VK_SHADER_STAGE_ALL; - properties->supportedOperations = VK_SUBGROUP_FEATURE_BASIC_BIT; - properties->quadOperationsInAllStages = false; + properties->supportedOperations = + VK_SUBGROUP_FEATURE_BASIC_BIT | + VK_SUBGROUP_FEATURE_BALLOT_BIT | + VK_SUBGROUP_FEATURE_QUAD_BIT | + VK_SUBGROUP_FEATURE_SHUFFLE_BIT | + VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT | + VK_SUBGROUP_FEATURE_VOTE_BIT; + properties->quadOperationsInAllStages = true; break; } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: { diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index eaf24dcdee..9d49bc02a8 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -213,7 +213,11 @@ radv_shader_compile_to_nir(struct radv_device *device, .tessellation = true, .int64 = true, .multiview = true, + .subgroup_ballot = true, .subgroup_basic = true, + .subgroup_quad = true, + .subgroup_shuffle = true, + .subgroup_vote = true, .variable_pointers = true, .gcn_shader = true, .trinary_minmax = true, @@ -283,7 +287,8 @@ radv_shader_compile_to_nir(struct radv_device *device, .lower_to_scalar = 1, .lower_subgroup_masks = 1, .lower_shuffle = 1, - .lower_quad = 1, + .lower_shuffle_to_32bit = 1, + .lower_vote_eq_to_ballot = 1, }); radv_optimize_nir(nir); -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev