Pushed. Thanks! Marek
On Tue, Apr 4, 2017 at 4:45 PM, Dieter Nützel <die...@nuetzel-hh.de> wrote: > For the series: > > Tested-by: Dieter Nützel <die...@nuetzel-hh.de> > > On Turks XT (6670). > > Marek can you apply? > > Dieter > > > Am 02.04.2017 19:33, schrieb Constantine Kharlamov: >> >> Specifically, non-line primitives skipped, and defaulting to reset on >> each packet. >> >> The skip of non-line primitives saves ≈110 resetting of >> PA_SC_LINE_STIPPLE register per frame in Kane&Lynch2. >> >> Signed-off-by: Constantine Kharlamov <hi-an...@yandex.ru> >> --- >> src/gallium/drivers/r600/r600_state_common.c | 21 +++++++++++++-------- >> 1 file changed, 13 insertions(+), 8 deletions(-) >> >> diff --git a/src/gallium/drivers/r600/r600_state_common.c >> b/src/gallium/drivers/r600/r600_state_common.c >> index e4d1660933..4de2a7344b 100644 >> --- a/src/gallium/drivers/r600/r600_state_common.c >> +++ b/src/gallium/drivers/r600/r600_state_common.c >> @@ -1670,19 +1670,24 @@ void r600_emit_clip_misc_state(struct >> r600_context *rctx, struct r600_atom *atom >> static inline void r600_emit_rasterizer_prim_state(struct r600_context >> *rctx) >> { >> struct radeon_winsys_cs *cs = rctx->b.gfx.cs; >> - unsigned ls_mask = 0; >> enum pipe_prim_type rast_prim = rctx->current_rast_prim; >> - if (rast_prim == rctx->last_rast_prim) >> + >> + /* Skip this if not rendering lines. */ >> + if (rast_prim != PIPE_PRIM_LINES && >> + rast_prim != PIPE_PRIM_LINE_LOOP && >> + rast_prim != PIPE_PRIM_LINE_STRIP && >> + rast_prim != PIPE_PRIM_LINES_ADJACENCY && >> + rast_prim != PIPE_PRIM_LINE_STRIP_ADJACENCY) >> return; >> >> - if (rast_prim == PIPE_PRIM_LINES) >> - ls_mask = 1; >> - else if (rast_prim == PIPE_PRIM_LINE_STRIP || >> - rast_prim == PIPE_PRIM_LINE_LOOP) >> - ls_mask = 2; >> + if (rast_prim == rctx->last_rast_prim) >> + return; >> >> + /* For lines, reset the stipple pattern at each primitive. >> Otherwise, >> + * reset the stipple pattern at each packet (line strips, line >> loops). >> + */ >> radeon_set_context_reg(cs, R_028A0C_PA_SC_LINE_STIPPLE, >> - S_028A0C_AUTO_RESET_CNTL(ls_mask) | >> + S_028A0C_AUTO_RESET_CNTL(rast_prim == >> PIPE_PRIM_LINES ? 1 : 2) | >> (rctx->rasterizer ? >> rctx->rasterizer->pa_sc_line_stipple : 0)); >> rctx->last_rast_prim = rast_prim; >> } > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev