Bug 42240 - src/gallium/auxiliary/gallivm/lp_bld_format_aos.c:707:lp_build_fetch_rgba_aos: Assertion `0' failed.
Summary: src/gallium/auxiliary/gallivm/lp_bld_format_aos.c:707:lp_build_fetch_rgba_aos...
Status: CLOSED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium critical
Assignee: Jose Fonseca
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-25 11:04 UTC by Vinson Lee
Modified: 2011-10-26 12:12 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Vinson Lee 2011-10-25 11:04:42 UTC
mesa: e8d0d7893a6e33eb76441fed146deadb39e91ab3 (master)

$ ./build/linux-x86-debug/bin/lp_test_format
[...]
Testing PIPE_FORMAT_R8G8Bx_SNORM (float) ...
Testing PIPE_FORMAT_R8G8Bx_SNORM (unorm8) ...
Testing PIPE_FORMAT_R8G8B8X8_UNORM (float) ...
Testing PIPE_FORMAT_R8G8B8X8_UNORM (unorm8) ...
Testing PIPE_FORMAT_B4G4R4X4_UNORM (float) ...
Testing PIPE_FORMAT_B4G4R4X4_UNORM (unorm8) ...
src/gallium/auxiliary/gallivm/lp_bld_format_aos.c:707:lp_build_fetch_rgba_aos: Assertion `0' failed.


(gdb) 
#0  0x0805c827 in _debug_assert_fail (expr=0x879e3f9 "0", file=0x879e1c0 "src/gallium/auxiliary/gallivm/lp_bld_format_aos.c", line=707, function=0x879e3fb "lp_build_fetch_rgba_aos")
    at src/gallium/auxiliary/util/u_debug.c:282
No locals.
#1  0x0809212a in lp_build_fetch_rgba_aos (gallivm=0x91f3448, format_desc=0x8852800, type=..., base_ptr=0x924e778, offset=0x9225828, i=0x9240820, j=0x924e060)
    at src/gallium/auxiliary/gallivm/lp_bld_format_aos.c:707
        builder = 0x9225478
        num_pixels = 1
        bld = {gallivm = 0x91f3448, type = {floating = 1, fixed = 0, sign = 1, norm = 0, width = 32, length = 4}, elem_type = 0x91f37dc, vec_type = 0x9225858, int_elem_type = 0x91f3944, 
          int_vec_type = 0x9225e18, undef = 0x9225e90, zero = 0x9225ed0, one = 0x9225f70}
        __FUNCTION__ = "lp_build_fetch_rgba_aos"
#2  0x0805a326 in add_fetch_rgba_test (gallivm=0x91f3448, verbose=0, desc=0x8852800, type=...) at src/gallium/drivers/llvmpipe/lp_test_format.c:116
        name = "fetch_r8g8b8_uint_float\000\340Y\"\tQ\000\000\000\030\000\000\000\300\243&\000\364\217&\000\300\243&\000d\351#\t\030\000\214\277]\016\030\000)\000\000\000d\351#\t\364\037\236\000@\351#\t8\000\214\277A\224\232\000@\351#\t]\016\030\000\340d\"\t|dn\b\364\037\213\b\364\037\213\b@\351#\tKdn\b@\351#\t\000\000\000\000\331\027i\b\364\037\213\b\\\351#\t\364\037\213\b\\\351#\t\272)i\b@\351#\t\000\000\000\000\000\000\000\000\374\364r\b\270\063\037\tHE#\tx\351#\t\\\351#\t\370\377\377\377\000\000\000\000\364\037\213\bc\213n\b\270\063\037\te1\"\000$\001\214\277y\237\005\b\274\000\214\277\000\000\000\000\004\000\000\000\366\327g\b@\351#\t@E#\t\000\000\000\000\005\002\020\000\200\001\214\277\000\000\000\000\000\000\000"
        context = 0x91f3f88
        module = 0x91f3348
        builder = 0x9225478
        passmgr = 0x91e9260
        args = {0x92258d0, 0x9225948, 0x91f3944, 0x91f3944}
        func = 0x92461e8
        packed_ptr = 0x924e778
        offset = 0x9225828
        rgba_ptr = 0x9243528
        i = 0x9240820
        j = 0x924e060
        block = 0x923a6c8
        rgba = 0x9a9441
#3  0x0805a416 in test_format_float (gallivm=0x91f3448, verbose=0, fp=0x0, desc=0x8852800) at src/gallium/drivers/llvmpipe/lp_test_format.c:152
        fetch = 0x0
        engine = 0x91f9518
        fetch_ptr = 0xf33030
        unpacked = {1, 1, 1, 1}
        first = 1 '\001'
        success = 1 '\001'
        i = 1
        j = 1
        k = 4
        l = 587
        f = 0xf33070
#4  0x0805aac8 in test_one (gallivm=0x91f3448, verbose=0, fp=0x0, format_desc=0x8852800) at src/gallium/drivers/llvmpipe/lp_test_format.c:312
        success = 1 '\001'
#5  0x0805ab79 in test_all (gallivm=0x91f3448, verbose=0, fp=0x0) at src/gallium/drivers/llvmpipe/lp_test_format.c:353
        format_desc = 0x8852800
        format = PIPE_FORMAT_R8G8B8_UINT
        success = 1 '\001'
#6  0x0805abc3 in test_some (gallivm=0x91f3448, verbose=0, fp=0x0, n=1000) at src/gallium/drivers/llvmpipe/lp_test_format.c:366
No locals.
#7  0x0805bc41 in main (argc=1, argv=0xbf8c02e4) at src/gallium/drivers/llvmpipe/lp_test_main.c:401
        verbose = 0
        fp = 0x0
        n = 1000
        i = 1
        success = 0 '\000'
        single = 0 '\000'
        gallivm = 0x91f3448
Comment 1 Vinson Lee 2011-10-25 11:23:05 UTC
a441feb757b1be4845ba378f0207dcdc5cc1a407 is the first bad commit
commit a441feb757b1be4845ba378f0207dcdc5cc1a407
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Sep 19 15:04:48 2011 +0100

    gallium: add initial pure integer support (v2)
    
    This add support for unsigned/signed integer types via adding a 'pure' bit
    in the format description table. It adds 4 new u_format get/put hooks,
    for get/put uint and get/put sint so that accessors can get native access
    to the integer bits. This is used to avoid precision loss via float converting
    paths.
    
    It doesn't add any float fetchers for these types at the moment, GL doesn't
    require float fetching from these types and I expect we'll introduce a lot
    of hidden bugs if we start allowing such conversions without an API mandating
    it.
    
    It adds all formats from EXT_texture_integer and EXT_texture_rg.
    
    0 regressions on llvmpipe here with this.
    
    (there is some more follow on code in my gallium-int-work branch, bringing
     softpipe and mesa to a pretty integer clean state)
    
    v2: fixup python generator to get signed->unsigned and unsigned->signed
    fetches working.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

:040000 040000 19b1c549f2a58f65d107d1d7c3d0b661be3b77c0 ec5d6945a107616343556abda9186d9b0a4aeb4f M	src
bisect run success
Comment 2 Dave Airlie 2011-10-26 06:52:03 UTC
should be fixed now in master with commit d404f6069307699206c134924cdd124d04ae2266
Comment 3 Vinson Lee 2011-10-26 12:12:00 UTC
mesa: 69e48e7220f018d874e85eea6962ec58b1feba87 (master)

Verified fixed.


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.