<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 23, 2016 at 12:17 PM, Topi Pohjolainen <span dir="ltr"><<a href="mailto:topi.pohjolainen@intel.com" target="_blank">topi.pohjolainen@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Topi Pohjolainen <<a href="mailto:topi.pohjolainen@intel.com">topi.pohjolainen@intel.com</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_blorp_blit.cpp  | 43 ++++++++++++++-------------<br>
 src/mesa/drivers/dri/i965/brw_blorp_clear.cpp |  9 +++---<br>
 2 files changed, 27 insertions(+), 25 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp<br>
index 1683f8e..616f87e 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp<br>
+++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp<br>
@@ -331,10 +331,10 @@ enum sampler_message_arg<br>
<br>
 struct brw_blorp_blit_vars {<br>
    /* Input values from brw_blorp_wm_inputs */<br>
-   nir_variable *u_discard_rect;<br>
-   nir_variable *u_rect_grid;<br>
-   nir_variable *u_coord_transform;<br>
-   nir_variable *u_src_z;<br>
+   nir_variable *v_discard_rect;<br>
+   nir_variable *v_rect_grid;<br>
+   nir_variable *v_coord_transform;<br>
+   nir_variable *v_src_z;<br>
<br>
    /* gl_FragCoord */<br>
    nir_variable *frag_coord;<br>
@@ -349,34 +349,35 @@ brw_blorp_blit_vars_init(nir_builder *b, struct brw_blorp_blit_vars *v,<br>
 {<br>
    if (key->use_kill) {<br>
       assert(!(key->blend && key->blit_scaled));<br>
-      v->u_discard_rect = nir_variable_create(b->shader, nir_var_uniform,<br>
+      v->v_discard_rect = nir_variable_create(b->shader, nir_var_shader_in,<br>
                                               glsl_type::uvec4_type,<br>
                                               "discard_rect");<br>
-      v->u_discard_rect->data.location =<br>
-         offsetof(struct brw_blorp_wm_inputs, discard_rect);<br>
-      v->u_rect_grid = NULL;<br>
+      v->v_discard_rect->data.location = VARYING_SLOT_VAR0;<br></blockquote><div><br></div><div>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.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+      v->v_discard_rect->data.interpolation = INTERP_QUALIFIER_FLAT;<br>
+      v->v_rect_grid = NULL;<br>
    } else {<br>
       /* Blending grid only has two components but loading it as vec4<br>
        * will keep offsets for the subsequent inputs the same between<br>
        * this and the discard branch.<br>
        */<br>
-      v->u_rect_grid = nir_variable_create(b->shader, nir_var_uniform,<br>
+      v->v_rect_grid = nir_variable_create(b->shader, nir_var_shader_in,<br>
                                            glsl_type::vec2_type,<br>
                                            "rect_grid");<br>
-      v->u_rect_grid->data.location =<br>
-         offsetof(struct brw_blorp_wm_inputs, rect_grid);<br>
-      v->u_discard_rect = NULL;<br>
+      v->v_rect_grid->data.location = VARYING_SLOT_VAR0;<br>
+      v->v_rect_grid->data.interpolation = INTERP_QUALIFIER_FLAT;<br>
+      v->v_discard_rect = NULL;<br>
    }<br>
<br>
-   v->u_coord_transform = nir_variable_create(b->shader, nir_var_uniform,<br>
+   v->v_coord_transform = nir_variable_create(b->shader, nir_var_shader_in,<br>
                                               glsl_type::vec4_type,<br>
                                               "coord_transform");<br>
-   v->u_coord_transform->data.location =<br>
-      offsetof(struct brw_blorp_wm_inputs, x_transform.multiplier);<br>
+   v->v_coord_transform->data.location = VARYING_SLOT_VAR1;<br>
+   v->v_coord_transform->data.interpolation = INTERP_QUALIFIER_FLAT;<br>
<br>
-   v->u_src_z = nir_variable_create(b->shader, nir_var_uniform,<br>
+   v->v_src_z = nir_variable_create(b->shader, nir_var_shader_in,<br>
                                     glsl_type::uint_type, "src_z");<br>
-   v->u_src_z->data.location = offsetof(struct brw_blorp_wm_inputs, src_z);<br>
+   v->v_src_z->data.location = VARYING_SLOT_VAR2;<br>
+   v->v_src_z->data.interpolation = INTERP_QUALIFIER_FLAT;<br>
<br>
    v->frag_coord = nir_variable_create(b->shader, nir_var_shader_in,<br>
                                        glsl_vec4_type(), "gl_FragCoord");<br>
@@ -411,7 +412,7 @@ nir_ssa_def *<br>
 blorp_blit_apply_transform(nir_builder *b, nir_ssa_def *src_pos,<br>
                            struct brw_blorp_blit_vars *v)<br>
 {<br>
-   nir_ssa_def *coord_transform = nir_load_var(b, v->u_coord_transform);<br>
+   nir_ssa_def *coord_transform = nir_load_var(b, v->v_coord_transform);<br>
<br>
    nir_ssa_def *offset = nir_vec2(b, nir_channel(b, coord_transform, 1),<br>
                                      nir_channel(b, coord_transform, 3));<br>
@@ -426,7 +427,7 @@ blorp_nir_discard_if_outside_rect(nir_builder *b, nir_ssa_def *pos,<br>
                                   struct brw_blorp_blit_vars *v)<br>
 {<br>
    nir_ssa_def *c0, *c1, *c2, *c3;<br>
-   nir_ssa_def *discard_rect = nir_load_var(b, v->u_discard_rect);<br>
+   nir_ssa_def *discard_rect = nir_load_var(b, v->v_discard_rect);<br>
    nir_ssa_def *dst_x0 = nir_channel(b, discard_rect, 0);<br>
    nir_ssa_def *dst_x1 = nir_channel(b, discard_rect, 1);<br>
    nir_ssa_def *dst_y0 = nir_channel(b, discard_rect, 2);<br>
@@ -514,7 +515,7 @@ blorp_nir_txf(nir_builder *b, struct brw_blorp_blit_vars *v,<br>
     */<br>
    assert(pos->num_components == 2);<br>
    pos = nir_vec3(b, nir_channel(b, pos, 0), nir_channel(b, pos, 1),<br>
-                     nir_load_var(b, v->u_src_z));<br>
+                     nir_load_var(b, v->v_src_z));<br>
<br>
    tex->sampler_dim = GLSL_SAMPLER_DIM_3D;<br>
    tex->coord_components = 3;<br>
@@ -1047,7 +1048,7 @@ blorp_nir_manual_blend_bilinear(nir_builder *b, nir_ssa_def *pos,<br>
                                 struct brw_blorp_blit_vars *v)<br>
 {<br>
    nir_ssa_def *pos_xy = nir_channels(b, pos, 0x3);<br>
-   nir_ssa_def *rect_grid = nir_load_var(b, v->u_rect_grid);<br>
+   nir_ssa_def *rect_grid = nir_load_var(b, v->v_rect_grid);<br>
    nir_ssa_def *scale = nir_imm_vec2(b, key->x_scale, key->y_scale);<br>
<br>
    /* Translate coordinates to lay out the samples in a rectangular  grid<br>
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
index b4beec2..2308b8d 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp<br>
@@ -67,16 +67,17 @@ brw_blorp_params_get_clear_kernel(struct brw_context *brw,<br>
    nir_builder_init_simple_shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
    b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "BLORP-clear");<br>
<br>
-   nir_variable *u_color = nir_variable_create(b.shader, nir_var_uniform,<br>
-                                               glsl_vec4_type(), "u_color");<br>
-   u_color->data.location = 0;<br>
+   nir_variable *v_color = nir_variable_create(b.shader, nir_var_shader_in,<br>
+                                               glsl_vec4_type(), "v_color");<br>
+   v_color->data.location = VARYING_SLOT_VAR0;<br>
+   v_color->data.interpolation = INTERP_QUALIFIER_FLAT;<br>
<br>
    nir_variable *frag_color = nir_variable_create(b.shader, nir_var_shader_out,<br>
                                                   glsl_vec4_type(),<br>
                                                   "gl_FragColor");<br>
    frag_color->data.location = FRAG_RESULT_COLOR;<br>
<br>
-   nir_copy_var(&b, frag_color, u_color);<br>
+   nir_copy_var(&b, frag_color, v_color);<br>
<br>
    struct brw_wm_prog_key wm_key;<br>
    brw_blorp_init_wm_prog_key(&wm_key);<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.5.5<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>