summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_state.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-12-27 00:49:56 -0800
committerKenneth Graunke <[email protected]>2019-02-21 10:26:11 -0800
commitbc3bb2864503d85d5ccdbe552178a57ab9bf20b2 (patch)
tree3791f32231df8a58cf2c0b38825e41c9e000c020 /src/gallium/drivers/iris/iris_state.c
parent2ca0d913ea82c8025e801b33fc4a7800d4f7a9a7 (diff)
iris: Don't enable push constants just because there are system values
System values are built-in uniforms. We set them up as UBO values, and might pull or push them. UBO push analysis will take care of that. We only want to enable push constants if there's an actual range being pushed. Otherwise, we might get into a scenario where 3DSTATE_PS enables push constants but 3DSTATE_CONSTANT_PS isn't pushing anything. This fixes GPU hangs in Broadwell image load store tests which have unused image param system values but no other uniforms. (We shouldn't be making those anyway, but that's a separate fix...)
Diffstat (limited to 'src/gallium/drivers/iris/iris_state.c')
-rw-r--r--src/gallium/drivers/iris/iris_state.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 0a2a5997ab8..1bdf4469397 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -3295,8 +3295,7 @@ iris_store_fs_state(struct iris_context *ice,
ps.FloatingPointMode = prog_data->use_alt_mode;
ps.MaximumNumberofThreadsPerPSD = 64 - (GEN_GEN == 8 ? 2 : 1);
- ps.PushConstantEnable = shader->num_system_values > 0 ||
- prog_data->ubo_ranges[0].length > 0;
+ ps.PushConstantEnable = prog_data->ubo_ranges[0].length > 0;
/* From the documentation for this packet:
* "If the PS kernel does not need the Position XY Offsets to