<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - lp_bld_conv.c:757:lp_build_conv: Assertion `dst_type.sign || dst_type.width < 32' failed."
href="https://bugs.freedesktop.org/show_bug.cgi?id=67411">67411</a>
</td>
</tr>
<tr>
<th>Keywords</th>
<td>have-backtrace, regression
</td>
</tr>
<tr>
<th>CC</th>
<td>sroland@vmware.com
</td>
</tr>
<tr>
<th>Assignee</th>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Summary</th>
<td>lp_bld_conv.c:757:lp_build_conv: Assertion `dst_type.sign || dst_type.width < 32' failed.
</td>
</tr>
<tr>
<th>Severity</th>
<td>critical
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Reporter</th>
<td>vlee@freedesktop.org
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Component</th>
<td>Mesa core
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr></table>
<p>
<div>
<pre>mesa: 803f755edeabd1b0af3d8f4ebf2005333e152ad4 (master)
Run lp_test_conv unit test.
Program received signal SIGTRAP, Trace/breakpoint trap.
0x0000000100004451 in _debug_assert_fail (expr=0x1009c09b4 "dst_type.sign ||
dst_type.width < 32", file=0x1009c085b
"src/gallium/auxiliary/gallivm/lp_bld_conv.c", line=757, function=0x1009c08fd
"lp_build_conv") at src/gallium/auxiliary/util/u_debug.c:278
278 os_abort();
(gdb) bt
#0 0x0000000100004451 in _debug_assert_fail (expr=0x1009c09b4 "dst_type.sign
|| dst_type.width < 32", file=0x1009c085b
"src/gallium/auxiliary/gallivm/lp_bld_conv.c", line=757, function=0x1009c08fd
"lp_build_conv") at src/gallium/auxiliary/util/u_debug.c:278
#1 0x00000001000818f6 in lp_build_conv (gallivm=0x100f03eb0,
src_type={floating = 1, fixed = 0, sign = 1, norm = 0, width = 32, length = 4},
dst_type={floating = 0, fixed = 1, sign = 0, norm = 0, width = 32, length = 4},
src=0x7fff5fbfc4c0, num_srcs=1, dst=0x7fff5fbfc3c0, num_dsts=1) at
src/gallium/auxiliary/gallivm/lp_bld_conv.c:757
#2 0x0000000100001efe in add_conv_test (gallivm=0x100f03eb0,
src_type={floating = 1, fixed = 0, sign = 1, norm = 0, width = 32, length = 4},
num_srcs=1, dst_type={floating = 0, fixed = 1, sign = 0, norm = 0, width = 32,
length = 4}, num_dsts=1) at src/gallium/drivers/llvmpipe/lp_test_conv.c:135
#3 0x000000010000120c in test_one (verbose=0, fp=0x0, src_type={floating = 1,
fixed = 0, sign = 1, norm = 0, width = 32, length = 4}, dst_type={floating = 0,
fixed = 1, sign = 0, norm = 0, width = 32, length = 4}) at
src/gallium/drivers/llvmpipe/lp_test_conv.c:216
#4 0x0000000100001c13 in test_some (verbose=0, fp=0x0, n=1000) at
src/gallium/drivers/llvmpipe/lp_test_conv.c:431
#5 0x00000001000036ab in main (argc=1, argv=0x7fff5fbff540) at
src/gallium/drivers/llvmpipe/lp_test_main.c:411
Current language: auto; currently minimal
(gdb) frame 1
#1 0x00000001000818f6 in lp_build_conv (gallivm=0x100f03eb0,
src_type={floating = 1, fixed = 0, sign = 1, norm = 0, width = 32, length = 4},
dst_type={floating = 0, fixed = 1, sign = 0, norm = 0, width = 32, length = 4},
src=0x7fff5fbfc4c0, num_srcs=1, dst=0x7fff5fbfc3c0, num_dsts=1) at
src/gallium/auxiliary/gallivm/lp_bld_conv.c:757
757 assert(dst_type.sign || dst_type.width < 32);
(gdb) print dst_type
$1 = {
floating = 0,
fixed = 1,
sign = 0,
norm = 0,
width = 32,
length = 4
}
(gdb) print dst_type
$2 = {
floating = 0,
fixed = 1,
sign = 0,
norm = 0,
width = 32,
length = 4
}
8c3d3622d9ce2fd2a8f46084ab8153d708fa5b09 is the first bad commit
commit 8c3d3622d9ce2fd2a8f46084ab8153d708fa5b09
Author: Roland Scheidegger <<a href="mailto:sroland@vmware.com">sroland@vmware.com</a>>
Date: Sat Jul 27 03:53:00 2013 +0200
gallivm: fix float->SNORM conversion
Just like the UNORM case we need to use round to nearest, not trunc.
(There's also another problem, we're using the formula for SNORM->float
which will produce a value below -1.0 for the most negative value which
according to both OpenGL and d3d10 would need clamping. However, no actual
failures have been observed due to that hence keep cheating on that.)
Reviewed-by: Jose Fonseca <<a href="mailto:jfonseca@vmware.com">jfonseca@vmware.com</a>>
:040000 040000 d0b0cbcbcf8f82cc2e0e51e51124a6068114feac
3273dc6ce19e22a8bf7e21dc7534a36c95c4f96d M src</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>