[Mesa-dev] [PATCH 0/5] i965: ASTC5x5 workaround

Rogovin, Kevin kevin.rogovin at intel.com
Mon Dec 4 09:01:44 UTC 2017


Hi,

> 1) do extra tex cache flush when needed and specifically only when needed
> 2) resolve surfaces when undesired combination is about to be sampled

>Latter case could be addressed also with on-the-fly check in brw_predraw_resolve_inputs(). There one goes thru all the active textures for the
> next draw call and resolves when necessary. One could check for the undesired combination of textures there. I understand we would need to
> walk the textures twice, first to check for any occurrences of one type and then for the other. This, however, would fit to the way we resolve
> other texture types and prevent from adding more things to check into the context.

This patch series does handle the second case, as follows:
 a) Checking if there are astc5x5 textures and/or textures with auxiliary is done in brw_validate_textures(); this was a really nice place because
      the function loops over all textures anyways
 b) the resolve operation is handled by the added function brw_atsc_perform_wa(); this also sets the mode correctly too after the resolve.

I chose to make a dedicated function that does the mode setting and resolve.  Putting the resolve logic into brw_predraw_resolve_inputs()
is not a bad idea and I am open to it; the interior of the loop would then look ickier as it would had the check on each texture unit of if
the workaround is necessary and if there is an astc5x5 sampler handing around. It would also kill off a member from the astc5x5_wa
struct that tracks if there are auxiliary textures.

At any rate, I'd appreciate some review for the code so it can land in some form shortly.

-Kevin

> 
> 
> Kevin Rogovin (5):
>   i965: define astc5x5 workaround infrastructure
>   i965: ASTC5x5 workaround logic for blorp
>   i965: set ASTC5x5 workaround texture type tracking on texture validate
>   i965: use ASTC5x5 workaround in brw_draw
>   i965: use ASTC5x5 workaround in brw_compute
> 
>  src/mesa/drivers/dri/i965/brw_compute.c          |  6 +++
>  src/mesa/drivers/dri/i965/brw_context.c          | 63 ++++++++++++++++++++++++
>  src/mesa/drivers/dri/i965/brw_context.h          | 23 +++++++++
>  src/mesa/drivers/dri/i965/brw_draw.c             |  6 +++
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c |  5 ++
>  src/mesa/drivers/dri/i965/genX_blorp_exec.c      |  5 ++
>  src/mesa/drivers/dri/i965/intel_batchbuffer.c    |  1 +
>  src/mesa/drivers/dri/i965/intel_tex_image.c      | 16 ++++--
>  src/mesa/drivers/dri/i965/intel_tex_validate.c   | 13 +++++
>  9 files changed, 134 insertions(+), 4 deletions(-)
> 
> --
> 2.14.2
> 
> _______________________________________________
> 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