diff options
author | Kenneth Graunke <[email protected]> | 2018-10-10 21:44:43 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-02-21 10:26:09 -0800 |
commit | c29fd3425987c98a1d650041ed77082995145053 (patch) | |
tree | 98f389e652bdf8b8ecfbcee033d90bf408bf6039 | |
parent | 0d9c5b4e7ea0aed447183f144682a7f34aeb5c60 (diff) |
iris: move images next to textures in binding table
-rw-r--r-- | src/gallium/drivers/iris/iris_program.c | 14 | ||||
-rw-r--r-- | src/gallium/drivers/iris/iris_state.c | 12 |
2 files changed, 12 insertions, 14 deletions
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index b3eea223cc4..56709dae5b4 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -352,6 +352,13 @@ assign_common_binding_table_offsets(const struct gen_device_info *devinfo, prog_data->binding_table.gather_texture_start = 0xd0d0d0d0; } + if (info->num_images) { + prog_data->binding_table.image_start = next_binding_table_offset; + next_binding_table_offset += info->num_images; + } else { + prog_data->binding_table.image_start = 0xd0d0d0d0; + } + int num_ubos = info->num_ubos + (nir->num_uniforms > 0 ? 1 : 0); if (num_ubos) { @@ -372,13 +379,6 @@ assign_common_binding_table_offsets(const struct gen_device_info *devinfo, prog_data->binding_table.shader_time_start = 0xd0d0d0d0; - if (info->num_images) { - prog_data->binding_table.image_start = next_binding_table_offset; - next_binding_table_offset += info->num_images; - } else { - prog_data->binding_table.image_start = 0xd0d0d0d0; - } - /* This may or may not be used depending on how the compile goes. */ prog_data->binding_table.pull_constants_start = next_binding_table_offset; next_binding_table_offset++; diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index d3ed36bac9a..cf5536c390e 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -3335,6 +3335,11 @@ iris_populate_binding_table(struct iris_context *ice, push_bt_entry(addr); } + for (int i = 0; i < info->num_images; i++) { + uint32_t addr = use_image(batch, ice, shs, i); + push_bt_entry(addr); + } + const int num_ubos = iris_get_shader_num_ubos(ice, stage); for (int i = 0; i < num_ubos; i++) { @@ -3354,13 +3359,6 @@ iris_populate_binding_table(struct iris_context *ice, } } - if (info->num_images > 0) { - for (int i = 0; i < info->num_images; i++) { - uint32_t addr = use_image(batch, ice, shs, i); - push_bt_entry(addr); - } - } - #if 0 // XXX: not implemented yet assert(prog_data->binding_table.plane_start[1] == 0xd0d0d0d0); |