On Thu, Aug 14, 2014 at 4:11 AM, Iago Toral Quiroga <ito...@igalia.com> wrote: > From: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > > The code required for gen6 and gen7+ is almost the same, so reuse it.
I had a question in patch 5 related to this code, but: Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > --- > src/mesa/drivers/dri/i965/brw_state_upload.c | 4 ++-- > src/mesa/drivers/dri/i965/gen6_gs_state.c | 6 ++++- > src/mesa/drivers/dri/i965/gen7_gs_state.c | 33 > ---------------------------- > 3 files changed, 7 insertions(+), 36 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index 0481790..a52a8f4 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -197,7 +197,7 @@ static const struct brw_tracked_state *gen7_atoms[] = > &gen6_depth_stencil_state, /* must do before cc unit */ > > &gen6_vs_push_constants, /* Before vs_state */ > - &gen7_gs_push_constants, /* Before gs_state */ > + &gen6_gs_push_constants, /* Before gs_state */ > &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > > /* Surface state setup. Must come before the VS/WM unit. The binding > @@ -271,7 +271,7 @@ static const struct brw_tracked_state *gen8_atoms[] = > &gen6_color_calc_state, > > &gen6_vs_push_constants, /* Before vs_state */ > - &gen7_gs_push_constants, /* Before gs_state */ > + &gen6_gs_push_constants, /* Before gs_state */ > &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > > /* Surface state setup. Must come before the VS/WM unit. The binding > diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c > b/src/mesa/drivers/dri/i965/gen6_gs_state.c > index 987b7d2..e3256e2 100644 > --- a/src/mesa/drivers/dri/i965/gen6_gs_state.c > +++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c > @@ -33,18 +33,22 @@ > static void > gen6_upload_gs_push_constants(struct brw_context *brw) > { > + struct brw_stage_state *stage_state = &brw->gs.base; > + > /* BRW_NEW_GEOMETRY_PROGRAM */ > const struct brw_geometry_program *gp = > (struct brw_geometry_program *) brw->geometry_program; > > if (gp) { > /* CACHE_NEW_GS_PROG */ > - struct brw_stage_state *stage_state = &brw->gs.base; > struct brw_stage_prog_data *prog_data = &brw->gs.prog_data->base.base; > > gen6_upload_push_constants(brw, &gp->program.Base, prog_data, > stage_state, AUB_TRACE_VS_CONSTANTS); > } > + > + if (brw->gen >= 7) > + gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS); > } > > const struct brw_tracked_state gen6_gs_push_constants = { > diff --git a/src/mesa/drivers/dri/i965/gen7_gs_state.c > b/src/mesa/drivers/dri/i965/gen7_gs_state.c > index b3b4ee6..2a9955f 100644 > --- a/src/mesa/drivers/dri/i965/gen7_gs_state.c > +++ b/src/mesa/drivers/dri/i965/gen7_gs_state.c > @@ -26,39 +26,6 @@ > #include "brw_defines.h" > #include "intel_batchbuffer.h" > > - > -static void > -gen7_upload_gs_push_constants(struct brw_context *brw) > -{ > - const struct brw_stage_state *stage_state = &brw->gs.base; > - /* BRW_NEW_GEOMETRY_PROGRAM */ > - const struct brw_geometry_program *gp = > - (struct brw_geometry_program *) brw->geometry_program; > - > - if (gp) { > - /* CACHE_NEW_GS_PROG */ > - const struct brw_stage_prog_data *prog_data = > &brw->gs.prog_data->base.base; > - struct brw_stage_state *stage_state = &brw->gs.base; > - > - gen6_upload_push_constants(brw, &gp->program.Base, prog_data, > - stage_state, AUB_TRACE_VS_CONSTANTS); > - } > - > - gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS); > -} > - > -const struct brw_tracked_state gen7_gs_push_constants = { > - .dirty = { > - .mesa = _NEW_TRANSFORM | _NEW_PROGRAM_CONSTANTS, > - .brw = (BRW_NEW_BATCH | > - BRW_NEW_GEOMETRY_PROGRAM | > - BRW_NEW_PUSH_CONSTANT_ALLOCATION), > - .cache = CACHE_NEW_GS_PROG, > - }, > - .emit = gen7_upload_gs_push_constants, > -}; > - > - > static void > upload_gs_state(struct brw_context *brw) > { > -- > 1.9.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev