Brian Paul [Thu, 6 Nov 2008 22:07:11 +0000 (15:07 -0700)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Brian Paul [Thu, 6 Nov 2008 22:04:11 +0000 (15:04 -0700)]
mesa: update the shader programs->TexturesUsed array at link time
If an application never calls glUniform() to set sampler variable values
they'll remain 0 (the default value/unit).
Now call _mesa_update_shader_textures_used() at link time in case glUniform()
is never called. program->TextureUsed[] will then be correct for state
validation.
Brian Paul [Thu, 6 Nov 2008 22:00:01 +0000 (15:00 -0700)]
gallium: added st_print_shaders() function to help w/ debugging
Brian Paul [Thu, 6 Nov 2008 21:57:20 +0000 (14:57 -0700)]
gallium: debug code to print vertex array data (disabled)
Brian Paul [Thu, 6 Nov 2008 21:56:59 +0000 (14:56 -0700)]
softpipe: debug code (disabled)
Zack Rusin [Thu, 6 Nov 2008 21:07:28 +0000 (16:07 -0500)]
gallium: actually flip the coordinates
Brian [Thu, 6 Nov 2008 03:04:49 +0000 (20:04 -0700)]
gallium: check execution mask in indirect register loads
Zero-out the index for disabled execution channels to avoid using potential
garbage values (thus avoiding bad array indexing).
Brian [Thu, 6 Nov 2008 02:26:20 +0000 (19:26 -0700)]
gallium: don't range check tgsi register index for indirect accesses
Fixes progs/vp/arl.txt test.
Brian Paul [Thu, 6 Nov 2008 00:20:35 +0000 (17:20 -0700)]
cell: minor reformatting, var renaming
Brian Paul [Thu, 6 Nov 2008 00:14:23 +0000 (17:14 -0700)]
use APP_CC, not CC for skinning demo
Brian Paul [Thu, 6 Nov 2008 00:14:00 +0000 (17:14 -0700)]
gallium: s/mmDestroy/u_mmDestroy/
Brian Paul [Wed, 5 Nov 2008 22:58:09 +0000 (15:58 -0700)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
src/gallium/auxiliary/rtasm/rtasm_execmem.c
src/mesa/shader/slang/slang_emit.c
src/mesa/shader/slang/slang_log.c
src/mesa/state_tracker/st_atom_framebuffer.c
Brian Paul [Wed, 5 Nov 2008 21:05:42 +0000 (14:05 -0700)]
gallium: added check for degenerate drawing calls
Brian Paul [Wed, 5 Nov 2008 21:05:04 +0000 (14:05 -0700)]
gallium: if VERBOSE_GLSL flag is set, check for non-initialized uniforms at draw time
This will warn the user that the shader being run may be using uninitialized
uniform variables.
Brian Paul [Wed, 5 Nov 2008 21:03:15 +0000 (14:03 -0700)]
mesa: fix a GLSL array indexing codegen bug
Expressions like array[i] + array[j] didn't work properly before.
Brian Paul [Wed, 5 Nov 2008 21:02:07 +0000 (14:02 -0700)]
gallium: call tgsi_set_exec_mask() and use exec mask in SSE ARL code
This prevents vertex shaders from referencing invalid memory locations when
the shader is operating on less than four vertices or fragments.
Brian Paul [Wed, 5 Nov 2008 20:56:20 +0000 (13:56 -0700)]
gallium: added tgsi_set_exec_mask()
Brian Paul [Wed, 5 Nov 2008 20:55:56 +0000 (13:55 -0700)]
gallium: added some sanity check assertions for constant buffer indexing
Brian Paul [Wed, 5 Nov 2008 16:33:48 +0000 (09:33 -0700)]
mesa: remove extra \n from printf string
Brian Paul [Wed, 5 Nov 2008 16:14:19 +0000 (09:14 -0700)]
mesa: add Initialized field to gl_uniform struct, for debugging purposes only
Brian Paul [Wed, 5 Nov 2008 15:58:40 +0000 (08:58 -0700)]
gallium: added some debug code (disabled)
Brian Paul [Wed, 5 Nov 2008 15:57:11 +0000 (08:57 -0700)]
gallium: disable some debug output
Jakob Bornecrantz [Wed, 5 Nov 2008 15:49:48 +0000 (16:49 +0100)]
i915: Remove faulty assert
michal [Wed, 5 Nov 2008 10:58:11 +0000 (11:58 +0100)]
draw: Implement TGSI_OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:48:56 +0000 (11:48 +0100)]
tgsi: Implement OPCODE_TRUNC.
Alan Hourihane [Wed, 5 Nov 2008 11:59:12 +0000 (11:59 +0000)]
Merge commit 'origin/master' into gallium-0.2
michal [Wed, 5 Nov 2008 10:58:11 +0000 (11:58 +0100)]
draw: Implement TGSI_OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:48:56 +0000 (11:48 +0100)]
tgsi: Implement OPCODE_TRUNC.
Brian Paul [Tue, 4 Nov 2008 23:56:59 +0000 (16:56 -0700)]
added glsl/skinning.c test to test matrix blending/weighting
Brian Paul [Tue, 4 Nov 2008 23:52:53 +0000 (16:52 -0700)]
mesa: fix float-valued GLSL vertex attribute variables
The swizzle mask for such variables wasn't set up properly.
Brian Paul [Tue, 4 Nov 2008 22:19:28 +0000 (15:19 -0700)]
print err msg if unable to open shader file
Brian Paul [Tue, 4 Nov 2008 22:11:56 +0000 (15:11 -0700)]
remove old debug glFlush/Finish calls from demos
Brian Paul [Tue, 4 Nov 2008 23:52:53 +0000 (16:52 -0700)]
mesa: fix float-valued GLSL vertex attribute variables
The swizzle mask for such variables wasn't set up properly.
Alan Hourihane [Mon, 3 Nov 2008 20:05:55 +0000 (20:05 +0000)]
gallium: no renderbuffer, so just exit.
Michal Krol [Tue, 26 Aug 2008 15:40:24 +0000 (17:40 +0200)]
gallium: Silence compiler warnings on Windows.
José Fonseca [Fri, 24 Oct 2008 18:35:01 +0000 (03:35 +0900)]
gallium: Read from PIPE_FORMAT_Z32_FLOAT.
Mainly for debugging purposes for now.
Eric Anholt [Sun, 2 Nov 2008 20:29:03 +0000 (12:29 -0800)]
i965: Clean up stale NDC comment.
Eric Anholt [Sun, 2 Nov 2008 20:19:02 +0000 (12:19 -0800)]
i965: Avoid vs header computation for negative rhw on G4X.
This cuts one MOV out when setting a zero header.
Eric Anholt [Sun, 2 Nov 2008 20:15:53 +0000 (12:15 -0800)]
i965: Merge GM45 into the G4X chipset define.
The mobile and desktop chipsets are the same, and having them separate is
more typing and more chances to screw up.
Eric Anholt [Sun, 2 Nov 2008 19:49:46 +0000 (11:49 -0800)]
i965: Fix copy'n'paste issue that made brw->urb.constrained useless.
Also, add a comment explaining what brw->urb.constrained tries to do.
José Fonseca [Mon, 3 Nov 2008 11:50:14 +0000 (20:50 +0900)]
gallium: WinCE portability fixes.
José Fonseca [Fri, 31 Oct 2008 10:50:43 +0000 (19:50 +0900)]
gallium: Fix typo.
José Fonseca [Thu, 30 Oct 2008 07:47:20 +0000 (16:47 +0900)]
softpipe: Don't call pipe_buffer_destroy directly.
Use pipe_buffer_reference instead.
José Fonseca [Tue, 28 Oct 2008 07:11:09 +0000 (16:11 +0900)]
pipebuffer: Ensure refcounts of live buffer objects are never zero.
José Fonseca [Tue, 28 Oct 2008 07:10:55 +0000 (16:10 +0900)]
gallium: Ensure refcounts of live objects are never zero.
José Fonseca [Sat, 18 Oct 2008 04:31:00 +0000 (13:31 +0900)]
gallium: Fix msvc warning.
Eric Anholt [Sun, 2 Nov 2008 20:29:03 +0000 (12:29 -0800)]
i965: Clean up stale NDC comment.
Eric Anholt [Sun, 2 Nov 2008 20:19:02 +0000 (12:19 -0800)]
i965: Avoid vs header computation for negative rhw on G4X.
This cuts one MOV out when setting a zero header.
Eric Anholt [Sun, 2 Nov 2008 20:15:53 +0000 (12:15 -0800)]
i965: Merge GM45 into the G4X chipset define.
The mobile and desktop chipsets are the same, and having them separate is
more typing and more chances to screw up.
Eric Anholt [Sun, 2 Nov 2008 19:49:46 +0000 (11:49 -0800)]
i965: Fix copy'n'paste issue that made brw->urb.constrained useless.
Also, add a comment explaining what brw->urb.constrained tries to do.
Alan Hourihane [Sat, 1 Nov 2008 22:57:26 +0000 (22:57 +0000)]
Merge commit 'origin/master' into gallium-0.2
Conflicts:
src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
Brian Paul [Sat, 1 Nov 2008 22:04:45 +0000 (16:04 -0600)]
mesa: silence warnings
Brian Paul [Sat, 1 Nov 2008 21:55:39 +0000 (15:55 -0600)]
mesa: do scope replacement for while/for loops too
This fixes a function inlining bug involving vars declared inside loop bodies.
Brian Paul [Sat, 1 Nov 2008 21:55:14 +0000 (15:55 -0600)]
mesa: glsl tree print improvements
Brian Paul [Sat, 1 Nov 2008 21:53:14 +0000 (15:53 -0600)]
mesa: fix assignment / parameter passing of sampler types
Brian Paul [Sat, 1 Nov 2008 16:57:25 +0000 (10:57 -0600)]
mesa: additional debug flags for glsl debug/disassembly
Brian Paul [Sat, 1 Nov 2008 22:04:45 +0000 (16:04 -0600)]
mesa: silence warnings
Brian Paul [Sat, 1 Nov 2008 21:55:39 +0000 (15:55 -0600)]
mesa: do scope replacement for while/for loops too
This fixes a function inlining bug involving vars declared inside loop bodies.
Brian Paul [Sat, 1 Nov 2008 21:55:14 +0000 (15:55 -0600)]
mesa: glsl tree print improvements
Brian Paul [Sat, 1 Nov 2008 22:02:32 +0000 (16:02 -0600)]
mesa: fix assignment / parameter passing of sampler types
Brian Paul [Sat, 1 Nov 2008 16:57:25 +0000 (10:57 -0600)]
mesa: additional debug flags for glsl debug/disassembly
Keith Packard [Sat, 1 Nov 2008 21:38:19 +0000 (14:38 -0700)]
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>
Brian Paul [Fri, 31 Oct 2008 23:29:54 +0000 (17:29 -0600)]
mesa: fix some bugs with precision qualifier parsing
Brian Paul [Fri, 31 Oct 2008 23:27:41 +0000 (17:27 -0600)]
mesa: do scope replacement for variable initializers too
Brian Paul [Fri, 31 Oct 2008 23:22:13 +0000 (17:22 -0600)]
mesa: fix copy/paste error in GLSL error msg
Brian Paul [Fri, 31 Oct 2008 23:29:54 +0000 (17:29 -0600)]
mesa: fix some bugs with precision qualifier parsing
Brian Paul [Fri, 31 Oct 2008 23:27:41 +0000 (17:27 -0600)]
mesa: do scope replacement for variable initializers too
Brian Paul [Fri, 31 Oct 2008 23:22:13 +0000 (17:22 -0600)]
mesa: fix copy/paste error in GLSL error msg
Eric Anholt [Fri, 31 Oct 2008 20:37:42 +0000 (13:37 -0700)]
intel: pixelzoom doesn't apply to glBitmap, so disable the fallback.
Eric Anholt [Fri, 31 Oct 2008 20:18:56 +0000 (13:18 -0700)]
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.
Eric Anholt [Fri, 31 Oct 2008 20:13:08 +0000 (13:13 -0700)]
intel: Add more fallback debugging for glDrawPixels.
Gary Wong [Fri, 31 Oct 2008 21:31:57 +0000 (17:31 -0400)]
i965: implement the missing OPCODE_NOISE1 and OPCODE_NOISE2 instructions.
(Only in fragment shaders, so far. Support for NOISE3 and NOISE4 to come.)
Gary Wong [Wed, 29 Oct 2008 23:53:33 +0000 (19:53 -0400)]
i965: support destination horiz strides in align1 access mode.
This is required for scatter writes in destination regions to work.
Robert Ellison [Fri, 31 Oct 2008 03:31:07 +0000 (21:31 -0600)]
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.
Xiang, Haihao [Fri, 31 Oct 2008 01:24:27 +0000 (09:24 +0800)]
mesa: fix a typo in the previous commit
Stephane Marchesin [Thu, 30 Oct 2008 22:52:59 +0000 (23:52 +0100)]
gallivm: replace the temp parameters of the JIT function with alloca'ed temps. This avoids useless writes of temporary results.
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.
Xiang, Haihao [Thu, 30 Oct 2008 02:10:58 +0000 (10:10 +0800)]
mesa: fix an issue in _mesa_PointParameterfv().
Brian Paul [Wed, 29 Oct 2008 23:02:56 +0000 (17:02 -0600)]
gallium: new sanity assertions in mmAllocMem()
Brian Paul [Wed, 29 Oct 2008 23:02:30 +0000 (17:02 -0600)]
gallium: fix copy&paste bug
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 21:49:19 +0000 (15:49 -0600)]
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.
Brian Paul [Wed, 29 Oct 2008 20:55:02 +0000 (14:55 -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: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()
Nigel Stewart [Wed, 29 Oct 2008 15:22:05 +0000 (09:22 -0600)]
glu: fix compilation problem when using Windows gl.h (sf bug 2204589)
Eric Anholt [Wed, 29 Oct 2008 05:50:52 +0000 (22:50 -0700)]
intel: Fix glDrawPixels with 4d RasterPos.
Eric Anholt [Fri, 24 Oct 2008 20:02:21 +0000 (13:02 -0700)]
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.
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/