On Thu, 2015-10-29 at 00:49 -0700, Jordan Justen wrote: > Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_context.h | 2 +- > src/mesa/drivers/dri/i965/brw_state.h | 1 + > src/mesa/drivers/dri/i965/brw_state_upload.c | 2 ++ > src/mesa/drivers/dri/i965/gen7_cs_state.c | 32 > ++++++++++++++++++++++++++++ > 4 files changed, 36 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.h > b/src/mesa/drivers/dri/i965/brw_context.h > index 18c361e..887b57b 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.h > +++ b/src/mesa/drivers/dri/i965/brw_context.h > @@ -1177,7 +1177,7 @@ struct brw_context > > int num_atoms[BRW_NUM_PIPELINES]; > const struct brw_tracked_state render_atoms[60]; > - const struct brw_tracked_state compute_atoms[8]; > + const struct brw_tracked_state compute_atoms[9]; > > /* If (INTEL_DEBUG & DEBUG_BATCH) */ > struct { > diff --git a/src/mesa/drivers/dri/i965/brw_state.h > b/src/mesa/drivers/dri/i965/brw_state.h > index dc2b941..2c7c2f3 100644 > --- a/src/mesa/drivers/dri/i965/brw_state.h > +++ b/src/mesa/drivers/dri/i965/brw_state.h > @@ -49,6 +49,7 @@ extern const struct brw_tracked_state brw_clip_unit; > extern const struct brw_tracked_state brw_vs_pull_constants; > extern const struct brw_tracked_state brw_gs_pull_constants; > extern const struct brw_tracked_state brw_wm_pull_constants; > +extern const struct brw_tracked_state brw_cs_pull_constants; > extern const struct brw_tracked_state brw_constant_buffer; > extern const struct brw_tracked_state brw_curbe_offsets; > extern const struct brw_tracked_state brw_invariant_state; > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index 79b8301..0344b8a 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -259,6 +259,7 @@ static const struct brw_tracked_state > *gen7_compute_atoms[] = > &brw_state_base_address, > &brw_cs_image_surfaces, > &gen7_cs_push_constants, > + &brw_cs_pull_constants, > &brw_cs_ubo_surfaces, > &brw_cs_abo_surfaces, > &brw_texture_surfaces, > @@ -353,6 +354,7 @@ static const struct brw_tracked_state > *gen8_compute_atoms[] = > &gen8_state_base_address, > &brw_cs_image_surfaces, > &gen7_cs_push_constants, > + &brw_cs_pull_constants, > &brw_cs_ubo_surfaces, > &brw_cs_abo_surfaces, > &brw_texture_surfaces, > diff --git a/src/mesa/drivers/dri/i965/gen7_cs_state.c > b/src/mesa/drivers/dri/i965/gen7_cs_state.c > index 6aeb0cb..da1d05f 100644 > --- a/src/mesa/drivers/dri/i965/gen7_cs_state.c > +++ b/src/mesa/drivers/dri/i965/gen7_cs_state.c > @@ -29,6 +29,7 @@ > #include "brw_shader.h" > #include "intel_mipmap_tree.h" > #include "intel_batchbuffer.h" > +#include "intel_buffer_objects.h"
I think you don't need this include. Other than that: Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> > #include "brw_state.h" > > static unsigned > @@ -285,3 +286,34 @@ const struct brw_tracked_state gen7_cs_push_constants = { > }, > .emit = gen7_upload_cs_push_constants, > }; > + > +/** > + * Creates a new CS constant buffer reflecting the current CS program's > + * constants, if needed by the CS program. > + */ > +static void > +brw_upload_cs_pull_constants(struct brw_context *brw) > +{ > + struct brw_stage_state *stage_state = &brw->cs.base; > + > + /* BRW_NEW_COMPUTE_PROGRAM */ > + struct brw_compute_program *cp = > + (struct brw_compute_program *) brw->compute_program; > + > + /* BRW_NEW_CS_PROG_DATA */ > + const struct brw_stage_prog_data *prog_data = &brw->cs.prog_data->base; > + > + /* _NEW_PROGRAM_CONSTANTS */ > + brw_upload_pull_constants(brw, BRW_NEW_SURFACES, &cp->program.Base, > + stage_state, prog_data, true); > +} > + > +const struct brw_tracked_state brw_cs_pull_constants = { > + .dirty = { > + .mesa = _NEW_PROGRAM_CONSTANTS, > + .brw = BRW_NEW_BATCH | > + BRW_NEW_COMPUTE_PROGRAM | > + BRW_NEW_CS_PROG_DATA, > + }, > + .emit = brw_upload_cs_pull_constants, > +}; _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev