summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell/ppu
AgeCommit message (Collapse)Author
2009-07-22gallium: simplify tgsi_full_immediate structKeith Whitwell
Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
2009-06-26cell: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul
2009-04-15gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom
Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-04cell: update clear() code to catch up to gallium changesBrian Paul
2009-03-26gallium: Remove some little-used fields from struct pipe_surface.Michel Dänzer
2009-03-13gallium: Remove do_flip argument from surface_copyJakob Bornecrantz
I should have gotten most uses and implementation correctly fixed, but things might break. Feel free to blame me.
2009-03-04cell: update cell driver after gallium reference count changesBrian Paul
2009-03-04gallium: Unify reference counting.Michel Dänzer
The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().
2009-02-24cell: overhaul cell teximage codeBrian Paul
Updated to use the new pipe_transfer functions, etc. Texturing is working again. Though there's some bugs in mipmap texturing but I believe those predate the pipe_transfer changes.
2009-02-24cell: don't need tex transfer for drawing surfacesBrian Paul
2009-02-18cell: patch up cell_texture.c so it compilesBrian Paul
Start adding some new pipe_transfer code. Texturing is totally broken at this point but non-texture programs seem to run OK.
2009-02-18cell: updates for new pipe_transfer changesBrian Paul
Update framebuffer color/z/stencil mapping/unmapping.
2009-02-18cell: update vbuf code to catch up to recent changesBrian Paul
2009-02-18cell: remove unused varBrian Paul
2009-02-18cell: start adding new cell_transfer types/codeBrian Paul
2009-02-18cell: remove old surface_map codeBrian Paul
2009-02-07cell: remove unused varBrian Paul
2009-02-07cell: compile fix: many updates to cell texture code for new surface mappingBrian Paul
The Cell texture code really needs a thorough inspection and clean-up someday...
2009-02-07cell: compile fix: alpha.ref is now alpha.ref_valueBrian Paul
2009-02-07cell: compile fix: pipe_constant_buffer no longer has size fieldBrian Paul
2009-02-07cell: compile fix: pipe_constant_buffer no longer has size fieldBrian Paul
2009-01-31gallium: initialize simple screen in driversZack Rusin
2009-01-30gallium: make p_winsys internalZack Rusin
move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
2009-01-29gallium: give the screen priority when it comes to buffer allocationsZack Rusin
allows the driver to overwrite buffer allocation, first step on the way to making winsys interface internal to the drivers. state trackers and the code above it will go through the screen
2009-01-27gallium: standardize api on the prefix "nr"Zack Rusin
2009-01-27gallium: standardize naming of masksZack Rusin
2009-01-19Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell
2009-01-12cell: allocate batch buffers w/ 16-byte alignmentJonathan Adamczewski
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().
2009-01-11cell: optimize unpack_colors() function, saving 12 cyclesBrian Paul
2009-01-11cell: move color unpacking code into separate functionBrian Paul
2009-01-11cell: re-order the z/stencil fetch/extract/convert instructions for better perfBrian Paul
The new instruction order is 10 cycles faster.
2009-01-11cell: simplify the 'optional register' codeBrian Paul
2009-01-11cell: asst datatype clean-upsBrian Paul
2009-01-11cell: move depth/stencil code into separate functionBrian Paul
2009-01-11cell: clean-up, re-indent, commentsBrian Paul
2009-01-11Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell
2009-01-10cell: use tgsi_dump_instruction() instead of spe_comment()Brian Paul
2009-01-10cell: added rule to produce .s assembly filesBrian Paul
2009-01-09Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell
Conflicts: progs/glsl/Makefile
2009-01-08cell: fix breakage from xlib re-orgBrian Paul
Some of these fixes are quick band-aids for now.
2009-01-08gallium: split driver-independent code out of xlib winsysKeith Whitwell
Place in new xlib state-tracker. This is a statetracker for the GLX API.
2009-01-06cell: replace 0 with -1 in SPE_COUNT_USABLE_SPES queryJonathan Adamczewski
2009-01-05cell: fix code emit for RSQ/RCP when src arg == dst argBrian Paul
Fixes moire-like artifacts seen in fslight demo.
2009-01-04cell: initial codegen support for fragment shader loopsBrian Paul
Basic for/while loops work now. Only one level of loop nesting is supported at this time (same for if/else). The progs/glsl/mandelbrot demo works, but the colors are too dim.
2009-01-04cell: add support for PIPE_CAP_TEXTURE_MIRROR_REPEAT queryBrian Paul
We don't really support this texwrap mode yet, but this enables GL 2.1
2009-01-04cell: clean-up, improve SPU code generationBrian Paul
Start on ARL and address-relative indexing too.
2009-01-03cell: fix typo (s/10/0)Brian
2008-11-21CELL: use variant-length fragment ops programsRobert Ellison
This is a set of changes that optimizes the memory use of fragment operation programs (by using and transmitting only as much memory as is needed for the fragment ops programs, instead of maximal sizes), as well as eliminate the dependency on hard-coded maximal program sizes. State that is not dependent on fragment facing (i.e. that isn't using two-sided stenciling) will only save and transmit a single fragment operation program, instead of two identical programs. - Added the ability to emit a LNOP (No Operation (Load)) instruction. This is used to pad the generated fragment operations programs to a multiple of 8 bytes, which is necessary for proper operation of the dual instruction pipeline, and also required for proper SPU-side decoding. - Added the ability to allocate and manage a variant-length struct cell_command_fragment_ops. This structure now puts the generated function field at the end, where it can be as large as necessary. - On the PPU side, we now combine the generated front-facing and back-facing code into a single variant-length buffer (and only use one if the two sets of code are identical) for transmission to the SPU. - On the SPU side, we pull the correct sizes out of the buffer, allocate a new code buffer if the one we have isn't large enough, and save the code to that buffer. The buffer is deallocated when the SPU exits. - Commented out the emit_fetch() static function, which was not being used.
2008-11-20CELL: improve twiddling/untwiddling error textRobert Ellison
As suggested by Brian Paul: in the case of a twiddling error, instead of reporting the bad format number (which is all but unusable), report the more useful enum name.
2008-11-13CELL: fix stencil twiddling, stencil invertRobert Ellison
Many stencil tests were failing because of a failure to read the stencil buffer, due to "twiddling" (or "untwiddling") "an unsupported texture format". This is fixed for the case of a stencil/Z S824Z format (which twiddles just like the 32-bit color formats). tests/stencilwrap.c was failing on the GL_INVERT test, because the emitted code for "spe_xori" turned out not to be an actual "xori" instruction, but rather a "stqd" instruction, because of a typo in the rtasm code. This is now fixed, and tests/stencil_wrap now works.