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.
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.
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.
Brian Paul [Fri, 10 Oct 2008 18:04:49 +0000 (12:04 -0600)]
replace 1.0/sqrt() with inversesqrt()
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
Brian Paul [Fri, 10 Oct 2008 17:56:03 +0000 (11:56 -0600)]
cell: fix bug in emit_FLR() when src reg == dst reg
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.
Brian Paul [Fri, 10 Oct 2008 14:44:29 +0000 (08:44 -0600)]
cell: updates in response to draw's struct vertex_info changes
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
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
Brian Paul [Fri, 10 Oct 2008 01:54:46 +0000 (19:54 -0600)]
cell: fix incorrect bitmask in spe_load_uint()
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.
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.
Brian Paul [Fri, 10 Oct 2008 01:45:03 +0000 (19:45 -0600)]
mesa: simple multiple textures test
Brian Paul [Thu, 9 Oct 2008 16:56:25 +0000 (10:56 -0600)]
cell: better immediate value allocation, better comments
Brian Paul [Thu, 9 Oct 2008 14:52:31 +0000 (08:52 -0600)]
cell: massage the emit functions to get better instruction scheduling
Brian Paul [Thu, 9 Oct 2008 14:24:03 +0000 (08:24 -0600)]
cell: more accurate comments
Alan Hourihane [Fri, 10 Oct 2008 00:31:34 +0000 (01:31 +0100)]
gallium: silence warning
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.
Stephane Marchesin [Thu, 9 Oct 2008 21:32:01 +0000 (23:32 +0200)]
Gallivm: cleanup soa storage.
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.
Eric Anholt [Thu, 9 Oct 2008 17:23:47 +0000 (10:23 -0700)]
i965: Actually hook up the accelerated DrawPixels support.
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.
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.
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
Brian Paul [Thu, 9 Oct 2008 02:33:24 +0000 (20:33 -0600)]
cell: increase SPU_MAX_FRAGMENT_PROGRAM_INSTS
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'.
Brian Paul [Wed, 8 Oct 2008 22:33:04 +0000 (16:33 -0600)]
gallium: better instruction printing for SPE code
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.
Brian Paul [Wed, 8 Oct 2008 15:33:27 +0000 (09:33 -0600)]
mesa: vertex emit debug code (disabled)
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.
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.
Eric Anholt [Tue, 7 Oct 2008 00:34:51 +0000 (17:34 -0700)]
i965: Add ARB_occlusion_query support.
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.
Xiang, Haihao [Wed, 8 Oct 2008 01:30:12 +0000 (09:30 +0800)]
i965: Fix a potential assertion failure.
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.
Brian Paul [Tue, 7 Oct 2008 22:24:43 +0000 (16:24 -0600)]
mesa: use the shaderutil.c helper functions
Brian Paul [Tue, 7 Oct 2008 22:14:27 +0000 (16:14 -0600)]
cell: add support for fragment shader constant buffers
Brian Paul [Tue, 7 Oct 2008 22:11:20 +0000 (16:11 -0600)]
cell: fix incorrect extended swizzle term code in get_src_reg()
Brian Paul [Tue, 7 Oct 2008 21:13:48 +0000 (15:13 -0600)]
cell: fix formatting
Brian Paul [Tue, 7 Oct 2008 20:58:05 +0000 (14:58 -0600)]
cell: remove old code
Stephane Marchesin [Tue, 7 Oct 2008 21:43:21 +0000 (23:43 +0200)]
Gallivm: reorder the functions alphabetically so I can work on it.
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
Stephane Marchesin [Tue, 7 Oct 2008 21:42:36 +0000 (23:42 +0200)]
Progs: hook the glsl identity example into the makefile.
Brian Paul [Tue, 7 Oct 2008 20:50:06 +0000 (14:50 -0600)]
cell: memset() key to zero
Brian Paul [Tue, 7 Oct 2008 20:34:08 +0000 (14:34 -0600)]
cell: use new keymap to save/re-use fragment ops code
Brian Paul [Tue, 7 Oct 2008 20:33:16 +0000 (14:33 -0600)]
gallium: added general-purpose key->data map/lookup container
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
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.
Stephane Marchesin [Tue, 7 Oct 2008 19:13:49 +0000 (21:13 +0200)]
Gallivm: don't say hello, it's rude.
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
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.
Keith Whitwell [Tue, 7 Oct 2008 18:12:26 +0000 (19:12 +0100)]
trivial: add more vp tests
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.
Keith Whitwell [Tue, 7 Oct 2008 15:44:24 +0000 (16:44 +0100)]
draw: don't assume output buffer pointer is aligned
Keith Whitwell [Tue, 7 Oct 2008 15:33:17 +0000 (16:33 +0100)]
mesa: update state after binding vertex list in dlist path
Keith Whitwell [Tue, 7 Oct 2008 12:09:05 +0000 (13:09 +0100)]
trivial: exercise vertprog sligtly
Keith Whitwell [Tue, 7 Oct 2008 11:31:31 +0000 (12:31 +0100)]
mesa: protect against segfault in get_fp_input_mask()
Keith Whitwell [Mon, 6 Oct 2008 11:22:55 +0000 (12:22 +0100)]
draw: add switch for drivers to force vertex data passthrough
Brian Paul [Tue, 7 Oct 2008 14:30:29 +0000 (08:30 -0600)]
mesa: remove old assertion
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.
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.
Brian [Mon, 6 Oct 2008 23:10:45 +0000 (17:10 -0600)]
mesa: fix convolve/convolution mix-ups
Brian [Mon, 6 Oct 2008 23:10:22 +0000 (17:10 -0600)]
mesa: fix convolve/convolution mix-ups
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
Stephane Marchesin [Mon, 6 Oct 2008 17:48:57 +0000 (19:48 +0200)]
Mesa: fix the case where there are no vertex attributes.
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
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.
Brian Paul [Mon, 6 Oct 2008 15:32:33 +0000 (09:32 -0600)]
mesa: updated _mesa_delete_query() comments
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.
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.
Michal Krol [Mon, 6 Oct 2008 11:23:56 +0000 (13:23 +0200)]
draw: Fix compiler errors on Windows.
Keith Whitwell [Mon, 6 Oct 2008 10:54:22 +0000 (11:54 +0100)]
rtasm: fix debug build
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()
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.
Keith Whitwell [Sat, 4 Oct 2008 11:41:56 +0000 (12:41 +0100)]
mesa: handle vertex program enabled case also in texenvprogram.c
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().
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.
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.
Keith Whitwell [Fri, 3 Oct 2008 15:46:48 +0000 (16:46 +0100)]
Mesa: short-circuit case when looking up the same program twice in cache
Keith Whitwell [Fri, 3 Oct 2008 12:55:40 +0000 (13:55 +0100)]
mesa: add new internal state for tracking current vertex attribs
Keith Whitwell [Fri, 3 Oct 2008 12:53:07 +0000 (13:53 +0100)]
mesa: add missing state dependencies for various tracked constants
Keith Whitwell [Fri, 3 Oct 2008 12:51:56 +0000 (13:51 +0100)]
mesa: shrink texenvprogram state key struct
Keith Whitwell [Fri, 3 Oct 2008 12:50:34 +0000 (13:50 +0100)]
rtasm: add sse_movntps
Keith Whitwell [Thu, 2 Oct 2008 11:53:11 +0000 (12:53 +0100)]
draw: modify prefetching slightly
Keith Whitwell [Wed, 1 Oct 2008 17:40:01 +0000 (18:40 +0100)]
draw: don't keep refetching constant inputs
Keith Whitwell [Thu, 2 Oct 2008 11:46:01 +0000 (12:46 +0100)]
rtasm: add prefetch instructions
Keith Whitwell [Wed, 1 Oct 2008 12:34:38 +0000 (13:34 +0100)]
draw: add streamlined paths for fetching linear verts
Michal Krol [Wed, 1 Oct 2008 17:36:04 +0000 (19:36 +0200)]
mesa: Fix compiler warnings on Windows.
Stephane Marchesin [Tue, 30 Sep 2008 22:00:58 +0000 (00:00 +0200)]
Gallivm: add slt. glxgears should be running, except it isn't.
Stephane Marchesin [Tue, 30 Sep 2008 18:50:49 +0000 (20:50 +0200)]
Gallivm: port to llvm 2.4.
Stephane Marchesin [Sun, 28 Sep 2008 21:18:55 +0000 (23:18 +0200)]
Gallivm: fix off-by-one.
Stephane Marchesin [Sun, 28 Sep 2008 19:45:48 +0000 (21:45 +0200)]
Gallivm: need to link with libstdc++ for llvm.
Stephane Marchesin [Sun, 28 Sep 2008 17:48:26 +0000 (19:48 +0200)]
Gallivm: more instructions.
Stephane Marchesin [Sun, 28 Sep 2008 16:33:23 +0000 (18:33 +0200)]
Gallivm: make it compile again, add some opcodes.
Brian Paul [Fri, 26 Sep 2008 17:18:06 +0000 (11:18 -0600)]
mesa: fix temp register allocation problems.
Complex texcombine modes were running out of registers (>32 registers for 8 tex units).
Brian Paul [Fri, 26 Sep 2008 17:17:09 +0000 (11:17 -0600)]
egl: check for null ptr/name
Brian Paul [Fri, 26 Sep 2008 17:16:44 +0000 (11:16 -0600)]
egl: remove space after -L flag
Keith Whitwell [Thu, 2 Oct 2008 11:53:11 +0000 (12:53 +0100)]
draw: modify prefetching slightly
Keith Whitwell [Wed, 1 Oct 2008 17:40:01 +0000 (18:40 +0100)]
draw: don't keep refetching constant inputs