sna/gen2: Cache the last solid colour for spans
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
ff4715a369
commit
baf78fcddb
|
|
@ -1593,8 +1593,11 @@ static void gen2_emit_composite_spans_state(struct sna *sna,
|
|||
gen2_emit_spans_pipeline(sna, op);
|
||||
|
||||
if (op->base.src.is_solid) {
|
||||
BATCH(_3DSTATE_DFLT_SPECULAR_CMD);
|
||||
BATCH(op->base.src.u.gen2.pixel);
|
||||
if (op->base.src.u.gen2.pixel != sna->render_state.gen2.specular) {
|
||||
BATCH(_3DSTATE_DFLT_SPECULAR_CMD);
|
||||
BATCH(op->base.src.u.gen2.pixel);
|
||||
sna->render_state.gen2.specular = op->base.src.u.gen2.pixel;
|
||||
}
|
||||
} else {
|
||||
uint32_t v =_3DSTATE_VERTEX_FORMAT_2_CMD |
|
||||
(op->base.src.is_affine ? TEXCOORDFMT_2D : TEXCOORDFMT_3D);
|
||||
|
|
@ -2534,6 +2537,7 @@ gen2_render_reset(struct sna *sna)
|
|||
sna->render_state.gen2.vft = 0;
|
||||
|
||||
sna->render_state.gen2.diffuse = 0x0c0ffee0;
|
||||
sna->render_state.gen2.specular = 0x0c0ffee0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -275,8 +275,9 @@ struct gen2_render_state {
|
|||
Bool need_invariant;
|
||||
Bool logic_op_enabled;
|
||||
uint32_t ls1, ls2, vft;
|
||||
uint16_t vertex_offset;
|
||||
uint32_t diffuse;
|
||||
uint32_t specular;
|
||||
uint16_t vertex_offset;
|
||||
};
|
||||
|
||||
struct gen3_render_state {
|
||||
|
|
|
|||
Loading…
Reference in New Issue