[Mesa-dev] commit 0a1479c829 breaks glsl-fs-lots-of-tex.shader_test on nv50/nvc0

Ilia Mirkin imirkin at alum.mit.edu
Thu Jan 9 01:04:35 PST 2014


Hi Marek,

I won't pretend to understand what's going on, but I just bisected a
failure on tests/shaders/glsl-fs-lots-of-tex.shader_test in piglit
between 9.1 and HEAD, and it landed on your commit. It's approximately
the simplest shader known to man (esp at HEAD when all the TEX
instructions are gone due to CSE), so I'm guessing there's some edge
condition in the copying logic triggered by it.

Would be good to check if the same failure happens on radeon, although
it works fine with llvmpipe. Assuming that nouveau is the only broken
thing, any suggestions of what to look for?

Thanks,

  -ilia

0a1479c829ed34a65e60c6619a8164e1b079aaee is the first bad commit
commit 0a1479c829ed34a65e60c6619a8164e1b079aaee
Author: Marek Olsak <maraeo at gmail.com>
Date:   Thu Feb 14 01:03:55 2013 +0100

    st/mesa: implement blit-based TexImage and TexSubImage

    A temporary texture is created such that it matches the format and type
    combination and pixels are copied to it using memcpy. Then the
blit is used to
    copy the temporary texture to the texture image being modified by
TexImage or
    TexSubImage. The blit takes care of the format and type conversion and
    swizzling. The result is a very fast texture upload involving as little CPU
    as possible.

    This improves performance in apps which upload textures during rendering.
    An example is the Wine OpenGL backend for DirectDraw, which I used to test
    the game StarCraft. Profiling had shown that TexSubImage was taking 50% of
    CPU time without this patch, which was the main motivation for
this work, and
    now TexSubImage only takes 14% of CPU time. I had to underclock my
CPU to see
    any difference in the game and this patch does make the game a lot faster
    if the CPU is slow (or using the powersave cpufreq profile).

    Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list