diff options
author | Samuel Pitoiset <[email protected]> | 2019-10-31 10:55:37 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2019-11-06 09:20:39 +0100 |
commit | fb07fd4e6cb9feb8c9a812dd5f859f165f213465 (patch) | |
tree | 672a5e05aa411a9b992af8d9a3c901e211828ea8 /src/amd/vulkan/radv_private.h | |
parent | da6c30f9f606541e37dbee11d048732ae2335e6a (diff) |
radv: implement VK_EXT_subgroup_size_control
This extension allows to control the subgroup size by allowing a
varying subgroup size and also specifying a required subgroup size.
This implementation only allows to specify a required subgroup
size for compute shaders because there is some caveats with
other shader stages (eg. NGG with geometry shader). This
basically allows apps to use Wave32 for compute shaders.
This extension is enabled for all chips but only GFX10 supports
Wave32. ACO doesn't support it.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_private.h')
-rw-r--r-- | src/amd/vulkan/radv_private.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 99ba500b254..c4d9fe5ce37 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -411,6 +411,11 @@ struct radv_pipeline_key { uint32_t has_multiview_view_index : 1; uint32_t optimisations_disabled : 1; uint8_t topology; + + /* Non-zero if a required subgroup size is specified via + * VK_EXT_subgroup_size_control. + */ + uint8_t compute_subgroup_size; }; struct radv_shader_binary; |