Robert Ellison
711f8a1dd9
CELL: stencil bug fixes
...
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-30 15:24:52 -06:00
Jonathan White
157ddc1418
cell: Added check for PIPE_FLUSH_RENDER_CACHE to cell_flush to fix black blocks during st_readpixels due to a flush wait not happening in order to allow any previous rendering to complete.
2008-10-30 11:22:38 -06:00
Brian Paul
f952aac1da
gallium: grow SPE instruction buffer as needed
2008-10-29 16:56:28 -06:00
Brian Paul
725ba94ce5
gallium: no longer pass max_inst to ppc_init_func()
2008-10-29 16:35:59 -06:00
Brian Paul
a5d920297a
gallium: use execmem for PPC code, grow instruction buffer as needed
2008-10-29 16:26:10 -06:00
Brian Paul
8828d52348
gallium: fix alignment parameter passed to u_mmAllocMem()
...
Was 32, now 5. The param is expressed as a power of two exponent.
The net effect is that the alignment was a no-op on X86 but on PPC we
always got the same memory address everytime rtasm_exec_malloc() was called.
2008-10-29 14:52:35 -06:00
Brian Paul
3ad56968f0
gallium: prefix memory manager functions with u_ to differentiate from functions in mesa/main/mm.c
2008-10-29 14:19:12 -06:00
Brian Paul
09570d2e73
gallium: test for PIPE_OS_LINUX instead of __linux__
2008-10-29 14:08:13 -06:00
Brian Paul
1f7a323a13
cell: add scalar param to emit_function_call() to indicate scalar function calls
...
Scalar calls only use the X component of the src regs and smear the
result across the dest register's X/Y/Z/W.
2008-10-29 12:14:11 -06:00
Brian Paul
8b3af5c5d6
cell: use simd utilities for pow, exp2, log2
2008-10-29 12:12:30 -06:00
Brian Paul
4e1c33700d
gallium: added PPC support for SWZ, XPD, POW
...
That's the last of the ARB_v_p opcodes, except for ARL.
2008-10-29 11:05:34 -06:00
Brian Paul
75b92764a7
gallium: clean-ups
2008-10-29 11:04:05 -06:00
Brian Paul
7640264064
gallium: added ppc_vnmsubfp()
2008-10-29 11:03:51 -06:00
Brian Paul
54d684f23d
move glut.h include
2008-10-28 19:01:38 -06:00
Brian Paul
91473dac5a
mesa: use APP_CC compiler in progs/vp/
2008-10-28 19:00:56 -06:00
Brian Paul
c25adeae18
mesa: convert log/exp tests to ARB_v_p
2008-10-28 19:00:25 -06:00
Brian Paul
5db0372b3c
gallium: ppc: implement TGSI_OPCODE_LOG/EXP
2008-10-28 18:57:54 -06:00
Brian Paul
a045b92511
gallium: remove old code
2008-10-28 18:22:14 -06:00
Brian Paul
f4e9526add
gallium: ppc: don't replicate/smear immediate values, use vspltw instruction as with constants
2008-10-28 18:21:03 -06:00
Brian Paul
0a8590e3cf
mesa: don't continually redraw
2008-10-28 18:18:31 -06:00
Brian Paul
db680ac0e3
cell: fix a number of fence issues
...
Plus add assertions to check status, alignment, etc.
2008-10-28 14:03:51 -06:00
Brian Paul
c46583416a
gallium: use some PPC vec registers to store TGSI temps
...
This could be a lot better, but already makes for better code.
2008-10-28 13:17:48 -06:00
Brian Paul
5748759087
cell: don't include libmisc.h
...
Doesn't seem to be needed and fixes compilation with SDK 3.1 beta.
2008-10-28 12:41:47 -06:00
Brian Paul
d01324eb78
cell: fix some problems when displaying to a PIPE_FORMAT_B8G8R8A8_UNORM screen
2008-10-27 18:25:33 -06:00
Brian Paul
2b9b42befa
cell: added -D_BSD_SOURCE flag
...
Needed to get MAP_ANONYMOUS in execmem.c and to define timezone type in glxgears.c
Adding -std=c99 earlier caused this regression.
2008-10-27 18:16:34 -06:00
Brian Paul
a1754424b6
gallium: ppc: emit fewer 'li' instructions prior to vector loads/stores
2008-10-27 17:56:22 -06:00
Brian Paul
604be5561f
gallium: ppc: use a src register cache to avoid redundant loads
2008-10-27 17:56:22 -06:00
Jonathan White
582ca6e418
cell: Added support for untwiddling textures during glReadPixels. This allows glReadPixels to work correctly on cell now and makes conformance tests that use pixel compares useable.
2008-10-27 16:31:22 -06:00
Alan Hourihane
7eacd11bf1
disable OPENGL_BIT
2008-10-27 15:37:54 +00:00
Alan Hourihane
61d3a66456
Merge commit 'origin/master' into gallium-0.2
2008-10-27 15:37:22 +00:00
Xiang, Haihao
2a877411db
intel: GL_FALSE on a BO if it won't be modified when mapping this BO. (thanks Eric).
2008-10-26 06:38:27 +08:00
Xiang, Haihao
ec8076264e
i965: don't emit state when dri_bufmgr_check_aperture_space fails.
...
This ensures there is an unfilled batchbuffer used for emitting states again. Partial fix for #17964 .
2008-10-24 16:05:48 +08:00
Xiang, Haihao
f657c81911
intel: fallback for intelEmitCopyBlit.
...
Use _mesa_copy_rect instead of BLT operation if dri_bufmgr_check_aperture_space
still fails after flushing batchbuffer. Partial fix for #17964 .
2008-10-24 15:55:32 +08:00
Brian Paul
8c20c913f8
mesa: version 43 of glext.h
2008-10-23 11:23:36 -06:00
Brian Paul
3efd3b1512
mesa: version 21 of glxext.h
2008-10-23 11:21:32 -06:00
Brian Paul
ea6ddcbe0e
mesa: remove calls to _mesa_adjust_image_for_convolution(), use texImage fields
...
The texImage->Width/Height fields will have the post-convolution width/height.
2008-10-23 10:49:51 -06:00
Brian Paul
02c9009bb8
mesa: updated status in cell.html
2008-10-23 10:47:17 -06:00
Michel Dänzer
6b69e3c717
scons: ppc support.
2008-10-23 10:28:48 +02:00
Michel Dänzer
06c43beee0
scons: Don't hardcode any drivers for the xlib winsys, just pick suitable ones.
2008-10-23 10:27:39 +02:00
Michel Dänzer
86099bcd9c
gallium: Fix typo, PPC_FEATURE_HAS_ALTIVEC not PPC_FEATURES_...
2008-10-23 10:26:19 +02:00
Brian Paul
0ac9945781
gallium: PPC: clamp y to [-128,128] for LIT
2008-10-22 17:29:37 -06:00
Brian Paul
f8ab4feb75
gallium: remove ppc_vload_float(), rename ppc_vecmove() -> ppc_vmove().
2008-10-22 17:21:43 -06:00
Brian Paul
abbbe876ac
gallium: new PPC built-in constants array
...
It's hard to form PPC vector immediates so load them from an array.
2008-10-22 17:19:12 -06:00
Brian Paul
3026616c48
gallium: added ppc_vzero()
2008-10-22 17:17:11 -06:00
Brian Paul
ae81aeb128
gallium: GALLIUM_NOPPC debug var to disable PPC codegen
2008-10-22 16:58:05 -06:00
Brian Paul
9e3ee82305
gallium: PPC LIT instruction (not quite complete yet)
2008-10-22 16:57:22 -06:00
Brian Paul
77160cd97b
gallium: var renaming in tgsi_ppc.c
2008-10-22 15:34:16 -06:00
Brian Paul
519c2dbed5
gallium: remove SSE remnants from tgsi_ppc.c
2008-10-22 15:30:00 -06:00
Brian Paul
7b1d08738f
cell: turn on PPC assembly vertex transform
...
gears runs with it now (3x faster FPS than before).
2008-10-22 15:25:04 -06:00
Brian Paul
c6ff870836
cell: TGSI->PPC for RSQ, RCP and src register sign modes
2008-10-22 15:21:22 -06:00