Jonathan White [Thu, 30 Oct 2008 21:53:12 +0000 (15:53 -0600)]
cell: Protected use of non-initialized untile buffers
Robert Ellison [Thu, 30 Oct 2008 21:24:23 +0000 (15:24 -0600)]
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.
Jonathan White [Thu, 30 Oct 2008 17:22:20 +0000 (11:22 -0600)]
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.
Brian Paul [Wed, 29 Oct 2008 22:56:28 +0000 (16:56 -0600)]
gallium: grow SPE instruction buffer as needed
Brian Paul [Wed, 29 Oct 2008 22:35:59 +0000 (16:35 -0600)]
gallium: no longer pass max_inst to ppc_init_func()
Brian Paul [Wed, 29 Oct 2008 22:26:10 +0000 (16:26 -0600)]
gallium: use execmem for PPC code, grow instruction buffer as needed
Brian Paul [Wed, 29 Oct 2008 20:28:57 +0000 (14:28 -0600)]
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.
Brian Paul [Wed, 29 Oct 2008 20:19:12 +0000 (14:19 -0600)]
gallium: prefix memory manager functions with u_ to differentiate from functions in mesa/main/mm.c
Brian Paul [Wed, 29 Oct 2008 20:08:13 +0000 (14:08 -0600)]
gallium: test for PIPE_OS_LINUX instead of __linux__
Brian Paul [Wed, 29 Oct 2008 18:14:11 +0000 (12:14 -0600)]
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.
Brian Paul [Wed, 29 Oct 2008 18:12:30 +0000 (12:12 -0600)]
cell: use simd utilities for pow, exp2, log2
Brian Paul [Wed, 29 Oct 2008 17:05:34 +0000 (11:05 -0600)]
gallium: added PPC support for SWZ, XPD, POW
That's the last of the ARB_v_p opcodes, except for ARL.
Brian Paul [Wed, 29 Oct 2008 17:04:05 +0000 (11:04 -0600)]
gallium: clean-ups
Brian Paul [Wed, 29 Oct 2008 17:03:51 +0000 (11:03 -0600)]
gallium: added ppc_vnmsubfp()
Brian Paul [Wed, 29 Oct 2008 01:01:38 +0000 (19:01 -0600)]
move glut.h include
Brian Paul [Wed, 29 Oct 2008 01:00:56 +0000 (19:00 -0600)]
mesa: use APP_CC compiler in progs/vp/
Brian Paul [Wed, 29 Oct 2008 01:00:25 +0000 (19:00 -0600)]
mesa: convert log/exp tests to ARB_v_p
Brian Paul [Wed, 29 Oct 2008 00:57:54 +0000 (18:57 -0600)]
gallium: ppc: implement TGSI_OPCODE_LOG/EXP
Brian Paul [Wed, 29 Oct 2008 00:22:14 +0000 (18:22 -0600)]
gallium: remove old code
Brian Paul [Wed, 29 Oct 2008 00:21:03 +0000 (18:21 -0600)]
gallium: ppc: don't replicate/smear immediate values, use vspltw instruction as with constants
Brian Paul [Wed, 29 Oct 2008 00:18:31 +0000 (18:18 -0600)]
mesa: don't continually redraw
Brian Paul [Tue, 28 Oct 2008 20:03:51 +0000 (14:03 -0600)]
cell: fix a number of fence issues
Plus add assertions to check status, alignment, etc.
Brian Paul [Tue, 28 Oct 2008 19:17:48 +0000 (13:17 -0600)]
gallium: use some PPC vec registers to store TGSI temps
This could be a lot better, but already makes for better code.
Brian Paul [Tue, 28 Oct 2008 18:41:47 +0000 (12:41 -0600)]
cell: don't include libmisc.h
Doesn't seem to be needed and fixes compilation with SDK 3.1 beta.
Brian Paul [Tue, 28 Oct 2008 00:25:33 +0000 (18:25 -0600)]
cell: fix some problems when displaying to a PIPE_FORMAT_B8G8R8A8_UNORM screen
Brian Paul [Tue, 28 Oct 2008 00:15:56 +0000 (18:15 -0600)]
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.
Brian Paul [Mon, 27 Oct 2008 21:58:00 +0000 (15:58 -0600)]
gallium: ppc: emit fewer 'li' instructions prior to vector loads/stores
Brian Paul [Mon, 27 Oct 2008 21:36:25 +0000 (15:36 -0600)]
gallium: ppc: use a src register cache to avoid redundant loads
Jonathan White [Mon, 27 Oct 2008 22:29:20 +0000 (16:29 -0600)]
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.
Alan Hourihane [Mon, 27 Oct 2008 15:37:54 +0000 (15:37 +0000)]
disable OPENGL_BIT
Alan Hourihane [Mon, 27 Oct 2008 15:37:22 +0000 (15:37 +0000)]
Merge commit 'origin/master' into gallium-0.2
Xiang, Haihao [Sat, 25 Oct 2008 22:31:33 +0000 (06:31 +0800)]
intel: GL_FALSE on a BO if it won't be modified when mapping this BO. (thanks Eric).
Xiang, Haihao [Fri, 24 Oct 2008 08:05:48 +0000 (16:05 +0800)]
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.
Xiang, Haihao [Fri, 24 Oct 2008 07:55:32 +0000 (15:55 +0800)]
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.
Brian Paul [Thu, 23 Oct 2008 17:23:36 +0000 (11:23 -0600)]
mesa: version 43 of glext.h
Brian Paul [Thu, 23 Oct 2008 17:21:32 +0000 (11:21 -0600)]
mesa: version 21 of glxext.h
Brian Paul [Thu, 23 Oct 2008 16:49:51 +0000 (10:49 -0600)]
mesa: remove calls to _mesa_adjust_image_for_convolution(), use texImage fields
The texImage->Width/Height fields will have the post-convolution width/height.
Brian Paul [Thu, 23 Oct 2008 16:47:17 +0000 (10:47 -0600)]
mesa: updated status in cell.html
Michel Dänzer [Thu, 23 Oct 2008 08:28:48 +0000 (10:28 +0200)]
scons: ppc support.
Michel Dänzer [Thu, 23 Oct 2008 08:27:39 +0000 (10:27 +0200)]
scons: Don't hardcode any drivers for the xlib winsys, just pick suitable ones.
Michel Dänzer [Thu, 23 Oct 2008 08:26:19 +0000 (10:26 +0200)]
gallium: Fix typo, PPC_FEATURE_HAS_ALTIVEC not PPC_FEATURES_...
Brian Paul [Wed, 22 Oct 2008 23:29:37 +0000 (17:29 -0600)]
gallium: PPC: clamp y to [-128,128] for LIT
Brian Paul [Wed, 22 Oct 2008 23:21:43 +0000 (17:21 -0600)]
gallium: remove ppc_vload_float(), rename ppc_vecmove() -> ppc_vmove().
Brian Paul [Wed, 22 Oct 2008 23:19:12 +0000 (17:19 -0600)]
gallium: new PPC built-in constants array
It's hard to form PPC vector immediates so load them from an array.
Brian Paul [Wed, 22 Oct 2008 23:17:11 +0000 (17:17 -0600)]
gallium: added ppc_vzero()
Brian Paul [Wed, 22 Oct 2008 22:58:05 +0000 (16:58 -0600)]
gallium: GALLIUM_NOPPC debug var to disable PPC codegen
Brian Paul [Wed, 22 Oct 2008 22:57:22 +0000 (16:57 -0600)]
gallium: PPC LIT instruction (not quite complete yet)
Brian Paul [Wed, 22 Oct 2008 21:34:16 +0000 (15:34 -0600)]
gallium: var renaming in tgsi_ppc.c
Brian Paul [Wed, 22 Oct 2008 21:30:00 +0000 (15:30 -0600)]
gallium: remove SSE remnants from tgsi_ppc.c
Brian Paul [Wed, 22 Oct 2008 21:25:04 +0000 (15:25 -0600)]
cell: turn on PPC assembly vertex transform
gears runs with it now (3x faster FPS than before).
Brian Paul [Wed, 22 Oct 2008 21:21:22 +0000 (15:21 -0600)]
cell: TGSI->PPC for RSQ, RCP and src register sign modes
Brian Paul [Wed, 22 Oct 2008 20:48:58 +0000 (14:48 -0600)]
gallium: TGSI->PPC inequality operators
Brian Paul [Wed, 22 Oct 2008 20:48:33 +0000 (14:48 -0600)]
gallium: added ppc_vload_float(), for limited cases
Brian Paul [Wed, 22 Oct 2008 19:59:11 +0000 (13:59 -0600)]
gallium: fix broken TGSI_FILE_CONSTANT case, use ppc_reserver_register()
Brian Paul [Wed, 22 Oct 2008 19:57:56 +0000 (13:57 -0600)]
gallium: fix-up confusing register allocation masks in rtasm_ppc.c
Plus, add ppc_reserve_register() func.
Brian Paul [Wed, 22 Oct 2008 17:13:55 +0000 (11:13 -0600)]
cell: add -std=c99 flag to solve some warning/prototype issues
Brian Paul [Wed, 22 Oct 2008 17:13:31 +0000 (11:13 -0600)]
gallium: temporarily disable PPC vertex shader until more things run
Brian Paul [Wed, 22 Oct 2008 17:08:45 +0000 (11:08 -0600)]
gallium: PPC vertex shader support
Works, but dead code lingering, debug code present, etc.
Brian Paul [Wed, 22 Oct 2008 17:07:35 +0000 (11:07 -0600)]
gallium: TGSI to PPC code generation
Based on the TGSIto SSE2 code generator.
Incomplete and lots of SSE stuff still hanging around but the basic dozen
or so TGSI opcodes are functioning.
Brian Paul [Wed, 22 Oct 2008 17:06:39 +0000 (11:06 -0600)]
gallium: added ppc_lvewx()
Brian Paul [Wed, 22 Oct 2008 17:04:29 +0000 (11:04 -0600)]
cell: include pthread.h
Brian Paul [Wed, 22 Oct 2008 16:35:38 +0000 (10:35 -0600)]
cell: implement many more PPC instructions for code gen
Brian Paul [Wed, 22 Oct 2008 16:34:13 +0000 (10:34 -0600)]
cell: implement fencing for texture buffers
If we delete a texture, we need to keep the underlying tiled data buffer
around until any rendering that references it has completed.
Keep a list of buffers referenced by a rendering batch. Unref/free them when
the associated batch's fence is executed/signalled.
Brian Paul [Wed, 22 Oct 2008 16:30:12 +0000 (10:30 -0600)]
cell: set cell->num_textures
Brian Paul [Wed, 22 Oct 2008 14:12:42 +0000 (08:12 -0600)]
cell: note that dst reg writing needs clamping
Brian Paul [Wed, 22 Oct 2008 13:53:26 +0000 (07:53 -0600)]
mesa: move convolution image adjustment code for glCopyTexSubImage1/2/3D()
Do it after initial error checking, after we know the texture's internal format.
Brian Paul [Wed, 22 Oct 2008 13:48:37 +0000 (07:48 -0600)]
mesa: some re-org of glCopyTexSubImage1/2/3D() error checking
Brian Paul [Wed, 22 Oct 2008 13:36:33 +0000 (07:36 -0600)]
mesa: in textore.c, only adjust image for convolution if image is a color format
Makes things consistant with the code in teximage.c.
We only want to apply convolution to color formats (not depth/index formats)
Brian Paul [Tue, 21 Oct 2008 20:12:17 +0000 (14:12 -0600)]
gallium: implement tests for PPC/PPC64
Brian Paul [Tue, 21 Oct 2008 20:10:09 +0000 (14:10 -0600)]
gallium: remove unused var
Kristof Ralovich [Tue, 21 Oct 2008 14:20:24 +0000 (08:20 -0600)]
glx: updated comment
Xiang, Haihao [Tue, 21 Oct 2008 02:30:39 +0000 (10:30 +0800)]
i915: fix carsh in i830_emit_state. (bug #17766)
Brian Paul [Mon, 20 Oct 2008 23:43:05 +0000 (17:43 -0600)]
mesa: more test options in progs/demos/textures.c
Brian Paul [Mon, 20 Oct 2008 21:44:22 +0000 (15:44 -0600)]
cell: minor improvements to batch buffer functions
Brian Paul [Mon, 20 Oct 2008 15:35:18 +0000 (09:35 -0600)]
cell: temporarily disable freeing of tiled texture memory
Allows glDrawPixels to work for now...
Brian Paul [Fri, 17 Oct 2008 15:09:57 +0000 (09:09 -0600)]
cell: use an approximation in compute_lambda_2d() to avoid sqrt
Though, the logf() call still needs attention.
Brian Paul [Fri, 17 Oct 2008 02:25:28 +0000 (20:25 -0600)]
cell: add new debug flag (cache) to report texture cache stats on exit
Brian Paul [Thu, 16 Oct 2008 22:51:23 +0000 (16:51 -0600)]
cell: more efficient state emit for textures/samplers
Brian Paul [Thu, 16 Oct 2008 21:48:04 +0000 (15:48 -0600)]
cell: use 7-bit weights in sample_texture_2d_bilinear_int()
This allows us to use 16-bit signed mul/add instructions. Had to
used unsigned mul before and there's no unsigned mul/add instruction.
Brian Paul [Fri, 17 Oct 2008 20:13:00 +0000 (14:13 -0600)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
progs/trivial/tri.c
Brian Paul [Fri, 17 Oct 2008 19:37:11 +0000 (13:37 -0600)]
mesa: redraw upon keypress in trivial/tri.c
Brian Paul [Fri, 17 Oct 2008 19:35:42 +0000 (13:35 -0600)]
gallium: fix mis-matched malloc/free vs. aligned malloc/free
Use aligned malloc/free for teximage data everywhere to be consistant.
The mismatch didn't make any difference when HAVE_POSIX_MEMALIGN was defined.
Alan Hourihane [Thu, 16 Oct 2008 22:41:13 +0000 (23:41 +0100)]
build "GLX" egl driver by default and egl demos
Brian Paul [Thu, 16 Oct 2008 20:21:17 +0000 (14:21 -0600)]
glxswapcontrol: added -fullscreen option
Brian Paul [Thu, 16 Oct 2008 20:16:41 +0000 (14:16 -0600)]
glxgears: for fullscreen, disable window borders the right way
Brian Paul [Thu, 16 Oct 2008 19:54:17 +0000 (13:54 -0600)]
cell: pass spu_texture_level ptr to get_four_texels()
Brian Paul [Thu, 16 Oct 2008 19:49:42 +0000 (13:49 -0600)]
cell: implement KIL instruction
Brian Paul [Thu, 16 Oct 2008 17:48:05 +0000 (11:48 -0600)]
cell: CELL_NUM_SPUS env var
Brian Paul [Thu, 16 Oct 2008 17:19:22 +0000 (11:19 -0600)]
cell: trilinear mipmap interpolation
Brian Paul [Thu, 16 Oct 2008 15:52:02 +0000 (09:52 -0600)]
cell: update comments
Brian Paul [Thu, 16 Oct 2008 15:33:45 +0000 (09:33 -0600)]
cell: call proper sampler function in sample_texture_cube()
Brian Paul [Thu, 16 Oct 2008 15:00:05 +0000 (09:00 -0600)]
cell: clean up various texture-related things
Distinguish among texture targets in codegen.
progs/demos/cubemap.c runs correctly now too.
Roland Scheidegger [Thu, 16 Oct 2008 14:23:47 +0000 (16:23 +0200)]
fix span issue with really old ddx and non-tcl r100 chips
Brian Paul [Thu, 16 Oct 2008 14:23:28 +0000 (08:23 -0600)]
mesa: fix error codes in _mesa_GetObjectParameterivARB(), bug 17861
Brian Paul [Thu, 16 Oct 2008 02:46:43 +0000 (20:46 -0600)]
cell: start some performance measurements
Use the spu_write_decrementer() and spu_read_decrementer() functions to
measure time. Convert to milliseconds according to the system timebase value.
Brian Paul [Thu, 16 Oct 2008 01:40:51 +0000 (19:40 -0600)]
cell: updated debug code
Brian Paul [Wed, 15 Oct 2008 21:46:53 +0000 (15:46 -0600)]
cell: updated status in docs/cell.html
Brian Paul [Wed, 15 Oct 2008 21:34:02 +0000 (15:34 -0600)]
cell: get rid of last usage of float4 union/typedef
Results in slightly tighter code.
Brian Paul [Wed, 15 Oct 2008 21:20:09 +0000 (15:20 -0600)]
cell: simplify triangle front/back face determination
Brian Paul [Wed, 15 Oct 2008 20:39:16 +0000 (14:39 -0600)]
cell: send rasterizer state to SPUs in proper way, remove front_winding hack