diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-01-11 12:04:55 -0700 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-01-11 12:04:55 -0700 |
commit | 08c2571fb48d41731c81cc402acabf709523c831 (patch) | |
tree | 48185f77bbc8416b30c5d4a4255c7d5b27c54e17 /src/mesa/pipe/cell/spu/main.c | |
parent | 7db94ba03173f345a47fd727e8d866a87a484415 (diff) |
Cell: initial work for a hw-like batch buffer system
Diffstat (limited to 'src/mesa/pipe/cell/spu/main.c')
-rw-r--r-- | src/mesa/pipe/cell/spu/main.c | 19 |
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); |