On Thu, Jun 23, 2016 at 12:17 PM, Topi Pohjolainen < topi.pohjolai...@intel.com> wrote:
> Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 43 > ++++++++++++++------------- > src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 9 +++--- > 2 files changed, 27 insertions(+), 25 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > index 1683f8e..616f87e 100644 > --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > @@ -331,10 +331,10 @@ enum sampler_message_arg > > struct brw_blorp_blit_vars { > /* Input values from brw_blorp_wm_inputs */ > - nir_variable *u_discard_rect; > - nir_variable *u_rect_grid; > - nir_variable *u_coord_transform; > - nir_variable *u_src_z; > + nir_variable *v_discard_rect; > + nir_variable *v_rect_grid; > + nir_variable *v_coord_transform; > + nir_variable *v_src_z; > > /* gl_FragCoord */ > nir_variable *frag_coord; > @@ -349,34 +349,35 @@ brw_blorp_blit_vars_init(nir_builder *b, struct > brw_blorp_blit_vars *v, > { > if (key->use_kill) { > assert(!(key->blend && key->blit_scaled)); > - v->u_discard_rect = nir_variable_create(b->shader, nir_var_uniform, > + v->v_discard_rect = nir_variable_create(b->shader, > nir_var_shader_in, > glsl_type::uvec4_type, > "discard_rect"); > - v->u_discard_rect->data.location = > - offsetof(struct brw_blorp_wm_inputs, discard_rect); > - v->u_rect_grid = NULL; > + v->v_discard_rect->data.location = VARYING_SLOT_VAR0; > I think I'd prefer "VARYING_SLOT_VAR0 + offsetof() / 16". That way, if someone adds a new varying in the middle, slots automatically get updated. That's the reason why I made the UNIFORM macro in the first place. > + v->v_discard_rect->data.interpolation = INTERP_QUALIFIER_FLAT; > + v->v_rect_grid = NULL; > } else { > /* Blending grid only has two components but loading it as vec4 > * will keep offsets for the subsequent inputs the same between > * this and the discard branch. > */ > - v->u_rect_grid = nir_variable_create(b->shader, nir_var_uniform, > + v->v_rect_grid = nir_variable_create(b->shader, nir_var_shader_in, > glsl_type::vec2_type, > "rect_grid"); > - v->u_rect_grid->data.location = > - offsetof(struct brw_blorp_wm_inputs, rect_grid); > - v->u_discard_rect = NULL; > + v->v_rect_grid->data.location = VARYING_SLOT_VAR0; > + v->v_rect_grid->data.interpolation = INTERP_QUALIFIER_FLAT; > + v->v_discard_rect = NULL; > } > > - v->u_coord_transform = nir_variable_create(b->shader, nir_var_uniform, > + v->v_coord_transform = nir_variable_create(b->shader, > nir_var_shader_in, > glsl_type::vec4_type, > "coord_transform"); > - v->u_coord_transform->data.location = > - offsetof(struct brw_blorp_wm_inputs, x_transform.multiplier); > + v->v_coord_transform->data.location = VARYING_SLOT_VAR1; > + v->v_coord_transform->data.interpolation = INTERP_QUALIFIER_FLAT; > > - v->u_src_z = nir_variable_create(b->shader, nir_var_uniform, > + v->v_src_z = nir_variable_create(b->shader, nir_var_shader_in, > glsl_type::uint_type, "src_z"); > - v->u_src_z->data.location = offsetof(struct brw_blorp_wm_inputs, > src_z); > + v->v_src_z->data.location = VARYING_SLOT_VAR2; > + v->v_src_z->data.interpolation = INTERP_QUALIFIER_FLAT; > > v->frag_coord = nir_variable_create(b->shader, nir_var_shader_in, > glsl_vec4_type(), "gl_FragCoord"); > @@ -411,7 +412,7 @@ nir_ssa_def * > blorp_blit_apply_transform(nir_builder *b, nir_ssa_def *src_pos, > struct brw_blorp_blit_vars *v) > { > - nir_ssa_def *coord_transform = nir_load_var(b, v->u_coord_transform); > + nir_ssa_def *coord_transform = nir_load_var(b, v->v_coord_transform); > > nir_ssa_def *offset = nir_vec2(b, nir_channel(b, coord_transform, 1), > nir_channel(b, coord_transform, 3)); > @@ -426,7 +427,7 @@ blorp_nir_discard_if_outside_rect(nir_builder *b, > nir_ssa_def *pos, > struct brw_blorp_blit_vars *v) > { > nir_ssa_def *c0, *c1, *c2, *c3; > - nir_ssa_def *discard_rect = nir_load_var(b, v->u_discard_rect); > + nir_ssa_def *discard_rect = nir_load_var(b, v->v_discard_rect); > nir_ssa_def *dst_x0 = nir_channel(b, discard_rect, 0); > nir_ssa_def *dst_x1 = nir_channel(b, discard_rect, 1); > nir_ssa_def *dst_y0 = nir_channel(b, discard_rect, 2); > @@ -514,7 +515,7 @@ blorp_nir_txf(nir_builder *b, struct > brw_blorp_blit_vars *v, > */ > assert(pos->num_components == 2); > pos = nir_vec3(b, nir_channel(b, pos, 0), nir_channel(b, pos, 1), > - nir_load_var(b, v->u_src_z)); > + nir_load_var(b, v->v_src_z)); > > tex->sampler_dim = GLSL_SAMPLER_DIM_3D; > tex->coord_components = 3; > @@ -1047,7 +1048,7 @@ blorp_nir_manual_blend_bilinear(nir_builder *b, > nir_ssa_def *pos, > struct brw_blorp_blit_vars *v) > { > nir_ssa_def *pos_xy = nir_channels(b, pos, 0x3); > - nir_ssa_def *rect_grid = nir_load_var(b, v->u_rect_grid); > + nir_ssa_def *rect_grid = nir_load_var(b, v->v_rect_grid); > nir_ssa_def *scale = nir_imm_vec2(b, key->x_scale, key->y_scale); > > /* Translate coordinates to lay out the samples in a rectangular grid > diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp > b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp > index b4beec2..2308b8d 100644 > --- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp > +++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp > @@ -67,16 +67,17 @@ brw_blorp_params_get_clear_kernel(struct brw_context > *brw, > nir_builder_init_simple_shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL); > b.shader->info.name = ralloc_strdup(b.shader, "BLORP-clear"); > > - nir_variable *u_color = nir_variable_create(b.shader, nir_var_uniform, > - glsl_vec4_type(), > "u_color"); > - u_color->data.location = 0; > + nir_variable *v_color = nir_variable_create(b.shader, > nir_var_shader_in, > + glsl_vec4_type(), > "v_color"); > + v_color->data.location = VARYING_SLOT_VAR0; > + v_color->data.interpolation = INTERP_QUALIFIER_FLAT; > > nir_variable *frag_color = nir_variable_create(b.shader, > nir_var_shader_out, > glsl_vec4_type(), > "gl_FragColor"); > frag_color->data.location = FRAG_RESULT_COLOR; > > - nir_copy_var(&b, frag_color, u_color); > + nir_copy_var(&b, frag_color, v_color); > > struct brw_wm_prog_key wm_key; > brw_blorp_init_wm_prog_key(&wm_key); > -- > 2.5.5 > > _______________________________________________ > 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