Bug 37839

Summary: main/teximage.c:2393: _mesa_choose_texture_format: Assertion `f != MESA_FORMAT_NONE' failed.
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: Brian Paul <brianp>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2011-06-01 15:08:30 UTC
mesa: f3652f0983e6469a515bdfad439286a1060fa545 (master)

Run glean pixelFormats tests on softpipe.

$ ./bin/glean -r results -t pixelFormats --quick
Mesa 7.11-devel implementation error: unhandled format!

Please report at bugs.freedesktop.org
Mesa 7.11-devel implementation error: unhandled format!

Please report at bugs.freedesktop.org
glean: main/teximage.c:2393: _mesa_choose_texture_format: Assertion `f != MESA_FORMAT_NONE' failed.
Aborted (core dumped)


(gdb) bt
#0  0x00110416 in __kernel_vsyscall ()
#1  0x00983941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x00986e42 in abort () at abort.c:92
#3  0x0097c8e8 in __assert_fail (assertion=0x475545 "f != MESA_FORMAT_NONE", file=0x474a50 "main/teximage.c", line=2393, function=0x475bb3 "_mesa_choose_texture_format") at assert.c:81
#4  0x002424f2 in _mesa_choose_texture_format (ctx=0x8755060, texObj=0x877b020, target=3553, level=0, internalFormat=35901, format=6408, type=5121) at main/teximage.c:2393
#5  0x0024296e in teximage (ctx=0x8755060, dims=2, target=3553, level=0, internalFormat=35901, width=16, height=16, depth=1, border=0, format=6408, type=5121, pixels=0x8942c50)
    at main/teximage.c:2493
#6  0x00242d6f in _mesa_TexImage2D (target=3553, level=0, internalFormat=35901, width=16, height=16, border=0, format=6408, type=5121, pixels=0x8942c50) at main/teximage.c:2566
#7  0x08107a66 in GLEAN::PixelFormatsTest::DrawImage(int, int, unsigned int, unsigned int, int, unsigned char const*) const ()
#8  0x081092ec in GLEAN::PixelFormatsTest::TestCombination(unsigned int, unsigned int, int) ()
#9  0x081096d9 in GLEAN::PixelFormatsTest::runOne(GLEAN::MultiTestResult&, GLEAN::Window&) ()
#10 0x080c5a1e in GLEAN::BaseTest<GLEAN::MultiTestResult>::run(GLEAN::Environment&) ()
#11 0x080bdd46 in main ()
(gdb) frame 4
#4  0x002424f2 in _mesa_choose_texture_format (ctx=0x8755060, texObj=0x877b020, target=3553, level=0, internalFormat=35901, format=6408, type=5121) at main/teximage.c:2393
2393	   ASSERT(f != MESA_FORMAT_NONE);
(gdb) print f
$1 = MESA_FORMAT_NONE
Comment 1 Brian Paul 2011-06-01 15:26:42 UTC
Fixed w/ commit 57242715cb3ce9855460a5f1ccbca0dde8045c21
Comment 2 Vinson Lee 2011-06-01 15:45:57 UTC
d57e95f22af1a1b2d9013db7a15524717bd29579 is the first bad commit
commit d57e95f22af1a1b2d9013db7a15524717bd29579
Author: Brian Paul <brianp@vmware.com>
Date:   Sat May 21 10:43:49 2011 -0600

    st/mesa: rewrite st_choose_format() to be table driven
    
    Instead of using a giant switch statement with lots of code, use a
    table to convert GL format enums to pipe formats.
    
    Tested by running the old code next to the new and asserting that
    the return value was the same for piglit tests.
    
    We're doing a linear search, but if that ever appears to be too slow
    the table could easily be sorted or hashed.

:040000 040000 d74f6bf0cb7a829aec302f7ca454a45b96474b3d bfdabfea732ff1655083ae0f2f4896967da8bbab M	src
bisect run success
Comment 3 Vinson Lee 2011-06-01 16:21:12 UTC
The bug still occurs with piglit EXT_packed_float fbo-alphatest-formats test.

mesa: 57242715cb3ce9855460a5f1ccbca0dde8045c21 (master)

$ ./bin/fbo-alphatest-formats GL_EXT_packed_float -auto
Using test set: GL_EXT_packed_float
Mesa 7.11-devel implementation error: unhandled format!

Please report at bugs.freedesktop.org
Mesa 7.11-devel implementation error: unhandled format!

Please report at bugs.freedesktop.org
fbo-alphatest-formats: main/teximage.c:2393: _mesa_choose_texture_format: Assertion `f != MESA_FORMAT_NONE' failed.
Aborted (core dumped)


(gdb) bt
#0  0x00760416 in __kernel_vsyscall ()
#1  0x001e0941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x001e3e42 in abort () at abort.c:92
#3  0x001d98e8 in __assert_fail (assertion=0xac5545 "f != MESA_FORMAT_NONE", file=0xac4a50 "main/teximage.c", line=2393, function=0xac5bb3 "_mesa_choose_texture_format") at assert.c:81
#4  0x008924f2 in _mesa_choose_texture_format (ctx=0x8e5d8e0, texObj=0x8f05f98, target=3553, level=0, internalFormat=35898, format=6408, type=5126) at main/teximage.c:2393
#5  0x0089296e in teximage (ctx=0x8e5d8e0, dims=2, target=3553, level=0, internalFormat=35898, width=128, height=64, depth=1, border=0, format=6408, type=5126, pixels=0x0) at main/teximage.c:2493
#6  0x00892d6f in _mesa_TexImage2D (target=3553, level=0, internalFormat=35898, width=128, height=64, border=0, format=6408, type=5126, pixels=0x0) at main/teximage.c:2566
#7  0x0806a922 in test_format ()
#8  0x0806a525 in fbo_formats_display ()
#9  0x0806b3eb in piglit_display ()
#10 0x0806bddb in display ()
#11 0x00195820 in fghRedrawWindow (window=0x8d63fe0, enumerator=0xbf9148f8) at freeglut_main.c:210
#12 fghcbDisplayWindow (window=0x8d63fe0, enumerator=0xbf9148f8) at freeglut_main.c:227
#13 0x00199660 in fgEnumWindows (enumCallback=0x195790 <fghcbDisplayWindow>, enumerator=0xbf9148f8) at freeglut_structure.c:394
#14 0x00195cdb in fghDisplayAll () at freeglut_main.c:249
#15 glutMainLoopEvent () at freeglut_main.c:1450
#16 0x00196605 in glutMainLoop () at freeglut_main.c:1498
#17 0x0806bf7f in main ()
(gdb) frame 4
#4  0x008924f2 in _mesa_choose_texture_format (ctx=0x8e5d8e0, texObj=0x8f05f98, target=3553, level=0, internalFormat=35898, format=6408, type=5126) at main/teximage.c:2393
2393	   ASSERT(f != MESA_FORMAT_NONE);
Comment 4 Brian Paul 2011-06-02 07:02:21 UTC
Fixed with commit 029ea39fb9b707a861f4a884c8c191aef0e63af9
Comment 5 Vinson Lee 2011-06-06 11:01:07 UTC
mesa: e5d241ddb231758e0a0f41eee28435d170d583c0 (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.