Handle CELL_CMD_VS_EXECUTE *only* outside batch commands.
This commit is contained in:
@@ -133,7 +133,6 @@ struct cell_array_info
|
||||
|
||||
struct cell_shader_info
|
||||
{
|
||||
unsigned processor;
|
||||
unsigned num_outputs;
|
||||
|
||||
void *declarations;
|
||||
@@ -147,6 +146,7 @@ struct cell_shader_info
|
||||
#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];
|
||||
@@ -190,6 +190,7 @@ struct cell_command
|
||||
struct cell_command_framebuffer fb;
|
||||
struct cell_command_clear_surface clear;
|
||||
struct cell_command_render render;
|
||||
struct cell_command_vs vs;
|
||||
} ALIGN16_ATTRIB;
|
||||
|
||||
|
||||
|
||||
@@ -397,11 +397,6 @@ cmd_batch(uint opcode)
|
||||
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);
|
||||
@@ -470,6 +465,9 @@ main_loop(void)
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user