Bug 57755 - [llvmpipe] src/gallium/auxiliary/gallivm/lp_bld_arit.c:1051:lp_build_lerp: Assertion `!type.sign' failed.
Summary: [llvmpipe] src/gallium/auxiliary/gallivm/lp_bld_arit.c:1051:lp_build_lerp: As...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: Jose Fonseca
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-01 05:53 UTC by Vinson Lee
Modified: 2012-12-04 19:48 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Vinson Lee 2012-12-01 05:53:37 UTC
mesa: f3476ec8fa5a94d469a12318c537b13ce9cc5a45 (master)

Run piglit fbo-blending-formats GL_EXT_texture_snorm on llvmpipe.

$ ./bin/fbo-blending-formats GL_EXT_texture_snorm -auto
Using test set: GL_EXT_texture_snorm
Testing GL_RED_SNORM
src/gallium/auxiliary/gallivm/lp_bld_arit.c:1051:lp_build_lerp: Assertion `!type.sign' failed.
Trace/breakpoint trap (core dumped)


(gdb) bt
#0  0x00007fc02c824f16 in _debug_assert_fail (expr=0x7fc02d1ea678 "!type.sign", 
    file=0x7fc02d1e9f20 "src/gallium/auxiliary/gallivm/lp_bld_arit.c", line=1051, 
    function=0x7fc02d1eae86 <__FUNCTION__.9093> "lp_build_lerp") at src/gallium/auxiliary/util/u_debug.c:278
#1  0x00007fc02c89a4fe in lp_build_lerp (bld=0x7fffcd3d6130, x=0x26be8b8, v0=0x26886a8, v1=0x2793ca8)
    at src/gallium/auxiliary/gallivm/lp_bld_arit.c:1051
#2  0x00007fc02c4ff3d1 in lp_build_blend (bld=0x7fffcd3d6130, func=0, factor_src=7, factor_dst=23, src=0x2793ca8, 
    dst=0x26886a8, src_factor=0x26be8b8, dst_factor=0x26fd4f0, not_alpha_dependent=1 '\001', optimise_only=0 '\000')
    at src/gallium/drivers/llvmpipe/lp_bld_blend.c:149
#3  0x00007fc02c4f934c in lp_build_blend_aos (gallivm=0x2688f40, blend=0x2676e8c, cbuf_format=0x2676ebc, type=..., 
    rt=0, src=0x2793ca8, src_alpha=0x27180a8, dst=0x26886a8, mask=0x2797f58, const_=0x26be8b8, const_alpha=0x26be808, 
    swizzle=0x7fffcd3d66b0 "", nr_channels=1) at src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c:343
#4  0x00007fc02c4ee1c3 in generate_unswizzled_blend (gallivm=0x2688f40, rt=0, variant=0x2676e80, 
    out_format=PIPE_FORMAT_R8_SNORM, num_fs=2, fs_type=..., fs_mask=0x7fffcd3d68b0, fs_out_color=0x7fffcd3d6ab0, 
    context_ptr=0x271b5b0, color_ptr=0x2762828, stride=0x268d388, partial_mask=1, do_branch=0 '\000')
    at src/gallium/drivers/llvmpipe/lp_state_fs.c:1642
#5  0x00007fc02c4ef6c5 in generate_fragment (lp=0x2303e80, shader=0x24a4de0, variant=0x2676e80, partial_mask=1)
    at src/gallium/drivers/llvmpipe/lp_state_fs.c:2009
#6  0x00007fc02c4f02ce in generate_variant (lp=0x2303e80, shader=0x24a4de0, key=0x7fffcd3d81e0)
    at src/gallium/drivers/llvmpipe/lp_state_fs.c:2171
#7  0x00007fc02c4f1639 in llvmpipe_update_fs (lp=0x2303e80) at src/gallium/drivers/llvmpipe/lp_state_fs.c:2639
#8  0x00007fc02c4e8ddb in llvmpipe_update_derived (llvmpipe=0x2303e80)
    at src/gallium/drivers/llvmpipe/lp_state_derived.c:155
#9  0x00007fc02c4cee43 in llvmpipe_draw_vbo (pipe=0x2303e80, info=0x7fffcd3d8430)
    at src/gallium/drivers/llvmpipe/lp_draw_arrays.c:64
#10 0x00007fc02c7df672 in cso_draw_vbo (cso=0x23f7ef0, info=0x7fffcd3d8430)
    at src/gallium/auxiliary/cso_cache/cso_context.c:1334
#11 0x00007fc02c647409 in st_draw_vbo (ctx=0x2399ab0, prims=0x7fffcd3d84d0, nr_prims=1, ib=0x0, 
    index_bounds_valid=1 '\001', min_index=0, max_index=3, tfb_vertcount=0x0) at src/mesa/state_tracker/st_draw.c:265
#12 0x00007fc02c700397 in vbo_draw_arrays (ctx=0x2399ab0, mode=7, start=0, count=4, numInstances=1, baseInstance=0)
    at src/mesa/vbo/vbo_exec_array.c:619
#13 0x00007fc02c700470 in vbo_exec_DrawArrays (mode=7, start=0, count=4) at src/mesa/vbo/vbo_exec_array.c:649
#14 0x00007fc02ee6b2ac in piglit_draw_rect (x=-0.660000026, y=-1, w=0.330000013, h=2)
    at piglit/tests/util/piglit-util-gl.c:872
#15 0x0000000000401eae in blend (rect=0x7fffcd3d8650, src=0x7fffcd3d8660, dst=0x7fffcd3d8670, blendcol=0x7fffcd3d8680, 
    blendsrc=32769, blenddst=32770) at piglit/tests/fbo/fbo-blending-formats.c:53
#16 0x0000000000402fc4 in test_format (format=0x405520 <ext_texture_snorm>)
    at piglit/tests/fbo/fbo-blending-formats.c:255
#17 0x0000000000401c20 in fbo_formats_display (test_format=0x401ebe <test_format>)
    at piglit/tests/fbo/fbo-formats.h:641
#18 0x00000000004036f0 in piglit_display () at piglit/tests/fbo/fbo-blending-formats.c:361
#19 0x00007fc02ee0a280 in display ()
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#20 0x00007fc02e7c2fc4 in ?? () from /usr/lib/x86_64-linux-gnu/libglut.so.3
#21 0x00007fc02e7c6719 in fgEnumWindows () from /usr/lib/x86_64-linux-gnu/libglut.so.3
#22 0x00007fc02e7c345c in glutMainLoopEvent () from /usr/lib/x86_64-linux-gnu/libglut.so.3
#23 0x00007fc02e7c3d1d in glutMainLoop () from /usr/lib/x86_64-linux-gnu/libglut.so.3
#24 0x00007fc02ee0a452 in run_test (gl_fw=0x7fc02f0d3800 <glut_fw>, argc=2, argv=0x7fffcd3d8c58)
    at piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:127
#25 0x00007fc02ee08571 in piglit_gl_test_run (argc=2, argv=0x7fffcd3d8c58, config=0x7fffcd3d8b40)
    at piglit/tests/util/piglit-framework-gl.c:127
#26 0x0000000000401d4e in main (argc=3, argv=0x7fffcd3d8c58)
    at piglit/tests/fbo/fbo-blending-formats.c:41
(gdb) frame 1
#1  0x00007fc02c89a4fe in lp_build_lerp (bld=0x7fffcd3d6130, x=0x26be8b8, v0=0x26886a8, v1=0x2793ca8)
    at src/gallium/auxiliary/gallivm/lp_bld_arit.c:1051
1051	      assert(!type.sign);
(gdb) print type.sign
$1 = 1
(gdb) print type
$2 = {floating = 0, fixed = 0, sign = 1, norm = 1, width = 8, length = 16}


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


commit fa1b481c09b14e01eca1b3db8e0854033f6dee3d
Author: James Benton <jbenton@vmware.com>
Date:   Thu Sep 13 16:04:42 2012 +0100

    llvmpipe: Unswizzled rendering.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>

commit 1d3789bccbbcc814fd7b339e9f5b5631e30d9f0e
Author: James Benton <jbenton@vmware.com>
Date:   Wed Jul 11 15:39:53 2012 +0100

    gallivm: Updated lp_build_const_mask_aos to input number of channels.
    
    Also updated lp_build_const_mask_aos_swizzled to reflect this.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Comment 1 Jose Fonseca 2012-12-03 15:00:20 UTC
I see the problem. I'll look into this.
Comment 2 Jose Fonseca 2012-12-04 19:48:11 UTC
Should be fixed with commit 7d44d354bdba853e453ce3991396e2b0933468f4
Author: José Fonseca <jfonseca@vmware.com>
Date:   Tue Dec 4 13:38:52 2012 +0000

    gallivm: Generalize lp_build_mul and lp_build_lerp for signed normalized types.
    
    This fixes fdo bug 57755 and most of the failures of piglit fbo-blending-formats
    GL_EXT_texture_snorm.
    
    GL_INTENSITY_SNORM is still failing, but problem is probably elsewhere,
    as GL_R8_SNORM works fine.


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.