<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 11, 2017 at 12:08 PM, Samuel Pitoiset <span dir="ltr"><<a href="mailto:samuel.pitoiset@gmail.com" target="_blank">samuel.pitoiset@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 01/11/2017 07:00 PM, Roland Scheidegger wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I don't think there's any glsl, es or otherwise, specification which<br>
would require denorms (since obviously lots of hw can't do it, d3d10<br>
forbids them), with any precision qualifier. Hence these look like bugs<br>
of the test suite to me?<br>
(Irrespective if it's a good idea or not to enable denormals, which I<br>
don't realy know.)<br>
</blockquote>
<br></span>
That test works on NVIDIA hw (both with blob and nouveau) and IIRC it also works on Intel hw. I don't think it's buggy there.<br><div class="HOEnZb"><div class="h5"></div></div></blockquote><div><br></div><div>Intel HW has full denorm support. Just because the test works for us doesn't mean it's valid.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Roland<br>
<br>
<br>
Am 11.01.2017 um 18:29 schrieb Samuel Pitoiset:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Only VI can do 32-bit denormals at full rate while previous<br>
generations can do it only for 64-bit and 16-bit.<br>
<br>
This fixes some dEQP tests with the highp type qualifier.<br>
<br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=99343" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/s<wbr>how_bug.cgi?id=99343</a><br>
Signed-off-by: Samuel Pitoiset <<a href="mailto:samuel.pitoiset@gmail.com" target="_blank">samuel.pitoiset@gmail.com</a>><br>
---<br>
src/gallium/drivers/radeonsi/<wbr>si_shader.c | 11 ++++++++---<br>
1 file changed, 8 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/gallium/drivers/radeonsi<wbr>/si_shader.c b/src/gallium/drivers/radeonsi<wbr>/si_shader.c<br>
index 5dfbd6603a..e9cb11883f 100644<br>
--- a/src/gallium/drivers/radeonsi<wbr>/si_shader.c<br>
+++ b/src/gallium/drivers/radeonsi<wbr>/si_shader.c<br>
@@ -6361,8 +6361,10 @@ int si_compile_llvm(struct si_screen *sscreen,<br>
<br>
si_shader_binary_read_config(b<wbr>inary, conf, 0);<br>
<br>
- /* Enable 64-bit and 16-bit denormals, because there is no performance<br>
- * cost.<br>
+ /* Enable denormals when there is no performance cost.<br>
+ *<br>
+ * Only VI can do 32-bit denormals at full rate while previous<br>
+ * generations can do it only for 64-bit and 16-bit.<br>
*<br>
* If denormals are enabled, all floating-point output modifiers are<br>
* ignored.<br>
@@ -6373,7 +6375,10 @@ int si_compile_llvm(struct si_screen *sscreen,<br>
* have to stop using those.<br>
* - SI & CI would be very slow.<br>
*/<br>
- conf->float_mode |= V_00B028_FP_64_DENORMS;<br>
+ if (sscreen->b.chip_class >= VI)<br>
+ conf->float_mode |= V_00B028_FP_ALL_DENORMS;<br>
+ else<br>
+ conf->float_mode |= V_00B028_FP_64_DENORMS;<br>
<br>
FREE(binary->config);<br>
FREE(binary->global_symbol_off<wbr>sets);<br>
<br>
</blockquote>
<br>
</blockquote>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>