Age | Commit message (Collapse) | Author | |
---|---|---|---|
2008-11-11 | CELL: two-sided stencil fixes | Robert 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-30 | CELL: stencil bug fixes | Robert 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-29 | cell: use simd utilities for pow, exp2, log2 | Brian Paul | |
2008-10-28 | cell: fix a number of fence issues | Brian Paul | |
Plus add assertions to check status, alignment, etc. | |||
2008-10-22 | cell: implement fencing for texture buffers | Brian 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-17 | cell: use an approximation in compute_lambda_2d() to avoid sqrt | Brian Paul | |
Though, the logf() call still needs attention. | |||
2008-10-17 | cell: add new debug flag (cache) to report texture cache stats on exit | Brian Paul | |
2008-10-17 | cell: 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-16 | cell: pass spu_texture_level ptr to get_four_texels() | Brian Paul | |
2008-10-16 | cell: implement KIL instruction | Brian Paul | |
2008-10-16 | cell: trilinear mipmap interpolation | Brian Paul | |
2008-10-16 | cell: update comments | Brian Paul | |
2008-10-16 | cell: call proper sampler function in sample_texture_cube() | Brian Paul | |
2008-10-16 | cell: clean up various texture-related things | Brian Paul | |
Distinguish among texture targets in codegen. progs/demos/cubemap.c runs correctly now too. | |||
2008-10-15 | cell: start some performance measurements | Brian 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-15 | cell: updated debug code | Brian Paul | |
2008-10-15 | cell: get rid of last usage of float4 union/typedef | Brian Paul | |
Results in slightly tighter code. | |||
2008-10-15 | cell: simplify triangle front/back face determination | Brian Paul | |
2008-10-15 | cell: send rasterizer state to SPUs in proper way, remove front_winding hack | Brian Paul | |
2008-10-15 | cell: remove some old, pre-batchbuffer stuff | Brian Paul | |
2008-10-15 | cell: move some CELL_MAX constants | Brian Paul | |
2008-10-15 | cell: remove obsolete spu_debug.h file | Brian Paul | |
2008-10-15 | cell: simplify spu debug code | Brian Paul | |
2008-10-15 | cell: propogate blend color to SPUs for the fallback fragment ops code | Brian Paul | |
2008-10-15 | cell: updated vertex dump/debug code | Brian Paul | |
2008-10-15 | cell: additional debug | Brian Paul | |
2008-10-15 | cell: fix/add some fallback blend cases | Brian Paul | |
2008-10-14 | cell: initial bits for 3D texture support | Brian Paul | |
2008-10-14 | cell: fix incorrect parameter type | Brian Paul | |
2008-10-14 | cell: support for cubemaps | Brian Paul | |
Though, progs/demos/cubemap.c doesn't quite work right... | |||
2008-10-14 | cell: support NPOT textures, clamp/repeat mode, normalized/unorm texcoords | Brian Paul | |
glDrawPixels works now. | |||
2008-10-14 | cell: fix broken negative texcoord conversion | Brian Paul | |
2008-10-14 | cell: use minify vs magnify filters | Brian Paul | |
2008-10-14 | cell: basic mipmap filtering works now | Brian Paul | |
Though, only GL_MIPMAP_NEAREST / GL_LINEAR works right now. | |||
2008-10-13 | cell: more clean-up in spu_tri.c | Brian Paul | |
2008-10-13 | cell: remove dead code, clean-up, reformatting | Brian Paul | |
2008-10-13 | cell: finish-up perspective-corrected interpolation | Brian Paul | |
2008-10-13 | cell: initial work for mipmap texture filtering | Brian Paul | |
2008-10-13 | cell: remove old texture-related fields | Brian Paul | |
2008-10-13 | cell: use fewer memory references in sample_texture4_bilinear_2() | Brian Paul | |
2008-10-13 | cell: remove more old texture code | Brian Paul | |
2008-10-13 | cell: bilinear texture filtering using integer arithmetic | Brian Paul | |
Fewer float/int conversions involved. | |||
2008-10-13 | cell: remove old texture code | Brian Paul | |
2008-10-13 | cell: do texture sampling/filtering for four pixels at a time. | Brian Paul | |
2008-10-13 | cell: added spu_unpack_A8R8G8B8_transpose4() | Brian Paul | |
Plus, clearer shuffle masks in other funcs. | |||
2008-10-10 | cell: pass texture unit (sampler number) to txp() function | Brian Paul | |
The glsl/multitex demo runs now. | |||
2008-10-10 | cell: updates in response to draw's struct vertex_info changes | Brian Paul | |
2008-10-09 | cell: implement basic TXP instruction in fragment shaders | Brian 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-08 | cell: implement more built-in shader functions, link spu code with -lm | Brian Paul | |
2008-10-07 | cell: add support for fragment shader constant buffers | Brian Paul | |