summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell/spu
AgeCommit message (Collapse)Author
2008-11-11CELL: two-sided stencil fixesRobert Ellison
With these changes, the tests/stencil_twoside test now works. - Eliminate blending from the stencil_twoside test, as it produces an unneeded dependency on having blending working - The spe_splat() function will now work if the register being splatted and the destination register are the same - Separate fragment code generated for front-facing and back-facing fragments. Often these are the same; if two-sided stenciling is on, they can be different. This is easier and faster than generating code that does both tests and merges the results. - Fixed a cut/paste bug where if the back Z-pass stencil operation were different from all the other operations, the back Z-fail results were incorrect.
2008-10-30CELL: stencil bug fixesRobert Ellison
Two definitive bugs in stenciling were fixed. The first, reversed registers in the generated Select Bytes (selb) instruction, caused the stenciling INCR and DECR operations to fail dramatically, putting new values in where old values were supposed to be and vice versa. The second caused stencil tiles to not be read and written from main memory by the SPUs. A per-spu flag, spu.read_depth, was used to indicate whether the SPU should be reading depth tiles, and was set only when depth was enabled. A second flag, spu.read_stencil, was set when stenciling was enabled, but never referenced. As stenciling and depth are in the same tiles on the Cell, and there is no corresponding TAG_WRITE_TILE_STENCIL to complement TAG_WRITE_TILE_COLOR and TAG_WRITE_TILE_Z, I fixed this by eliminating the unused "spu.read_stencil", renaming "spu.read_depth" to "spu.read_depth_stencil", and setting it if either stenciling or depth is enabled. I also added an optimization to the fragment ops generation code, that avoids calculating stencil values and/or stencil writemask when the stencil operations are all KEEP.
2008-10-29cell: use simd utilities for pow, exp2, log2Brian Paul
2008-10-28cell: fix a number of fence issuesBrian Paul
Plus add assertions to check status, alignment, etc.
2008-10-22cell: implement fencing for texture buffersBrian Paul
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.
2008-10-17cell: use an approximation in compute_lambda_2d() to avoid sqrtBrian Paul
Though, the logf() call still needs attention.
2008-10-17cell: add new debug flag (cache) to report texture cache stats on exitBrian Paul
2008-10-17cell: use 7-bit weights in sample_texture_2d_bilinear_int()Brian Paul
This allows us to use 16-bit signed mul/add instructions. Had to used unsigned mul before and there's no unsigned mul/add instruction.
2008-10-16cell: pass spu_texture_level ptr to get_four_texels()Brian Paul
2008-10-16cell: implement KIL instructionBrian Paul
2008-10-16cell: trilinear mipmap interpolationBrian Paul
2008-10-16cell: update commentsBrian Paul
2008-10-16cell: call proper sampler function in sample_texture_cube()Brian Paul
2008-10-16cell: clean up various texture-related thingsBrian Paul
Distinguish among texture targets in codegen. progs/demos/cubemap.c runs correctly now too.
2008-10-15cell: start some performance measurementsBrian Paul
Use the spu_write_decrementer() and spu_read_decrementer() functions to measure time. Convert to milliseconds according to the system timebase value.
2008-10-15cell: updated debug codeBrian Paul
2008-10-15cell: get rid of last usage of float4 union/typedefBrian Paul
Results in slightly tighter code.
2008-10-15cell: simplify triangle front/back face determinationBrian Paul
2008-10-15cell: send rasterizer state to SPUs in proper way, remove front_winding hackBrian Paul
2008-10-15cell: remove some old, pre-batchbuffer stuffBrian Paul
2008-10-15cell: move some CELL_MAX constantsBrian Paul
2008-10-15cell: remove obsolete spu_debug.h fileBrian Paul
2008-10-15cell: simplify spu debug codeBrian Paul
2008-10-15cell: propogate blend color to SPUs for the fallback fragment ops codeBrian Paul
2008-10-15cell: updated vertex dump/debug codeBrian Paul
2008-10-15cell: additional debugBrian Paul
2008-10-15cell: fix/add some fallback blend casesBrian Paul
2008-10-14cell: initial bits for 3D texture supportBrian Paul
2008-10-14cell: fix incorrect parameter typeBrian Paul
2008-10-14cell: support for cubemapsBrian Paul
Though, progs/demos/cubemap.c doesn't quite work right...
2008-10-14cell: support NPOT textures, clamp/repeat mode, normalized/unorm texcoordsBrian Paul
glDrawPixels works now.
2008-10-14cell: fix broken negative texcoord conversionBrian Paul
2008-10-14cell: use minify vs magnify filtersBrian Paul
2008-10-14cell: basic mipmap filtering works nowBrian Paul
Though, only GL_MIPMAP_NEAREST / GL_LINEAR works right now.
2008-10-13cell: more clean-up in spu_tri.cBrian Paul
2008-10-13cell: remove dead code, clean-up, reformattingBrian Paul
2008-10-13cell: finish-up perspective-corrected interpolationBrian Paul
2008-10-13cell: initial work for mipmap texture filteringBrian Paul
2008-10-13cell: remove old texture-related fieldsBrian Paul
2008-10-13cell: use fewer memory references in sample_texture4_bilinear_2()Brian Paul
2008-10-13cell: remove more old texture codeBrian Paul
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