[Mesa-dev] [PATCH v2 0/5] i965: ASTC5x5 workaround
Tapani Pälli
tapani.palli at intel.com
Wed Feb 14 07:58:19 UTC 2018
On 14.02.2018 09:54, Tapani Pälli wrote:
>
>
> On 14.02.2018 09:38, Rogovin, Kevin wrote:
>> Hi,
>>
>> The 3rd patch, "i965: use ASTC5x5 workaround in
>> intel_miptree_texture_aux_usage has issues:
>> 1. Definitely: brw_draw lacks the call to
>> gen9_astc5x5_perform_wa() which generates the needed flush between
>> batchbuffers
>
> Now it happens via intel_miptree_prepare_texture (in
> intel_miptree_texture_aux_usage).
No it does not, sorry for that :) Yeah I believe I need to restore that.
>
>> 2. Uneasy: I am nervous about hitting
>> intel_miptree_texture_aux_usage() as it is used in lots of places
>> directly and indirectly. The interaction with blorp resolve makes me
>> very uneasy.... I would rather restore the bool argument disable_aux
>> to intel_miptree_prepare_render() to keep the ASTC evil a little more
>> localized (the function is used only in brw_draw.c for resolving inputs).
>
> IMO it feels more centralized .. but no strong opinions here. I haven't
> spotted any regressions because of this.
>
>
>> -Kevin
>>
>>
>> -----Original Message-----
>> From: Palli, Tapani
>> Sent: Monday, February 12, 2018 10:14 AM
>> To: Rogovin, Kevin <kevin.rogovin at intel.com>; Jason Ekstrand
>> <jason at jlekstrand.net>
>> Cc: ML mesa-dev <mesa-dev at lists.freedesktop.org>
>> Subject: Re: [Mesa-dev] [PATCH v2 0/5] i965: ASTC5x5 workaround
>>
>>
>>
>> On 02/12/2018 09:44 AM, Tapani Pälli wrote:
>>> Hi;
>>>
>>> On 02/08/2018 09:50 AM, Rogovin, Kevin wrote:
>>>> Hi,
>>>>
>>>> I gave it a whirl of setting the .mocs field set to 0 passed to
>>>> isl_surf_fill_state() ALWAYS. Sadly CarChase GLES continued to hang
>>>> (where as the GL did not because it does not use ASTC). This makes
>>>> sense since MOCS (atleast last time I looked at it) only really
>>>> controls cache usage for L3 and eLLC (please anyone correct me if I
>>>> am wrong in this) whereas the issue is that the samplers mess up how
>>>> they deal with its own (private) cache.
>>>>
>>>> It really is nasty that it appears (as of now) that this complicated
>>>> work around is needed and needs to somehow be re-implemented in anv
>>>> as well.
>>>
>>> It seems surrounding code has changed so that these patches need some
>>> changes. Kevin, are you planning to rebase/refactor these changes?
>>
>> FYI I've rebased the patches and did additional porting (because of
>> commit df13588d21) here:
>>
>> https://cgit.freedesktop.org/~tpalli/mesa/log/?h=astc5x5
>>
>> Let me know if this looks OK for you.
>>
>>>
>>>> -Kevin
>>>>
>>>> *From:*Jason Ekstrand [mailto:jason at jlekstrand.net]
>>>> *Sent:* Thursday, February 8, 2018 2:47 AM
>>>> *To:* Rogovin, Kevin <kevin.rogovin at intel.com>
>>>> *Cc:* ML mesa-dev <mesa-dev at lists.freedesktop.org>
>>>> *Subject:* Re: [Mesa-dev] [PATCH v2 0/5] i965: ASTC5x5 workaround
>>>>
>>>> Random thought:
>>>>
>>>> Nanley and I were talking about this just now and I was complaining
>>>> about how much I hate the fact that this workaround exists because we
>>>> can't implement it in Vulkan. Then I got an idea. What would happen
>>>> if we just set MOCS to zero (uncached) for ASTC 5x5 textures? Does
>>>> that make the hang go away? How bad is the car chase performance
>>>> with that compared to this series? It's a bit of a big hammer but
>>>> has the advantage of simplicity. If it causes performance to tank on
>>>> anything then then the more complex solution is probably worth it but
>>>> I thought it was worth a try.
>>>>
>>>> --Jason
>>>>
>>>> On Thu, Dec 14, 2017 at 9:39 AM, <kevin.rogovin at intel.com
>>>> <mailto:kevin.rogovin at intel.com>> wrote:
>>>>
>>>> From: Kevin Rogovin <kevin.rogovin at intel.com
>>>> <mailto:kevin.rogovin at intel.com>>
>>>>
>>>> This patch series implements a needed workaround for Gen9 for
>>>> ASTC5x5
>>>> sampler reads. The crux of the work around is to make sure that
>>>> the
>>>> sampler does not read an ASTC5x5 texture and a surface with an
>>>> auxilary
>>>> buffer without having a texture cache invalidate and command
>>>> streamer
>>>> stall between such accesses.
>>>>
>>>> With this patch series applied to the (current) master branch of
>>>> mesa,
>>>> carchase works on my SKL GT4.
>>>>
>>>> v2:
>>>> Rename workaround functions from brw_ to gen9_
>>>> (suggested/requested by Topi Pohjolainen).
>>>>
>>>> Place texture resolve to avoid using auxilary surface
>>>> when ASTC5x5 is detected in brw_predraw_resolve_inputs()
>>>> instead of another detected function; doing so allows
>>>> one to avoid walking the textures again.
>>>> (suggested/requested by Topi Pohjolainen).
>>>>
>>>> Emit command streamer stall in addition to texture
>>>> invalidate.
>>>> (original short-coming caught by Jason Ekstrand)
>>>>
>>>> Place workaround function in (new) dedicated file.
>>>>
>>>> Minor path re-ordering to accomodate changes.
>>>>
>>>> Kevin Rogovin (5):
>>>> i965: define astx5x5 workaround infrastructure
>>>> i965: set ASTC5x5 workaround texture type tracking on texture
>>>> validate
>>>> i965: use ASTC5x5 workaround in brw_draw
>>>> i965: use ASTC5x5 workaround in brw_compute
>>>> i965: ASTC5x5 workaround logic for blorp
>>>>
>>>> src/mesa/drivers/dri/i965/Makefile.sources | 1 +
>>>> src/mesa/drivers/dri/i965/brw_compute.c | 6 ++++
>>>> src/mesa/drivers/dri/i965/brw_context.c | 6 ++++
>>>> src/mesa/drivers/dri/i965/brw_context.h | 24
>>>> ++++++++++++++++
>>>> src/mesa/drivers/dri/i965/brw_draw.c | 16
>>>> +++++++++--
>>>> src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 5 ++++
>>>> src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c | 36
>>>> ++++++++++++++++++++++++
>>>> 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 +++++++++
>>>> src/mesa/drivers/dri/i965/meson.build | 1 +
>>>> 12 files changed, 124 insertions(+), 6 deletions(-)
>>>> create mode 100644 src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c
>>>>
>>>> --
>>>> 2.7.4
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> <mailto:mesa-dev at lists.freedesktop.org>
>>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> mesa-dev mailing list
>>>> mesa-dev at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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