summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/cell
AgeCommit message (Collapse)Author
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: prototype SIMD code for z testingBrian
2008-01-30Cell: start to SIMD-ize triangle attribute interpolationBrian
Using the spu_add(), etc intrinsics. About a 15% speed-up with some tests.
2008-01-30Cell: fold setup_tri() into tri_draw()Brian
2008-01-30Cell: make 'setup' a regular var instead of passing around a pointer everywhereBrian
We'll never have more than one of these objects. Avoiding pointer deref improves performance a bit.
2008-01-30Cell: minor code refactoring, movementBrian
2008-01-30Cell: check tile status before wait_on_mask()Brian
2008-01-30Cell: make wait_on_mask() static/inlinedBrian
2008-01-30Cell: move CELL_MAX_SPUSBrian
2008-01-29Cell: use _pack_rgba8() from pack_rgba8.h to do float[4]->uint color conversionBrian
texcyl.c is twice as fast now in non-texture mode
2008-01-28Cell: move cmd_render() into new spu_render.c fileBrian
2008-01-28Cell: add a few null texture testsBrian
2008-01-28Cell: compute min index referenced in draw command, use it to reduce size of ↵Brian
vertex data payload
2008-01-28Cell: minor optimization for flat shadingBrian
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: initial texture cache/sampling codeBrian
2008-01-28Cell: emit state in cell_clear_surface() if dirty.Brian
Without this a program that does nothing but glClear() doesn't work. We need the framebuffer state.
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: additional assertionsBrian
2008-01-28Cell: make sure state commands aren't split across batchesBrian
2008-01-28Cell: remove unneeded flush(), dead codeBrian
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: If flushing for swapbuffers, wait for frame completionBrian
2008-01-28Cell: additional debug code, misc clean-upBrian
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: added cell_batch_free_space()Brian
2008-01-26Cell: remove some old tile codeBrian
2008-01-26Cell: fix a recursive flushing bugBrian
2008-01-26Cell: add check to catch recursive batch flushingBrian
2008-01-26Cell: move ASSERT macro into common.hBrian
2008-01-25Cell: updates to match pipe_buffer changesBrian
2008-01-25Cell: typedefs need semicolons, Ian :)Brian
2008-01-25Cell: emit framebuffer state like other stateBrian
Plus misc clean-up. Window resize sometimes works now.
2008-01-25gallium: replace prim pipeline begin/end() functions with flush()Brian
This is basically half of Keith's draw/flush patch. The stage->point/line/tri() functions are now self-validating, the validator functions are installed by the flush() function. There were excessive calls to validate_pipeline(), however. This was caused by draw_prim_queue_flush() keeping a local 'first' variable that always pointed to the validate functions. Replaced 'first' with 'draw->pipeline.first'. Performance in gears is up just slightly with this patch.
2008-01-25Work around parameter differences for main in different SDK versionsIan Romanick
2008-01-25gallium: rename pipe_buffer_handle to pipe_buffer, rework pipebuffer/ codeKeith Whitwell
Provide an actual definition of the pipe_buffer struct, containing the parameters used to create the buffer, and its refcount. Shift refcounting buffers out of the winsys interface, similar to surfaces & textures. Rework pipebuffer/ to reflect the fact these changes, and also Michel's reworking of the buffer interface.
2008-01-25Cell: propogate vertex info to SPUs, use it for attrib interpolationBrian
2008-01-25Cell: batch_buffer_size should be uint, not ubyteBrian
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-24Cell: rewrite compute_vertex_layout()Brian
2008-01-24Cell: fix asst. warningsBrian
2008-01-23Cell: s/FORMAT/EMIT/Brian
2008-01-23Cell: remove old test codeBrian
2008-01-23Cell: asst. updates to sync up with today's earlier gallium changesBrian