Commit Graph

18768 Commits

Author SHA1 Message Date
Alan Hourihane 81c862205e Merge commit 'origin/master' into gallium-0.2
Conflicts:

	src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
2008-11-01 22:57:26 +00:00
Brian Paul bbffed0857 mesa: silence warnings 2008-11-01 16:05:40 -06:00
Brian Paul b625a0a475 mesa: do scope replacement for while/for loops too
This fixes a function inlining bug involving vars declared inside loop bodies.
2008-11-01 16:05:40 -06:00
Brian Paul 3d0d803313 mesa: glsl tree print improvements 2008-11-01 16:05:40 -06:00
Brian Paul 1e1ba54a94 mesa: fix assignment / parameter passing of sampler types 2008-11-01 16:05:40 -06:00
Brian Paul 131d42573c mesa: additional debug flags for glsl debug/disassembly 2008-11-01 16:05:40 -06:00
Keith Packard 72c914805b Fix for 58dc8b7: dest regions must not use HorzStride 0 in ExecSize 1
Quoting section 11.3.10, paragraph 10.2 of the 965PRM:

10.2. 	If ExecSize is 1, dst.HorzStride must not be 0. Note that this is
	relaxed from rule 10.1.2. Also note that this rule for destination
	horizontal stride is different from that for source as stated in
	rule #7.

GM45 gets very angry when rule 10.2 is violated.

Patch 58dc8b7 (i965: support destination horiz strides in align1 access mode)
added support for additional horizontal strides in the ExecSize 1 case, but
failed to notice that mesa occasionally re-purposes a register as a
temporary destination, even though it was constructed as a repeating source
with HorzStride = 0.

While, ideally, we should probably fix the code using these register
specifications, this patch simply rewrites them to use HorzStride 1 as the
pre-58dc8b7 code did.

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-11-01 14:38:19 -07:00
Brian Paul 06fe728e5b mesa: fix some bugs with precision qualifier parsing 2008-10-31 17:42:26 -06:00
Brian Paul 90711775d7 mesa: do scope replacement for variable initializers too 2008-10-31 17:42:26 -06:00
Brian Paul 89bca902b3 mesa: fix copy/paste error in GLSL error msg 2008-10-31 17:42:25 -06:00
Eric Anholt 69e10084cd intel: pixelzoom doesn't apply to glBitmap, so disable the fallback. 2008-10-31 16:04:50 -07:00
Eric Anholt 018088996a intel: Remove fallback for glDrawPixels(GL_COLOR_INDEX)
GL_COLOR_INDEX mode is just like other normal formats (that is, not
depth/stencil) and is uploaded fine by TexImage.
2008-10-31 16:04:50 -07:00
Eric Anholt ed478a5fde intel: Add more fallback debugging for glDrawPixels. 2008-10-31 16:04:50 -07:00
Gary Wong ab3e9c481f i965: implement the missing OPCODE_NOISE1 and OPCODE_NOISE2 instructions.
(Only in fragment shaders, so far.  Support for NOISE3 and NOISE4 to come.)
2008-10-31 17:37:26 -04:00
Gary Wong 58dc8b7db5 i965: support destination horiz strides in align1 access mode.
This is required for scatter writes in destination regions to work.
2008-10-31 17:34:32 -04:00
Robert Ellison 14e1505cce CELL: fix use of stencil value mask
The Cell stencil tests were completely ignoring the stencil value mask.
Now the original code paths are still used if the stencil value mask
is all 1s; but code to use the mask for the stencil value and reference
value comparisons is now emitted if the mask is not all 1s.
2008-10-30 21:31:36 -06:00
Xiang, Haihao 963071ffea mesa: fix a typo in the previous commit 2008-10-31 09:24:27 +08:00
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
Xiang, Haihao bccc09e6bf mesa: fix an issue in _mesa_PointParameterfv(). 2008-10-30 10:40:51 +08: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 239ce2240a glx: added PFNGL*PROC typedefs for GLX 1.3 functions
Since we define GLX_VERSION_1_3 in glx.h, the typedefs in the glxext.h header
were getting skipped.
2008-10-29 15:49:19 -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
Nigel Stewart cd1283f515 glu: fix compilation problem when using Windows gl.h (sf bug 2204589) 2008-10-29 09:23:48 -06:00
Eric Anholt 26c1c04fd0 intel: Fix glDrawPixels with 4d RasterPos. 2008-10-28 22:52:38 -07:00
Eric Anholt 59b2c2adbb i965: Fix check_aperture calls to cover everything needed for the prim at once.
Previously, since my check_aperture API change, we would check each piece of
state against the batchbuffer individually, but not all the state against the
batchbuffer at once.  In addition to not being terribly useful in assuring
success, it probably also increased CPU load by calling check_aperture many
times per primitive.
2008-10-28 22:52:38 -07: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 835a9fef05 mesa: include glslcompiler driver in tarball 2008-10-28 18:27:21 -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 1100866aa1 mesa: fix stand-alone glslcompiler build 2008-10-28 17:03:49 -06:00
Eric Anholt 0cade4de4f intel: Don't keep intel->pClipRects, and instead just calculate it when needed.
This avoids issues with dereferencing stale cliprects around intel_draw_buffer
time.  Additionally, take advantage of cliprects staying constant for FBOs and
DRI2, and emit cliprects in the batchbuffer instead of having to flush batch
each time they change.
2008-10-28 13:23:33 -07: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
Gary Wong e92a457ac0 i965: Allocate temporaries contiguously with other regs in fragment shaders.
This is required for threads to be spawned with correctly sized GRF
register blocks.
2008-10-28 15:03:14 -04:00