José Fonseca [Tue, 18 Nov 2008 10:13:32 +0000 (19:13 +0900)]
scons: Support MinGW32 cross compiler.
To build an alternative opengl32.dll with Gallium's software-rasterizer from a
debian-based distribution run:
sudo apt-get install mingw32
scons platform=windows toolchain=crossmingw machine=x86 winsys=gdi dri=no
José Fonseca [Thu, 13 Nov 2008 11:34:10 +0000 (20:34 +0900)]
gallium: State when there are no memory leaks detected.
José Fonseca [Tue, 11 Nov 2008 14:27:27 +0000 (23:27 +0900)]
gallium: Make handle_table reentrant.
Ensure that the object has consistent state also when calling the destroy
callback. Namely, ensure the object passed to the callback is removed from
the table prior to calling the destroy callback to avoid a infinite loop or
double free.
José Fonseca [Tue, 4 Nov 2008 01:53:02 +0000 (10:53 +0900)]
gallium: Yet another WinCE portability fix.
Stephane Marchesin [Sun, 16 Nov 2008 19:32:05 +0000 (20:32 +0100)]
gallivm: fix some small stuff.
Jakob Bornecrantz [Sun, 16 Nov 2008 11:33:58 +0000 (12:33 +0100)]
i915: Silence warnings
Keith Whitwell [Sat, 15 Nov 2008 16:53:24 +0000 (16:53 +0000)]
Merge commit 'origin/master' into gallium-0.2
Conflicts:
src/mesa/shader/prog_print.c
Keith Whitwell [Sat, 15 Nov 2008 16:23:31 +0000 (16:23 +0000)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
src/mesa/drivers/dri/common/dri_util.c
Jakob Bornecrantz [Sat, 15 Nov 2008 11:10:32 +0000 (12:10 +0100)]
i915: Silence warning
Brian Paul [Fri, 14 Nov 2008 19:55:05 +0000 (12:55 -0700)]
gallium: increase table size for fast log/pow functions
The various conformance tests pass now.
Brian Paul [Thu, 13 Nov 2008 15:58:47 +0000 (08:58 -0700)]
util: Use OpenGL rasterization rules in blits and mipmap generation.
Keith Whitwell [Fri, 14 Nov 2008 17:59:29 +0000 (17:59 +0000)]
translate: pull in prefetch and other optimizations from draw_vs_aos.c
Keith Whitwell [Wed, 5 Nov 2008 11:31:57 +0000 (11:31 +0000)]
trivial: more tests
Alan Hourihane [Fri, 14 Nov 2008 14:30:49 +0000 (14:30 +0000)]
mesa: fix build
Brian Paul [Fri, 14 Nov 2008 01:18:07 +0000 (18:18 -0700)]
mesa: no longer need Writemask field in GLSL IR nodes
The Swizzle and Size fields carry all the info we need now.
Brian Paul [Fri, 14 Nov 2008 00:02:11 +0000 (17:02 -0700)]
mesa: revamp GLSL instruction emit code
This is a step toward better array handling code. In particular, when more
than one operand of an instruction uses indirect addressing, we'll need some
temporary instructions and registers. By converting IR storage to instruction
operands all in one place (emit_instruction()) we can be smarter about this.
Also, somewhat better handling of dst register swizzle/writemask handling.
This results in tighter writemasks on some instructions which is good for
SOA execution.
And, cleaner instruction commenting with inst_comment().
Next: remove some more dead code and additional clean-ups...
Brian Paul [Thu, 13 Nov 2008 23:37:52 +0000 (16:37 -0700)]
mesa: make writemask_string() non-static
Brian Paul [Thu, 13 Nov 2008 23:31:27 +0000 (16:31 -0700)]
mesa: remove some do-nothing GLSL code
Brian Paul [Thu, 13 Nov 2008 15:47:36 +0000 (08:47 -0700)]
mesa: fix accidental regression in GLSL built-in texture matrix lookup
Was broken by commit
9aca9a4b72b2a7b378e50bd88f9c3324d07375ec.
Brian Paul [Thu, 13 Nov 2008 15:46:45 +0000 (08:46 -0700)]
mesa: use the tighter definition of GLSL ftransform() from the gallium branches
Brian Paul [Wed, 12 Nov 2008 23:47:03 +0000 (16:47 -0700)]
mesa: remove unused/obsolete __NormalMatrixTranspose matrix
Brian Paul [Wed, 12 Nov 2008 23:44:47 +0000 (16:44 -0700)]
mesa: fix bug in GLSL built-in matrix state lookup
Brian Paul [Wed, 12 Nov 2008 18:12:10 +0000 (11:12 -0700)]
mesa: tweak program register printing for RelAddr case
Alan Hourihane [Thu, 13 Nov 2008 19:38:18 +0000 (19:38 +0000)]
build default set of progs + egl
Pekka Paalanen [Thu, 13 Nov 2008 18:44:55 +0000 (20:44 +0200)]
Fix configs/linux-dri to build winsys again.
SRC_DIRS was being reset, which left winsys unbuilt.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Robert Ellison [Thu, 13 Nov 2008 18:22:12 +0000 (11:22 -0700)]
CELL: fix stencil twiddling, stencil invert
Many stencil tests were failing because of a failure to read the
stencil buffer, due to "twiddling" (or "untwiddling") "an unsupported
texture format". This is fixed for the case of a stencil/Z S824Z format
(which twiddles just like the 32-bit color formats).
tests/stencilwrap.c was failing on the GL_INVERT test, because
the emitted code for "spe_xori" turned out not to be an actual
"xori" instruction, but rather a "stqd" instruction, because
of a typo in the rtasm code. This is now fixed, and
tests/stencil_wrap now works.
Stephane Marchesin [Thu, 13 Nov 2008 17:06:06 +0000 (18:06 +0100)]
Merge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/nouveau/mesa into gallium-0.2
Ben Skeggs [Thu, 13 Nov 2008 16:47:47 +0000 (16:47 +0000)]
gallium: add st_set_teximage_surface for EXT_texture_from_pixmap
support.
Alan Hourihane [Thu, 13 Nov 2008 13:16:03 +0000 (13:16 +0000)]
mesa: fix generation of fixed function state when no vp exists
Alan Hourihane [Thu, 13 Nov 2008 13:16:03 +0000 (13:16 +0000)]
mesa: fix generation of fixed function state when no vp exists
Michal Krol [Wed, 12 Nov 2008 22:23:49 +0000 (23:23 +0100)]
tgsi: More comments on source register indirect and 2D indexing.
Eric Anholt [Wed, 12 Nov 2008 21:37:16 +0000 (13:37 -0800)]
i965: Upload state on primitive switch, don't just prepare it.
This was a regression in
59b2c2adbbece27ccf54e58b598ea29cb3a5aa85 that broke
blender, among other apps.
Eric Anholt [Wed, 12 Nov 2008 21:34:20 +0000 (13:34 -0800)]
i965: Fix VB refcount leak on aperture overflow.
Pekka Paalanen [Wed, 12 Nov 2008 20:37:01 +0000 (22:37 +0200)]
nv04..nv30: fix pipe_surface init
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Pekka Paalanen [Wed, 12 Nov 2008 21:13:22 +0000 (23:13 +0200)]
Merge commit 'origin/gallium-0.1' into gallium-0.2
* commit 'origin/gallium-0.1':
Mesa: fix number of buffers in st_draw_vbo().
Nouveau: fix nv20_vertex_layout()
Nouveau: update nv20 miptree according to nv40.
Nouveau: build, link and use nv20.
Nouveau: name replace for nv20.
Nouveau: Rename nv20/ files as nv20.
Nouveau: copy nv30_vertprog.c to nv20.
Nouveau: start nv20 by copying the nv10 tree.
Eric Anholt [Tue, 4 Nov 2008 20:34:29 +0000 (12:34 -0800)]
Add glsync demo program from jbarnes for testing vblank synchronization.
Eric Anholt [Mon, 3 Nov 2008 02:50:59 +0000 (18:50 -0800)]
i965: Fix up VS max_threads for G4X and removing a magic number.
As far as I can read in the docs, VS threads can be 1:1 with the pairs of
VUE handles allocated for them. Also, G4X can run twice as many threads as
before (though we won't unless the we bump the preferred URB entries for VS).
Eric Anholt [Mon, 3 Nov 2008 02:49:33 +0000 (18:49 -0800)]
i965: Fix up SF max_threads.
We were dividing the number of URB entries by two to get number of threads,
which looks suspiciously like a copy'n'paste-o from brw_vs_state.c. Also, the
maximum number of threads is 24, not 12.
Eric Anholt [Mon, 3 Nov 2008 02:43:10 +0000 (18:43 -0800)]
i965: Fix up clip min_nr_entries, preferred_nr_entries, and max_threads.
The clip thread could potentially deadlock when processing tristrips since
being moved back to dual-thread mode, as the two threads could each have 4 VUEs
referenced and not be able to allocate another one since SF processing
wasn't able to continue (needing 5 entries before it freed 2).
In constrained URB mode, similar deadlock could even have occurred with
polygons (so we cut back max_threads if we can't handle it any primitive type).
Eric Anholt [Mon, 3 Nov 2008 02:42:17 +0000 (18:42 -0800)]
i965: Update WM maximum threads for G4X.
Eric Anholt [Mon, 3 Nov 2008 02:48:25 +0000 (18:48 -0800)]
i965: Add a big comment explaining my understanding of URB management.
It shouldn't offer anything new over what's in the docs (except for G4X notes),
but here it's all in one place.
Kristian Høgsberg [Wed, 12 Nov 2008 20:24:45 +0000 (15:24 -0500)]
glFlush before CopySubBuffer, fix coordinates and extension name typo.
Robert Ellison [Wed, 12 Nov 2008 19:23:52 +0000 (12:23 -0700)]
CELL: fix stencil test bugs
Fixed a boneheaded error in the generation of SPU code that calculates
the results of the stencil test. Basically, all the greater than/less than
calculations were exactly inverted: they were coded as though the
given comparison took the stencil value as a left-hand operand and the
reference value as a right-hand operand, but the actual semantics always
put the reference as the left-hand operand and the stencil as the right-hand
operand.
With this fix, tests/dinoshade runs, as do all the other Mesa tests
and samples that use stencil (and that don't use texture formats
unsupported by Cell).
Brian Paul [Wed, 12 Nov 2008 18:09:12 +0000 (11:09 -0700)]
gallium: add missing prototypes
Brian Paul [Wed, 12 Nov 2008 18:05:34 +0000 (11:05 -0700)]
cell: move semicolons to silence warnings w/ other compilers
Brian Paul [Wed, 12 Nov 2008 18:04:17 +0000 (11:04 -0700)]
cell: include cell_surface.h
Brian Paul [Wed, 12 Nov 2008 18:01:40 +0000 (11:01 -0700)]
cell: fix typo in EMIT_ macro
Brian Paul [Wed, 12 Nov 2008 18:01:05 +0000 (11:01 -0700)]
cell: added -Wmissing-prototypes
Brian Paul [Wed, 12 Nov 2008 18:00:41 +0000 (11:00 -0700)]
cell: include cell_pipe_state.h
Michal Krol [Wed, 12 Nov 2008 18:02:41 +0000 (19:02 +0100)]
util: Optimise log2().
Michal Krol [Wed, 12 Nov 2008 18:01:46 +0000 (19:01 +0100)]
util: Optimise log2().
Michal Krol [Wed, 12 Nov 2008 17:44:20 +0000 (18:44 +0100)]
rtasm: Use INLINE keyword. Compile for all platforms, not only GALLIUM_CELL.
Michal Krol [Wed, 12 Nov 2008 16:14:07 +0000 (17:14 +0100)]
util: Add log2() definition for MSC.
Michal Krol [Wed, 12 Nov 2008 17:19:20 +0000 (18:19 +0100)]
tgsi: Fix a bug with saving/restoring xmm registers upon func call.
Michal Krol [Wed, 12 Nov 2008 17:13:58 +0000 (18:13 +0100)]
rtasm: Compile only for GALLIUM_CELL.
Michal Krol [Wed, 12 Nov 2008 16:03:58 +0000 (17:03 +0100)]
draw: Add missing include.
Michal Krol [Wed, 12 Nov 2008 16:14:07 +0000 (17:14 +0100)]
util: Add log2() definition for MSC.
Michal Krol [Wed, 12 Nov 2008 16:03:58 +0000 (17:03 +0100)]
draw: Add missing include.
Hanno Böck [Wed, 12 Nov 2008 13:56:42 +0000 (06:56 -0700)]
glx: fix xcb build
Brian Paul [Tue, 11 Nov 2008 21:42:41 +0000 (14:42 -0700)]
Merge commit 'origin/master' into gallium-0.2
Conflicts:
src/mesa/shader/prog_execute.c
src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
Brian Paul [Tue, 11 Nov 2008 21:33:11 +0000 (14:33 -0700)]
mesa: fix version check in dinoshade.c
Brian Paul [Tue, 11 Nov 2008 17:47:10 +0000 (10:47 -0700)]
mesa: allow relative indexing into all register files and indirect dst register indexing
Brian Paul [Tue, 11 Nov 2008 16:19:18 +0000 (09:19 -0700)]
cell: implement NRM3 opcode
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.
Kristian Høgsberg [Tue, 11 Nov 2008 18:39:52 +0000 (13:39 -0500)]
Don't mess with emacs tab width.
Xiang, Haihao [Tue, 11 Nov 2008 05:36:32 +0000 (13:36 +0800)]
mesa: restore the negate flag of dots in build_lighting.
Dots is re-used if more than one light is enabled. Previously
the negate flag of dots may affect next light.
Xiang, Haihao [Tue, 11 Nov 2008 05:42:13 +0000 (13:42 +0800)]
intel: reset cliprect_mode to IGNORE_CLIPRECTS.
This ensures all batchbuffers have a same cliprect mode after calling
_intel_batchbuffer_flush even if there aren't invalid commands in the
current batch buffer. (fix bug#18362).
Xiang, Haihao [Tue, 11 Nov 2008 05:36:32 +0000 (13:36 +0800)]
mesa: restore the negate flag of dots in build_lighting.
Dots is re-used if more than one light is enabled. Previously
the negate flag of dots may affect next light.
Xiang, Haihao [Tue, 11 Nov 2008 05:16:20 +0000 (13:16 +0800)]
mesa: update new state for RasterPos like other operations.
This fixes a lighting issue when drawing a bitmap.
Brian [Tue, 11 Nov 2008 03:22:36 +0000 (20:22 -0700)]
gallium: fix comment again. A half-closed interval was intended.
Never saw the [a,b[ notation before.
Brian [Tue, 11 Nov 2008 03:15:28 +0000 (20:15 -0700)]
mesa: new _mesa_is_pow_two() function
Brian Paul [Mon, 10 Nov 2008 23:38:47 +0000 (16:38 -0700)]
mesa: restore glapi/ prefix on #include
Brian Paul [Mon, 10 Nov 2008 19:37:08 +0000 (12:37 -0700)]
dri: alloc __DRIscreen object with calloc()
Conflicts:
src/mesa/drivers/dri/common/dri_util.c
Brian Paul [Mon, 10 Nov 2008 17:45:50 +0000 (10:45 -0700)]
mesa: fix logic error in GLSL linker when looking for main() shaders
Brian Paul [Mon, 10 Nov 2008 21:42:02 +0000 (14:42 -0700)]
mesa: fix some misc breakage caused by editing auto-generated files rather than the python generators
Specifically:
#include "glapitable.h" in src/mesa/main/glapi/dispatch.h
Call _mesa_bsearch() in src/mesa/main/enums.c.
Brian Paul [Mon, 10 Nov 2008 21:27:42 +0000 (14:27 -0700)]
GLX: fix out-of-bounds memory issue in indirect glAreTexturesResident()
See bug 18445.
When getting array results, __glXReadReply() always reads a multiple of
four bytes. This can cause writing to invalid memory when 'n' is not a
multiple of four.
Special-case the glAreTexturesResident() functions now.
To fix the bug, we use a temporary buffer that's a multiple of four bytes
in length.
NOTE: this commit also reverts part of commit
919ec22ecf72aa163e1b97d8c7381002131ed32c
(glx/x11: Added some #ifdef GLX_DIRECT_RENDERING protection) which
directly edited the indirect.c file rather than the python generator!
I'm not repairing that issue at this time.
Brian Paul [Mon, 10 Nov 2008 19:37:08 +0000 (12:37 -0700)]
dri: alloc __DRIscreen object with calloc()
Brian Paul [Mon, 10 Nov 2008 19:33:17 +0000 (12:33 -0700)]
mesa: track initialization status of uniform variables. Plus, asst clean-ups.
Brian Paul [Mon, 10 Nov 2008 18:42:42 +0000 (11:42 -0700)]
mesa: initial support for uniform variable initializers.
This lets one specify initial values for uniforms in the code, avoiding
the need to call glUniform() in some cases.
Brian Paul [Mon, 10 Nov 2008 17:45:50 +0000 (10:45 -0700)]
mesa: fix logic error in GLSL linker when looking for main() shaders
Brian Paul [Mon, 10 Nov 2008 17:25:01 +0000 (10:25 -0700)]
mesa: allows 'f' suffix on GLSL float literals
Brian Paul [Mon, 10 Nov 2008 17:21:13 +0000 (10:21 -0700)]
undo accidental changes to multitex.frag shader
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
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>
Brian Paul [Mon, 10 Nov 2008 15:24:45 +0000 (08:24 -0700)]
gallium: fix typos in comments
Zack Rusin [Thu, 6 Nov 2008 21:07:28 +0000 (16:07 -0500)]
gallium: actually flip the coordinates
Ben Skeggs [Mon, 10 Nov 2008 05:33:31 +0000 (16:33 +1100)]
nouveau: remove previous hack around x86_64 breakage
This hack now causes breakage *doh*. :)
Ben Skeggs [Mon, 10 Nov 2008 05:12:28 +0000 (16:12 +1100)]
nv40: init pipe_surface correctly
Ben Skeggs [Mon, 10 Nov 2008 04:58:03 +0000 (15:58 +1100)]
nouveau: pass object handle not pointer to GPU...
Ben Skeggs [Mon, 10 Nov 2008 04:53:51 +0000 (15:53 +1100)]
Merge remote branch 'origin/gallium-0.2' into gallium-0.2
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
Brian [Sun, 9 Nov 2008 03:43:38 +0000 (20:43 -0700)]
gallium: _debug_vprintf() should be silent if DEBUG is not defined
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.
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>
Pekka Paalanen [Sat, 8 Nov 2008 22:58:19 +0000 (00:58 +0200)]
Nouveau: fix nv20_vertex_layout()
The function should update nv20->vertex_info, and not just a
local struct that's thrown away immediately.
Fixes a SIGFPE due to vbuf->vertex_size = 0 in vbuf_alloc_vertices().
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Brian [Sat, 8 Nov 2008 17:33:30 +0000 (10:33 -0700)]
mesa: remove OPCODE_INT #define
Brian [Sat, 8 Nov 2008 17:29:23 +0000 (10:29 -0700)]
gallium: implement SSE codegen for TGSI_OPCODE_NRM/NRM4
Brian [Sat, 8 Nov 2008 17:29:03 +0000 (10:29 -0700)]
mesa: use NRM3 in emit_normalize_vec3() when drivers are ready
Pekka Paalanen [Sat, 8 Nov 2008 17:07:04 +0000 (19:07 +0200)]
Nouveau: update nv20 miptree according to nv40.
glxinfo doesn't degfault anymore.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Pekka Paalanen [Sat, 8 Nov 2008 16:32:33 +0000 (18:32 +0200)]
Nouveau: build, link and use nv20.
Signed-off-by: Pekka Paalanen <pq@iki.fi>