mesa.git
16 years agocell: remove old texture code
Brian Paul [Mon, 13 Oct 2008 17:16:04 +0000 (11:16 -0600)]
cell: remove old texture code

16 years agocell: do texture sampling/filtering for four pixels at a time.
Brian Paul [Mon, 13 Oct 2008 16:55:08 +0000 (10:55 -0600)]
cell: do texture sampling/filtering for four pixels at a time.

16 years agocell: added spu_unpack_A8R8G8B8_transpose4()
Brian Paul [Mon, 13 Oct 2008 16:54:11 +0000 (10:54 -0600)]
cell: added spu_unpack_A8R8G8B8_transpose4()

Plus, clearer shuffle masks in other funcs.

16 years agomesa: when emitting an address load instruction, for
Alan Hourihane [Mon, 13 Oct 2008 11:30:40 +0000 (12:30 +0100)]
mesa: when emitting an address load instruction, for
      indexed elements ensure we write to a single register.

16 years agocell: more instruction scheduling optimizations (MIN/MAX/LERP/etc)
Brian Paul [Fri, 10 Oct 2008 23:48:16 +0000 (17:48 -0600)]
cell: more instruction scheduling optimizations (MIN/MAX/LERP/etc)

Also, optimize register->memory stores.

16 years agoMerge commit 'origin/master' into gallium-0.2
Brian Paul [Fri, 10 Oct 2008 22:40:16 +0000 (16:40 -0600)]
Merge commit 'origin/master' into gallium-0.2

16 years agocell: pass texture unit (sampler number) to txp() function
Brian Paul [Fri, 10 Oct 2008 22:36:40 +0000 (16:36 -0600)]
cell: pass texture unit (sampler number) to txp() function

The glsl/multitex demo runs now.

16 years agointel: GLSL 1.20 is broken in Mesa, so disable it in the i965 driver
Ian Romanick [Fri, 10 Oct 2008 18:47:43 +0000 (11:47 -0700)]
intel: GLSL 1.20 is broken in Mesa, so disable it in the i965 driver

16 years agoi965: Add missing intel_pixel_draw.c symlink to fix build.
Eric Anholt [Fri, 10 Oct 2008 16:43:15 +0000 (09:43 -0700)]
i965: Add missing intel_pixel_draw.c symlink to fix build.

16 years agomesa: fix asst. issues in _mesa_texstore_argb8888()
Brian Paul [Fri, 10 Oct 2008 22:30:43 +0000 (16:30 -0600)]
mesa: fix asst. issues in _mesa_texstore_argb8888()

If we shift bytes into the texel word (or use the PACK_COLOR_8888 macro),
we don't have to worry about big vs. little endian.  See comments about
texel formats in texformat.h.
Remove an unneeded/incorrect else-if clause that produced wrong results
on big-endian systems.

16 years agomesa: include needed header
Brian Paul [Fri, 10 Oct 2008 22:30:18 +0000 (16:30 -0600)]
mesa: include needed header

16 years agomesa: remove unneeded includes
Brian Paul [Fri, 10 Oct 2008 22:29:54 +0000 (16:29 -0600)]
mesa: remove unneeded includes

16 years agomesa: fix error codes in _mesa_GetObjectParameterivARB(), bug 17861
Brian Paul [Fri, 10 Oct 2008 22:26:15 +0000 (16:26 -0600)]
mesa: fix error codes in _mesa_GetObjectParameterivARB(), bug 17861

16 years agomesa: rename macro params to emphasize that there's no particular color ordering
Brian Paul [Fri, 10 Oct 2008 22:23:31 +0000 (16:23 -0600)]
mesa: rename macro params to emphasize that there's no particular color ordering

16 years agomesa: remove unneeded includes
Brian Paul [Fri, 10 Oct 2008 22:21:52 +0000 (16:21 -0600)]
mesa: remove unneeded includes

16 years agocell: add emit_RI10s() which does range checking on the 10-bit signed immediate field
Brian Paul [Fri, 10 Oct 2008 20:57:57 +0000 (14:57 -0600)]
cell: add emit_RI10s() which does range checking on the 10-bit signed immediate field

This type of checking should be expanded to cover more instructions...

16 years agocell: additional 'offset' checking in spe_lqd(), spe_stqd()
Brian Paul [Fri, 10 Oct 2008 20:44:52 +0000 (14:44 -0600)]
cell: additional 'offset' checking in spe_lqd(), spe_stqd()

16 years agocell: fix assertions in spe_lqd(), spe_stqd()
Brian Paul [Fri, 10 Oct 2008 20:35:56 +0000 (14:35 -0600)]
cell: fix assertions in spe_lqd(), spe_stqd()

16 years agocell: fix function prologue/epilogue code for large stack frames
Brian Paul [Fri, 10 Oct 2008 20:34:43 +0000 (14:34 -0600)]
cell: fix function prologue/epilogue code for large stack frames

The ai instruction is limited to a 10-bit signed immediate value.

16 years agoCELL: fixing stencil bugs
Robert Ellison [Fri, 10 Oct 2008 20:13:13 +0000 (14:13 -0600)]
CELL: fixing stencil bugs

These are the defects found and fixed so far.  Several more have
been observed; I'm working on them.

- Fixed an error in spe_load_uint() that caused incorrect values to be
  loaded if the given unsigned value had the low 18 bits as 0,
  and that caused inefficient code to be emitted if the given value
  had the high 14 bits as 0.

- Fixed a problem in stencil code generation where optional registers
  weren't tracked correctly.

- Fixed a problem that the stencil function NEVER was acting as ALWAYS.

- Fixed several problems that could occur if stenciling were enabled but
  depth was disabled.

- Fixed a problem with two-sided stencil writemask handling that could
  cause a stencil writemask to not be applied.

- Fixed several state permutations that were incorrectly flagged as
  not requiring stencil values to be calculated.

16 years agointel: GLSL 1.20 is broken in Mesa, so disable it in the i965 driver
Ian Romanick [Fri, 10 Oct 2008 18:47:43 +0000 (11:47 -0700)]
intel: GLSL 1.20 is broken in Mesa, so disable it in the i965 driver

16 years agocell: call cell_flush_int() at end of cell_create_context()
Brian Paul [Fri, 10 Oct 2008 18:38:27 +0000 (12:38 -0600)]
cell: call cell_flush_int() at end of cell_create_context()

Ensures that SPUs are initialized/ready before proceeding.
This fixes a spurious assertion failure when the SPU-side shader function info
hasn't been returned to the PPU before shader codegen.

16 years agocell: fix LERP when dst reg is a src reg
Brian Paul [Fri, 10 Oct 2008 18:24:39 +0000 (12:24 -0600)]
cell: fix LERP when dst reg is a src reg

Also, bump up frame size and fix some assertions.

16 years agoreplace 1.0/sqrt() with inversesqrt()
Brian Paul [Fri, 10 Oct 2008 18:04:49 +0000 (12:04 -0600)]
replace 1.0/sqrt() with inversesqrt()

16 years agocell: fix fm/fs copy & paste bug from a few commits ago
Brian Paul [Fri, 10 Oct 2008 18:04:19 +0000 (12:04 -0600)]
cell: fix fm/fs copy & paste bug from a few commits ago

16 years agocell: fix bug in emit_FLR() when src reg == dst reg
Brian Paul [Fri, 10 Oct 2008 17:56:03 +0000 (11:56 -0600)]
cell: fix bug in emit_FLR() when src reg == dst reg

16 years agocell: fix bug in emit_FRC() when src register == dst register.
Brian Paul [Fri, 10 Oct 2008 17:52:55 +0000 (11:52 -0600)]
cell: fix bug in emit_FRC() when src register == dst register.

With this fix, the glsl/brick demo runs.

16 years agoi965: Add missing intel_pixel_draw.c symlink to fix build.
Eric Anholt [Fri, 10 Oct 2008 16:43:15 +0000 (09:43 -0700)]
i965: Add missing intel_pixel_draw.c symlink to fix build.

16 years agocell: updates in response to draw's struct vertex_info changes
Brian Paul [Fri, 10 Oct 2008 14:44:29 +0000 (08:44 -0600)]
cell: updates in response to draw's struct vertex_info changes

16 years agoMerge commit 'origin/master' into gallium-0.2
Keith Whitwell [Fri, 10 Oct 2008 14:26:28 +0000 (15:26 +0100)]
Merge commit 'origin/master' into gallium-0.2

Conflicts:

src/mesa/glapi/descrip.mms
src/mesa/shader/grammar/descrip.mms

16 years agoMerge commit 'origin/gallium-0.1' into gallium-0.2
Keith Whitwell [Fri, 10 Oct 2008 14:19:05 +0000 (15:19 +0100)]
Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/auxiliary/gallivm/instructionssoa.cpp
src/gallium/auxiliary/gallivm/soabuiltins.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.h
src/mesa/main/texenvprogram.c
src/mesa/shader/arbprogparse.c
src/mesa/shader/prog_statevars.c
src/mesa/state_tracker/st_draw.c
src/mesa/vbo/vbo_exec_draw.c

16 years agocell: fix incorrect bitmask in spe_load_uint()
Brian Paul [Fri, 10 Oct 2008 01:54:46 +0000 (19:54 -0600)]
cell: fix incorrect bitmask in spe_load_uint()

16 years agomesa: toggle colormask values with r/g/b keys in tri-mask-tri.c
Brian Paul [Fri, 10 Oct 2008 01:50:57 +0000 (19:50 -0600)]
mesa: toggle colormask values with r/g/b keys in tri-mask-tri.c

Plus misc clean-up.

16 years agocell: implement basic TXP instruction in fragment shaders
Brian Paul [Fri, 10 Oct 2008 01:48:53 +0000 (19:48 -0600)]
cell: implement basic TXP instruction in fragment shaders

Lots of restrictions for now (one 2D texture, no mipmaps, etc.) for now
but basic texture demos work.
TEX, TXD, TXP do the same thing for the time being.

16 years agomesa: simple multiple textures test
Brian Paul [Fri, 10 Oct 2008 01:45:03 +0000 (19:45 -0600)]
mesa: simple multiple textures test

16 years agocell: better immediate value allocation, better comments
Brian Paul [Thu, 9 Oct 2008 16:56:25 +0000 (10:56 -0600)]
cell: better immediate value allocation, better comments

16 years agocell: massage the emit functions to get better instruction scheduling
Brian Paul [Thu, 9 Oct 2008 14:52:31 +0000 (08:52 -0600)]
cell: massage the emit functions to get better instruction scheduling

16 years agocell: more accurate comments
Brian Paul [Thu, 9 Oct 2008 14:24:03 +0000 (08:24 -0600)]
cell: more accurate comments

16 years agogallium: silence warning
Alan Hourihane [Fri, 10 Oct 2008 00:31:34 +0000 (01:31 +0100)]
gallium: silence warning

16 years agomesa: rasterizer state depends on ST_NEW_VERTEX_PROGRAM
Brian Paul [Thu, 9 Oct 2008 22:39:59 +0000 (16:39 -0600)]
mesa: rasterizer state depends on ST_NEW_VERTEX_PROGRAM

Check for per-vertex point size must be done when vertex program changes.

16 years agoGallivm: cleanup soa storage.
Stephane Marchesin [Thu, 9 Oct 2008 21:32:01 +0000 (23:32 +0200)]
Gallivm: cleanup soa storage.

16 years agoi965: Accelerate depth textures with border color.
Eric Anholt [Thu, 9 Oct 2008 18:45:58 +0000 (11:45 -0700)]
i965: Accelerate depth textures with border color.

The fallback was introduced to fix bug #16697, but made the test it was
fixing run excessively long.

16 years agoi965: Actually hook up the accelerated DrawPixels support.
Eric Anholt [Thu, 9 Oct 2008 17:23:47 +0000 (10:23 -0700)]
i965: Actually hook up the accelerated DrawPixels support.

16 years agoi915: Accelerate depth textures with border color.
Eric Anholt [Thu, 9 Oct 2008 06:34:38 +0000 (23:34 -0700)]
i915: Accelerate depth textures with border color.

The fallback was introduced to fix bug #16697, but made the test it was
fixing run excessively long.

16 years agocell: implement function calls from shader code. fslight demo runs now.
Brian Paul [Thu, 9 Oct 2008 02:44:32 +0000 (20:44 -0600)]
cell: implement function calls from shader code.  fslight demo runs now.

Used for SIN, COS, EXP2, LOG2, POW instructions.  TEX next.

Fixed some bugs in MIN, MAX, DP3, DP4, DPH instructions.

In rtasm code:
  Special-case spe_lqd(), spe_stqd() functions so they take byte offsets but
  low-order 4 bits are shifted out.  This makes things consistant with SPU
  assembly language conventions.
  Added spe_get_registers_used() function.

16 years agocell: implement more built-in shader functions, link spu code with -lm
Brian Paul [Thu, 9 Oct 2008 02:34:35 +0000 (20:34 -0600)]
cell: implement more built-in shader functions, link spu code with -lm

16 years agocell: increase SPU_MAX_FRAGMENT_PROGRAM_INSTS
Brian Paul [Thu, 9 Oct 2008 02:33:24 +0000 (20:33 -0600)]
cell: increase SPU_MAX_FRAGMENT_PROGRAM_INSTS

16 years agogallium: asst. clean-ups
Brian Paul [Wed, 8 Oct 2008 22:35:40 +0000 (16:35 -0600)]
gallium: asst. clean-ups

Don't use register qualifier.  Doxygen-ize comments.  Remove 'extern'.

16 years agogallium: better instruction printing for SPE code
Brian Paul [Wed, 8 Oct 2008 22:33:04 +0000 (16:33 -0600)]
gallium: better instruction printing for SPE code

16 years agomesa: in _mesa_combine_programs() take new STATE_CURRENT_ATTRIB color into account
Brian Paul [Wed, 8 Oct 2008 20:02:24 +0000 (14:02 -0600)]
mesa: in _mesa_combine_programs() take new STATE_CURRENT_ATTRIB color into account

Commit 1680ef869625dc1fe9cf481b180382a34e0738e7 changed the texenv program
to get color from a state register instead of a constant-valued vertex
attribute.  This broke program concatenation (so glDraw/CopyPixels broke).
Now check if the second program get's color from a constant register and
handle that case appropriately.

16 years agomesa: vertex emit debug code (disabled)
Brian Paul [Wed, 8 Oct 2008 15:33:27 +0000 (09:33 -0600)]
mesa: vertex emit debug code (disabled)

16 years agomesa: fix vertex format/attribute bug
Brian Paul [Wed, 8 Oct 2008 15:28:10 +0000 (09:28 -0600)]
mesa: fix vertex format/attribute bug

If the tnl output attributes matches the swsetup input attributes we still
need to check if the desired vertex color type (float vs. chan) has changed
so that we use the right emit functions.

Fixes a conformance failure found with logicop test at pathlevel 3.

16 years agomesa: Pass the context to query object delete cb to avoid null dereference.
Eric Anholt [Wed, 8 Oct 2008 01:47:31 +0000 (18:47 -0700)]
mesa: Pass the context to query object delete cb to avoid null dereference.

16 years agoi965: Add ARB_occlusion_query support.
Eric Anholt [Tue, 7 Oct 2008 00:34:51 +0000 (17:34 -0700)]
i965: Add ARB_occlusion_query support.

16 years agointel: Push flushing for cliprects changes down into the cliprects changes.
Eric Anholt [Fri, 3 Oct 2008 23:20:00 +0000 (16:20 -0700)]
intel: Push flushing for cliprects changes down into the cliprects changes.

This lets us short-circuit when we're leaving the same cliprects in place,
which becomes quite common with metaops clears, and may be useful for some of
our FBO paths.

16 years agoi965: Fix a potential assertion failure.
Xiang, Haihao [Wed, 8 Oct 2008 01:30:12 +0000 (09:30 +0800)]
i965: Fix a potential assertion failure.

16 years agomesa: pass 'mask', not NULL to renderbuffer->Put functions
Brian Paul [Tue, 7 Oct 2008 22:52:47 +0000 (16:52 -0600)]
mesa: pass 'mask', not NULL to renderbuffer->Put functions

Fixes bug 17800.

16 years agomesa: use the shaderutil.c helper functions
Brian Paul [Tue, 7 Oct 2008 22:24:43 +0000 (16:24 -0600)]
mesa: use the shaderutil.c helper functions

16 years agocell: add support for fragment shader constant buffers
Brian Paul [Tue, 7 Oct 2008 22:14:27 +0000 (16:14 -0600)]
cell: add support for fragment shader constant buffers

16 years agocell: fix incorrect extended swizzle term code in get_src_reg()
Brian Paul [Tue, 7 Oct 2008 22:11:20 +0000 (16:11 -0600)]
cell: fix incorrect extended swizzle term code in get_src_reg()

16 years agocell: fix formatting
Brian Paul [Tue, 7 Oct 2008 21:13:48 +0000 (15:13 -0600)]
cell: fix formatting

16 years agocell: remove old code
Brian Paul [Tue, 7 Oct 2008 20:58:05 +0000 (14:58 -0600)]
cell: remove old code

16 years agoGallivm: reorder the functions alphabetically so I can work on it.
Stephane Marchesin [Tue, 7 Oct 2008 21:43:21 +0000 (23:43 +0200)]
Gallivm: reorder the functions alphabetically so I can work on it.

16 years agoMerge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa...
Stephane Marchesin [Tue, 7 Oct 2008 21:42:48 +0000 (23:42 +0200)]
Merge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa into gallium-0.2

16 years agoProgs: hook the glsl identity example into the makefile.
Stephane Marchesin [Tue, 7 Oct 2008 21:42:36 +0000 (23:42 +0200)]
Progs: hook the glsl identity example into the makefile.

16 years agocell: memset() key to zero
Brian Paul [Tue, 7 Oct 2008 20:50:06 +0000 (14:50 -0600)]
cell: memset() key to zero

16 years agocell: use new keymap to save/re-use fragment ops code
Brian Paul [Tue, 7 Oct 2008 20:34:08 +0000 (14:34 -0600)]
cell: use new keymap to save/re-use fragment ops code

16 years agogallium: added general-purpose key->data map/lookup container
Brian Paul [Tue, 7 Oct 2008 20:33:16 +0000 (14:33 -0600)]
gallium: added general-purpose key->data map/lookup container

16 years agoMesa: fix the case where there are no vertex attributes.
Stephane Marchesin [Tue, 7 Oct 2008 19:28:38 +0000 (21:28 +0200)]
Mesa: fix the case where there are no vertex attributes.

This is a backport of 8e8208d6db8b764568539784a6473d545dec2265 to gallium-0.1

16 years agoProgs: add a trivial glsl test, useful for gallium driver bringup/debug.
Stephane Marchesin [Tue, 7 Oct 2008 19:21:20 +0000 (21:21 +0200)]
Progs: add a trivial glsl test, useful for gallium driver bringup/debug.

16 years agoGallivm: don't say hello, it's rude.
Stephane Marchesin [Tue, 7 Oct 2008 19:13:49 +0000 (21:13 +0200)]
Gallivm: don't say hello, it's rude.

16 years agoMerge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa...
Stephane Marchesin [Tue, 7 Oct 2008 19:11:14 +0000 (21:11 +0200)]
Merge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa into gallium-0.2

16 years agoGallivm: fix the constant layout, this gets a bunch of progs/ working. Notably, gears...
Stephane Marchesin [Tue, 7 Oct 2008 19:11:01 +0000 (21:11 +0200)]
Gallivm: fix the constant layout, this gets a bunch of progs/ working. Notably, gears doesn't.

16 years agotrivial: add more vp tests
Keith Whitwell [Tue, 7 Oct 2008 18:12:26 +0000 (19:12 +0100)]
trivial: add more vp tests

16 years agomesa: replace GLuint with GLbitfield to be clearer about usage
Brian Paul [Tue, 7 Oct 2008 17:22:47 +0000 (11:22 -0600)]
mesa: replace GLuint with GLbitfield to be clearer about usage

Also, fix up some comments to be doxygen style.

16 years agodraw: don't assume output buffer pointer is aligned
Keith Whitwell [Tue, 7 Oct 2008 15:44:24 +0000 (16:44 +0100)]
draw: don't assume output buffer pointer is aligned

16 years agomesa: update state after binding vertex list in dlist path
Keith Whitwell [Tue, 7 Oct 2008 15:33:17 +0000 (16:33 +0100)]
mesa: update state after binding vertex list in dlist path

16 years agotrivial: exercise vertprog sligtly
Keith Whitwell [Tue, 7 Oct 2008 12:09:05 +0000 (13:09 +0100)]
trivial: exercise vertprog sligtly

16 years agomesa: protect against segfault in get_fp_input_mask()
Keith Whitwell [Tue, 7 Oct 2008 11:31:31 +0000 (12:31 +0100)]
mesa: protect against segfault in get_fp_input_mask()

16 years agodraw: add switch for drivers to force vertex data passthrough
Keith Whitwell [Mon, 6 Oct 2008 11:22:55 +0000 (12:22 +0100)]
draw: add switch for drivers to force vertex data passthrough

16 years agomesa: remove old assertion
Brian Paul [Tue, 7 Oct 2008 14:30:29 +0000 (08:30 -0600)]
mesa: remove old assertion

16 years agogallium: Introduce PIPE_ARCH_SSE define for SSE support.
José Fonseca [Tue, 7 Oct 2008 05:25:09 +0000 (14:25 +0900)]
gallium: Introduce PIPE_ARCH_SSE define for SSE support.

Besides meaning x86 and x86-64 architecture, it also depends on SSE2
support enabled on gcc.

This fixes the linux-debug build.

16 years agogallium: replace assertion with conditional/recovery code
Brian [Tue, 7 Oct 2008 00:31:56 +0000 (18:31 -0600)]
gallium: replace assertion with conditional/recovery code

The assertion failed when we ran out of exec memory.
Found with conform texcombine test.

16 years agomesa: fix convolve/convolution mix-ups
Brian [Mon, 6 Oct 2008 23:10:45 +0000 (17:10 -0600)]
mesa: fix convolve/convolution mix-ups

16 years agomesa: fix convolve/convolution mix-ups
Brian [Mon, 6 Oct 2008 23:10:22 +0000 (17:10 -0600)]
mesa: fix convolve/convolution mix-ups

16 years agomesa: set FRAG_BIT_FOGC bit in InputsUsed if FogOption!=GL_NONE
Brian Paul [Mon, 6 Oct 2008 18:29:29 +0000 (12:29 -0600)]
mesa: set FRAG_BIT_FOGC bit in InputsUsed if FogOption!=GL_NONE

16 years agoMesa: fix the case where there are no vertex attributes.
Stephane Marchesin [Mon, 6 Oct 2008 17:48:57 +0000 (19:48 +0200)]
Mesa: fix the case where there are no vertex attributes.

16 years agomesa: adjust texcoords for swrast sprite points.
Brian Paul [Mon, 6 Oct 2008 17:34:01 +0000 (11:34 -0600)]
mesa: adjust texcoords for swrast sprite points.

Fixes glean pointSprite test w/ software rendering

16 years agomesa: fix static library construction
Brian Paul [Mon, 6 Oct 2008 16:58:16 +0000 (10:58 -0600)]
mesa: fix static library construction

If the .a is made of other .a files, extract the objects from the later.

16 years agomesa: updated _mesa_delete_query() comments
Brian Paul [Mon, 6 Oct 2008 15:32:33 +0000 (09:32 -0600)]
mesa: updated _mesa_delete_query() comments

16 years agomesa: add missing GLcontext param to _mesa_delete_query().
Brian Paul [Mon, 6 Oct 2008 15:27:31 +0000 (09:27 -0600)]
mesa: add missing GLcontext param to _mesa_delete_query().

Fixes vtk crash and others.

16 years agomesa: add missing GLcontext param to _mesa_delete_query().
Brian Paul [Mon, 6 Oct 2008 15:26:45 +0000 (09:26 -0600)]
mesa: add missing GLcontext param to _mesa_delete_query().

Fixes vtk crash and others.

16 years agodraw: Fix compiler errors on Windows.
Michal Krol [Mon, 6 Oct 2008 11:23:56 +0000 (13:23 +0200)]
draw: Fix compiler errors on Windows.

16 years agortasm: fix debug build
Keith Whitwell [Mon, 6 Oct 2008 10:54:22 +0000 (11:54 +0100)]
rtasm: fix debug build

16 years agomake draw's vertex_info struct smaller/quicker to compare with memcmp()
Keith Whitwell [Wed, 10 Sep 2008 10:39:43 +0000 (11:39 +0100)]
make draw's vertex_info struct smaller/quicker to compare with memcmp()

16 years agoi915: Refine the texture indirect lookup accounting.
Eric Anholt [Sun, 5 Oct 2008 01:20:35 +0000 (18:20 -0700)]
i915: Refine the texture indirect lookup accounting.

Without this, we would reject programs which sampled multiple times from
registers defined in the same phase (block of instructions with the same
texture indirection count), as each sample would count as a new phase
beginning.  Instead, keep track of which phases registers were written in,
and only bump phase when we're reading from one generated in this phase.

On the other hand, we failed to count oC or oD texture samples as being new
phases.

Bug #17865.

16 years agomesa: handle vertex program enabled case also in texenvprogram.c
Keith Whitwell [Sat, 4 Oct 2008 11:41:56 +0000 (12:41 +0100)]
mesa: handle vertex program enabled case also in texenvprogram.c

16 years agoCELL: changes to generate SPU code for stenciling
Robert Ellison [Sat, 4 Oct 2008 00:00:43 +0000 (18:00 -0600)]
CELL: changes to generate SPU code for stenciling

This set of code changes are for stencil code generation
support.  Both one-sided and two-sided stenciling are supported.
In addition to the raw code generation changes, these changes had
to be made elsewhere in the system:

- Added new "register set" feature to the SPE assembly generation.
  A "register set" is a way to allocate multiple registers and free
  them all at the same time, delegating register allocation management
  to the spe_function unit.  It's quite useful in complex register
  allocation schemes (like stenciling).

- Added and improved SPE macro calculations.
  These are operations between registers and unsigned integer
  immediates.  In many cases, the calculation can be performed
  with a single instruction; the macros will generate the
  single instruction if possible, or generate a register load
  and register-to-register operation if not.  These macro
  functions are: spe_load_uint() (which has new ways to
  load a value in a single instruction), spe_and_uint(),
  spe_xor_uint(), spe_compare_equal_uint(), and spe_compare_greater_uint().

- Added facing to fragment generation.  While rendering, the rasterizer
  needs to be able to determine front- and back-facing fragments, in order
  to correctly apply two-sided stencil.  That requires these changes:
  - Added front_winding field to the cell_command_render block, so that
    the state tracker could communicate to the rasterizer what it
    considered to be the front-facing direction.
  - Added fragment facing as an input to the fragment function.
  - Calculated facing is passed during emit_quad().

16 years agointel: Don't advertise unsupported extensions on pre-965 hardware
Ian Romanick [Fri, 3 Oct 2008 19:16:04 +0000 (12:16 -0700)]
intel: Don't advertise unsupported extensions on pre-965 hardware

Move GL_ARB_texture_non_power_of_two and GL_ATI_separate_stencil
from the generic extension list to the 965-specific list.  Neither
extension is supported on i830-class hardware, and
GL_ATI_separate_stencil is not supported on i915-class hardare.
GL_ARB_texture_non_power_of_two is supported on i915-class hardare and
is already in the i915-specific list.

16 years agomesa: avoid generating constant vertex attributes in fixedfunc programs
Keith Whitwell [Fri, 3 Oct 2008 16:30:59 +0000 (17:30 +0100)]
mesa: avoid generating constant vertex attributes in fixedfunc programs

Keep track of enabled/active vertex attributes.
Keep track of potential vertex program outputs.

When generating fragment program, replace references to fragment attributes
which are effectively non-varying and non-computed passthrough attributes with
references to the new CURRENT_ATTRIB tracked state value.

Only downside is slight ugliness in VBO code where we need to validate state
twice in succession.