summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2021-05-02 17:54:57 -0500
committerDylan Baker <dylan.c.baker@intel.com>2021-05-20 15:12:47 -0700
commit439b99c7d4b44aea79a5d4e06520283af9faadc8 (patch)
tree737e127a8b65ae1858575d2c4e469941932b7ca6
parent1e0bde1055909348a791ee03200a63b05d86576c (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.json2
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c18
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++;
}