<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [GLK BXT BSW] Assertion in piglit.spec.arb_gpu_shader_fp64.execution.built-in-functions.vs-sign-sat-neg-abs"
href="https://bugs.freedesktop.org/show_bug.cgi?id=108319#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [GLK BXT BSW] Assertion in piglit.spec.arb_gpu_shader_fp64.execution.built-in-functions.vs-sign-sat-neg-abs"
href="https://bugs.freedesktop.org/show_bug.cgi?id=108319">bug 108319</a>
from <span class="vcard"><a class="email" href="mailto:idr@freedesktop.org" title="Ian Romanick <idr@freedesktop.org>"> <span class="fn">Ian Romanick</span></a>
</span></b>
<pre>To my surprise, the culprit is:
commit a68dd47b911053995ae387afcdc7fffe82e57420
Author: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>>
Date: Sun Sep 9 13:40:02 2018 -0700
nir/algebraic: Simplify fsat of fsign
These allows us to not support fsign.sat in the Intel compiler backend,
and that will simplify some later changes.
No shader-db changes on any Intel platform.
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>>
Reviewed-by: Thomas Helland <<a href="mailto:thomashelland90@gmail.com">thomashelland90@gmail.com</a>>
Looking at the output from the EU validator, I think the problem is the b2f
generates a 32-bit result instead of a 64-bit result:
Native code for unnamed vertex shader GLSL3
SIMD8 shader: 35 instructions. 0 loops. 188 cycles. 0:0 spills:fills. Promoted
0 constants. Compacted 560 to 464 bytes (17%)
START B0 (188 cycles)
mov(8) g8<1>Q 0Q { align1 1Q };
mov(8) g119<1>UD g1<8,8,1>UD { align1 WE_all
1Q compacted };
mov(8) g120<1>F g4<8,8,1>F { align1 1Q
compacted };
mov(8) g121<1>F g5<8,8,1>F { align1 1Q
compacted };
mov(8) g122<1>F g6<8,8,1>F { align1 1Q
compacted };
mov(8) g123<1>F g7<8,8,1>F { align1 1Q
compacted };
mov(8) g126<1>F [0F, 0F, 0F, 0F]VF { align1 1Q
compacted };
mov(8) g127<1>F 1F { align1 1Q };
cmp.l.f0(8) g4<1>DF g8<4,4,1>DF -(abs)g2<0,1,0>DF { align1 1Q
};
cmp.l.f0(8) g6<1>DF g8<4,4,1>DF -(abs)g2.1<0,1,0>DF { align1 1Q
};
cmp.l.f0(8) g10<1>DF g8<4,4,1>DF -(abs)g2.2<0,1,0>DF { align1 1Q
};
cmp.l.f0(8) g12<1>DF g8<4,4,1>DF -(abs)g2.3<0,1,0>DF { align1 1Q
};
mov(8) g4<1>D g4<8,4,2>UD { align1 1Q };
mov(8) g7<1>D g6<8,4,2>UD { align1 1Q };
mov(8) g2<1>D g10<8,4,2>UD { align1 1Q };
mov(8) g5<1>DF -g4<4,4,1>D { align1 1Q };
ERROR: Source and destination horizontal stride must equal and a
multiple of a qword when the execution type is 64-bit
mov(8) g4<1>D g12<8,4,2>UD { align1 1Q };
mov(8) g7<1>DF -g7<4,4,1>D { align1 1Q };
ERROR: Source and destination horizontal stride must equal and a
multiple of a qword when the execution type is 64-bit
mov(8) g11<1>DF -g2<4,4,1>D { align1 1Q };
ERROR: Source and destination horizontal stride must equal and a
multiple of a qword when the execution type is 64-bit
mov(8) g13<1>DF -g4<4,4,1>D { align1 1Q };
ERROR: Source and destination horizontal stride must equal and a
multiple of a qword when the execution type is 64-bit
cmp.nz.f0(8) g7<1>DF g7<4,4,1>DF g3.1<0,1,0>DF { align1 1Q };
cmp.nz.f0(8) g4<1>DF g5<4,4,1>DF g3<0,1,0>DF { align1 1Q };
mov(8) g2<1>D g7<8,4,2>UD { align1 1Q };
cmp.nz.f0(8) g6<1>DF g11<4,4,1>DF g3.2<0,1,0>DF { align1 1Q };
mov(8) g4<1>D g4<8,4,2>UD { align1 1Q };
cmp.nz.f0(8) g8<1>DF g13<4,4,1>DF g3.3<0,1,0>DF { align1 1Q };
mov(8) g3<1>D g6<8,4,2>UD { align1 1Q };
or(8) g2<1>UD g4<8,8,1>UD g2<8,8,1>UD { align1 1Q
compacted };
mov(8) g4<1>D g8<8,4,2>UD { align1 1Q };
or(8) g2<1>UD g2<8,8,1>UD g3<8,8,1>UD { align1 1Q
compacted };
or(8) g2<1>UD g2<8,8,1>UD g4<8,8,1>UD { align1 1Q
compacted };
mov(8) g124<1>F -g2<8,8,1>D { align1 1Q
compacted };
not(8) g4<1>D g2<8,8,1>D { align1 1Q
compacted };
mov(8) g125<1>F -g4<8,8,1>D { align1 1Q
compacted };
send(8) null<1>F g119<8,8,1>F
urb 1 SIMD8 write mlen 9 rlen 0 {
align1 1Q EOT };
END B0</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>