aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_private.h
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2019-10-31 10:55:37 +0100
committerSamuel Pitoiset <[email protected]>2019-11-06 09:20:39 +0100
commitfb07fd4e6cb9feb8c9a812dd5f859f165f213465 (patch)
tree672a5e05aa411a9b992af8d9a3c901e211828ea8 /src/amd/vulkan/radv_private.h
parentda6c30f9f606541e37dbee11d048732ae2335e6a (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.h5
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;