Module: Mesa Branch: main Commit: c01354d5c4433452164e70a54e7bbfabf2443b50 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c01354d5c4433452164e70a54e7bbfabf2443b50
Author: Jason Ekstrand <[email protected]> Date: Sun May 2 17:55:15 2021 -0500 anv: Support pushing shader constants Usually, nir_opt_constant_folding will get rid of any load_constant intrinsics which might possibly be pushed but there are rare cases where we can still end up with them. Better to handle them. Cc: [email protected] Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571> --- src/intel/vulkan/genX_cmd_buffer.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 17badd5375f..54b76406cfe 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3013,6 +3013,13 @@ get_push_range_address(struct anv_cmd_buffer *cmd_buffer, }; } + case ANV_DESCRIPTOR_SET_SHADER_CONSTANTS: + return (struct anv_address) { + .bo = cmd_buffer->device->instruction_state_pool.block_pool.bo, + .offset = shader->kernel.offset + + shader->prog_data->const_data_offset, + }; + default: { assert(range->set < MAX_SETS); struct anv_descriptor_set *set = @@ -3075,6 +3082,9 @@ get_push_range_bound_size(struct anv_cmd_buffer *cmd_buffer, case ANV_DESCRIPTOR_SET_PUSH_CONSTANTS: return (range->start + range->length) * 32; + case ANV_DESCRIPTOR_SET_SHADER_CONSTANTS: + return ALIGN(shader->prog_data->const_data_size, ANV_UBO_ALIGNMENT); + default: { assert(range->set < MAX_SETS); struct anv_descriptor_set *set = _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
