Bug 36572

Summary: [bisected]oglc case texenv segfaults
Product: Mesa Reporter: fangxun <xunx.fang>
Component: Drivers/DRI/i965Assignee: Eric Anholt <eric>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: high CC: eric
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: oglc texenv output on screen

Description fangxun 2011-04-25 02:59:03 UTC
Created attachment 46047 [details]
oglc texenv output on screen

System Environment:
--------------------------
Arch:           x86-64
Platform:       piketon 
Libdrm:         (master)2.4.25
Mesa:           (master)0a9cec3475fb14be8aa5fa66557d338556cd8ed5
Xserver:                (master)xorg-server-1.10.0-257-g918a9c99cf2ebc73acb34b95f597904b93c690d9
Xf86_video_intel:  (master)2.15.0-6-g67e5a74e997f199327f9115c7ba867df3c49da8d
Kernel: (drm-intel-next)daab1470018f025e0b1c8731dfb825ff421ffd9b


Bug detailed description:
-------------------------
It also happens on Sandybridge. 
Bisect shows 1f32c665c8af0622e2bbf451edb999ffbcd7d0fe is the first bad commit. commit 1f32c665c8af0622e2bbf451edb999ffbcd7d0fe
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Apr 20 11:48:31 2011 -0700

    intel: Add support for ARB_sampler_objects.
    
    This extension support consists of replacing
    "gl_texture_obj->Sampler." with "_mesa_get_samplerobj(ctx, unit)->".
    One instance of referencing the texture's base sampler remains in the
    initial miptree allocation, where I'm not sure we have a clear 


Reproduce steps:
-------------------------
1. start X
2. oglconform -z -s -suite all -v 2 -D 33 -test texenv
Comment 1 fangxun 2011-04-28 01:57:44 UTC
It segfaults with INTEL_STRICT_CONFORMANCE=1.  

Four oglc cases also segfaults due to the same commit 1f32c66.  
Below are these cases: 
fptex, anisotropic-filter(basic.perspective), max_values(advanced.textureSize.thin-1d), max_values(advanced.textureSize.thin-2d), max_values(advanced.textureSize.thin-3d.
Comment 2 fangxun 2011-05-03 02:07:18 UTC
Backtrace(INTEL_STRICT_CONFORMANCE=1 ./oglconform -z -s -suite all -v 2 -D 33 -test texenv):
#0  check_fallbacks (ctx=0x7ffff69f2010, arrays=0x1ae7578, prim=0x1ae5b94, nr_prims=1, ib=0x0,
    index_bounds_valid=<value optimized out>, min_index=0, max_index=3) at brw_draw.c:293
#1  brw_try_draw_prims (ctx=0x7ffff69f2010, arrays=0x1ae7578, prim=0x1ae5b94, nr_prims=1, ib=0x0,
    index_bounds_valid=<value optimized out>, min_index=0, max_index=3) at brw_draw.c:342
#2  brw_draw_prims (ctx=0x7ffff69f2010, arrays=0x1ae7578, prim=0x1ae5b94, nr_prims=1, ib=0x0,
    index_bounds_valid=<value optimized out>, min_index=0, max_index=3) at brw_draw.c:473
#3  0x00007ffff6b4cdd2 in vbo_exec_vtx_flush (exec=<value optimized out>,
    keepUnmapped=<value optimized out>) at vbo/vbo_exec_draw.c:390
#4  0x00007ffff6b49fb4 in vbo_exec_FlushVertices_internal (exec=0x1ae58b0, unmap=<value optimized out>)
    at vbo/vbo_exec_api.c:545
#5  0x00007ffff6b4a00c in vbo_exec_FlushVertices (ctx=0x7ffff69f2010, flags=<value optimized out>)
    at vbo/vbo_exec_api.c:992
#6  0x00007ffff6c3e7c9 in set_env_mode (target=8960, pname=8704, param=0x7fffffffb7c0)
    at main/texenv.c:84
#7  _mesa_TexEnvfv (target=8960, pname=8704, param=0x7fffffffb7c0) at main/texenv.c:433
#8  0x00007ffff6c3ea73 in _mesa_TexEnvi (target=<value optimized out>, pname=<value optimized out>,
    param=<value optimized out>) at main/texenv.c:572
#9  0x000000000067ce61 in TexEnvironmentExec() ()
#10 0x0000000000c70212 in callFunctionHandleExceptionsInner(long (*)(_testParameters*), long (*)(), _testParameters*, char*) ()
#11 0x0000000000c7034a in callFunctionHandleExceptions(long (*)(_testParameters*), long (*)(), _testParameters*) ()
#12 0x0000000000c6ee33 in Driver(testR*, testF*) ()
#13 0x0000000000c21858 in Exec(_TK_EventRec*) ()
#14 0x0000000000c6de7e in tkExec(long (*)(_TK_EventRec*)) ()
#15 0x0000000000c20ba8 in tkShellExecute(long, long, long (*)(_TK_EventRec*), testR*) ()
#16 0x0000000000c26f23 in main ()
Comment 3 Eric Anholt 2011-05-18 14:24:35 UTC
commit b126a0c0cb30b1e2f2df1953fe14d8596d1cf4f7
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Nov 2 09:11:17 2010 -0700

    i965: Add support for correct GL_CLAMP behavior by clamping coordinates.
    
    This removes the stupid strict-conformance fallback code I broke when
    adding ARB_sampler_objects.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36572
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
Comment 4 fangxun 2011-05-19 21:12:34 UTC
Verified with mesa master 116133af3499947500a6d0c877fbc8f564ee4c76.

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.