diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-01-25 09:01:36 -0700 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-01-25 17:25:56 -0700 |
commit | 4d534124e77109a0405bf68dc3fa1a370f5ea014 (patch) | |
tree | 808777435cd82a0cc088892a63f440ec80173532 /src/mesa/pipe/cell/spu | |
parent | 42d38ac02fff63406cd59914a3eb1e5ad27134d0 (diff) |
Cell: emit framebuffer state like other state
Plus misc clean-up. Window resize sometimes works now.
Diffstat (limited to 'src/mesa/pipe/cell/spu')
-rw-r--r-- | src/mesa/pipe/cell/spu/spu_main.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/pipe/cell/spu/spu_main.c b/src/mesa/pipe/cell/spu/spu_main.c index 2b88c54576..f9e15538b8 100644 --- a/src/mesa/pipe/cell/spu/spu_main.c +++ b/src/mesa/pipe/cell/spu/spu_main.c @@ -338,7 +338,7 @@ cmd_render(const struct cell_command_render *render) static void -cmd_framebuffer(const struct cell_command_framebuffer *cmd) +cmd_state_framebuffer(const struct cell_command_framebuffer *cmd) { if (Debug) printf("SPU %u: FRAMEBUFFER: %d x %d at %p, cformat 0x%x zformat 0x%x\n", @@ -349,6 +349,9 @@ cmd_framebuffer(const struct cell_command_framebuffer *cmd) cmd->color_format, cmd->depth_format); + ASSERT_ALIGN16(cmd->color_start); + ASSERT_ALIGN16(cmd->depth_start); + spu.fb.color_start = cmd->color_start; spu.fb.depth_start = cmd->depth_start; spu.fb.color_format = cmd->color_format; @@ -485,11 +488,11 @@ cmd_batch(uint opcode) for (pos = 0; pos < usize; /* no incr */) { switch (buffer[pos]) { - case CELL_CMD_FRAMEBUFFER: + case CELL_CMD_STATE_FRAMEBUFFER: { struct cell_command_framebuffer *fb = (struct cell_command_framebuffer *) &buffer[pos]; - cmd_framebuffer(fb); + cmd_state_framebuffer(fb); pos += sizeof(*fb) / 4; } break; @@ -581,8 +584,8 @@ main_loop(void) printf("SPU %u: EXIT\n", spu.init.id); exitFlag = 1; break; - case CELL_CMD_FRAMEBUFFER: - cmd_framebuffer(&cmd.fb); + case CELL_CMD_STATE_FRAMEBUFFER: + cmd_state_framebuffer(&cmd.fb); break; case CELL_CMD_CLEAR_SURFACE: cmd_clear_surface(&cmd.clear); |