

Go to the source code of this file.
Data Structures | |
| struct | cell_command_fragment_ops |
| Command to specify per-fragment operations state and generated code. More... | |
| struct | cell_command_fragment_program |
| Command to send a fragment progra to SPUs. More... | |
| struct | cell_command_framebuffer |
| Tell SPUs about the framebuffer size, location. More... | |
| struct | cell_command_clear_surface |
| Clear framebuffer to the given value/color. More... | |
| struct | cell_array_info |
| Array info used by the vertex shader's vertex puller. More... | |
| struct | cell_attribute_fetch_code |
| struct | cell_buffer_range |
| struct | cell_shader_info |
| struct | cell_command_vs |
| struct | cell_command_render |
| struct | cell_command_release_verts |
| struct | cell_command_sampler |
| struct | cell_command_texture |
| struct | cell_command |
| XXX unions don't seem to work. More... | |
| struct | cell_init_info |
| This is the object passed to spe_create_thread(). More... | |
Defines | |
| #define | ASSERT(x) |
| Types and tokens which are common to the SPU and PPU code. | |
| #define | ASSERT_ALIGN16(ptr) ASSERT((((unsigned long) (ptr)) & 0xf) == 0); |
| for sanity checking | |
| #define | ROUNDUP4(k) (((k) + 0x3) & ~0x3) |
| round up value to next multiple of 4 | |
| #define | ROUNDUP8(k) (((k) + 0x7) & ~0x7) |
| round up value to next multiple of 8 | |
| #define | ROUNDUP16(k) (((k) + 0xf) & ~0xf) |
| round up value to next multiple of 16 | |
| #define | CELL_MAX_SPUS 6 |
| #define | CELL_MAX_SAMPLERS 4 |
| #define | TILE_SIZE 32 |
| #define | CELL_CMD_OPCODE_MASK 0xff |
| The low byte of a mailbox word contains the command opcode. | |
| #define | CELL_CMD_EXIT 1 |
| #define | CELL_CMD_CLEAR_SURFACE 2 |
| #define | CELL_CMD_FINISH 3 |
| #define | CELL_CMD_RENDER 4 |
| #define | CELL_CMD_BATCH 5 |
| #define | CELL_CMD_RELEASE_VERTS 6 |
| #define | CELL_CMD_STATE_FRAMEBUFFER 10 |
| #define | CELL_CMD_STATE_FRAGMENT_OPS 11 |
| #define | CELL_CMD_STATE_SAMPLER 12 |
| #define | CELL_CMD_STATE_TEXTURE 13 |
| #define | CELL_CMD_STATE_VERTEX_INFO 14 |
| #define | CELL_CMD_STATE_VIEWPORT 15 |
| #define | CELL_CMD_STATE_UNIFORMS 16 |
| #define | CELL_CMD_STATE_VS_ARRAY_INFO 17 |
| #define | CELL_CMD_STATE_BIND_VS 18 |
| #define | CELL_CMD_STATE_FRAGMENT_PROGRAM 19 |
| #define | CELL_CMD_STATE_ATTRIB_FETCH 20 |
| #define | CELL_CMD_VS_EXECUTE 22 |
| #define | CELL_CMD_FLUSH_BUFFER_RANGE 23 |
| #define | CELL_NUM_BUFFERS 4 |
| #define | CELL_BUFFER_SIZE (4*1024) |
| 16KB would be the max | |
| #define | CELL_BUFFER_STATUS_FREE 10 |
| #define | CELL_BUFFER_STATUS_USED 20 |
| #define | CELL_DEBUG_CHECKER (1 << 0) |
| #define | CELL_DEBUG_SYNC (1 << 1) |
| #define | SPU_MAX_FRAGMENT_OPS_INSTS 64 |
| Max instructions for doing per-fragment operations. | |
| #define | SPU_MAX_FRAGMENT_PROGRAM_INSTS 128 |
| Max instructions for fragment programs. | |
| #define | SPU_VERTS_PER_BATCH 64 |
Variables | |
| struct cell_command | ALIGN16_ATTRIB |
| #define ASSERT | ( | x | ) |
Value:
if (!(x)) { \ ubyte *p = NULL; \ fprintf(stderr, "%s:%d: %s(): assertion %s failed.\n", \ __FILE__, __LINE__, __FUNCTION__, #x); \ *p = 0; \ exit(1); \ }
The standard assert macro doesn't seem to work reliably
| #define ASSERT_ALIGN16 | ( | ptr | ) | ASSERT((((unsigned long) (ptr)) & 0xf) == 0); |
| #define CELL_CMD_OPCODE_MASK 0xff |
| #define ROUNDUP16 | ( | k | ) | (((k) + 0xf) & ~0xf) |
| #define ROUNDUP4 | ( | k | ) | (((k) + 0x3) & ~0x3) |
| #define ROUNDUP8 | ( | k | ) | (((k) + 0x7) & ~0x7) |
| #define SPU_MAX_FRAGMENT_OPS_INSTS 64 |
| #define SPU_MAX_FRAGMENT_PROGRAM_INSTS 128 |
| struct cell_init_info ALIGN16_ATTRIB |
1.5.4