[Mesa-dev] [PATCH 5/6] i965/vs: Remove 'c'/vs_compile from vec4_vs_visitor.
Pohjolainen, Topi
topi.pohjolainen at intel.com
Fri Jul 3 01:35:54 PDT 2015
On Fri, Jul 03, 2015 at 11:29:33AM +0300, Pohjolainen, Topi wrote:
> On Wed, Jul 01, 2015 at 03:03:35PM -0700, Kenneth Graunke wrote:
> > At this point, the brw_vs_compile structure only contains the key and
> > gl_vertex_program pointer. We may as well pass and store them directly;
> > it's simpler and more convenient (key-> instead of vs_compile->key...).
> >
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> > ---
> > src/mesa/drivers/dri/i965/brw_vec4.cpp | 4 ++--
> > src/mesa/drivers/dri/i965/brw_vec4_vp.cpp | 9 +++------
> > src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp | 11 ++++++-----
> > src/mesa/drivers/dri/i965/brw_vs.h | 6 ++++--
> > 4 files changed, 15 insertions(+), 15 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > index e5db268..42d014c 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > @@ -1953,8 +1953,8 @@ brw_vs_emit(struct brw_context *brw,
> > if (!assembly) {
> > prog_data->base.dispatch_mode = DISPATCH_MODE_4X2_DUAL_OBJECT;
> >
> > - vec4_vs_visitor v(brw->intelScreen->compiler, brw,
> > - c, prog_data, prog, mem_ctx, st_index,
> > + vec4_vs_visitor v(brw->intelScreen->compiler, brw, &c->key, prog_data,
> > + &c->vp->program, prog, mem_ctx, st_index,
> > !_mesa_is_gles3(&brw->ctx));
> > if (!v.run(brw_select_clip_planes(&brw->ctx))) {
> > if (prog) {
> > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp
> > index dcbd240..d1a72d7 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4_vp.cpp
> > @@ -394,8 +394,7 @@ vec4_vs_visitor::emit_program_code()
> > * pull constants. Do that now.
> > */
> > if (this->need_all_constants_in_pull_buffer) {
> > - const struct gl_program_parameter_list *params =
> > - vs_compile->vp->program.Base.Parameters;
> > + const struct gl_program_parameter_list *params = vp->Base.Parameters;
> > unsigned i;
> > for (i = 0; i < params->NumParameters * 4; i++) {
> > stage_prog_data->pull_param[i] =
> > @@ -415,8 +414,7 @@ vec4_vs_visitor::setup_vp_regs()
> > vp_temp_regs[i] = src_reg(this, glsl_type::vec4_type);
> >
> > /* PROGRAM_STATE_VAR etc. */
> > - struct gl_program_parameter_list *plist =
> > - vs_compile->vp->program.Base.Parameters;
> > + struct gl_program_parameter_list *plist = vp->Base.Parameters;
> > for (unsigned p = 0; p < plist->NumParameters; p++) {
> > unsigned components = plist->Parameters[p].Size;
> >
> > @@ -486,8 +484,7 @@ vec4_vs_visitor::get_vp_dst_reg(const prog_dst_register &dst)
> > src_reg
> > vec4_vs_visitor::get_vp_src_reg(const prog_src_register &src)
> > {
> > - struct gl_program_parameter_list *plist =
> > - vs_compile->vp->program.Base.Parameters;
> > + struct gl_program_parameter_list *plist = vp->Base.Parameters;
> >
> > src_reg result;
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp
> > index 35b601a..b7ec8b9 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp
> > @@ -36,7 +36,7 @@ vec4_vs_visitor::emit_prolog()
> >
> > for (int i = 0; i < VERT_ATTRIB_MAX; i++) {
> > if (vs_prog_data->inputs_read & BITFIELD64_BIT(i)) {
> > - uint8_t wa_flags = vs_compile->key.gl_attrib_wa_flags[i];
> > + uint8_t wa_flags = key->gl_attrib_wa_flags[i];
> > dst_reg reg(ATTR, i);
> > dst_reg reg_d = reg;
> > reg_d.type = BRW_REGISTER_TYPE_D;
> > @@ -213,20 +213,21 @@ vec4_vs_visitor::emit_thread_end()
> >
> > vec4_vs_visitor::vec4_vs_visitor(const struct brw_compiler *compiler,
> > void *log_data,
> > - struct brw_vs_compile *vs_compile,
> > + const struct brw_vs_prog_key *key,
> > struct brw_vs_prog_data *vs_prog_data,
> > + struct gl_vertex_program *vp,
> > struct gl_shader_program *prog,
> > void *mem_ctx,
> > int shader_time_index,
> > bool use_legacy_snorm_formula)
> > : vec4_visitor(compiler, log_data,
> > - &vs_compile->vp->program.Base,
> > - &vs_compile->key.base, &vs_prog_data->base, prog,
> > + &vp->Base, &key->base, &vs_prog_data->base, prog,
> > MESA_SHADER_VERTEX,
> > mem_ctx, false /* no_spills */,
> > shader_time_index),
> > - vs_compile(vs_compile),
> > + key(key),
> > vs_prog_data(vs_prog_data),
> > + vp(vp),
> > use_legacy_snorm_formula(use_legacy_snorm_formula)
> > {
> > }
> > diff --git a/src/mesa/drivers/dri/i965/brw_vs.h b/src/mesa/drivers/dri/i965/brw_vs.h
> > index 3a131b0..0481c44 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vs.h
> > +++ b/src/mesa/drivers/dri/i965/brw_vs.h
> > @@ -91,8 +91,9 @@ class vec4_vs_visitor : public vec4_visitor
> > public:
> > vec4_vs_visitor(const struct brw_compiler *compiler,
> > void *log_data,
> > - struct brw_vs_compile *vs_compile,
> > + const struct brw_vs_prog_key *key,
> > struct brw_vs_prog_data *vs_prog_data,
> > + struct gl_vertex_program *vp,
> > struct gl_shader_program *prog,
> > void *mem_ctx,
> > int shader_time_index,
> > @@ -113,8 +114,9 @@ private:
> > dst_reg get_vp_dst_reg(const prog_dst_register &dst);
> > src_reg get_vp_src_reg(const prog_src_register &src);
> >
> > - struct brw_vs_compile * const vs_compile;
> > + const struct brw_vs_prog_key *const key;
> > struct brw_vs_prog_data * const vs_prog_data;
> > + struct gl_vertex_program *vp;
>
> I guess you dropped the const qualifier by accident telling that the pointer
> value is constant. Furthermore, I think we can make the pointer itself to
> represent read-only data - in the backend we don't alter it anymore.
>
> const struct gl_vertex_program * const vp;
My mistake about the latter part, we do write the data behind the pointer. So
we can only declare the pointer value itself to be constant.
struct gl_vertex_program * const vp;
>
>
> With that:
>
> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>
> > src_reg *vp_temp_regs;
> > src_reg vp_addr_reg;
> >
> > --
> > 2.4.4
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list