Stephane Marchesin
b81a7dc2d8
gallivm: replace the temp parameters of the JIT function with alloca'ed temps. This avoids useless writes of temporary results.
2008-10-30 23:52:59 +01:00
Jonathan White
443e102fdc
cell: Protected use of non-initialized untile buffers
2008-10-30 15:53:39 -06:00
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
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
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
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
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
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
Brian Paul
5184006560
gallium: TGSI->PPC inequality operators
2008-10-22 14:48:58 -06:00
Brian Paul
b06d072019
gallium: added ppc_vload_float(), for limited cases
2008-10-22 14:48:33 -06:00
Brian Paul
da63edd720
gallium: fix broken TGSI_FILE_CONSTANT case, use ppc_reserver_register()
2008-10-22 13:59:11 -06:00
Brian Paul
ebdc399d83
gallium: fix-up confusing register allocation masks in rtasm_ppc.c
...
Plus, add ppc_reserve_register() func.
2008-10-22 13:57:56 -06:00
Brian Paul
ba4faef7c0
gallium: temporarily disable PPC vertex shader until more things run
2008-10-22 11:13:31 -06:00
Brian Paul
b7da4c3dc1
gallium: PPC vertex shader support
...
Works, but dead code lingering, debug code present, etc.
2008-10-22 11:08:45 -06:00