radv: add varying subgroup size to shader stage key

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37294>
This commit is contained in:
Georg Lehmann
2025-09-10 15:31:07 +02:00
committed by Marge Bot
parent 393958a02e
commit f83a6e6389
3 changed files with 9 additions and 0 deletions
+4
View File
@@ -174,6 +174,10 @@ radv_pipeline_get_shader_key(const struct radv_device *device, const VkPipelineS
key.subgroup_require_full = 1;
}
if (stage->flags & VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT) {
key.subgroup_allow_varying = 1;
}
return key;
}
+1
View File
@@ -70,6 +70,7 @@ enum radv_required_subgroup_size {
struct radv_shader_stage_key {
uint8_t subgroup_required_size : 2; /* radv_required_subgroup_size */
uint8_t subgroup_require_full : 1; /* whether full subgroups are required */
uint8_t subgroup_allow_varying : 1; /* whether subgroup size can differ from the api constant */
uint8_t storage_robustness2 : 1;
uint8_t uniform_robustness2 : 1;
+4
View File
@@ -111,6 +111,10 @@ radv_shader_stage_init(const VkShaderCreateInfoEXT *sinfo, struct radv_shader_st
out_stage->key.subgroup_require_full = 1;
}
if (sinfo->flags & VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT) {
out_stage->key.subgroup_allow_varying = 1;
}
if (sinfo->flags & VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT)
out_stage->key.indirect_bindable = 1;