Bug 96656

Summary: [regression, bisected] all textureGather piglits fail
Product: Mesa Reporter: Samuel Pitoiset <samuel.pitoiset>
Component: Drivers/DRI/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Nouveau Project <nouveau>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Samuel Pitoiset 2016-06-23 13:53:21 UTC
Hi,

After bisecting, the first bad commit is:

3735a925ef5692c836c4d26d6adee370dae1c2b0 is the first bad commit
commit 3735a925ef5692c836c4d26d6adee370dae1c2b0
Author: Nicolai Hähnle <nicolai.haehnle@amd.com>
Date:   Wed Jun 8 13:24:14 2016 +0200

    st/mesa: cache staging texture for glReadPixels
    
    v2: add ST_DEBUG flag for disabling (suggested by Ilia)
    
    Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)

:040000 040000 f3adb5adc43e4def32bd23896489520d8cae84c6 72b374e2221e9cc1306d7bfacf39780ec5e42d36 M	src

Test case:
bin/textureGather fs nonconst r 0 float 2D repeat -auto -fbo
[And all textureGather variants also fail.]

Hardware:
NVIDIA GK107, but this probably affects all Gallium drivers.

Disabling the glReadPixels cache fixes the regression.

$ ST_DEBUG="noreadpixcache" bin/textureGather fs nonconst r 0 float 2D repeat -auto -fbo
PIGLIT: {"result": "pass" }
Comment 1 Ilia Mirkin 2016-06-24 01:26:45 UTC
It appears that not all textureGather variants fail. Only nonconst and offset ones. (On my GK208 at least.) And the offset ones pass on GT215 (and it doesn't support the nonconst one - that requires ARB_gpu_shader5).

The image that appears on the screen is the same independent of ST_DEBUG=noreadpixcache, but in the latter case, the test passes. Still investigating.
Comment 2 Ilia Mirkin 2016-06-24 16:10:54 UTC
The problem was pre-existing, but a combination of factors made the readpixels cache expose it harder.

Fixed by:

commit b433cb51e50cab878cbaa023662bacd1f923a183
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Thu Jun 23 22:33:59 2016 -0400

    nvc0: when mapping directly, provide accurate xfer info + start
    
    We were ignoring the incoming box parameters, and were providing totally
    bogus stride/layer stride, and other bits, for when a non-full-surface
    map was requested.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
    Cc: <mesa-stable@lists.freedesktop.org>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.