summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell/spu
AgeCommit message (Collapse)Author
2008-10-13cell: bilinear texture filtering using integer arithmeticBrian Paul
Fewer float/int conversions involved.
2008-10-13cell: remove old texture codeBrian Paul
2008-10-13cell: do texture sampling/filtering for four pixels at a time.Brian Paul
2008-10-13cell: added spu_unpack_A8R8G8B8_transpose4()Brian Paul
Plus, clearer shuffle masks in other funcs.
2008-10-10cell: pass texture unit (sampler number) to txp() functionBrian Paul
The glsl/multitex demo runs now.
2008-10-10cell: updates in response to draw's struct vertex_info changesBrian Paul
2008-10-09cell: implement basic TXP instruction in fragment shadersBrian Paul
Lots of restrictions for now (one 2D texture, no mipmaps, etc.) for now but basic texture demos work. TEX, TXD, TXP do the same thing for the time being.
2008-10-08cell: implement more built-in shader functions, link spu code with -lmBrian Paul
2008-10-07cell: add support for fragment shader constant buffersBrian Paul
2008-10-03CELL: changes to generate SPU code for stencilingRobert Ellison
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().
2008-09-26cell: stub-out sin/cos function bodies to avoid trashing caller's stack for nowBrian Paul
2008-09-26cell: move command processing code into new spu_command.c fileBrian Paul
2008-09-26cell: move debug-related declarationsBrian Paul
2008-09-26cell: move debug macros into new spu_debug.hBrian Paul
2008-09-26cell: move really_clear_tiles()Brian Paul
2008-09-26cell: align instruction buffers to 8-byte, not 32-byte boundaryBrian Paul
2008-09-26cell: checkpoint: support for function calls in SPU shadersBrian Paul
Will be used for instructions like SIN/COS/POW/TEX/etc. The PPU needs to know the address of some functions in the SPU address space. Send that info to the PPU/main memory rather than patch up shaders on the SPU side. Not finished/tested yet...
2008-09-19cell: make sure the fragment ops and fragment shader code buffer is at a ↵Brian Paul
32-byte boundary To make sure even/odd instructions hit the right pipes.
2008-09-19cell: issue warning to stderr when using fallback fragment opsBrian Paul
2008-09-19cell: the test for CELL_DEBUG_FRAGMENT_OP_FALLBACK in ↵Brian Paul
cmd_state_fragment_ops() was inverted
2008-09-18CELL: mark several transient files as .gitignoreRobert Ellison
progs/demos: added new demo "fbo_firecube" progs/glsl: added new demo "pointcoord" src/gallium/drivers/cell/spu: added the g3d_spu executable, a Cell SPU executable file, which seems to be occasionally built as part of the cell driver src/glu/sgi: added "exptmp", a byproduct of the "mklib" process that sometimes gets deleted and sometimes not.
2008-09-17CELL: fleshing out the blending fragment opsRobert Ellison
- Added two new debug flags (to be used with the CELL_DEBUG environment variable). The first, "CELL_DEBUG=fragops", activates SPE fragment ops debug messages. The second, "CELL_DEBUG=fragopfallback", will eventually be used to disable the use of generated SPE code for fragment ops in favor of the default fallback reference routine. (During development, though, the parity of this flag is reversed: all users will get the reference code *unless* CELL_DEBUG=fragopfallback is set. This will prevent hiccups in code generation from affecting the other developers.) - Formalized debug message usage and macros in spu/spu_main.c. - Added lots of new code to ppu/cell_gen_fragment.c to extend the number of supported source RGB factors from 4 to 15, and to complete the list of supported blend equations. More coming, to complete the source and destination RGB and alpha factors, and to complete the rest of the fragment operations...
2008-09-12cell: evaluate multiple fragment inputsBrian Paul
2008-09-12cell: implement colormask on fallback pathBrian Paul
Also, some var renaming and additional comments
2008-09-12cell: setup fragment program inputs in SOA formatBrian Paul
Also remove old code, etc.
2008-09-11cell: initial support for fragment shader code generation.Brian Paul
TGSI shaders are translated into SPE instructions which are then sent to the SPEs for execution. Only a few opcodes work, no swizzling yet, no support for constants/immediates, etc.
2008-09-11cell: more comments, stub code for colormask/logicop/etcBrian Paul
2008-09-11cell: clean-up, commentsBrian Paul
2008-09-11cell: don't build unused sourcesBrian Paul
2008-09-11cell: asst. clean-upBrian Paul
2008-09-11cell: checkpoint: remove more of the old per-fragment codeBrian Paul
2008-09-11cell: begin new blending code (both codegen and fallback paths)Brian Paul
2008-09-11cell: fix shuffle in spu_unpack_B8G8R8A8()Brian Paul
2008-09-11cell: added cast in spu_splats() callBrian Paul
2008-09-11cell: remove old per-fragment code, replace with all new codeBrian Paul
2008-09-11cell: checkpoint commit of new per-fragment processingBrian Paul
Do code generation for alpha test, z test, stencil, blend, colormask and framebuffer/tile read/write as a single code block. Ian's previous blend/z/stencil test code is still there but mostly disabled and will be removed soon.
2008-09-11cell: minor change to Z float/int conversion code (avoid switch)Brian Paul
2008-09-11cell: commentsBrian Paul
2008-09-11cell: comments, etc.Brian Paul
2008-09-05cell: code clean-up, commentsBrian Paul
2008-09-04cell: implement CELL_DEBUG env/options varBrian Paul
Options so far: "checker" module tile clear color by SPU ID to see where the tiles are "sync" to do synchronous DMA (only partially implemented)
2008-09-03cell: replace assert() with special spu ASSERT() macroBrian Paul
2008-09-03cell: commentsBrian Paul
2008-09-03cell: add -DDEBUG flag, fixes to Cell MakefilesBrian Paul
2008-08-25cell: asst fixes to get driver building/running again.Brian
Note that SPU vertex transformation is disabled at this time.
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-08-13cell: KILP is a predicated discard, KIL is a conditional discard.Michal Krol
2008-07-28Merge tgsi/exec and tgsi/util directories.José Fonseca
2008-06-02cell: SWZ no longer aliases MOV.Michal Krol
2008-05-31cell: Fix build after TGSI declaration interface changes.Michal Krol