aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast/s_fragprog.c
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-02-05 11:28:15 -0700
committerBrian <[email protected]>2007-02-05 11:28:15 -0700
commit01001d80e26143ac768115ccb2266db2b24d4fa0 (patch)
tree193823bef28d0fb428e7ad42317811ed4116316a /src/mesa/swrast/s_fragprog.c
parentdd34fe8679fa200e55cfaf8e80bbecdecea084e3 (diff)
Initial support of loop and subroutine instructions.
New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines.
Diffstat (limited to 'src/mesa/swrast/s_fragprog.c')
-rw-r--r--src/mesa/swrast/s_fragprog.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_fragprog.c b/src/mesa/swrast/s_fragprog.c
index 740360d4603..00231aeae8b 100644
--- a/src/mesa/swrast/s_fragprog.c
+++ b/src/mesa/swrast/s_fragprog.c
@@ -675,6 +675,14 @@ execute_program( GLcontext *ctx,
}
}
break;
+ case OPCODE_BGNLOOP: /* begin loop */
+ break;
+ case OPCODE_ENDLOOP: /* end loop */
+ break;
+ case OPCODE_BGNSUB: /* begin subroutine */
+ break;
+ case OPCODE_ENDSUB: /* end subroutine */
+ break;
case OPCODE_BRA: /* conditional branch */
{
/* NOTE: The branch is conditional! */
@@ -692,6 +700,9 @@ execute_program( GLcontext *ctx,
}
}
break;
+ case OPCODE_BRK: /* break out of loop */
+ /* assert inside loop */
+ break;
case OPCODE_CAL: /* Call subroutine */
{
/* NOTE: The call is conditional! */
@@ -722,6 +733,8 @@ execute_program( GLcontext *ctx,
store_vector4( inst, machine, result );
}
break;
+ case OPCODE_CONT: /* continue loop */
+ break;
case OPCODE_COS:
{
GLfloat a[4], result[4];