Bug 43122

Summary: piglit: spec/ARB_depth_buffer_float/fbo-depth-GL_DEPTH_COMPONENT32F-{blit,{read,draw,copy}pixels}
Product: Mesa Reporter: Kai <kai>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: brianp
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
i915 platform: i915 features:
Attachments: Bisection run for this bug
git bisect log

Description Kai 2011-11-20 09:36:35 UTC

Comment 1 Kai 2011-11-20 09:42:48 UTC
Sorry, I accidentially hit enter.

Todays piglit run showed many fixes [0], but also some regressions [1]. Among the regressions are the following ARB_depth_buffer_float tests:
* fbo-depth-GL_DEPTH_COMPONENT32F-blit
* fbo-depth-GL_DEPTH_COMPONENT32F-copypixels
* fbo-depth-GL_DEPTH_COMPONENT32F-drawpixels
* fbo-depth-GL_DEPTH_COMPONENT32F-readpixels

This is with the r600g driver on a R700 class chip.

Mesa: git/03df791c
libdrm: 2.4.27-1
Kernel: 3.1.1
X.Org: 2:
Distribution: Wheezy

[0] <http://dev.carbon-project.org/misc/piglit/fixes.html>
[1] <http://dev.carbon-project.org/misc/piglit/regressions.html>
Comment 2 Kai 2011-11-21 10:09:01 UTC
Created attachment 53744 [details]
Bisection run for this bug

As this is a regression, I did a git bisect, but unfortunately certain changes in the recent commit history made that nearly impossible:

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
We cannot bisect more!

I always hit
> g++ -Wall -g -O2 -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fno-builtin-memcmp -Wall -g -O2  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -DHAVE_XEXTPROTO_71 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0209 -fvisibility=hidden -o r200_dri.so.test ../../../../../src/mesa/drivers/dri/common/dri_test.o r200_dri.so.tmp  ../../../../../src/mesa/libmesa.a  -ldrm   -lexpat -lm -lpthread -ldl -ldrm_radeon  
> r200_dri.so.tmp: undefined reference to `_swrast_ReadPixels'
> collect2: ld returned 1 exit status

In any case, I've attached the bisection log. And maybe somebody can guess which of the above commits broke ARB_depth_buffer_float.

If you need more/other information, please let me know.
Comment 3 Kai 2011-11-21 10:36:44 UTC
Added Brian Paul to CC as all remaining commits were authored by him.
Comment 4 Brian Paul 2011-11-21 10:41:41 UTC
When you're bisecting and get the "undefined reference to `_swrast_ReadPixels'" error, just temporarily change the offending call to be _mesa_readpixels instead.  That should let you bisect to the precise commit.
Comment 5 Kai 2011-11-21 12:59:20 UTC
Created attachment 53753 [details]
git bisect log

Ok, with
applied to src/mesa/drivers/dri/intel/intel_pixel_read.c and src/mesa/drivers/dri/radeon/radeon_pixel_read.c I get:

> 94780b5ee6dc118e22c29b5543c4db8e0ab1f393 is the first bad commit
> commit 94780b5ee6dc118e22c29b5543c4db8e0ab1f393
> Author: Brian Paul <brianp@vmware.com>
> Date:   Mon Nov 14 13:06:29 2011 -0700
>     st/mesa: remove most of the ReadPixels code
>     We can use the core Mesa code for glReadPixels now.  We just have to
>     validate state and flush the bitmap cache before reading.
> :040000 040000 38787a22454bdc6821b28126fc40cbcc5aa377af 01a48610d6f8bb87bd448ea6fa610a799cb10029 M      src
Comment 6 Brian Paul 2011-11-21 13:13:16 UTC
I can't test the r600g driver so hopefully someone else can take a look at this.
Comment 7 Kai 2011-11-22 13:32:50 UTC
Just for reference: a fix has been proposed: <http://lists.freedesktop.org/archives/mesa-dev/2011-November/014968.html>
Comment 8 Kai 2011-11-23 08:05:18 UTC
Fixed by commit a7c107f3bc68ddeea8c24eec43c05000224ec93e

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.