<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:eero.t.tamminen@intel.com" title="Eero Tamminen <eero.t.tamminen@intel.com>"> <span class="fn">Eero Tamminen</span></a>
</span> changed
<a class="bz_bug_link
bz_status_VERIFIED bz_closed"
title="VERIFIED FIXED - [Regression] [Bisected] assert in fragment shader compilation when SIMD32 is enabled"
href="https://bugs.freedesktop.org/show_bug.cgi?id=110507">bug 110507</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>RESOLVED
</td>
<td>VERIFIED
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_VERIFIED bz_closed"
title="VERIFIED FIXED - [Regression] [Bisected] assert in fragment shader compilation when SIMD32 is enabled"
href="https://bugs.freedesktop.org/show_bug.cgi?id=110507#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_VERIFIED bz_closed"
title="VERIFIED FIXED - [Regression] [Bisected] assert in fragment shader compilation when SIMD32 is enabled"
href="https://bugs.freedesktop.org/show_bug.cgi?id=110507">bug 110507</a>
from <span class="vcard"><a class="email" href="mailto:eero.t.tamminen@intel.com" title="Eero Tamminen <eero.t.tamminen@intel.com>"> <span class="fn">Eero Tamminen</span></a>
</span></b>
<pre>Tested with Iris. Works fine without any asserts -> VERIFIED
Btw. With a simple patch to enable SIMD32 in most cases where it could make
sense:
------------------------------------------------
- /* Currently, the compiler only supports SIMD32 on SNB+ */
- if (v8.max_dispatch_width >= 32 && !use_rep_send &&
+ /* Currently, the compiler only supports SIMD32 on SNB+
+ *
+ * Compile SIMD32 only if:
+ * - SIMD16 didn't fail (there are enough regs)
+ * - GEN6+ & 32-wide dispatch supported
+ * - there's only single RT (with MRT, perf is lower due to RCC write
trashing)
+ * - or it's force enabled
+ */
+ if (!simd16_failed &&
+ v8.max_dispatch_width >= 32 &&
compiler->devinfo->gen >= 6 &&
- unlikely(INTEL_DEBUG & DEBUG_DO32)) {
+ !use_rep_send &&
+ (shader->info.outputs_written <= BITFIELD64_BIT(FRAG_RESULT_DATA0) ||
+ unlikely(INTEL_DEBUG & DEBUG_DO32))) {
------------------------------------------------
SIMD32 has approximately following perf impact with Iris...
On BXT J4205 (with 2-channel memory):
* +30-35% GfxBench ALU2
* +25% SynMark PSPom
* +5-10% GfxBench Manhattan 3.0, SynMark Deferred & ShMapVsm, GpuTest Julia
FP32
* +5% GfxBench CarChase & T-Rex
* +4% SynMark PSPhong
* +2-3% GfxBench Manhattan 3.1, GpuTest FurMark
...
* -5-10% SynMark TexFilterTri [1]
* -20% SynMark DrvShComp
On SKL GT2:
* +20% GfxBench ALU2
* +7-8% SynMark PSPom
* +3-4% GfxBench CarChase & Manhattan 3.0
* +2% GfxBench T-Rex, SynMark PSPhong & Deferred
...
* -3% SynMark PSBump2
* -5% SynMark DrvRes
* -10-15% SynMark TexFilterTri [1], DrvShComp
[1] These TexFilterTri drops are clear regressions compared to earlier (1-2
years ago) measured impact of SIMD32 vs. SIMD16.
(And I'm a bit surprised that shader compilation speed test didn't regress more
from compiling additional SIMD32 variant.)</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>