summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
Commit message (Collapse)AuthorAgeFilesLines
* util: Add generic tile and detile functionsJakob Bornecrantz2008-11-243-0/+130
|
* softpipe: remove old/unneeded dependencies between TGSI exec and softpipeBrian2008-11-232-13/+6
| | | | | Use tgsi_sampler struct as a base class. Softpipe subclasses it and adds the fields it needs.
* CELL: use variant-length fragment ops programsRobert Ellison2008-11-213-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell2008-11-191-6/+8
|\
| * gallium: Use costum log2 for all windows builds.José Fonseca2008-11-171-6/+8
| |
| * gallium: State when there are no memory leaks detected.José Fonseca2008-11-171-0/+6
| |
| * gallium: Make handle_table reentrant.José Fonseca2008-11-171-8/+26
| | | | | | | | | | | | | | Ensure that the object has consistent state also when calling the destroy callback. Namely, ensure the object passed to the callback is removed from the table prior to calling the destroy callback to avoid a infinite loop or double free.
* | tgsi: Return 0.0 for negative constant register indices.Michal Krol2008-11-181-8/+16
| |
* | tgsi: Keep address register as a floating point.Michal Krol2008-11-181-20/+9
| |
* | gallium: State when there are no memory leaks detected.José Fonseca2008-11-171-0/+6
| |
* | gallium: Make handle_table reentrant.José Fonseca2008-11-171-8/+26
| | | | | | | | | | | | | | Ensure that the object has consistent state also when calling the destroy callback. Namely, ensure the object passed to the callback is removed from the table prior to calling the destroy callback to avoid a infinite loop or double free.
* | gallivm: fix some small stuff.Stephane Marchesin2008-11-162-3/+3
| |
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell2008-11-154-118/+212
|\| | | | | | | | | | | Conflicts: src/mesa/drivers/dri/common/dri_util.c
| * gallium: increase table size for fast log/pow functionsBrian Paul2008-11-142-4/+6
| | | | | | | | The various conformance tests pass now.
| * util: Use OpenGL rasterization rules in blits and mipmap generation.Brian Paul2008-11-142-0/+2
| |
| * translate: pull in prefetch and other optimizations from draw_vs_aos.cKeith Whitwell2008-11-142-112/+204
| |
| * util: Optimise log2().Michal Krol2008-11-121-1/+2
| |
| * util: Add log2() definition for MSC.Michal Krol2008-11-121-0/+5
| |
| * draw: Add missing include.Michal Krol2008-11-121-0/+1
| |
| * gallium: fix comment again. A half-closed interval was intended.Brian2008-11-101-2/+2
| | | | | | | | Never saw the [a,b[ notation before.
* | CELL: fix stencil twiddling, stencil invertRobert Ellison2008-11-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | tgsi: More comments on source register indirect and 2D indexing.Michal Krol2008-11-122-10/+65
| |
* | gallium: add missing prototypesBrian Paul2008-11-121-0/+6
| |
* | cell: move semicolons to silence warnings w/ other compilersBrian Paul2008-11-121-189/+189
| |
* | cell: fix typo in EMIT_ macroBrian Paul2008-11-121-1/+1
| |
* | util: Optimise log2().Michal Krol2008-11-121-1/+2
| |
* | rtasm: Use INLINE keyword. Compile for all platforms, not only GALLIUM_CELL.Michal Krol2008-11-121-9/+5
| |
* | util: Add log2() definition for MSC.Michal Krol2008-11-121-0/+5
| |
* | tgsi: Fix a bug with saving/restoring xmm registers upon func call.Michal Krol2008-11-121-3/+3
| |
* | rtasm: Compile only for GALLIUM_CELL.Michal Krol2008-11-121-0/+4
| |
* | draw: Add missing include.Michal Krol2008-11-121-0/+1
| |
* | CELL: two-sided stencil fixesRobert Ellison2008-11-111-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul2008-11-102-2/+4
|\| | | | | | | | | | | Conflicts: src/gallium/auxiliary/util/u_math.c
| * gallium: fix typos in commentsBrian Paul2008-11-101-2/+2
| |
| * gallium: actually flip the coordinatesZack Rusin2008-11-101-1/+2
| |
| * util: Fix util_fast_pow/exp2/log2.Brian2008-11-092-69/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use a lookup table for log2. - Compute (float) (1 << ipart) by tweaking with the exponent directly to avoid integer overflow and float conversion. - Also table negative exponents to avoid float division and branching. - Implement util_fast_exp as function of util_fast_exp2. -------- Cherry-picked from gallium-0.2: 8415d06d90a197e16554dab98d160334fd9f9f93 This fixes some pow() glitches seen in fslight.c, spectex.c, etc. Conflicts: src/gallium/auxiliary/util/u_math.h
| * gallium: _debug_vprintf() should be silent if DEBUG is not definedBrian2008-11-091-0/+2
| |
* | gallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics onlyBrian2008-11-092-10/+34
| | | | | | | | | | | | This allows us to use SSE codegen with debug builds again. When PIPE_ARCH_SSE is set (w/ gcc -msse -msse2) we will also use the gcc SSE intrinsic functions.
* | gallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4Brian2008-11-081-1/+33
| |
* | gallium: added SSE for DP2, DP2ABrian Paul2008-11-071-2/+22
| |
* | gallium: implement TGSI_OPCODE_DP2A, add sqrt to NRM3/NRM4Brian Paul2008-11-071-3/+19
| |
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul2008-11-071-1/+58
|\|
| * gallium: implement TGSI_OPCODE_NRM/NRM4 in tgsi_exec.cBrian2008-11-061-1/+58
| |
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul2008-11-063-5/+121
|\|
| * gallium: debug code to print vertex array data (disabled)Brian Paul2008-11-061-0/+89
| |
| * gallium: check execution mask in indirect register loadsBrian2008-11-051-0/+23
| | | | | | | | | | Zero-out the index for disabled execution channels to avoid using potential garbage values (thus avoiding bad array indexing).
| * gallium: don't range check tgsi register index for indirect accessesBrian2008-11-051-5/+9
| | | | | | | | Fixes progs/vp/arl.txt test.
* | gallium: actually flip the coordinatesZack Rusin2008-11-061-1/+2
| |
* | gallium: s/mmDestroy/u_mmDestroy/Brian Paul2008-11-051-1/+1
| |
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul2008-11-058-4/+111
|\| | | | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/rtasm/rtasm_execmem.c src/mesa/shader/slang/slang_emit.c src/mesa/shader/slang/slang_log.c src/mesa/state_tracker/st_atom_framebuffer.c