[Mesa-dev] [v2 7/18] i965/blorp: Load tranformation coordinates as vec4

Pohjolainen, Topi topi.pohjolainen at intel.com
Mon Jul 4 16:38:03 UTC 2016


On Mon, Jul 04, 2016 at 08:05:50AM -0700, Jason Ekstrand wrote:
>    Thanks for the quick turnaround.  Patches 6, 6.1, and 7 are
> 
>    Reviewed-by: Jason Ekstrand <[1]jason at jlekstrand.net>
> 
>    I assume that the "use flat inputs" patch just tweaks the LOAD_INPUT
>    macro in the obvious way?  If so, then we should be good to go. Thanks
>    for working on this!  I like blorp not trashing as much state. :-)

Oh, I forgot to re-send that to the list. Yes, it just adjusts the macro.
Coming up...

> 
>    On Jul 3, 2016 11:41 PM, "Topi Pohjolainen"
>    <[2]topi.pohjolainen at intel.com> wrote:
> 
>    In preparation for loading as flat vertex input.
> 
>      v2: Use LOAD_INPUT() macro
>      Signed-off-by: Topi Pohjolainen <[3]topi.pohjolainen at intel.com>
>      Reviewed-by: Jason Ekstrand <[4]jason at jlekstrand.net> (v1)
>      ---
>       src/mesa/drivers/dri/i965/brw_blorp.h        |  3 +--
>       src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 24
>      ++++++++++--------------
>       2 files changed, 11 insertions(+), 16 deletions(-)
>      diff --git a/src/mesa/drivers/dri/i965/brw_blorp.h
>      b/src/mesa/drivers/dri/i965/brw_blorp.h
>      index f5dba58..3f77ca4 100644
>      --- a/src/mesa/drivers/dri/i965/brw_blorp.h
>      +++ b/src/mesa/drivers/dri/i965/brw_blorp.h
>      @@ -212,8 +212,7 @@ struct brw_blorp_wm_inputs
>       {
>          struct brw_blorp_discard_rect discard_rect;
>          struct brw_blorp_rect_grid rect_grid;
>      -   struct brw_blorp_coord_transform x_transform;
>      -   struct brw_blorp_coord_transform y_transform;
>      +   struct brw_blorp_coord_transform coord_transform[2];
>          /* Minimum layer setting works for all the textures types but
>      texture_3d
>           * for which the setting has no effect. Use the z-coordinate
>      instead.
>      diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
>      b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
>      index dbf33e1..0d9fb92 100644
> 
>    --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
>    +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
>    @@ -333,10 +333,7 @@ struct brw_blorp_blit_vars {
>        /* Input values from brw_blorp_wm_inputs */
>        nir_variable *u_discard_rect;
>        nir_variable *u_rect_grid;
>    -   struct {
>    -      nir_variable *multiplier;
>    -      nir_variable *offset;
>    -   } u_x_transform, u_y_transform;
>    +   nir_variable *u_coord_transform;
>        nir_variable *u_src_z;
>        /* gl_FragCoord */
> 
>      @@ -360,10 +357,7 @@ brw_blorp_blit_vars_init(nir_builder *b, struct
>      brw_blorp_blit_vars *v,
>          LOAD_INPUT(discard_rect, glsl_vec4_type())
>          LOAD_INPUT(rect_grid, glsl_vec4_type())
>      -   LOAD_INPUT(x_transform.multiplier, glsl_float_type())
>      -   LOAD_INPUT(x_transform.offset, glsl_float_type())
>      -   LOAD_INPUT(y_transform.multiplier, glsl_float_type())
>      -   LOAD_INPUT(y_transform.offset, glsl_float_type())
>      +   LOAD_INPUT(coord_transform, glsl_vec4_type())
>          LOAD_INPUT(src_z, glsl_uint_type())
>       #undef LOAD_INPUT
>      @@ -401,10 +395,12 @@ nir_ssa_def *
> 
>     blorp_blit_apply_transform(nir_builder *b, nir_ssa_def *src_pos,
>                                struct brw_blorp_blit_vars *v)
>     {
>    -   nir_ssa_def *offset = nir_vec2(b, nir_load_var(b,
>    v->u_x_transform.offset),
>    -                                     nir_load_var(b,
>    v->u_y_transform.offset));
>    -   nir_ssa_def *mul = nir_vec2(b, nir_load_var(b,
>    v->u_x_transform.multiplier),
>    -                                  nir_load_var(b,
>    v->u_y_transform.multiplier));
>    +   nir_ssa_def *coord_transform = nir_load_var(b,
>    v->u_coord_transform);
>    +
>    +   nir_ssa_def *offset = nir_vec2(b, nir_channel(b, coord_transform,
>    1),
>    +                                     nir_channel(b, coord_transform,
>    3));
>    +   nir_ssa_def *mul = nir_vec2(b, nir_channel(b, coord_transform, 0),
>    +                                  nir_channel(b, coord_transform, 2));
>        return nir_ffma(b, src_pos, mul, offset);
>     }
> 
>      @@ -1847,9 +1843,9 @@ brw_blorp_blit_miptrees(struct brw_context
>      *brw,
>          params.wm_inputs.rect_grid.y1 =
>             minify(src_mt->logical_height0, src_level) *
>      wm_prog_key.y_scale - 1.0f;
>      -   brw_blorp_setup_coord_transform(&params.wm_inputs.x_transform,
>      +
>      brw_blorp_setup_coord_transform(&params.wm_inputs.coord_transform[0]
>      ,
>                                          src_x0, src_x1, dst_x0, dst_x1,
>      mirror_x);
>      -   brw_blorp_setup_coord_transform(&params.wm_inputs.y_transform,
>      +
>      brw_blorp_setup_coord_transform(&params.wm_inputs.coord_transform[1]
>      ,
>                                          src_y0, src_y1, dst_y0, dst_y1,
>      mirror_y);
>          if (brw->gen >= 8 && params.src.mt->target == GL_TEXTURE_3D) {
> 
>    --
>    2.5.5
>    _______________________________________________
>    mesa-dev mailing list
>    [5]mesa-dev at lists.freedesktop.org
>    [6]https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> References
> 
>    1. mailto:jason at jlekstrand.net
>    2. mailto:topi.pohjolainen at intel.com
>    3. mailto:topi.pohjolainen at intel.com
>    4. mailto:jason at jlekstrand.net
>    5. mailto:mesa-dev at lists.freedesktop.org
>    6. https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list