summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/cell/spu
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2008-01-11 12:04:55 -0700
committerBrian <brian.paul@tungstengraphics.com>2008-01-11 12:04:55 -0700
commit08c2571fb48d41731c81cc402acabf709523c831 (patch)
tree48185f77bbc8416b30c5d4a4255c7d5b27c54e17 /src/mesa/pipe/cell/spu
parent7db94ba03173f345a47fd727e8d866a87a484415 (diff)
Cell: initial work for a hw-like batch buffer system
Diffstat (limited to 'src/mesa/pipe/cell/spu')
-rw-r--r--src/mesa/pipe/cell/spu/main.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/mesa/pipe/cell/spu/main.c b/src/mesa/pipe/cell/spu/main.c
index 20f15029e1..04bb087cf9 100644
--- a/src/mesa/pipe/cell/spu/main.c
+++ b/src/mesa/pipe/cell/spu/main.c
@@ -322,6 +322,13 @@ render(const struct cell_command_render *render)
+static void
+batch(const struct cell_command_batch *batch)
+{
+}
+
+
+
/**
* Temporary/simple main loop for SPEs: Get a command, execute it, repeat.
*/
@@ -359,7 +366,7 @@ main_loop(void)
0 /* rid */);
wait_on_mask( 1 << tag );
- switch (opcode) {
+ switch (opcode & CELL_CMD_OPCODE_MASK) {
case CELL_CMD_EXIT:
if (Debug)
printf("SPU %u: EXIT\n", init.id);
@@ -403,6 +410,16 @@ main_loop(void)
render(&cmd.render);
break;
+ case CELL_CMD_BATCH:
+ /* execute a batch buffer */
+ if (Debug)
+ printf("SPU %u: BATCH buffer %u, len %u\n",
+ init.id,
+ cmd.batch.buffer,
+ cmd.batch.length);
+ batch(&cmd.batch);
+ break;
+
case CELL_CMD_FINISH:
if (Debug)
printf("SPU %u: FINISH\n", init.id);