<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 12, 2016 at 4:50 PM, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">With the SPIR-V link added and the wording change suggested by Erik RE:<br>
precision vs. number of bits in the type, this series is<br></blockquote><div><br></div><div>How about:<br><br></div><div>This opcode takes a 32-bit floating-point value and reduces its precision to that of a 16-bit half-float value.  Values inside the range of an fp16 get rounded, while values outside the range are clamped to the appropriate infinity.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Reviewed-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br></blockquote><div><br></div><div>Thanks!<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
At some point we should add a debug mode that inserts these operations<br>
in GLSL ES shaders around mediump and lowp types and operations.  Maybe<br>
leave that as a GSoC or EVoC project...<br></blockquote><div><br></div><div>Yeah, that would be a pretty good decent project for someone who wants to get their feet wet in the compiler.<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>
On 01/12/2016 03:35 PM, Jason Ekstrand wrote:<br>
> This opcode simply takes a 32-bit floating-point value and reduces its<br>
> effective precision to 16 bits.<br>
> ---<br>
>  src/glsl/nir/nir_opcodes.py | 1 +<br>
>  1 file changed, 1 insertion(+)<br>
><br>
> diff --git a/src/glsl/nir/nir_opcodes.py b/src/glsl/nir/nir_opcodes.py<br>
> index d31507f..9dbb341 100644<br>
> --- a/src/glsl/nir/nir_opcodes.py<br>
> +++ b/src/glsl/nir/nir_opcodes.py<br>
> @@ -176,6 +176,7 @@ unop("ffloor", tfloat, "floorf(src0)")<br>
>  unop("ffract", tfloat, "src0 - floorf(src0)")<br>
>  unop("fround_even", tfloat, "_mesa_roundevenf(src0)")<br>
><br>
> +unop("fquantize2f16", tfloat, "_mesa_half_to_float(_mesa_float_to_half(src0))")<br>
><br>
>  # Trigonometric operations.<br>
><br>
><br>
<br>
</div></div></blockquote></div><br></div></div>