<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 22, 2014 at 7:52 PM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Monday, December 22, 2014 07:43:11 PM Kristian Høgsberg wrote:<br>
> On Mon, Dec 22, 2014 at 3:20 PM, Chris Forbes <<a href="mailto:chrisf@ijw.co.nz">chrisf@ijw.co.nz</a>> wrote:<br>
> > Are there some performance numbers to go with this?<br>
><br>
> Once of the synmark test cases (terrain) hits this path (pbo upload to<br>
> a 2d texture array) and the idea is that implementing this avoids the<br>
> MapTexture fallback paths.  The MapTexture paths often end up<br>
> stalling, doing extra copies or dirtying (setting write domain to cpu)<br>
> the entire texture even if we only update a part of one slice.<br>
><br>
> As is, the patch series doesn't help that case, since we fail to blit<br>
> into the texture because it's too big.  Bens blitter fix over here:<br>
><br>
>   <a href="http://cgit.freedesktop.org/~bwidawsk/mesa/log/?h=texture-array-opt" target="_blank">http://cgit.freedesktop.org/~bwidawsk/mesa/log/?h=texture-array-opt</a><br>
><br>
> works around the limitation by treating each slice as a separate<br>
> texture and with that I get a 3% speedup on IVB for the mentioned test<br>
> case.  On BYT the speed up is much bigger, since we avoid setting the<br>
> write domain to cpu for the entire 2d array texture, which avoids<br>
> clflushing 142mb per batch.<br>
><br>
> I think it might be interesting to try to use meta for blitting<br>
> instead of the hw blitter. I have a feeling we lose performance in<br>
> synchronization between the two rings.<br>
><br>
> Kristian<br>
<br>
</span>Yes, I'd be really interested in a meta-based path - the 3D engine<br>
is usually much faster than the BLT these days.<br></blockquote><div><br></div><div>I've been cooking up an evil scheme to do meta-based pbo upload and GPU format conversion.  I think it would be fun to try.<br></div><div>--Jason<br></div></div><br></div></div>