[Mesa-dev] [PATCH 0/5] i965: ASTC5x5 workaround
Pohjolainen, Topi
topi.pohjolainen at gmail.com
Mon Dec 4 10:48:41 UTC 2017
On Mon, Dec 04, 2017 at 09:01:44AM +0000, Rogovin, Kevin wrote:
> 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.
I wanted to see how it would look using brw_predraw_resolve_inputs(). See the
patch I sent as reply and let me know how you feel about doing something of
that sort.
Writing that reminded me of something I meant to ask: do we hit the sampler
bug with both directions: sampling astc5x5 first and then aux, and vice versa?
Or is only one direction problematic?
>
> 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