// 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;
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;
}
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);
}