radeonsi: don't update polygon offset state if it has no effect

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
Marek Olšák 2015-09-03 19:34:58 +02:00
parent afa752d3f0
commit 60ec8fb448
2 changed files with 4 additions and 1 deletions

View File

@ -636,7 +636,7 @@ static void si_update_poly_offset_state(struct si_context *sctx)
{
struct si_state_rasterizer *rs = sctx->queued.named.rasterizer;
if (!rs || !sctx->framebuffer.state.zsbuf)
if (!rs || !rs->uses_poly_offset || !sctx->framebuffer.state.zsbuf)
return;
switch (sctx->framebuffer.state.zsbuf->texture->format) {
@ -691,6 +691,8 @@ static void *si_create_rs_state(struct pipe_context *ctx,
rs->poly_stipple_enable = state->poly_stipple_enable;
rs->line_smooth = state->line_smooth;
rs->poly_smooth = state->poly_smooth;
rs->uses_poly_offset = state->offset_point || state->offset_line ||
state->offset_tri;
rs->flatshade = state->flatshade;
rs->sprite_coord_enable = state->sprite_coord_enable;

View File

@ -58,6 +58,7 @@ struct si_state_rasterizer {
bool poly_stipple_enable;
bool line_smooth;
bool poly_smooth;
bool uses_poly_offset;
};
struct si_dsa_stencil_ref_part {