summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-10-10 21:44:43 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:09 -0800
commitc29fd3425987c98a1d650041ed77082995145053 (patch)
tree98f389e652bdf8b8ecfbcee033d90bf408bf6039
parent0d9c5b4e7ea0aed447183f144682a7f34aeb5c60 (diff)
iris: move images next to textures in binding table
-rw-r--r--src/gallium/drivers/iris/iris_program.c14
-rw-r--r--src/gallium/drivers/iris/iris_state.c12
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);