diff options
author | Daniel Schürmann <[email protected]> | 2018-03-06 15:05:13 +0100 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2018-04-14 01:03:15 +0200 |
commit | f2c6a5506114f74fb12d77aeddb2f06b5602101c (patch) | |
tree | 5f31a4163a0cbb937a2f84b14469b906c3c8591a /src/amd | |
parent | 4b0616e533170e1384111259ef500ed8c67912fa (diff) |
radv: enable subgroup capabilities
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r-- | src/amd/vulkan/radv_device.c | 10 | ||||
-rw-r--r-- | 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 a4a0ea6dd5f..b8313b26ebf 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -940,8 +940,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 eaf24dcdee8..9d49bc02a81 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); |