struct cell_shader_info
{
- unsigned processor;
unsigned num_outputs;
void *declarations;
#define SPU_VERTS_PER_BATCH 64
struct cell_command_vs
{
+ uint opcode; /**< CELL_CMD_VS_EXECUTE */
struct cell_shader_info shader;
unsigned num_elts;
unsigned elts[SPU_VERTS_PER_BATCH];
struct cell_command_framebuffer fb;
struct cell_command_clear_surface clear;
struct cell_command_render render;
+ struct cell_command_vs vs;
} ALIGN16_ATTRIB;
cmd_state_vs_array_info((struct cell_array_info *) &buffer[pos+1]);
pos += (1 + sizeof(struct cell_array_info) / 4);
break;
- case CELL_CMD_VS_EXECUTE:
- spu_execute_vertex_shader(&draw,
- (struct cell_command_vs *) &buffer[pos+1]);
- pos += (1 + sizeof(struct cell_command_vs) / 4);
- break;
default:
printf("SPU %u: bad opcode: 0x%x\n", spu.init.id, buffer[pos]);
ASSERT(0);
assert(pos_incr == 0);
}
break;
+ case CELL_CMD_VS_EXECUTE:
+ spu_execute_vertex_shader(&draw, &cmd.vs);
+ break;
case CELL_CMD_BATCH:
cmd_batch(opcode);
break;