summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/cell
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'mesa_7_5_branch'Brian Paul2009-06-261-0/+2
|\ | | | | | | | | | | | | | | Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
| * cell: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul2009-06-261-0/+2
| |
* | cell: perform triangle cull a little earlierJonathan Adamczewski2009-05-211-31/+74
| | | | | | | | | | | | | | | | | | | | 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.
* | cell: unroll inner loop of spu_render.c:cmd_render()Jonathan Adamczewski2009-05-213-32/+89
|/ | | | | | | | | | | | | | | 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.
* gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom2009-04-151-0/+25
| | | | | | | Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
* cell: update clear() code to catch up to gallium changesBrian Paul2009-04-043-39/+25
|
* gallium: Remove some little-used fields from struct pipe_surface.Michel Dänzer2009-03-261-13/+0
|
* gallium: Remove do_flip argument from surface_copyJakob Bornecrantz2009-03-131-1/+13
| | | | | | | I should have gotten most uses and implementation correctly fixed, but things might break. Feel free to blame me.
* cell: update cell driver after gallium reference count changesBrian Paul2009-03-042-6/+3
|
* gallium: Unify reference counting.Michel Dänzer2009-03-042-46/+25
| | | | | | | | | | | | | | 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().
* cell: overhaul cell teximage codeBrian Paul2009-02-245-266/+119
| | | | | | 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.
* cell: don't need tex transfer for drawing surfacesBrian Paul2009-02-241-30/+24
|
* cell: patch up cell_texture.c so it compilesBrian Paul2009-02-181-6/+135
| | | | | | | Start adding some new pipe_transfer code. Texturing is totally broken at this point but non-texture programs seem to run OK.
* cell: updates for new pipe_transfer changesBrian Paul2009-02-182-23/+81
| | | | Update framebuffer color/z/stencil mapping/unmapping.
* cell: update vbuf code to catch up to recent changesBrian Paul2009-02-181-5/+28
|
* cell: remove unused varBrian Paul2009-02-181-1/+0
|
* cell: start adding new cell_transfer types/codeBrian Paul2009-02-181-0/+19
|
* cell: remove old surface_map codeBrian Paul2009-02-181-5/+0
|
* util: Move p_debug.h into util module.José Fonseca2009-02-181-1/+1
| | | | | The debug functions depend on several util function for os abstractions, and these depend on debug functions, so a seperate module is not possible.
* cell: use some SPU intrinsics to get slightly better code in eval_inputs()Brian Paul2009-02-161-4/+7
| | | | Suggested by Jonathan Adamczewski. There may be more places to do this...
* cell: minor Makefile clean-upBrian Paul2009-02-151-2/+3
|
* cell: new/tighter code for computing fragment program inputsBrian Paul2009-02-151-91/+76
|
* cell: combine eval_z(), eval_w() functionsBrian Paul2009-02-151-20/+27
|
* cell: remove unused varBrian Paul2009-02-071-1/+0
|
* cell: compile fix: many updates to cell texture code for new surface mappingBrian Paul2009-02-071-39/+42
| | | | The Cell texture code really needs a thorough inspection and clean-up someday...
* cell: compile fix: alpha.ref is now alpha.ref_valueBrian Paul2009-02-072-2/+2
|
* cell: compile fix: pipe_constant_buffer no longer has size fieldBrian Paul2009-02-072-2/+1
|
* cell: compile fix: pipe_constant_buffer no longer has size fieldBrian Paul2009-02-071-3/+3
|
* gallium: initialize simple screen in driversZack Rusin2009-01-311-0/+2
|
* gallium: make p_winsys internalZack Rusin2009-01-306-11/+11
| | | | | move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
* gallium: give the screen priority when it comes to buffer allocationsZack Rusin2009-01-293-15/+15
| | | | | | 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
* gallium: standardize api on the prefix "nr"Zack Rusin2009-01-271-1/+1
|
* gallium: standardize naming of masksZack Rusin2009-01-272-29/+29
|
* Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell2009-01-1911-522/+570
|\
| * cell: Specify constant as float for CEILF().Jonathan Adamczewski2009-01-141-1/+1
| | | | | | | | | | | | Without the f, the constant is treated as a double, resulting in slower arithmetic and libgcc conversion calls each time CEILF() is used.
| * cell: Add missing suffix to SHUFFLE macroJonathan Adamczewski2009-01-131-1/+1
| |
| * cell: allocate batch buffers w/ 16-byte alignmentJonathan Adamczewski2009-01-128-143/+111
| | | | | | | | | | | | | | | | | | | | | | 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().
| * cell: optimize unpack_colors() function, saving 12 cyclesBrian Paul2009-01-111-31/+34
| |
| * cell: move color unpacking code into separate functionBrian Paul2009-01-111-76/+89
| |
| * cell: re-order the z/stencil fetch/extract/convert instructions for better perfBrian Paul2009-01-111-55/+51
| | | | | | | | The new instruction order is 10 cycles faster.
| * cell: simplify the 'optional register' codeBrian Paul2009-01-111-62/+50
| |
| * cell: asst datatype clean-upsBrian Paul2009-01-111-73/+75
| |
| * cell: move depth/stencil code into separate functionBrian Paul2009-01-111-179/+213
| |
| * cell: clean-up, re-indent, commentsBrian Paul2009-01-111-95/+139
| |
* | Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell2009-01-112-101/+28
|\|
| * cell: use tgsi_dump_instruction() instead of spe_comment()Brian Paul2009-01-101-101/+25
| |
| * cell: added rule to produce .s assembly filesBrian Paul2009-01-101-0/+3
| |
* | Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell2009-01-095-745/+987
|\| | | | | | | | | | | Conflicts: progs/glsl/Makefile
| * cell: replace 0 with -1 in SPE_COUNT_USABLE_SPES queryJonathan Adamczewski2009-01-061-1/+1
| |
| * cell: fix code emit for RSQ/RCP when src arg == dst argBrian Paul2009-01-051-6/+8
| | | | | | | | Fixes moire-like artifacts seen in fslight demo.