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
