Brian [Wed, 6 Feb 2008 00:55:16 +0000 (17:55 -0700)]
comments, clean-ups, consts
Brian [Wed, 6 Feb 2008 00:46:31 +0000 (17:46 -0700)]
clean-up
Brian [Tue, 5 Feb 2008 23:32:15 +0000 (16:32 -0700)]
gallium: add bitmap/drawpixels texcoord bias support
The state tracker will call pipe->get_paramf(PIPE_CAP_BITMAP_TEXCOORD_BIAS)
to get a bias factor for adjusting the texcoords used in bitmap/drawpixels.
This allows us to compensate for small differences in rasterization from
one device to another.
José Fonseca [Wed, 6 Feb 2008 16:07:49 +0000 (01:07 +0900)]
gallium: Bring latest fixes.
José Fonseca [Wed, 6 Feb 2008 05:37:49 +0000 (14:37 +0900)]
gallium: Use p_debug.h instead of non-portable stdio.h/assert.h functions.
José Fonseca [Wed, 6 Feb 2008 05:37:24 +0000 (14:37 +0900)]
gallium: Add forgotten return type.
José Fonseca [Wed, 6 Feb 2008 05:36:50 +0000 (14:36 +0900)]
gallium: Update scons instructions. Propagate user environment.
José Fonseca [Wed, 6 Feb 2008 04:27:49 +0000 (13:27 +0900)]
gallium: Cross-platform debugging helpers.
José Fonseca [Mon, 4 Feb 2008 08:02:08 +0000 (17:02 +0900)]
gallium: Portability guidelines.
Brian [Tue, 5 Feb 2008 22:12:18 +0000 (15:12 -0700)]
Cell: remove accidentally added OPT_FLAGS lines
Brian [Tue, 5 Feb 2008 22:07:36 +0000 (15:07 -0700)]
Cell: SIMD-ize tri_linear_coeff(), use vector float for vertex attributes in struct vertex_header
Brian [Tue, 5 Feb 2008 21:23:34 +0000 (14:23 -0700)]
Cell: re-enable inlined vertex buffers
Vertex data must be on a 16-byte address/offset so SIMD operations will work
properly in the SPU code.
Brian [Tue, 5 Feb 2008 21:21:48 +0000 (14:21 -0700)]
Cell: remove dummy fields, update/add some comments
Brian [Tue, 5 Feb 2008 21:21:01 +0000 (14:21 -0700)]
Cell: added cell_batch_alloc_aligned()
Ian Romanick [Tue, 5 Feb 2008 17:43:52 +0000 (09:43 -0800)]
Use _transpose_matrix4x4 from Cell SDK instead of my own version
Ian Romanick [Tue, 5 Feb 2008 00:03:55 +0000 (16:03 -0800)]
Add some debug messages
Ian Romanick [Sat, 2 Feb 2008 01:14:09 +0000 (17:14 -0800)]
More semi-trivial vectorization in the shader VM
Ian Romanick [Sat, 2 Feb 2008 01:12:20 +0000 (17:12 -0800)]
Vectorize vertex puller
Ian Romanick [Fri, 1 Feb 2008 22:58:38 +0000 (14:58 -0800)]
Vectorize all micro ops
Fold single instruction micro ops inline. Remove unused micro ops.
Michal Krol [Tue, 5 Feb 2008 14:50:56 +0000 (07:50 -0700)]
gallium: Use align_free to free aligned memory.
Brian [Tue, 5 Feb 2008 01:05:37 +0000 (18:05 -0700)]
Cell: fix some alignment issues by aligning commands to 8-byte boundaries
Contributed by Ian Romanick.
Also, temporarily disable inlined vertex buffers. They need to be 16-byte
aligned...
Brian [Tue, 5 Feb 2008 01:03:05 +0000 (18:03 -0700)]
Cell: don't use VEC_LITERAL macro, doesn't work w/ SDK 3.0
Brian [Tue, 5 Feb 2008 01:02:21 +0000 (18:02 -0700)]
Cell: don't use VEC_LITERAL macro, doesn't work w/ SDK 3.0
Brian [Mon, 4 Feb 2008 23:48:36 +0000 (16:48 -0700)]
Cell: move float4 typedef (temporary datatype)
Brian [Mon, 4 Feb 2008 23:48:00 +0000 (16:48 -0700)]
Cell: fix small sampling error in sample_texture_bilinear()
Brian [Mon, 4 Feb 2008 23:06:51 +0000 (16:06 -0700)]
Cell: texture sampler functions always return vector float now
Texture colors look the same now, regardless of X display/pixel format
Brian [Mon, 4 Feb 2008 23:05:13 +0000 (16:05 -0700)]
Cell: added spu_unpack_A8R8G8B8()
Brian [Mon, 4 Feb 2008 23:04:50 +0000 (16:04 -0700)]
Cell: fix typo
Brian [Mon, 4 Feb 2008 22:17:50 +0000 (15:17 -0700)]
Cell: some basic blending code
Brian [Mon, 4 Feb 2008 22:10:35 +0000 (15:10 -0700)]
Cell: replace float 4 with vector float in eval_coeff()
Brian [Mon, 4 Feb 2008 22:06:10 +0000 (15:06 -0700)]
Cell: emit blend state to SPUs
Brian [Mon, 4 Feb 2008 20:23:07 +0000 (13:23 -0700)]
Cell: choose bilinear vs. nearest filtering according to sampler state
Brian [Mon, 4 Feb 2008 20:16:10 +0000 (13:16 -0700)]
Cell: improved bilinear filtering
avoid calling get_tex_tile() if all texels are in same tile
Brian [Mon, 4 Feb 2008 19:50:42 +0000 (12:50 -0700)]
Cell: implement basic bilinear texture sampler
Brian [Mon, 4 Feb 2008 19:50:16 +0000 (12:50 -0700)]
Cell: added spu_unpack_color(), spu_pack_R8G8B8A8()
Brian [Mon, 4 Feb 2008 18:02:47 +0000 (11:02 -0700)]
Cell: SIMD-ize more of texture sampling
Brian [Mon, 4 Feb 2008 16:54:21 +0000 (09:54 -0700)]
Cell: checkpoint: start to SIMD-ize texture sampling
Brian [Mon, 4 Feb 2008 15:53:18 +0000 (08:53 -0700)]
Cell: move tile clear code to flush_spans()
Brian [Mon, 4 Feb 2008 15:46:44 +0000 (08:46 -0700)]
Cell: clamp txmax, tymax in tile_bounding_box()
Also, added some debug printfs
Brian [Mon, 4 Feb 2008 15:45:33 +0000 (08:45 -0700)]
Cell: insert some draw_flush() calls
Brian [Fri, 1 Feb 2008 23:54:46 +0000 (16:54 -0700)]
Cell: comment about emit_quad() mask
Brian [Fri, 1 Feb 2008 23:42:09 +0000 (16:42 -0700)]
Cell: move some tile get/clear code
Also, we weren't marking the ztile as dirty after ztesting, fixes gears glitches.
Brian [Fri, 1 Feb 2008 23:25:42 +0000 (16:25 -0700)]
Cell: use global color_shuffle to remove a switch stmnt
Brian [Fri, 1 Feb 2008 22:45:02 +0000 (15:45 -0700)]
Cell: New color packing functions (A8R8G8B8 and B8G8R8A8)
Brian [Fri, 1 Feb 2008 22:33:53 +0000 (15:33 -0700)]
Cell: rename/move global vars
Put tile-related globals into spu_global struct.
Rename c/ztile fields to be more consistant.
Brian [Fri, 1 Feb 2008 22:24:00 +0000 (15:24 -0700)]
Cell: deprecate some use of struct cell_command - it should go away completely
Also, remove ALIGN16_ATTRIB from structs that no longer need it.
Brian [Fri, 1 Feb 2008 22:20:07 +0000 (15:20 -0700)]
Cell: remove commands from top-level while loop which should only appear in batch buffers
Brian [Fri, 1 Feb 2008 21:02:22 +0000 (14:02 -0700)]
Cell: move ztest before color interp/packing
Brian [Fri, 1 Feb 2008 20:49:51 +0000 (13:49 -0700)]
Cell: rename fields of the tile_t union
Brian [Fri, 1 Feb 2008 20:45:58 +0000 (13:45 -0700)]
Cell: implement Z16 and Z32 testing with SIMD instructions.
Brian [Fri, 1 Feb 2008 16:27:57 +0000 (09:27 -0700)]
Cell: store current tile status in cur_tile_status_c/z, add TILE_STATUS_GETTING
Ian Romanick [Fri, 1 Feb 2008 01:22:07 +0000 (17:22 -0800)]
Fix using "ccache ppu-gcc" for CC and fix parallel builds
CC wasn't quoted in a couple places in src/mesa/Makefile. Also, the
OSMesa link was missing a dependency.
Brian [Fri, 1 Feb 2008 00:05:43 +0000 (17:05 -0700)]
fix typo
Brian [Thu, 31 Jan 2008 21:35:25 +0000 (14:35 -0700)]
gallium: fix problem in which texcoords and varying vars got mapped to the same slot
This fixes the glsl/bump.c and glsl/texdemo1.c programs
Brian [Thu, 31 Jan 2008 21:05:04 +0000 (14:05 -0700)]
Fix problem in mapping vertex program outputs (found with "spring" game engine)
If the vertex program writes to an output that's not consumed by the
fragment program, map the vp output to an unused slot.
Brian [Thu, 31 Jan 2008 20:37:01 +0000 (13:37 -0700)]
gallium: comments about fragment Z computation
Brian [Thu, 31 Jan 2008 20:36:00 +0000 (13:36 -0700)]
gallium: Fix z clear bug when TILE_CLEAR_OPTIMIZATION==0
Brian [Thu, 31 Jan 2008 20:32:29 +0000 (13:32 -0700)]
gallium: fix get/put typo regression
This came from commit
f3aa4de034b0d791ce2e38e8aeb3b3abdb4e3b50 on 1/22/08.
Fixes strange Z buffer glitches seen in progs/glsl/texdemo1.c
Brian [Thu, 31 Jan 2008 15:21:38 +0000 (08:21 -0700)]
Cell: SIMD-ize const_coeff()
Brian [Thu, 31 Jan 2008 15:12:47 +0000 (08:12 -0700)]
Cell: set GALLIUM_CELL_VS env var to enable SPU-based vertex transformation
Keith Whitwell [Thu, 31 Jan 2008 11:57:15 +0000 (11:57 +0000)]
tgsi: Use ESI instead of EBX as temp reg on non-win32
José Fonseca [Thu, 31 Jan 2008 05:26:39 +0000 (14:26 +0900)]
gallium: Portability fixes.
José Fonseca [Thu, 31 Jan 2008 05:21:49 +0000 (14:21 +0900)]
gallium: Make the build output dir depend on the configuration.
The build output dirs mimics the old config names:
build/linux
build/linux-dri
build/linux-dri-x86
build/linux-dri-x86-debug
...
José Fonseca [Thu, 31 Jan 2008 04:14:35 +0000 (13:14 +0900)]
gallium: Add SCons as alternative build system for Gallium.
Ian Romanick [Thu, 31 Jan 2008 04:14:14 +0000 (20:14 -0800)]
I don't know why using uint64_t for "base" doesn't work. Ugh.
Ian Romanick [Thu, 31 Jan 2008 04:12:00 +0000 (20:12 -0800)]
Use SPUs for vertex shader processing
Ian Romanick [Thu, 31 Jan 2008 04:10:45 +0000 (20:10 -0800)]
Add driver_private field for drivers that hook shader_queue_flush.
Ian Romanick [Thu, 31 Jan 2008 03:40:24 +0000 (19:40 -0800)]
Numerous small fixed to PPU-SPU vertex shader protocol
Ian Romanick [Thu, 31 Jan 2008 03:34:22 +0000 (19:34 -0800)]
cell_array_info should not be 16-byte aligned
Forcing cell_array_info to be 16-byte aligned makes it more difficult
to stuff that state in batch commands.
Ian Romanick [Thu, 31 Jan 2008 03:33:30 +0000 (19:33 -0800)]
Correctly read / write vertex header from / to main memory
Ian Romanick [Thu, 31 Jan 2008 03:30:15 +0000 (19:30 -0800)]
Handle CELL_CMD_VS_EXECUTE *only* outside batch commands.
Ian Romanick [Thu, 31 Jan 2008 03:25:47 +0000 (19:25 -0800)]
Set machine->Processor
The default value is 0, which is TGSI_PROCESSOR_FRAGMENT...not correct
for a vertex shader!
Ian Romanick [Thu, 31 Jan 2008 03:24:40 +0000 (19:24 -0800)]
Elts are always ints, pass vOut pointers in-line in command
Ian Romanick [Thu, 31 Jan 2008 01:28:48 +0000 (17:28 -0800)]
Implement micro_pow and micro_sqrt
Unimplemented micro ops get assertions for now.
Ian Romanick [Thu, 31 Jan 2008 01:26:22 +0000 (17:26 -0800)]
Fix size calculation in attribute fetch.
Ian Romanick [Wed, 30 Jan 2008 20:59:09 +0000 (12:59 -0800)]
Fetch uniforms from main memory.
Ian Romanick [Wed, 30 Jan 2008 18:46:55 +0000 (10:46 -0800)]
Missing amperstand in previous commit. Oops.
Ian Romanick [Wed, 30 Jan 2008 18:43:23 +0000 (10:43 -0800)]
Pass ptr to local memory copy instead of main memory to exec_instruction
This was essentially a cut-and-paste bug when the instruction fetcher
was added. Also, the test for TGSI_PROCESSOR_FRAGMENT was moved
outside the loop for exec_declaration.
Ian Romanick [Tue, 29 Jan 2008 19:43:04 +0000 (11:43 -0800)]
Provide mechanism to hook in custom vertex shader cache flush function
Ian Romanick [Tue, 29 Jan 2008 19:28:06 +0000 (11:28 -0800)]
Implement vertex fetch / vertex shader output write-back
Ian Romanick [Tue, 29 Jan 2008 18:56:53 +0000 (10:56 -0800)]
Initial pass at instruction / declaration fetch
Ian Romanick [Tue, 29 Jan 2008 18:37:18 +0000 (10:37 -0800)]
Initial pass at vertex shader on SPU using TGSI VM
All of the code is wired in on the SPU side, but it is not called from
the PPU yet. Instruction / declaration fetch still needs to be
implemented in spu_exec.c.
Brian [Thu, 31 Jan 2008 03:40:26 +0000 (20:40 -0700)]
Cell: prototype SIMD code for z testing
Brian [Wed, 30 Jan 2008 22:26:51 +0000 (15:26 -0700)]
Cell: start to SIMD-ize triangle attribute interpolation
Using the spu_add(), etc intrinsics.
About a 15% speed-up with some tests.
Brian [Wed, 30 Jan 2008 19:13:04 +0000 (12:13 -0700)]
Cell: fold setup_tri() into tri_draw()
Brian [Wed, 30 Jan 2008 19:08:23 +0000 (12:08 -0700)]
Cell: make 'setup' a regular var instead of passing around a pointer everywhere
We'll never have more than one of these objects.
Avoiding pointer deref improves performance a bit.
Brian [Wed, 30 Jan 2008 18:56:41 +0000 (11:56 -0700)]
Cell: minor code refactoring, movement
Brian [Wed, 30 Jan 2008 18:56:14 +0000 (11:56 -0700)]
Cell: check tile status before wait_on_mask()
Brian [Wed, 30 Jan 2008 18:49:51 +0000 (11:49 -0700)]
Cell: make wait_on_mask() static/inlined
Brian [Wed, 30 Jan 2008 18:49:26 +0000 (11:49 -0700)]
Cell: move CELL_MAX_SPUS
José Fonseca [Wed, 30 Jan 2008 07:46:41 +0000 (16:46 +0900)]
gallium: Teach draw_vf about draw vertices.
This reduces the emit overhead, which is significant since we're
emiting one vertex at a time.
José Fonseca [Wed, 30 Jan 2008 06:24:56 +0000 (15:24 +0900)]
gallium: Remove draw_vertex_fetch::lookup.
It is not being used, and would be dangerous to use given the possibility of constants.
Michal Krol [Tue, 29 Jan 2008 15:41:10 +0000 (16:41 +0100)]
gallium: Fix build on WinXP.
Brian [Tue, 29 Jan 2008 18:22:57 +0000 (11:22 -0700)]
Cell: use _pack_rgba8() from pack_rgba8.h to do float[4]->uint color conversion
texcyl.c is twice as fast now in non-texture mode
Keith Whitwell [Tue, 29 Jan 2008 15:17:56 +0000 (15:17 +0000)]
gallium: weaken assert slightly
Keith Whitwell [Tue, 29 Jan 2008 12:37:47 +0000 (12:37 +0000)]
gallium: streamline various unfilled & stippled paths
Keith Whitwell [Tue, 29 Jan 2008 12:37:07 +0000 (12:37 +0000)]
gallium: don't rely on assert(0) for error handling - may be disabled
José Fonseca [Tue, 29 Jan 2008 11:47:30 +0000 (20:47 +0900)]
gallium: Emit point size as a constant.
José Fonseca [Tue, 29 Jan 2008 11:46:48 +0000 (20:46 +0900)]
gallium: Emit constants.
José Fonseca [Tue, 29 Jan 2008 09:01:17 +0000 (18:01 +0900)]
gallium: Allow draw_vf usage to be controlled at runtime.