<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">-Kevin
<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></a></p>
<p class="MsoNormal"><a name="_____replyseparator"></a><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Jason Ekstrand [mailto:jason@jlekstrand.net]
<br>
<b>Sent:</b> Thursday, February 8, 2018 2:47 AM<br>
<b>To:</b> Rogovin, Kevin <kevin.rogovin@intel.com><br>
<b>Cc:</b> ML mesa-dev <mesa-dev@lists.freedesktop.org><br>
<b>Subject:</b> Re: [Mesa-dev] [PATCH v2 0/5] i965: ASTC5x5 workaround<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Random thought:<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">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.<o:p></o:p></p>
</div>
<p class="MsoNormal">--Jason<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Thu, Dec 14, 2017 at 9:39 AM, <<a href="mailto:kevin.rogovin@intel.com" target="_blank">kevin.rogovin@intel.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">From: Kevin Rogovin <<a href="mailto:kevin.rogovin@intel.com">kevin.rogovin@intel.com</a>><br>
<br>
This patch series implements a needed workaround for Gen9 for ASTC5x5<br>
sampler reads. The crux of the work around is to make sure that the<br>
sampler does not read an ASTC5x5 texture and a surface with an auxilary<br>
buffer without having a texture cache invalidate and command streamer<br>
stall between such accesses.<br>
<br>
With this patch series applied to the (current) master branch of mesa,<br>
carchase works on my SKL GT4.<br>
<br>
v2:<br>
  Rename workaround functions from brw_ to gen9_<br>
  (suggested/requested by Topi Pohjolainen).<br>
<br>
  Place texture resolve to avoid using auxilary surface<br>
  when ASTC5x5 is detected in brw_predraw_resolve_inputs()<br>
  instead of another detected function; doing so allows<br>
  one to avoid walking the textures again.<br>
  (suggested/requested by Topi Pohjolainen).<br>
<br>
  Emit command streamer stall in addition to texture<br>
  invalidate.<br>
  (original short-coming caught by Jason Ekstrand)<br>
<br>
  Place workaround function in (new) dedicated file.<br>
<br>
  Minor path re-ordering to accomodate changes.<br>
<br>
Kevin Rogovin (5):<br>
  i965: define astx5x5 workaround infrastructure<br>
  i965: set ASTC5x5 workaround texture type tracking on texture validate<br>
  i965: use ASTC5x5 workaround in brw_draw<br>
  i965: use ASTC5x5 workaround in brw_compute<br>
  i965: ASTC5x5 workaround logic for blorp<br>
<br>
 src/mesa/drivers/dri/i965/Makefile.sources       |  1 +<br>
 src/mesa/drivers/dri/i965/brw_compute.c          |  6 ++++<br>
 src/mesa/drivers/dri/i965/brw_context.c          |  6 ++++<br>
 src/mesa/drivers/dri/i965/brw_context.h          | 24 ++++++++++++++++<br>
 src/mesa/drivers/dri/i965/brw_draw.c             | 16 +++++++++--<br>
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c |  5 ++++<br>
 src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c      | 36 ++++++++++++++++++++++++<br>
 src/mesa/drivers/dri/i965/genX_blorp_exec.c      |  5 ++++<br>
 src/mesa/drivers/dri/i965/intel_batchbuffer.c    |  1 +<br>
 src/mesa/drivers/dri/i965/intel_tex_image.c      | 16 ++++++++---<br>
 src/mesa/drivers/dri/i965/intel_tex_validate.c   | 13 +++++++++<br>
 src/mesa/drivers/dri/i965/meson.build            |  1 +<br>
 12 files changed, 124 insertions(+), 6 deletions(-)<br>
 create mode 100644 src/mesa/drivers/dri/i965/gen9_astc5x5_wa.c<br>
<span style="color:#888888"><br>
<span class="hoenzb">--</span><br>
<span class="hoenzb">2.7.4</span><br>
<br>
<span class="hoenzb">_______________________________________________</span><br>
<span class="hoenzb">mesa-dev mailing list</span><br>
<span class="hoenzb"><a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a></span><br>
<span class="hoenzb"><a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a></span></span><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>