radv: gather push constant size from shaders for ESO

Instead of using the shader layout which won't exist anymore with heap.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769>
This commit is contained in:
Samuel Pitoiset 2025-10-08 13:24:29 +02:00 committed by Marge Bot
parent a25e88cd84
commit aa44a5a4ae
3 changed files with 2 additions and 5 deletions

View file

@ -12358,7 +12358,7 @@ radv_bind_graphics_shaders(struct radv_cmd_buffer *cmd_buffer)
/* Compute push constants/indirect descriptors state. */
need_indirect_descriptors |= radv_shader_need_indirect_descriptors(shader);
need_push_constants_upload |= radv_shader_need_push_constants_upload(shader);
push_constant_size += shader_obj->push_constant_size;
push_constant_size = MAX2(push_constant_size, shader->info.push_constant_size);
dynamic_offset_count += shader_obj->dynamic_offset_count;
}
@ -15274,7 +15274,7 @@ radv_bind_compute_shader(struct radv_cmd_buffer *cmd_buffer, struct radv_shader_
descriptors_state->need_indirect_descriptors = radv_shader_need_indirect_descriptors(shader);
descriptors_state->dynamic_offset_count = shader_obj->dynamic_offset_count;
pc_state->need_upload = radv_shader_need_push_constants_upload(shader);
pc_state->size = shader_obj->push_constant_size;
pc_state->size = shader->info.push_constant_size;
assert(cs->b->cdw <= cdw_max);
}

View file

@ -314,7 +314,6 @@ radv_shader_object_init(struct radv_shader_object *shader_obj, struct radv_devic
shader_obj->stage = vk_to_mesa_shader_stage(pCreateInfo->stage);
shader_obj->code_type = pCreateInfo->codeType;
shader_obj->push_constant_size = layout.push_constant_size;
shader_obj->dynamic_offset_count = layout.dynamic_offset_count;
if (pCreateInfo->codeType == VK_SHADER_CODE_TYPE_BINARY_EXT) {
@ -510,7 +509,6 @@ radv_shader_object_create_linked(VkDevice _device, uint32_t createInfoCount, con
shader_obj->stage = s;
shader_obj->code_type = pCreateInfo->codeType;
shader_obj->push_constant_size = stages[s].layout.push_constant_size;
shader_obj->dynamic_offset_count = stages[s].layout.dynamic_offset_count;
if (s == MESA_SHADER_VERTEX) {

View file

@ -43,7 +43,6 @@ struct radv_shader_object {
struct radv_shader_binary *copy_binary;
} gs;
uint32_t push_constant_size;
uint32_t dynamic_offset_count;
};