aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/cell/ppu/cell_vbuf.c
Commit message (Collapse)AuthorAgeFilesLines
* cell: update vbuf code to catch up to recent changesBrian Paul2009-02-181-5/+28
|
* cell: allocate batch buffers w/ 16-byte alignmentJonathan Adamczewski2009-01-121-7/+9
| | | | | | | | | | | Replace cell_batch{align,alloc)*() with cell_batch_alloc16(), allocating multiples of 16 bytes that are 16 byte aligned. Opcodes are stored in preferred slot of SPU machine word. Various structures are explicitly padded to 16 byte multiples. Added STATIC_ASSERT().
* cell: implement fencing for texture buffersBrian Paul2008-10-221-0/+6
| | | | | | | If we delete a texture, we need to keep the underlying tiled data buffer around until any rendering that references it has completed. Keep a list of buffers referenced by a rendering batch. Unref/free them when the associated batch's fence is executed/signalled.
* cell: send rasterizer state to SPUs in proper way, remove front_winding hackBrian Paul2008-10-151-1/+0
|
* CELL: changes to generate SPU code for stencilingRobert Ellison2008-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This set of code changes are for stencil code generation support. Both one-sided and two-sided stenciling are supported. In addition to the raw code generation changes, these changes had to be made elsewhere in the system: - Added new "register set" feature to the SPE assembly generation. A "register set" is a way to allocate multiple registers and free them all at the same time, delegating register allocation management to the spe_function unit. It's quite useful in complex register allocation schemes (like stenciling). - Added and improved SPE macro calculations. These are operations between registers and unsigned integer immediates. In many cases, the calculation can be performed with a single instruction; the macros will generate the single instruction if possible, or generate a register load and register-to-register operation if not. These macro functions are: spe_load_uint() (which has new ways to load a value in a single instruction), spe_and_uint(), spe_xor_uint(), spe_compare_equal_uint(), and spe_compare_greater_uint(). - Added facing to fragment generation. While rendering, the rasterizer needs to be able to determine front- and back-facing fragments, in order to correctly apply two-sided stencil. That requires these changes: - Added front_winding field to the cell_command_render block, so that the state tracker could communicate to the rasterizer what it considered to be the front-facing direction. - Added fragment facing as an input to the fragment function. - Calculated facing is passed during emit_quad().
* cell: assorted comments, clean-ups, etc.Brian Paul2008-09-041-0/+5
|
* cell: change context type passed to cell_flush_int()Brian Paul2008-09-031-3/+4
|
* cell: asst fixes to get driver building/running again.Brian2008-08-251-0/+1
| | | | Note that SPU vertex transformation is disabled at this time.
* gallium: Change pipe->flush() interface to optionally return a fence.Michel Dänzer2008-03-261-1/+1
| | | | | The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run proper fencing should be implemented for it.
* Code reorganization: update build.José Fonseca2008-02-151-1/+1
| | | | | | | | | Update the Makefiles and includes for the new paths. Note that there hasn't been no separation of the Makefiles yet, and make is jumping all over the place. That will be taken care shortly. But for now, make should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm might require some minor tweaks.
* Code reorganization: move files into their places.José Fonseca2008-02-151-0/+294
This is in a separate commit to ensure renames are properly preserved.