summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/iris/iris_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/iris/iris_state.c')
-rw-r--r--src/gallium/drivers/iris/iris_state.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 582611d3a04..2ea077300da 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -967,6 +967,15 @@ iris_init_render_context(struct iris_batch *batch)
iris_upload_slice_hashing_state(batch);
#endif
+#if GEN_GEN == 12
+ iris_pack_state(GENX(SAMPLER_MODE), &reg_val, reg) {
+ /* GEN:BUG:1406941453 */
+ reg.SmallPL = true;
+ reg.SmallPLMask = true;
+ }
+ iris_emit_lri(batch, SAMPLER_MODE, reg_val);
+#endif
+
/* 3DSTATE_DRAWING_RECTANGLE is non-pipelined, so we want to avoid
* changing it dynamically. We set it to the maximum size here, and
* instead include the render target dimensions in the viewport, so
@@ -1020,6 +1029,15 @@ iris_init_compute_context(struct iris_batch *batch)
init_state_base_address(batch);
+#if GEN_GEN == 12
+ iris_pack_state(GENX(SAMPLER_MODE), &reg_val, reg) {
+ /* GEN:BUG:1406941453 */
+ reg.SmallPL = true;
+ reg.SmallPLMask = true;
+ }
+ iris_emit_lri(batch, SAMPLER_MODE, reg_val);
+#endif
+
#if GEN_GEN == 9
if (devinfo->is_geminilake)
init_glk_barrier_mode(batch, GLK_BARRIER_MODE_GPGPU);