summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-08-18 01:24:38 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:08 -0800
commit7705f62cb6777424bde5d3ceb7ee8524b26f3279 (patch)
treed2415e2b03b1171ec4b440c0f9181e718ca6784a /src/gallium
parent630d602900f8e9e101659c34061dc85db3f0be48 (diff)
iris: don't emit SBE all the time
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_program_cache.c2
-rw-r--r--src/gallium/drivers/iris/iris_state.c7
2 files changed, 3 insertions, 6 deletions
diff --git a/src/gallium/drivers/iris/iris_program_cache.c b/src/gallium/drivers/iris/iris_program_cache.c
index b84e3ac0b4c..c2b538048ae 100644
--- a/src/gallium/drivers/iris/iris_program_cache.c
+++ b/src/gallium/drivers/iris/iris_program_cache.c
@@ -112,7 +112,7 @@ dirty_flag_for_cache(enum iris_program_cache_id cache_id)
// XXX: new and old programs to decide what bits to twiddle
// XXX: CLIP: toggle if barycentric modes has any NONPERSPECTIVE or not
if (cache_id == IRIS_CACHE_FS)
- return IRIS_DIRTY_WM | IRIS_DIRTY_FS | IRIS_DIRTY_CLIP;
+ return IRIS_DIRTY_WM | IRIS_DIRTY_FS | IRIS_DIRTY_CLIP | IRIS_DIRTY_SBE;
if (cache_id == IRIS_CACHE_VS)
return IRIS_DIRTY_VS | IRIS_DIRTY_VF_SGVS;
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 115b2d34655..8a86f2f9061 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -976,7 +976,7 @@ iris_bind_rasterizer_state(struct pipe_context *ctx, void *state)
cso_changed(clip_halfz))
ice->state.dirty |= IRIS_DIRTY_CC_VIEWPORT;
- if (cso_changed(sprite_coord_enable))
+ if (cso_changed(sprite_coord_enable) || cso_changed(light_twoside))
ice->state.dirty |= IRIS_DIRTY_SBE;
}
@@ -3536,10 +3536,7 @@ iris_upload_render_state(struct iris_context *ice,
iris_emit_merge(batch, cso->wm, dynamic_wm, ARRAY_SIZE(cso->wm));
}
- if (1) {
- // XXX: 3DSTATE_SBE, 3DSTATE_SBE_SWIZ
- // -> iris_raster_state (point sprite texture coordinate origin)
- // -> bunch of shader state...
+ if (dirty & IRIS_DIRTY_SBE) {
iris_emit_sbe(batch, ice);
}