summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell
AgeCommit message (Collapse)Author
2009-07-23gallium: remove deprecated TGSI opcodesKeith Whitwell
Various opcodes which can be implemented trivially with other TGSI opcodes, such as matrix multiplication and negation. These were not used by any state tracker or implemented by any of the drivers.
2009-07-22cell: update TGSI_OPCODE_ casesBrian Paul
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-26Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
2009-06-26cell: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul
2009-05-21cell: perform triangle cull a little earlierJonathan Adamczewski
In spu_tri.c:setup_sort_vertices() triangles are culled after the vertices are sorted. This patch moves the check a little earlier and performs the actual check a little faster through intrinsics and a little trickery. Reduced code size and less work is done before a triangle is deemed OK to skip.
2009-05-21cell: unroll inner loop of spu_render.c:cmd_render()Jonathan Adamczewski
It was taking approximately 50 cycles to extract the vertex indices, calculate the vertex_header pointers and call tri_draw() for each three vertices - . Unrolled, it takes less than 100 cycles to extract, unpack, calculate pointers and call tri_draw() eight times. It does have a nasty jump-tabled switch. I'm sure that there's a better way... Code size of spu_render.o gets larger due to the extra constants and work in the inner loop, there are extra stack saves and loads because there are more registers in use, and an assert. spu_tri.o gets a little smaller.
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-18util: Move p_debug.h into util module.José Fonseca
The debug functions depend on several util function for os abstractions, and these depend on debug functions, so a seperate module is not possible.
2009-02-16cell: use some SPU intrinsics to get slightly better code in eval_inputs()Brian Paul
Suggested by Jonathan Adamczewski. There may be more places to do this...
2009-02-15cell: minor Makefile clean-upBrian Paul
2009-02-15cell: new/tighter code for computing fragment program inputsBrian Paul
2009-02-15cell: combine eval_z(), eval_w() functionsBrian 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-14cell: Specify constant as float for CEILF().Jonathan Adamczewski
Without the f, the constant is treated as a double, resulting in slower arithmetic and libgcc conversion calls each time CEILF() is used.
2009-01-13cell: Add missing suffix to SHUFFLE macroJonathan Adamczewski
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