<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi Lionel,</p>
<p>Indeed the value 8 here is questionable. I picked it because
other drivers advertise the same value e.g. in Mesa radeon returns
8 for gl and vulkan or on Windows Intel's driver returns 8. But
why 8? It's some kind of mystery. <br>
</p>
<blockquote type="cite">"If the implementation truely has floating
point viewport bounds, it may report a sufficiently high value to
indicate this. "</blockquote>
8 seems to be a sufficiently high value (it seems if someone even
checks the value it's going like 'precision > 0' - it is used as
a flag). But still it's probably not good enough argument... <br>
<br>
Floating point (IEEE 754) has 24 bits of significand precision, in
other way - 6 to 9 significant decimal digits. And drivers return 8,
the only 8 in float-point is 8 exponent bits.<br>
<br>
Unless someone knows why 8, there two paths: <br>
<ul>
<li>Left it to be 8 - be the same as other drivers<br>
</li>
<li>Make 24 - to reflect 24 bits of significand precision of float<br>
</li>
</ul>
<br>
- Danil<br>
<br>
<br>
<div class="moz-cite-prefix">On 18.06.18 17:27, Lionel Landwerlin
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:10e7cf48-9890-a56c-2745-a6aff8280b1e@intel.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="moz-cite-prefix">Hey Danylo,<br>
<br>
Thanks for this patch.<br>
I'm not really an expert here but my understanding is that it
should reflect the number of bits in fixed point precision.<br>
We use 32bits floats in the packets sent to the hardware.<br>
Quoting the spec :<br>
<br>
"If the implementation truely has floating point viewport
bounds, it may report a sufficiently high value to indicate
this. "<br class="Apple-interchange-newline">
<br>
Maybe we should use something a bit bigger than 8?<br>
<br>
Cheers,<br>
<br>
-<br>
Lionel<br>
<br>
On 18/06/18 13:50, Danylo Piliaiev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1529326361-16523-1-git-send-email-danylo.piliaiev@globallogic.com">
<pre wrap="">We use floating-points for viewport bounds so VIEWPORT_SUBPIXEL_BITS
should reflect this.
Bugzilla: <a class="moz-txt-link-freetext" href="https://bugs.freedesktop.org/show_bug.cgi?id=105975" moz-do-not-send="true">https://bugs.freedesktop.org/show_bug.cgi?id=105975</a>
Signed-off-by: Danylo Piliaiev <a class="moz-txt-link-rfc2396E" href="mailto:danylo.piliaiev@globallogic.com" moz-do-not-send="true"><danylo.piliaiev@globallogic.com></a>
---
src/mesa/drivers/dri/i965/brw_context.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 9ced230..eacf326 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -688,7 +688,7 @@ brw_initialize_context_constants(struct brw_context *brw)
/* ARB_viewport_array, OES_viewport_array */
if (devinfo->gen >= 6) {
ctx->Const.MaxViewports = GEN6_NUM_VIEWPORTS;
- ctx->Const.ViewportSubpixelBits = 0;
+ ctx->Const.ViewportSubpixelBits = 8;
/* Cast to float before negating because MaxViewportWidth is unsigned.
*/
</pre>
</blockquote>
<p><br>
</p>
</blockquote>
<br>
</body>
</html>