12 & 13 Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>
On 2015-12-02 16:15:53, Kenneth Graunke wrote: > Based on code by Chris Forbes and Fabian Bieler. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_context.h | 2 +- > src/mesa/drivers/dri/i965/brw_sampler_state.c | 46 > +++++++++++++++++++++++++++ > src/mesa/drivers/dri/i965/brw_state.h | 2 ++ > src/mesa/drivers/dri/i965/brw_state_upload.c | 2 ++ > 4 files changed, 51 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.h > b/src/mesa/drivers/dri/i965/brw_context.h > index 8de0e6f..c440c7d 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.h > +++ b/src/mesa/drivers/dri/i965/brw_context.h > @@ -1228,7 +1228,7 @@ struct brw_context > } perfmon; > > int num_atoms[BRW_NUM_PIPELINES]; > - const struct brw_tracked_state render_atoms[71]; > + const struct brw_tracked_state render_atoms[73]; > const struct brw_tracked_state compute_atoms[9]; > > /* If (INTEL_DEBUG & DEBUG_BATCH) */ > diff --git a/src/mesa/drivers/dri/i965/brw_sampler_state.c > b/src/mesa/drivers/dri/i965/brw_sampler_state.c > index 6d73444..3f29e2f 100644 > --- a/src/mesa/drivers/dri/i965/brw_sampler_state.c > +++ b/src/mesa/drivers/dri/i965/brw_sampler_state.c > @@ -55,6 +55,8 @@ gen7_emit_sampler_state_pointers_xs(struct brw_context *brw, > { > static const uint16_t packet_headers[] = { > [MESA_SHADER_VERTEX] = _3DSTATE_SAMPLER_STATE_POINTERS_VS, > + [MESA_SHADER_TESS_CTRL] = _3DSTATE_SAMPLER_STATE_POINTERS_HS, > + [MESA_SHADER_TESS_EVAL] = _3DSTATE_SAMPLER_STATE_POINTERS_DS, > [MESA_SHADER_GEOMETRY] = _3DSTATE_SAMPLER_STATE_POINTERS_GS, > [MESA_SHADER_FRAGMENT] = _3DSTATE_SAMPLER_STATE_POINTERS_PS, > }; > @@ -647,3 +649,47 @@ const struct brw_tracked_state brw_gs_samplers = { > }, > .emit = brw_upload_gs_samplers, > }; > + > + > +static void > +brw_upload_tcs_samplers(struct brw_context *brw) > +{ > + /* BRW_NEW_TESS_CTRL_PROGRAM */ > + struct gl_program *tcs = (struct gl_program *) brw->tess_ctrl_program; > + if (!tcs) > + return; > + > + brw_upload_sampler_state_table(brw, tcs, &brw->tcs.base); > +} > + > + > +const struct brw_tracked_state brw_tcs_samplers = { > + .dirty = { > + .mesa = _NEW_TEXTURE, > + .brw = BRW_NEW_BATCH | > + BRW_NEW_TESS_CTRL_PROGRAM, > + }, > + .emit = brw_upload_tcs_samplers, > +}; > + > + > +static void > +brw_upload_tes_samplers(struct brw_context *brw) > +{ > + /* BRW_NEW_TESS_EVAL_PROGRAM */ > + struct gl_program *tes = (struct gl_program *) brw->tess_eval_program; > + if (!tes) > + return; > + > + brw_upload_sampler_state_table(brw, tes, &brw->tes.base); > +} > + > + > +const struct brw_tracked_state brw_tes_samplers = { > + .dirty = { > + .mesa = _NEW_TEXTURE, > + .brw = BRW_NEW_BATCH | > + BRW_NEW_TESS_EVAL_PROGRAM, > + }, > + .emit = brw_upload_tes_samplers, > +}; > diff --git a/src/mesa/drivers/dri/i965/brw_state.h > b/src/mesa/drivers/dri/i965/brw_state.h > index 129de30..a332b92 100644 > --- a/src/mesa/drivers/dri/i965/brw_state.h > +++ b/src/mesa/drivers/dri/i965/brw_state.h > @@ -72,6 +72,8 @@ extern const struct brw_tracked_state > brw_state_base_address; > extern const struct brw_tracked_state brw_urb_fence; > extern const struct brw_tracked_state brw_vs_prog; > extern const struct brw_tracked_state brw_vs_samplers; > +extern const struct brw_tracked_state brw_tcs_samplers; > +extern const struct brw_tracked_state brw_tes_samplers; > extern const struct brw_tracked_state brw_gs_samplers; > extern const struct brw_tracked_state brw_vs_ubo_surfaces; > extern const struct brw_tracked_state brw_vs_abo_surfaces; > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index ba66886..e61fa6a 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -322,6 +322,8 @@ static const struct brw_tracked_state > *gen8_render_atoms[] = > > &brw_fs_samplers, > &brw_vs_samplers, > + &brw_tcs_samplers, > + &brw_tes_samplers, > &brw_gs_samplers, > &gen8_multisample_state, > > -- > 2.6.2 > > _______________________________________________ > 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