diff options
author | Jason Ekstrand <jason@jlekstrand.net> | 2021-05-02 17:54:57 -0500 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2021-05-20 15:12:47 -0700 |
commit | 439b99c7d4b44aea79a5d4e06520283af9faadc8 (patch) | |
tree | 737e127a8b65ae1858575d2c4e469941932b7ca6 | |
parent | 1e0bde1055909348a791ee03200a63b05d86576c (diff) |
anv: Plumb the shader into push constant helpers
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571>
(cherry picked from commit 24b3e71fa9038972292e10d236b8c27ec2fcef4f)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/intel/vulkan/genX_cmd_buffer.c | 18 |
2 files changed, 10 insertions, 10 deletions
diff --git a/.pick_status.json b/.pick_status.json index 0a60d2ce80c..40c87275bd1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -211,7 +211,7 @@ "description": "anv: Plumb the shader into push constant helpers", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 15d4b00563e..e88069e4cbd 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -2997,7 +2997,7 @@ cmd_buffer_emit_descriptor_pointers(struct anv_cmd_buffer *cmd_buffer, static struct anv_address get_push_range_address(struct anv_cmd_buffer *cmd_buffer, - gl_shader_stage stage, + const struct anv_shader_bin *shader, const struct anv_push_range *range) { struct anv_cmd_graphics_state *gfx_state = &cmd_buffer->state.gfx; @@ -3068,10 +3068,10 @@ get_push_range_address(struct anv_cmd_buffer *cmd_buffer, */ static uint32_t get_push_range_bound_size(struct anv_cmd_buffer *cmd_buffer, - gl_shader_stage stage, + const struct anv_shader_bin *shader, const struct anv_push_range *range) { - assert(stage != MESA_SHADER_COMPUTE); + assert(shader->stage != MESA_SHADER_COMPUTE); const struct anv_cmd_graphics_state *gfx_state = &cmd_buffer->state.gfx; switch (range->set) { case ANV_DESCRIPTOR_SET_DESCRIPTORS: { @@ -3297,8 +3297,8 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer, if (!anv_pipeline_has_stage(pipeline, stage)) continue; - const struct anv_pipeline_bind_map *bind_map = - &pipeline->shaders[stage]->bind_map; + const struct anv_shader_bin *shader = pipeline->shaders[stage]; + const struct anv_pipeline_bind_map *bind_map = &shader->bind_map; struct anv_push_constants *push = &gfx_state->base.push_constants; push->push_reg_mask[stage] = 0; @@ -3312,7 +3312,7 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer, continue; unsigned bound_size = - get_push_range_bound_size(cmd_buffer, stage, range); + get_push_range_bound_size(cmd_buffer, shader, range); if (bound_size >= range->start * 32) { unsigned bound_regs = MIN2(DIV_ROUND_UP(bound_size, 32) - range->start, @@ -3342,8 +3342,8 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer, struct anv_address buffers[4] = {}; if (anv_pipeline_has_stage(pipeline, stage)) { - const struct anv_pipeline_bind_map *bind_map = - &pipeline->shaders[stage]->bind_map; + const struct anv_shader_bin *shader = pipeline->shaders[stage]; + const struct anv_pipeline_bind_map *bind_map = &shader->bind_map; /* We have to gather buffer addresses as a second step because the * loop above puts data into the push constant area and the call to @@ -3357,7 +3357,7 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer *cmd_buffer, if (range->length == 0) break; - buffers[i] = get_push_range_address(cmd_buffer, stage, range); + buffers[i] = get_push_range_address(cmd_buffer, shader, range); max_push_range = MAX2(max_push_range, range->length); buffer_count++; } |