[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