mesa.git
16 years agocell: implement NRM3 opcode
Brian Paul [Tue, 11 Nov 2008 16:19:18 +0000 (09:19 -0700)]
cell: implement NRM3 opcode

16 years agoCELL: two-sided stencil fixes
Robert Ellison [Tue, 11 Nov 2008 20:57:10 +0000 (13:57 -0700)]
CELL: two-sided stencil fixes

With these changes, the tests/stencil_twoside test now works.

- Eliminate blending from the stencil_twoside test, as it produces an
  unneeded dependency on having blending working

- The spe_splat() function will now work if the register being splatted
  and the destination register are the same

- Separate fragment code generated for front-facing and back-facing
  fragments.  Often these are the same; if two-sided stenciling is on,
  they can be different.  This is easier and faster than generating
  code that does both tests and merges the results.

- Fixed a cut/paste bug where if the back Z-pass stencil operation
  were different from all the other operations, the back Z-fail
  results were incorrect.

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
Brian Paul [Mon, 10 Nov 2008 18:19:30 +0000 (11:19 -0700)]
Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/auxiliary/util/u_math.c

16 years agoMesa: fix number of buffers in st_draw_vbo().
Pekka Paalanen [Sat, 8 Nov 2008 23:02:10 +0000 (01:02 +0200)]
Mesa: fix number of buffers in st_draw_vbo().

The clean-up call to pipe->set_vertex_buffers() should use the same
number of buffers as the first call.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
16 years agogallium: fix typos in comments
Brian Paul [Mon, 10 Nov 2008 15:24:45 +0000 (08:24 -0700)]
gallium: fix typos in comments

16 years agogallium: actually flip the coordinates
Zack Rusin [Thu, 6 Nov 2008 21:07:28 +0000 (16:07 -0500)]
gallium: actually flip the coordinates

16 years agoutil: Fix util_fast_pow/exp2/log2.
Brian [Sun, 9 Nov 2008 17:15:32 +0000 (10:15 -0700)]
util: Fix util_fast_pow/exp2/log2.

- Use a lookup table for log2.

- Compute (float) (1 << ipart) by tweaking with the exponent directly to
avoid integer overflow and float conversion.

- Also table negative exponents to avoid float division and branching.

- Implement util_fast_exp as function of util_fast_exp2.

--------

Cherry-picked from gallium-0.2: 8415d06d90a197e16554dab98d160334fd9f9f93

This fixes some pow() glitches seen in fslight.c, spectex.c, etc.

Conflicts:
       src/gallium/auxiliary/util/u_math.h

16 years agogallium: _debug_vprintf() should be silent if DEBUG is not defined
Brian [Sun, 9 Nov 2008 03:43:38 +0000 (20:43 -0700)]
gallium: _debug_vprintf() should be silent if DEBUG is not defined

16 years agogallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics only
Brian [Sun, 9 Nov 2008 16:36:22 +0000 (09:36 -0700)]
gallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics only

This allows us to use SSE codegen with debug builds again.
When PIPE_ARCH_SSE is set (w/ gcc -msse -msse2) we will also use the
gcc SSE intrinsic functions.

16 years agogallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4
Brian [Sat, 8 Nov 2008 17:29:23 +0000 (10:29 -0700)]
gallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4

16 years agogallium: added SSE for DP2, DP2A
Brian Paul [Fri, 7 Nov 2008 20:03:07 +0000 (13:03 -0700)]
gallium: added SSE for DP2, DP2A

16 years agogallium: implement TGSI_OPCODE_DP2A, add sqrt to NRM3/NRM4
Brian Paul [Fri, 7 Nov 2008 20:02:43 +0000 (13:02 -0700)]
gallium: implement TGSI_OPCODE_DP2A, add sqrt to NRM3/NRM4

16 years agoMerge commit 'origin/master' into gallium-0.2
Brian Paul [Fri, 7 Nov 2008 20:02:07 +0000 (13:02 -0700)]
Merge commit 'origin/master' into gallium-0.2

16 years agomesa: forgot sqrt in NRM3/4 instructions
Brian Paul [Fri, 7 Nov 2008 19:59:36 +0000 (12:59 -0700)]
mesa: forgot sqrt in NRM3/4 instructions

16 years agomesa: fix opcode table order bug
Brian Paul [Fri, 7 Nov 2008 19:59:08 +0000 (12:59 -0700)]
mesa: fix opcode table order bug

16 years agoCELL: fix several stencil problems
Robert Ellison [Fri, 7 Nov 2008 18:29:07 +0000 (11:29 -0700)]
CELL: fix several stencil problems

This small set of changes repairs several different stenciling problems;
now redbook/stencil also runs correctly (and maybe others - I haven't
checked everything yet).

- The number of instructions that had been allocated for fragment ops
  used to be 64 (in cell/common.h).  With complicated stencil use, we
  managed to get up to 93, which caused a segfault before we noticed
  we'd overran our memory buffer.  It's now been bumped to 128,
  which should be enough for even complicated stencil and fragment op
  usage.

- The status of cell surfaces never changed beyond the initial
  PIPE_SURFACE_STATUS_UNDEFINED.  When a user called glClear()
  to clear just the Z buffer (but not the stencil buffer), this caused
  the check_clear_depth_with_quad() function to return false (because
  the surface status was believed to be undefined), and so the device
  was instructed to clear the whole buffer (including the stencil buffer),
  instead of correctly using a quad to clear just the depth, leaving the
  stencil alone.

  This has been fixed similarly to the way the i915 driver handles
  the surface status: during cell_clear_surface(), the status is
  set to PIPE_SURFACE_STATUS_DEFINED.  Then a partial buffer clear is
  handled with a quad, as expected.  Note that we are *not* using
  PIPE_SURFACE_STATUS_CLEAR (also similar to the i915); technically,
  we should be setting the surface status to CLEAR on a clear, and
  to DEFINED when we actually draw something (say on cell_vbuf_draw()),
  but it's difficult to figure out exactly which surfaces are affected
  by a cell_vbuf_draw(), so for now we're doing the easy thing.

- The fragment ops handling was very clever about only pulling out the
  parts of the Z/stencil buffer that it needed for calculations;
  but this failed when only part of the buffer was written, because
  the part that was never pulled out was inadvertently cleared.

  Now all the data from the combined Z/stencil buffer is pulled out,
  just so the proper values can be recombined later and written back
  to the buffer correctly.  As a bonus, the fragment op code generation
  is simplified.

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
Brian Paul [Fri, 7 Nov 2008 17:24:22 +0000 (10:24 -0700)]
Merge commit 'origin/gallium-0.1' into gallium-0.2

16 years agomesa: use _bfc0 instead of _col0 when building back face lighting.
Brian Paul [Fri, 7 Nov 2008 17:23:22 +0000 (10:23 -0700)]
mesa: use _bfc0 instead of _col0 when building back face lighting.

cherry-picked from master: 4550b0562d5b59890fccb0e7eb0dbef967d1ccf9

16 years agogallium: translate DP2, DP2A, NRM3, NRM4, SSG opcodes
Brian Paul [Fri, 7 Nov 2008 17:20:05 +0000 (10:20 -0700)]
gallium: translate DP2, DP2A, NRM3, NRM4, SSG opcodes

16 years agoMerge commit 'origin/master' into gallium-0.2
Brian Paul [Fri, 7 Nov 2008 17:17:31 +0000 (10:17 -0700)]
Merge commit 'origin/master' into gallium-0.2

16 years agomesa: add GLSL support for DP2, NRM3, NRM4 instructions (not actually emitted yet...
Brian Paul [Fri, 7 Nov 2008 16:49:26 +0000 (09:49 -0700)]
mesa: add GLSL support for DP2, NRM3, NRM4 instructions (not actually emitted yet though)

16 years agomesa: added DP2, DP2A instructions
Brian Paul [Fri, 7 Nov 2008 16:41:00 +0000 (09:41 -0700)]
mesa: added DP2, DP2A instructions

16 years agomesa: added AND/OR/NOT/XOR instructions
Brian Paul [Fri, 7 Nov 2008 16:33:55 +0000 (09:33 -0700)]
mesa: added AND/OR/NOT/XOR instructions

16 years agomesa: include shader/prog_instruction.h
Brian Paul [Fri, 7 Nov 2008 16:06:09 +0000 (09:06 -0700)]
mesa: include shader/prog_instruction.h

Seems to fix a mysteriously missing build dependency.

16 years agomesa: added OPCODE_NRM3/NRM4 instructions for vector normalization.
Brian Paul [Fri, 7 Nov 2008 15:51:31 +0000 (08:51 -0700)]
mesa: added OPCODE_NRM3/NRM4 instructions for vector normalization.

We may emit these instructions from GLSL instead of DP3/RCP/MUL.

Also, implement SSG (set sign) instruction in the interpreter.

16 years agomesa: use _bfc0 instead of _col0 when building back face lighting.
Xiang, Haihao [Fri, 7 Nov 2008 06:58:04 +0000 (14:58 +0800)]
mesa: use _bfc0 instead of _col0 when building back face lighting.

16 years agogallium: implement TGSI_OPCODE_NRM/NRM4 in tgsi_exec.c
Brian [Fri, 7 Nov 2008 02:24:47 +0000 (19:24 -0700)]
gallium: implement TGSI_OPCODE_NRM/NRM4 in tgsi_exec.c

16 years agogallium: s/OPCODE_INT/OPCODE_TRUNC/
Brian Paul [Fri, 7 Nov 2008 00:19:54 +0000 (17:19 -0700)]
gallium: s/OPCODE_INT/OPCODE_TRUNC/

16 years agoMerge commit 'origin/master' into gallium-0.2
Brian Paul [Fri, 7 Nov 2008 00:17:13 +0000 (17:17 -0700)]
Merge commit 'origin/master' into gallium-0.2

16 years agomesa: rename OPCODE_INT -> OPCODE_TRUNC
Brian Paul [Fri, 7 Nov 2008 00:14:33 +0000 (17:14 -0700)]
mesa: rename OPCODE_INT -> OPCODE_TRUNC

Trunc is a more accurate description; there's no type conversion involved.

16 years agomesa: update the shader programs->TexturesUsed array at link time
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.

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
Brian Paul [Thu, 6 Nov 2008 22:07:11 +0000 (15:07 -0700)]
Merge commit 'origin/gallium-0.1' into gallium-0.2

16 years agomesa: update the shader programs->TexturesUsed array at link time
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.

16 years agogallium: added st_print_shaders() function to help w/ debugging
Brian Paul [Thu, 6 Nov 2008 22:00:01 +0000 (15:00 -0700)]
gallium: added st_print_shaders() function to help w/ debugging

16 years agogallium: debug code to print vertex array data (disabled)
Brian Paul [Thu, 6 Nov 2008 21:57:20 +0000 (14:57 -0700)]
gallium: debug code to print vertex array data (disabled)

16 years agosoftpipe: debug code (disabled)
Brian Paul [Thu, 6 Nov 2008 21:56:59 +0000 (14:56 -0700)]
softpipe: debug code (disabled)

16 years agogallium: actually flip the coordinates
Zack Rusin [Thu, 6 Nov 2008 21:07:28 +0000 (16:07 -0500)]
gallium: actually flip the coordinates

16 years agoi965: Always check vertex program.
Xiang, Haihao [Thu, 6 Nov 2008 07:25:55 +0000 (15:25 +0800)]
i965: Always check vertex program.

Now i965 also uses the vertex program created by Mesa Core, but this vertex program
is not only depend on mesa state _NEW_PROGRAM, so always check the current vertex
program is updated or not. This fixes broken demo cubemap.

16 years agogallium: check execution mask in indirect register loads
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).

16 years agogallium: don't range check tgsi register index for indirect accesses
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.

16 years agoi965: Implement missing OPCODE_NOISE3 instruction in fragment shaders.
Gary Wong [Thu, 6 Nov 2008 01:35:19 +0000 (20:35 -0500)]
i965: Implement missing OPCODE_NOISE3 instruction in fragment shaders.

OPCODE_NOISE4 coming later.

16 years agocell: minor reformatting, var renaming
Brian Paul [Thu, 6 Nov 2008 00:20:35 +0000 (17:20 -0700)]
cell: minor reformatting, var renaming

16 years agouse APP_CC, not CC for skinning demo
Brian Paul [Thu, 6 Nov 2008 00:14:23 +0000 (17:14 -0700)]
use APP_CC, not CC for skinning demo

16 years agogallium: s/mmDestroy/u_mmDestroy/
Brian Paul [Thu, 6 Nov 2008 00:14:00 +0000 (17:14 -0700)]
gallium: s/mmDestroy/u_mmDestroy/

16 years agomesa: Fix compiler warnings on Windows.
Brian Paul [Wed, 5 Nov 2008 23:04:40 +0000 (16:04 -0700)]
mesa: Fix compiler warnings on Windows.

cherry-picked subset of a77976d2ee578d0483c64f2aa41719bbae9c1c97

16 years agomesa: fix a GLSL array indexing codegen bug
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.

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
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

16 years agogallium: added check for degenerate drawing calls
Brian Paul [Wed, 5 Nov 2008 21:05:42 +0000 (14:05 -0700)]
gallium: added check for degenerate drawing calls

16 years agogallium: if VERBOSE_GLSL flag is set, check for non-initialized uniforms at draw...
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.

16 years agomesa: fix a GLSL array indexing codegen bug
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.

16 years agogallium: call tgsi_set_exec_mask() and use exec mask in SSE ARL code
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.

16 years agogallium: added tgsi_set_exec_mask()
Brian Paul [Wed, 5 Nov 2008 20:56:20 +0000 (13:56 -0700)]
gallium: added tgsi_set_exec_mask()

16 years agogallium: added some sanity check assertions for constant buffer indexing
Brian Paul [Wed, 5 Nov 2008 20:55:56 +0000 (13:55 -0700)]
gallium: added some sanity check assertions for constant buffer indexing

16 years agomesa: remove extra \n from printf string
Brian Paul [Wed, 5 Nov 2008 16:34:15 +0000 (09:34 -0700)]
mesa: remove extra \n from printf string

16 years agomesa: remove extra \n from printf string
Brian Paul [Wed, 5 Nov 2008 16:33:48 +0000 (09:33 -0700)]
mesa: remove extra \n from printf string

16 years agomesa: add Initialized field to gl_uniform struct, for debugging purposes only
Brian Paul [Wed, 5 Nov 2008 16:17:55 +0000 (09:17 -0700)]
mesa: add Initialized field to gl_uniform struct, for debugging purposes only

16 years agomesa: add Initialized field to gl_uniform struct, for debugging purposes only
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

16 years agogallium: added some debug code (disabled)
Brian Paul [Wed, 5 Nov 2008 15:58:40 +0000 (08:58 -0700)]
gallium: added some debug code (disabled)

16 years agogallium: disable some debug output
Brian Paul [Wed, 5 Nov 2008 15:57:11 +0000 (08:57 -0700)]
gallium: disable some debug output

16 years agoi915: Remove faulty assert
Jakob Bornecrantz [Wed, 5 Nov 2008 15:49:48 +0000 (16:49 +0100)]
i915: Remove faulty assert

16 years agodraw: Implement TGSI_OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:58:11 +0000 (11:58 +0100)]
draw: Implement TGSI_OPCODE_TRUNC.

16 years agotgsi: Implement OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:48:56 +0000 (11:48 +0100)]
tgsi: Implement OPCODE_TRUNC.

16 years agoMerge commit 'origin/master' into gallium-0.2
Alan Hourihane [Wed, 5 Nov 2008 11:59:12 +0000 (11:59 +0000)]
Merge commit 'origin/master' into gallium-0.2

16 years agodraw: Implement TGSI_OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:58:11 +0000 (11:58 +0100)]
draw: Implement TGSI_OPCODE_TRUNC.

16 years agotgsi: Implement OPCODE_TRUNC.
michal [Wed, 5 Nov 2008 10:48:56 +0000 (11:48 +0100)]
tgsi: Implement OPCODE_TRUNC.

16 years agoadded glsl/skinning.c test to test matrix blending/weighting
Brian Paul [Tue, 4 Nov 2008 23:56:59 +0000 (16:56 -0700)]
added glsl/skinning.c test to test matrix blending/weighting

16 years agomesa: fix float-valued GLSL vertex attribute variables
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.

16 years agoprint err msg if unable to open shader file
Brian Paul [Tue, 4 Nov 2008 22:19:28 +0000 (15:19 -0700)]
print err msg if unable to open shader file

16 years agoremove old debug glFlush/Finish calls from demos
Brian Paul [Tue, 4 Nov 2008 22:11:56 +0000 (15:11 -0700)]
remove old debug glFlush/Finish calls from demos

16 years agomesa: fix float-valued GLSL vertex attribute variables
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.

16 years agogallium: no renderbuffer, so just exit.
Alan Hourihane [Mon, 3 Nov 2008 20:05:55 +0000 (20:05 +0000)]
gallium: no renderbuffer, so just exit.

16 years agogallium: Silence compiler warnings on Windows.
Michal Krol [Tue, 26 Aug 2008 15:40:24 +0000 (17:40 +0200)]
gallium: Silence compiler warnings on Windows.

16 years agogallium: Read from PIPE_FORMAT_Z32_FLOAT.
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.

16 years agoi965: Clean up stale NDC comment.
Eric Anholt [Sun, 2 Nov 2008 20:29:03 +0000 (12:29 -0800)]
i965: Clean up stale NDC comment.

16 years agoi965: Avoid vs header computation for negative rhw on G4X.
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.

16 years agoi965: Merge GM45 into the G4X chipset define.
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.

16 years agoi965: Fix copy'n'paste issue that made brw->urb.constrained useless.
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.

16 years agogallium: WinCE portability fixes.
José Fonseca [Mon, 3 Nov 2008 11:50:14 +0000 (20:50 +0900)]
gallium: WinCE portability fixes.

16 years agogallium: Fix typo.
José Fonseca [Fri, 31 Oct 2008 10:50:43 +0000 (19:50 +0900)]
gallium: Fix typo.

16 years agosoftpipe: Don't call pipe_buffer_destroy directly.
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.

16 years agopipebuffer: Ensure refcounts of live buffer objects are never zero.
José Fonseca [Tue, 28 Oct 2008 07:11:09 +0000 (16:11 +0900)]
pipebuffer: Ensure refcounts of live buffer objects are never zero.

16 years agogallium: Ensure refcounts of live 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.

16 years agogallium: Fix msvc warning.
José Fonseca [Sat, 18 Oct 2008 04:31:00 +0000 (13:31 +0900)]
gallium: Fix msvc warning.

16 years agoi965: Clean up stale NDC comment.
Eric Anholt [Sun, 2 Nov 2008 20:29:03 +0000 (12:29 -0800)]
i965: Clean up stale NDC comment.

16 years agoi965: Avoid vs header computation for negative rhw on G4X.
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.

16 years agoi965: Merge GM45 into the G4X chipset define.
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.

16 years agoi965: Fix copy'n'paste issue that made brw->urb.constrained useless.
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.

16 years agoMerge commit 'origin/master' into gallium-0.2
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

16 years agomesa: silence warnings
Brian Paul [Sat, 1 Nov 2008 22:04:45 +0000 (16:04 -0600)]
mesa: silence warnings

16 years agomesa: do scope replacement for while/for loops too
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.

16 years agomesa: glsl tree print improvements
Brian Paul [Sat, 1 Nov 2008 21:55:14 +0000 (15:55 -0600)]
mesa: glsl tree print improvements

16 years agomesa: fix assignment / parameter passing of sampler types
Brian Paul [Sat, 1 Nov 2008 21:53:14 +0000 (15:53 -0600)]
mesa: fix assignment / parameter passing of sampler types

16 years agomesa: additional debug flags for glsl debug/disassembly
Brian Paul [Sat, 1 Nov 2008 16:57:25 +0000 (10:57 -0600)]
mesa: additional debug flags for glsl debug/disassembly

16 years agomesa: silence warnings
Brian Paul [Sat, 1 Nov 2008 22:04:45 +0000 (16:04 -0600)]
mesa: silence warnings

16 years agomesa: do scope replacement for while/for loops too
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.

16 years agomesa: glsl tree print improvements
Brian Paul [Sat, 1 Nov 2008 21:55:14 +0000 (15:55 -0600)]
mesa: glsl tree print improvements

16 years agomesa: fix assignment / parameter passing of sampler types
Brian Paul [Sat, 1 Nov 2008 22:02:32 +0000 (16:02 -0600)]
mesa: fix assignment / parameter passing of sampler types

16 years agomesa: additional debug flags for glsl debug/disassembly
Brian Paul [Sat, 1 Nov 2008 16:57:25 +0000 (10:57 -0600)]
mesa: additional debug flags for glsl debug/disassembly

16 years agoFix for 58dc8b7: dest regions must not use HorzStride 0 in ExecSize 1
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>
16 years agomesa: fix some bugs with precision qualifier parsing
Brian Paul [Fri, 31 Oct 2008 23:29:54 +0000 (17:29 -0600)]
mesa: fix some bugs with precision qualifier parsing