DX9 ps3/vs3 has a NRM (3-component) instruction so there's that
potential use, I guess.
-Brian
On 10/31/2014 04:52 PM, Jose Fonseca wrote:
Looks good.
AFAICT these opcodes are never generated, and no driver except
llvmpipe/softpipe/svga supports them. The performance is dominated by the
square root reciprocate which has its own opcode, RSQ, so personally I'm for
removing these opcodes.
Jose
________________________________________
From: mesa-dev <mesa-dev-boun...@lists.freedesktop.org> on behalf of Brian Paul
<bri...@vmware.com>
Sent: 31 October 2014 22:09
To: mesa-dev@lists.freedesktop.org
Subject: [Mesa-dev] [PATCH] gallium/docs: fix NRM, NRM4 docs
Need to do a sqrt().
FWIW, the html that Sphinx 1.1.3 generates for the math expressions
looks completely broken.
---
src/gallium/docs/source/tgsi.rst | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst
index 7d5918f..2e01971 100644
--- a/src/gallium/docs/source/tgsi.rst
+++ b/src/gallium/docs/source/tgsi.rst
@@ -837,16 +837,37 @@ This instruction replicates its result.
.. opcode:: NRM - 3-component Vector Normalise
.. math::
+
+ u = src.x \times src.x + src.y \times src.y + src.z \times src.z
- dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times
src.z)
+ v = \frac{1}{\sqrt{u}}
- dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times
src.z)
+ dst.x = src.x \times v
- dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times
src.z)
+ dst.y = src.y \times v
+
+ dst.z = src.z \times v
dst.w = 1
+.. opcode:: NRM4 - 4-component Vector Normalise
+
+.. math::
+
+ u = src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w
\times src.w
+
+ v = \frac{1}{\sqrt{u}}
+
+ dst.x = src.x \times v
+
+ dst.y = src.y \times v
+
+ dst.z = src.z \times v
+
+ dst.w = src.w \times v
+
+
.. opcode:: DIV - Divide
.. math::
@@ -1888,15 +1909,6 @@ Some require glsl version 1.30
(UIF/BREAKC/SWITCH/CASE/DEFAULT/ENDSWITCH).
Ends a switch expression.
-.. opcode:: NRM4 - 4-component Vector Normalise
-
-This instruction replicates its result.
-
-.. math::
-
- dst = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times
src.z + src.w \times src.w}
-
-
Interpolation ISA
^^^^^^^^^^^^^^^^^
--
1.7.10.4
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=AAIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=4bKmHe23DiKlVH-W1j4m5o9Kwlm6FmphS3eXx8l5n7k&s=iojTyR1LMxNqFh4RYaXXwoyhdW2gOACG45gQi8D05yc&e=
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev