[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(¶ms.wm_inputs.x_transform,
> +
> brw_blorp_setup_coord_transform(¶ms.wm_inputs.coord_transform[0]
> ,
> src_x0, src_x1, dst_x0, dst_x1,
> mirror_x);
> - brw_blorp_setup_coord_transform(¶ms.wm_inputs.y_transform,
> +
> brw_blorp_setup_coord_transform(¶ms.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