summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/cell/spu
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2008-01-25 09:01:36 -0700
committerBrian <brian.paul@tungstengraphics.com>2008-01-25 17:25:56 -0700
commit4d534124e77109a0405bf68dc3fa1a370f5ea014 (patch)
tree808777435cd82a0cc088892a63f440ec80173532 /src/mesa/pipe/cell/spu
parent42d38ac02fff63406cd59914a3eb1e5ad27134d0 (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.c13
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);