From: Kenneth Graunke Date: Sat, 18 Aug 2018 08:24:38 +0000 (-0700) Subject: iris: don't emit SBE all the time X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7705f62cb6777424bde5d3ceb7ee8524b26f3279;p=mesa.git iris: don't emit SBE all the time --- 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); }