summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Romanick <idr@us.ibm.com>2008-01-30 20:14:14 -0800
committerBen Skeggs <skeggsb@gmail.com>2008-02-15 13:50:27 +1100
commit2029ee48b1b5856ef3c9b4307f018bc6bd61ea6e (patch)
treefb58f77a68d08b86da899723a51355e458e90868 /src
parentbcaf0dd8d23b3e8562078b3a3e07ef99ca940881 (diff)
I don't know why using uint64_t for "base" doesn't work. Ugh.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/pipe/cell/common.h5
-rw-r--r--src/mesa/pipe/cell/spu/spu_main.c4
2 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/pipe/cell/common.h b/src/mesa/pipe/cell/common.h
index 28b0c59a0a..05aeed83ab 100644
--- a/src/mesa/pipe/cell/common.h
+++ b/src/mesa/pipe/cell/common.h
@@ -124,11 +124,12 @@ struct cell_command_clear_surface
*/
struct cell_array_info
{
- uint64_t base; /**< Base address of the 0th element. */
+ uint opcode;
+ uint base; /**< Base address of the 0th element. */
uint attr; /**< Attribute that this state if for. */
uint pitch; /**< Byte pitch from one entry to the next. */
uint format; /**< Pipe format of each entry. */
-};
+} ALIGN16_ATTRIB;
struct cell_shader_info
diff --git a/src/mesa/pipe/cell/spu/spu_main.c b/src/mesa/pipe/cell/spu/spu_main.c
index 7105c0f897..d6393048f5 100644
--- a/src/mesa/pipe/cell/spu/spu_main.c
+++ b/src/mesa/pipe/cell/spu/spu_main.c
@@ -394,8 +394,8 @@ cmd_batch(uint opcode)
pos += (1 + sizeof(struct pipe_viewport_state) / 4);
break;
case CELL_CMD_STATE_VS_ARRAY_INFO:
- cmd_state_vs_array_info((struct cell_array_info *) &buffer[pos+1]);
- pos += (1 + sizeof(struct cell_array_info) / 4);
+ cmd_state_vs_array_info((struct cell_array_info *) &buffer[pos]);
+ pos += (sizeof(struct cell_array_info) / 4);
break;
default:
printf("SPU %u: bad opcode: 0x%x\n", spu.init.id, buffer[pos]);