System Environment: -------------------------- Arch: i386 Platform: Sandybridge Libdrm: (master)2.4.33-20-gd72a44c7c4f5eea9c1e5bb0c36cb9e0224b9ca22 Mesa: (master)729d9148244551c6bcae00a760f39a6902c925ef Xserver: (master)xorg-server-1.12.0-136-ge501c34d4937d5e6f19abd29f1ec7f95faa3bb55 Xf86_video_intel:(master)2.19.0-36-ga3d37fb29f8dffb0e370ad95783994aaa7eccfaf Libva: (vaapi-ext)f12f80371fb534e6bbf248586b3c17c298a31f4e Libva_intel_driver:(vaapi-ext)82fa52510a37ab645daaa3bb7091ff5096a20d0b Kernel: (drm-intel-next-queued) 38e490fea7d2885d79fcd1ca37edb64e489d470d Bug detailed description: ------------------------- It failed on Sandybridge with mesa master and 8.0 branch. This case has Bug 44963 on SNB GT2. The last known good commit:1bd3dafeca90f1293acd9b9ab63bf617139bfacf The last known bad commit: 729d9148244551c6bcae00a760f39a6902c925ef Reproduce steps: ---------------- 1. start X 2. ./oglconform -z -suite all -v 2 -D 116 -test depth-stencil basic.read.ds
When making a bug report, please show at least an excerpt of the actual failure report. Bisect? I get failure on both 8.0 and master on ivb, with minor accuracy errors.
Hua to bisect.
In process.
Bisect shows: a7ac9c9c7dc7401ca6143d1e7476df5e3c2758b7 is the first bad commit. commit a7ac9c9c7dc7401ca6143d1e7476df5e3c2758b7 Author: Marek Olšák <maraeo@gmail.com> Date: Mon Apr 23 18:11:38 2012 +0200 vbo: move vbo_draw_method into vbo_context.h But, revert the commit, this issue still exists. I will re-check.
Visual Report: ID |ACCELERA|DB |REND_T |SURF_T |C_BUF_T |BUF_S |RED_S | 141| 1| 1| gl| wipbpx| rgba| 32| 8| GREEN_S |BLUE_S |ALPHA_S |DEPTH_S |STENC_S |ACCUM_S |SPL_BUF |SAMPLES | 8| 8| 8| 24| 8| 64| 0| 0| SRGB |TEX_RGB |TEX_RGBA|CAVEAT |SWAP |M_PBUF_W|M_PBUF_H|M_PBUF_P -1| 0| 0| slow| undef| 0| 0| 0 OpenGL Report. Vendor - 'Intel Open Source Technology Center' Renderer - 'Mesa DRI Intel(R) Sandybridge Desktop x86/MMX/SSE2' Version - '3.0 Mesa 8.1-devel (git-7528e21)' (3.0) GLSL Version - '1.30' Context Flags - None >> Depth Stencil test (depth-stencil) test: --> 1.3.1 - basic.read.ds subcase: File - /GFX/build/testsuite/Oglconform_31/oglconform_31/src/OGLconform/depth-stencil.c, line - 1791. Error wrong output color values Subcase Id: 1.3.1 Subcase Name: basic.read.ds Title: Verify that OGL API allows depth stencil buffers read operation using DEPTH_STENCIL_EXT Test Purpose: Test should verify that for depth stencil buffers it is possible to use GL_DEPTH_STENCIL_EXT and GL_UNSIGNED_INT_24_8_EXT while read operation. Test Method: Define basic shape of depth and stencil buffers in form of two neighbor quads. Try to render two additional quads larger that those two wrote to depth/stencil buffers. Left quad is red the right one is blue. Read back rendered buffers and verify colors Read cycles should be performed several time in a loop with different region settings Pass Criteria: Test passes if updated and rendered buffers match with expected with defined epsilon . -------------------------- --< 1.3.1 - basic.read.ds subcase failed. << Depth Stencil test (depth-stencil) test failed. (1 of 1 subcases) Intel Conformance failed. Total Passed : 0 Total Failed : 1 Total Not run: 0
*** Bug 44963 has been marked as a duplicate of this bug. ***
It turns out that the super-hardware-specific bug was actually a one line mistake in Mesa's software depth span unpacking code. The original commit mentioned in #44963 changed DrawPixels to use a different unpack path, and that path happened to be slightly broken. Patch out for review on the mailing list: http://lists.freedesktop.org/archives/mesa-dev/2012-August/025590.html
commit 605f964d5cc7016fc74e0563829fa794da845c20 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Mon Aug 13 00:35:41 2012 -0700 mesa: Use GLdouble for depthMax in final unpack conversions. The final step of _mesa_unpack_depth_span is to take the temporary GLfloat depth values and convert them to the desired format. When converting to GL_UNSIGNED_INTEGER with depthMax > 0xffffff, we use double-precision math to avoid overflow and precision problems. Or at least that's the idea. Unfortunately GLdouble z = depthValues[i] * (GLfloat) depthMax; actually causes single-precision multiplication, since both operands are GLfloats. Casting depthMax to GLdouble causes the scaling to be done with double-precision math. Fixes a regression in oglconform's depth-stencil basic.read.ds test since c60ac7b17993d28af65b04f9bbbf3ee74c35358c, where the expected and actual values differed slightly. For example, 0xcfa7a6 vs. 0xcfa7a4. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49772 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
It fixed on mesa master commit 1597176f7090eea73f41b3114ae2a02a50ac7a12. Can't find "mesa: Use GLdouble for depthMax in final unpack conversions." on mesa 8.0 branch. It still fail on mesa 8.0 branch.
Thanks. I just cherry-picked it to 8.0.
Verified. Fixed by 57295009e895b1d39c083c3873fdeaf4dadd778b on 8.0 branch. commit 57295009e895b1d39c083c3873fdeaf4dadd778b Author: Kenneth Graunke <kenneth@whitecape.org> AuthorDate: Mon Aug 13 00:35:41 2012 -0700 Commit: Kenneth Graunke <kenneth@whitecape.org> CommitDate: Thu Aug 16 23:50:28 2012 -0700 mesa: Use GLdouble for depthMax in final unpack conversions.
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.