summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/cell/common.h
AgeCommit message (Collapse)Author
2008-01-30I don't know why using uint64_t for "base" doesn't work. Ugh.Ian Romanick
2008-01-30Numerous small fixed to PPU-SPU vertex shader protocolIan Romanick
2008-01-30cell_array_info should not be 16-byte alignedIan Romanick
Forcing cell_array_info to be 16-byte aligned makes it more difficult to stuff that state in batch commands.
2008-01-30Handle CELL_CMD_VS_EXECUTE *only* outside batch commands.Ian Romanick
2008-01-30Elts are always ints, pass vOut pointers in-line in commandIan Romanick
2008-01-30Initial pass at vertex shader on SPU using TGSI VMIan Romanick
All of the code is wired in on the SPU side, but it is not called from the PPU yet. Instruction / declaration fetch still needs to be implemented in spu_exec.c.
2008-01-30Cell: move CELL_MAX_SPUSBrian
2008-01-28Cell: compute min index referenced in draw command, use it to reduce size of ↵Brian
vertex data payload
2008-01-28Cell: basic texture mappingBrian
Texture images are tiled in PPU code. SPUs use a texture cache for getting texels from textures. This is very rough code, but demos/texcyl.c works.
2008-01-28Cell: re-enable bounding boxesBrian
The geometry bounding box is used to restrict rasterization to just those tiles that are relevant. Note another dummy field had to be added to the cell_command_render struct. Apparently, every 4th word in a struct is susceptible to corruption in some circumstances. Might be a compiler bug.
2008-01-28Cell: clean-up of render pathBrian
Finally removed a number of unneeded flush commands. Vertex buffers are allocated from the general buffer pool, freed by SPUs when done. Still an occasional failed assertion (invalid batch buffer command)...
2008-01-28Cell: checkpoint commit: always inline prim indexes into batch bufferBrian
Also, explicit release-vertex-buffer command. Lots of debug/stale code still in place...
2008-01-28Cell: generalize the batch buffer code for vertex buffers...Brian
2008-01-26Cell: added support for inlined vertex buffers.Brian
Small prims are now self-contained in batch buffers when space allows.
2008-01-26Cell: added ROUNUP4Brian
2008-01-26Cell: added support for inlined indexesBrian
If there's room in the batch buffer after the rendering command to accomodate the indexes, put them there rather than in a separate buffer.
2008-01-26Cell: move ASSERT macro into common.hBrian
2008-01-25Cell: emit framebuffer state like other stateBrian
Plus misc clean-up. Window resize sometimes works now.
2008-01-25Cell: propogate vertex info to SPUs, use it for attrib interpolationBrian
2008-01-25Cell: new ROUNDUP16() macroBrian
2008-01-24Cell: insert dummy field into cell_command_render struct to work around ↵Brian
apparent compiler bug Without this dummy field, it seems the SPU code in cmd_render() gets a bogus value when dereferencing render->num_indices, sometimes. This showed up as missing tries in gears.c in the first frame rendered. Using spu-gcc version 4.1.1, Cell SDK 2.1
2008-01-24Cell: send actual vertex size in the render commandBrian
2008-01-21Cell: initial support for sampler stateBrian
2008-01-19Cell: improve "finished copying batch buffer" signalling.Brian
When the SPU is done copying a batch buffer to local store, use an mfc_put() to write a "done" message back to the buffer status array in main memory. We were previously using a mailbox message for synchronization.
2008-01-14Cell: after sending a batch, wait for a DMA completion signal.Brian
This fixes sporadic rendering glitches. Using a mailbox msg for now, until spe_mfcio_tag_status_read() or similar is found to work.
2008-01-12Cell: first state object (depth/stencil/alpha) emitted to SPUsBrian
2008-01-11Cell: basic batch buffer workingBrian
2008-01-11Cell: initial work for a hw-like batch buffer systemBrian
2008-01-11Cell: remove obsolete cell_prim_buffer struct and codeBrian
2008-01-11Cell: Remove the pre-vbuf rendering codeBrian
2008-01-10Cell: checkpoint: draw_vbuf code in place and works, but not enabled by ↵Brian
default yet.
2008-01-10bump CELL_MAX_VERTS to 240Brian
2008-01-09Cell: implemement basic Z testingBrian
Also, improve some surface clearing code
2008-01-03Cell: improve surface state code to replace some temporary code.Brian
2008-01-03pass surface format in cell_command_framebuffer structBrian
2008-01-02only fetch as much vertex data as neededBrian
2008-01-02remove previous triangle test codeBrian
2008-01-02Cell: basic triangle rendering works.Brian
The cell "render_stage" (last in the "draw" pipeline) emits vertices into a buffer which is pulled by the SPUs in response to a "RENDER" command. This is pretty much temporary/scaffold code for now.
2007-12-11Cell: draw smooth-shaded triangleBrian
2007-12-11Collect some global vars in a single struct.Brian
2007-12-11use ALIGN16_ATTRIB from p_compiler.hBrian
2007-12-10Cell: first triangle.Brian
This is a feeble first step, but it works. The cell_clear_surface() function has been hijacked to set up a "draw triangle" command and send it to all the SPUs. The Gallium softpipe triangle code was copied to the SPU module and modified. Only the progs/trivial/clear.c program runs.
2007-12-10Cell driver state-setter functions, basic tile get/put, glClear.Brian
The state setting code was mostly just copied from the softpipe driver. The SPUs can now get/put framebuffer tiles from/to main memory and clear them to a given color. Lots of debug code in effect. Tiled framebuffer is displayed in X window via the xmwinsys layer. To enable Cell driver, export GALLIUM_CELL=1
2007-12-02Initial Cell driver infrastructure.Brian
No real code yet. Just stand-ins and make/build infrastructure.