The LOOP/ENDLOOP opcodes have been loosely defined in gallium and the 
de-facto definition had redundant semantics to BGNLOOP2/ENDLOOP2.

This patch documents this pair to closely match GL_NV_fragment_program2 
LOOP/ENDLOOP behaviour.

Fixes into the code will follow after this has been accepted.


diff --git a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt 
b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
index a3f4947..7b3e419 100644
--- a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
+++ b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
@@ -667,7 +667,15 @@ TGSI Instruction Specification
 
 1.9.8  LOOP - Loop
 
-  TBD
+  dst.x = floor(src.x)
+  dst.y = floor(src.y)
+  dst.z = floor(src.z)
+
+  if (dst.y <= 0)
+    pc = [matching ENDLOOP] + 1
+  endif
+
+  Note: The destination must be a loop register.
 
 
 1.9.9  REP - Repeat
@@ -687,7 +695,14 @@ TGSI Instruction Specification
 
 1.9.12  ENDLOOP - End Loop
 
-  TBD
+  dst.x = dst.x + dst.z
+  dst.y = dst.y - 1.0
+
+  if (dst.y > 0)
+    pc = [matching LOOP instruction]
+  endif
+
+  Note: The destination must be a loop register.
 
 
 1.9.13  ENDREP - End Repeat

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to