Bug 57309

Summary: [GM45, bisected] Around 40 piglit tests crash in emit_depthbuffer (brw=0x621ee0) at brw_misc_state.c:608
Product: Mesa Reporter: Pavel Ondračka <pavel.ondracka>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: eric, huax.lu
Version: gitKeywords: regression
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Pavel Ondračka 2012-11-20 09:31:02 UTC
While checking if bug 56962 was indeed fixed, I found another very recent regression. 

Regressed test are for example hiz-stencil-read-fbo-d0-s8, six of ARB_depth_buffer_float tests (fbo-clear-formats stencil, fbo-stencil-GL_DEPTH32F_STENCIL8-blit, etc.), 20 EXT_framebuffer_object tests, and 9 EXT_packed_depth_stencil tests.

First bad commit:
commit 52ee1a7269b84b60558760655a4c722d827703d4
Author: Eric Anholt <eric@anholt.net>
Date:   Sun Nov 4 12:47:02 2012 -0800

    i965: Move all the depth/stencil/hiz offset logic into the workaround.
    
    Given that we have the mask information here (assuming the rebase is to
    the same tiling, which is safe), we can just save a set of miptrees and
    offsets and the global intra-tile offset in the context and cut out a
    bunch of logic.  This will also save emitting the next fix I need to do
    twice.
    
    Acked-by: Chad Versace <chad.versace@linux.intel.com>

gdb ./bin/fbo-stencil
.....
(gdb) set args -auto blit GL_DEPTH32F_STENCIL8
(gdb) run
Starting program: /home/Paulie/piglit/bin/fbo-stencil -auto blit GL_DEPTH32F_STENCIL8
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Testing GL_DEPTH32F_STENCIL8.
Testing glBlitFramebuffer(stencil).

Program received signal SIGSEGV, Segmentation fault.
emit_depthbuffer (brw=0x621ee0) at brw_misc_state.c:608
608	      struct intel_region *region = depth_mt->region;
(gdb) bt
#0  emit_depthbuffer (brw=0x621ee0) at brw_misc_state.c:608
#1  0x00007ffff6d06372 in brw_upload_state (brw=brw@entry=0x621ee0) at brw_state_upload.c:500
#2  0x00007ffff6cd0b4f in brw_try_draw_prims (max_index=3, min_index=4294957768, ib=<optimized out>, nr_prims=<optimized out>, prim=0x7fffffffdab0, 
    arrays=<optimized out>, ctx=0x621ee0) at brw_draw.c:498
#3  brw_draw_prims (ctx=0x621ee0, prim=0x7fffffffdab0, nr_prims=<optimized out>, ib=<optimized out>, index_bounds_valid=<optimized out>, 
    min_index=0, max_index=3, tfb_vertcount=0x0) at brw_draw.c:585
#4  0x00007ffff682c211 in vbo_draw_arrays (ctx=0x621ee0, mode=mode@entry=6, start=start@entry=0, count=count@entry=4, 
    numInstances=numInstances@entry=1, baseInstance=baseInstance@entry=0) at ../../../src/mesa/vbo/vbo_exec_array.c:619
#5  0x00007ffff682c3d1 in vbo_exec_DrawArrays (mode=mode@entry=6, start=start@entry=0, count=count@entry=4)
    at ../../../src/mesa/vbo/vbo_exec_array.c:649
#6  0x00007ffff682c715 in _mesa_DrawArrays (mode=mode@entry=6, first=first@entry=0, count=count@entry=4)
    at ../../../src/mesa/vbo/vbo_exec_array.c:1409
#7  0x00007ffff68b2525 in _mesa_meta_glsl_Clear (ctx=ctx@entry=0x621ee0, buffers=buffers@entry=32) at ../../../src/mesa/drivers/common/meta.c:2049
#8  0x00007ffff6cc576b in brw_clear (mask=0, ctx=0x621ee0) at brw_clear.c:251
#9  brw_clear (ctx=0x621ee0, mask=<optimized out>) at brw_clear.c:220
#10 0x0000000000401e14 in test_copy () at /home/Paulie/piglit/tests/fbo/fbo-stencil.c:232
#11 0x00000000004021d9 in piglit_display () at /home/Paulie/piglit/tests/fbo/fbo-stencil.c:318
#12 0x00007ffff7adc694 in display () at /home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#13 0x00007ffff7db7ca4 in fghRedrawWindow (window=0x60ea00) at freeglut_main.c:207
#14 fghcbDisplayWindow (window=0x60ea00, enumerator=0x7fffffffdd40) at freeglut_main.c:224
#15 0x00007ffff7dbb469 in fgEnumWindows (enumCallback=enumCallback@entry=0x7ffff7db7c00 <fghcbDisplayWindow>, 
    enumerator=enumerator@entry=0x7fffffffdd40) at freeglut_structure.c:396
#16 0x00007ffff7db81ec in fghDisplayAll () at freeglut_main.c:247
#17 glutMainLoopEvent () at freeglut_main.c:1485
#18 0x00007ffff7db8a3d in glutMainLoop () at freeglut_main.c:1533
#19 0x00007ffff7adc866 in run_test (gl_fw=0x7ffff7d94980, argc=3, argv=0x7fffffffe0f8)
    at /home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:127
#20 0x00007ffff7ada985 in piglit_gl_test_run (argc=3, argv=0x7fffffffe0f8, config=0x7fffffffdfe0)
    at /home/Paulie/piglit/tests/util/piglit-framework-gl.c:127
#21 0x0000000000401756 in main (argc=4, argv=0x7fffffffe0f8) at /home/Paulie/piglit/tests/fbo/fbo-stencil.c:43

GPU: GM45
Mesa: 	1665af3066f3d58c42e9d5b13098f13615a7672c
Kernel: 3.6.6-1.fc17.x86_64
libdrm: 7d42b49c0cf19dbb4531cd84efae51f95db2eea1
xf86-video-intel: f4c32af48b0c92a48131090886a6a6b6c45dbe34 (sna enabled)
Comment 1 Eric Anholt 2012-11-27 02:00:28 UTC
*** Bug 57357 has been marked as a duplicate of this bug. ***
Comment 2 Eric Anholt 2012-11-30 06:35:37 UTC
commit c8ed9f6262a73849a64c55bcfaac2a50e42e0945
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Nov 26 14:46:11 2012 -0800

    i965/gen4-5: Fix segfaults with stencil-only depth/stencil setups.
Comment 3 Pavel Ondračka 2012-11-30 11:19:40 UTC
Majority of the tests is fixed, however two of them 
"fbo-clear-formats GL_ARB_depth_buffer_float stencil -auto" and "depthstencil-render-miplevels 1024 s=z24_s8 -auto" just went from crash to fail after c8ed9f6262a73849a64c55bcfaac2a50e42e0945. Both passed before 52ee1a7269b84b60558760655a4c722d827703d4.
Comment 4 Pavel Ondračka 2013-02-16 16:26:32 UTC
The remaining failures are unrelated...

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.