[Mesa-dev] [PATCH] i965/blorp: Add a format parameter to blorp_fast_clear
Pohjolainen, Topi
topi.pohjolainen at gmail.com
Thu Aug 25 14:09:51 UTC 2016
On Tue, Aug 23, 2016 at 11:08:00AM -0700, Jason Ekstrand wrote:
> We were inferring the format from the surface but that doesn't always work
> as the surface format is the texture format and we want the render format
> (which may be different on i965).
Makes sense:
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
Does this fix anything currently or are just preparing for something?
>
> Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
> Cc: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
> src/mesa/drivers/dri/i965/blorp.h | 2 +-
> src/mesa/drivers/dri/i965/blorp_clear.c | 4 ++--
> src/mesa/drivers/dri/i965/brw_blorp.c | 4 +++-
> 3 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/blorp.h b/src/mesa/drivers/dri/i965/blorp.h
> index c20e2be..22b5760 100644
> --- a/src/mesa/drivers/dri/i965/blorp.h
> +++ b/src/mesa/drivers/dri/i965/blorp.h
> @@ -68,7 +68,7 @@ brw_blorp_blit(struct brw_context *brw,
> void
> blorp_fast_clear(struct brw_context *brw,
> const struct brw_blorp_surf *surf,
> - uint32_t level, uint32_t layer,
> + uint32_t level, uint32_t layer, enum isl_format format,
> uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1);
>
> void
> diff --git a/src/mesa/drivers/dri/i965/blorp_clear.c b/src/mesa/drivers/dri/i965/blorp_clear.c
> index 2da08f8..9e6b2a9 100644
> --- a/src/mesa/drivers/dri/i965/blorp_clear.c
> +++ b/src/mesa/drivers/dri/i965/blorp_clear.c
> @@ -99,7 +99,7 @@ brw_blorp_params_get_clear_kernel(struct brw_context *brw,
>
> void
> blorp_fast_clear(struct brw_context *brw, const struct brw_blorp_surf *surf,
> - uint32_t level, uint32_t layer,
> + uint32_t level, uint32_t layer, enum isl_format format,
> uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1)
> {
> struct brw_blorp_params params;
> @@ -119,7 +119,7 @@ blorp_fast_clear(struct brw_context *brw, const struct brw_blorp_surf *surf,
> brw_blorp_params_get_clear_kernel(brw, ¶ms, true);
>
> brw_blorp_surface_info_init(brw, ¶ms.dst, surf, level, layer,
> - surf->surf->format, true);
> + format, true);
>
> brw_blorp_exec(brw, ¶ms);
> }
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
> index f4c2740..b504861 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp.c
> +++ b/src/mesa/drivers/dri/i965/brw_blorp.c
> @@ -647,7 +647,9 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
> DBG("%s (fast) to mt %p level %d layer %d\n", __FUNCTION__,
> irb->mt, irb->mt_level, irb->mt_layer);
>
> - blorp_fast_clear(brw, &surf, level, layer, x0, y0, x1, y1);
> + blorp_fast_clear(brw, &surf, level, layer,
> + brw->render_target_format[format],
> + x0, y0, x1, y1);
>
> /* Now that the fast clear has occurred, put the buffer in
> * INTEL_FAST_CLEAR_STATE_CLEAR so that we won't waste time doing
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list