Brian Paul [Fri, 20 Mar 2009 23:08:30 +0000 (17:08 -0600)]
mesa: linear scan register allocation for shader programs
This is a check-point commit; not turned on yet.
Use the linear scan register allocation algorithm to re-allocate temporary
registers. This is done by computing the live intervals for registers and
reallocating temps with that information.
For some shaders this dramatically reduces the number of temp registers
needed.
For the time being we give up on a few cases such as relative-indexed temps
and subroutine calls (but we inline most GLSL functions anyway).
Brian Paul [Fri, 20 Mar 2009 15:20:53 +0000 (09:20 -0600)]
docs: updated Mesa extension enum info
Corbin Simpson [Fri, 20 Mar 2009 21:47:49 +0000 (14:47 -0700)]
r300-gallium: Misspelled macro name.
*pulls paper bag down over head*
Corbin Simpson [Fri, 20 Mar 2009 07:48:53 +0000 (00:48 -0700)]
r300-gallium: Put r300_cs_inlines to bed.
Guess it was a mistake in the first place. Oops.
Corbin Simpson [Fri, 20 Mar 2009 07:43:29 +0000 (00:43 -0700)]
r300-gallium: Simplify/neaten up packet3.
Deck chairs on the Hindenburg. :3
Corbin Simpson [Fri, 20 Mar 2009 07:35:38 +0000 (00:35 -0700)]
r300-gallium: Clean up surface_fill, prep for surface_copy code.
Corbin Simpson [Fri, 20 Mar 2009 07:15:03 +0000 (00:15 -0700)]
r300-gallium: Properly offset scissors.
As per r300_reg, classic Mesa, and xf86-video-ati.
Corbin Simpson [Fri, 20 Mar 2009 03:36:59 +0000 (20:36 -0700)]
r300-gallium: Clean up r300_swtcl_emit.
Some compile warnings, some statements without effect.
Corbin Simpson [Fri, 20 Mar 2009 03:32:08 +0000 (20:32 -0700)]
r300-gallium: Clean up some emit, and some state handlers.
Corbin Simpson [Thu, 19 Mar 2009 19:29:03 +0000 (12:29 -0700)]
r300-gallium: A bit more invariant state.
José Fonseca [Wed, 18 Mar 2009 16:54:25 +0000 (16:54 +0000)]
gallium: Explain what happens if buffer_flush_mapped_range isn't called.
Keith Whitwell [Fri, 20 Mar 2009 15:08:59 +0000 (15:08 +0000)]
gallium/util: add upload manager helper module
Add a module that will manage uploading and coalescing multiple
user-buffers, malloc-buffers and other random data that doesn't
happen to be in a GPU buffer already. The module stuffs multiple
little uploads into larger GPU buffers to reduce create/destroy
overheads, etc.
Eric Anholt [Wed, 18 Mar 2009 19:07:09 +0000 (12:07 -0700)]
Fix DRI2 accelerated EXT_texture_from_pixmap with GL_RGB format.
This requires upgrading the interface so that the argument to
glXBindTexImageEXT isn't just dropped on the floor. Note that this only
fixes the accelerated path on Intel, as Mesa's texture format support is
missing x8r8g8b8 support (right now, GL_RGB textures get uploaded as a8r8gb8,
but in this case we're not doing the upload so we can't really work around it
that way).
Fixes bugs with compositors trying to use shaders that use alpha channels, on
windows without a valid alpha channel. Bug #19910 and likely others as well.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Michal Krol [Fri, 20 Mar 2009 15:48:54 +0000 (16:48 +0100)]
progs/wgl: Send a resize message after context have been created.
Michal Krol [Fri, 20 Mar 2009 15:36:23 +0000 (16:36 +0100)]
stw: Do not err on nil context handle in MakeCurrent().
Michal Krol [Fri, 20 Mar 2009 15:16:12 +0000 (16:16 +0100)]
progs/wgl: Create GL context in a thread that actually uses it.
Michal Krol [Fri, 20 Mar 2009 15:13:39 +0000 (16:13 +0100)]
progs/wgl: Make context current to get GL_RENDERER string.
Michal Krol [Fri, 20 Mar 2009 14:45:00 +0000 (15:45 +0100)]
stw: Use u_handle_table to maintain context list.
Michal Krol [Fri, 20 Mar 2009 12:06:28 +0000 (13:06 +0100)]
winsys/gdi: Init state tracker's per-thread data.
Michal Krol [Fri, 20 Mar 2009 12:05:51 +0000 (13:05 +0100)]
stw: Keep per-thread storage for current context and pixel format.
Michal Krol [Fri, 20 Mar 2009 11:19:40 +0000 (12:19 +0100)]
slang: Use _mesa_snprintf() wrapper.
Alan Hourihane [Thu, 19 Mar 2009 22:38:01 +0000 (22:38 +0000)]
slang: initialize the context
Alan Hourihane [Thu, 19 Mar 2009 22:06:10 +0000 (22:06 +0000)]
slang: support uniform arrays
Jakob Bornecrantz [Thu, 19 Mar 2009 15:11:05 +0000 (16:11 +0100)]
trace: Formalize on a standard for data size pair
Brian Paul [Thu, 19 Mar 2009 16:26:50 +0000 (10:26 -0600)]
glslcompiler: added new options to override debug/optimization pragmas
Brian Paul [Thu, 19 Mar 2009 16:25:24 +0000 (10:25 -0600)]
glsl: change GLSL #pragma initialization
Initialize the shader's pragma settings before calling the compiler.
Added pragma "Ignore" fields to allow overriding the #pragma directives found
in shader source code.
Alan Hourihane [Thu, 19 Mar 2009 15:39:01 +0000 (15:39 +0000)]
egl: fix comment
Alan Hourihane [Thu, 19 Mar 2009 15:34:45 +0000 (15:34 +0000)]
egl: try harder for eglGetProcAddress()
Brian Paul [Thu, 19 Mar 2009 15:26:20 +0000 (09:26 -0600)]
glsl: when debug pragma is on, emit comments about function calls/inlines
BTW, the debug pragma syntax is "#pragma debug(on)"
Alan Hourihane [Thu, 19 Mar 2009 13:58:04 +0000 (13:58 +0000)]
mesa: check renderbuffer is defined before use.
Jakob Bornecrantz [Wed, 18 Mar 2009 18:10:32 +0000 (19:10 +0100)]
st/gl: Only transfer needed parts in st_TexSubimage
Alan Hourihane [Thu, 19 Mar 2009 10:16:28 +0000 (10:16 +0000)]
slang: if/else/break & if/else/continue work for unrolled loops
Michal Krol [Thu, 19 Mar 2009 10:16:01 +0000 (11:16 +0100)]
wgl: Add an `-s' option to wglthreads to force single-threaded operation.
Michal Krol [Thu, 19 Mar 2009 09:39:57 +0000 (10:39 +0100)]
swrast: Silence compiler warnings, give better structure to the code as a result.
Michal Krol [Thu, 19 Mar 2009 08:52:50 +0000 (09:52 +0100)]
tgsi: Document vs_2_0 instruction set operations.
Michal Krol [Thu, 19 Mar 2009 08:49:38 +0000 (09:49 +0100)]
tgsi: Document vs_1_1 instruction set operations.
Michal Krol [Thu, 19 Mar 2009 08:44:51 +0000 (09:44 +0100)]
tgsi: Begin documenting ps_2_x instruction set operations.
Corbin Simpson [Wed, 18 Mar 2009 22:17:38 +0000 (15:17 -0700)]
r300-gallium: Emit viewport state.
Note that this will break you, hard, if you're not using RADEON_NO_TCL.
I really need to start vertex shaders soon.
Corbin Simpson [Wed, 18 Mar 2009 20:37:59 +0000 (13:37 -0700)]
r300-gallium: Viewport state storage.
Corbin Simpson [Wed, 18 Mar 2009 20:37:08 +0000 (13:37 -0700)]
r300-gallium: Fixup registers for viewport state.
Brian Paul [Wed, 18 Mar 2009 21:39:11 +0000 (15:39 -0600)]
mesa: use the IROUND() macro in pixel packing code
It turns out some tests are sensitive to rounding vs. truncating when
converting float color values to integers in glReadPixels(). In particular,
this matters when the destination format is 5/6/5 or 4/4/4/4, etc.
Alan Hourihane [Wed, 18 Mar 2009 21:42:14 +0000 (21:42 +0000)]
slang: redo the last commit for if/break & if/continue tests as it
wasn't good enough for deeply nested if's.
Alan Hourihane [Wed, 18 Mar 2009 21:40:03 +0000 (21:40 +0000)]
Revert "slang: if we detect an if/break or if/continue within a loop and we're"
This reverts commit
752296b8f311c5e3844f3ce89d17ba57224ce5ba.
Alan Hourihane [Wed, 18 Mar 2009 21:16:35 +0000 (21:16 +0000)]
slang: if we detect an if/break or if/continue within a loop and we're
trying to unroll, bail, and fallback to doing the real loop.
Keith Whitwell [Wed, 18 Mar 2009 19:14:45 +0000 (19:14 +0000)]
st: call _glapi_check_multithread from st_make_current
This function is called from many OS-dependent versions of MakeCurrent.
Move the check for multithreading to this central location to avoid
having to make this check from all the callers.
Thomas Hellstrom [Wed, 18 Mar 2009 11:28:31 +0000 (12:28 +0100)]
stw: Fix makeCurrent.
Flush if we change current context.
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
José Fonseca [Wed, 18 Mar 2009 16:37:20 +0000 (16:37 +0000)]
progs: Build the wgl examples with scons.
Jakob Bornecrantz [Wed, 18 Mar 2009 16:24:40 +0000 (17:24 +0100)]
progs/trivial: Make quad-tex-sub repeat patterns
Brian Paul [Wed, 18 Mar 2009 16:23:31 +0000 (10:23 -0600)]
tests: remove/update old comments
Brian Paul [Wed, 18 Mar 2009 16:22:05 +0000 (10:22 -0600)]
st: need to free/realloc pipe texture when we're handed image level > last_level
Fixes progs/tests/tri-fbo-tex-mip.c
Brian Paul [Wed, 18 Mar 2009 16:21:05 +0000 (10:21 -0600)]
st: clean up some if-statment code
Brian Paul [Wed, 18 Mar 2009 16:17:48 +0000 (10:17 -0600)]
softpipe: more texture transfer fixes.
Need to null-out pointers after freeing transfer objects.
Fix mix-ups between tc->transfer and tc->tex_trans fields.
Brian Paul [Wed, 18 Mar 2009 15:55:00 +0000 (09:55 -0600)]
softpipe: need to set tc->transfer=NULL after destroying the transfer object
This fixes a number of crashes/regressions in programs such as lodbias.c,
mipmap_limits.c, etc.
Brian Paul [Wed, 18 Mar 2009 15:40:37 +0000 (09:40 -0600)]
st: update texture comments
Jakob Bornecrantz [Wed, 18 Mar 2009 16:15:40 +0000 (17:15 +0100)]
progs/trivial: Add quad-tex-sub
Tests glTexSubImage
Dan Nicholson [Wed, 18 Mar 2009 06:33:04 +0000 (23:33 -0700)]
Use the specified X11 headers for xlib mesa
The xlib build was using the system's Xlib headers or bombing if they
weren't available.
Keith Whitwell [Wed, 18 Mar 2009 14:01:47 +0000 (14:01 +0000)]
tests: add simplest mipgen test
Keith Whitwell [Wed, 18 Mar 2009 13:27:53 +0000 (13:27 +0000)]
pipe/atomic: dont use ms interlock calls from gcc
Keith Whitwell [Wed, 18 Mar 2009 11:35:58 +0000 (11:35 +0000)]
util: avoid clashprone UINT, UBYTE enum values
Keith Whitwell [Wed, 18 Mar 2009 11:35:26 +0000 (11:35 +0000)]
draw: use AOS_ERROR rather than clash-prone ERROR() macro
Keith Whitwell [Wed, 18 Mar 2009 11:29:01 +0000 (11:29 +0000)]
pipe/atomic: clean up #ifdef maze
Jakob Bornecrantz [Wed, 18 Mar 2009 12:29:03 +0000 (13:29 +0100)]
progs/tests: Update mipmap_limits to show image and colors
Thomas Hellstrom [Wed, 18 Mar 2009 10:52:24 +0000 (11:52 +0100)]
xlib st: Fix makeCurrent.
Flush if we change context.
Also reinstate the old optimization of doing nothing if
nothing changes.
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
Jakob Bornecrantz [Tue, 17 Mar 2009 14:04:07 +0000 (15:04 +0100)]
progs/trivial: Add tri-fbo-tex-mip
Tests rendering to mip levels other then first
Ben Skeggs [Tue, 17 Mar 2009 22:22:35 +0000 (08:22 +1000)]
nouveau: rewrite winsys in terms of drm_api, support dri2 state tracker
drm_api is a set of hooks used by the dri2 state tracker, this wraps our
dri1 code around the same set of hooks.
Currently the dri2 build will produce nouveau_dri2.so which you'll need
to install as nouveau_dri.so if you wish to try it. The dri2 state
tracker doesn't make it easy for a driver to support both paths in the
same binary.
Ben Skeggs [Tue, 17 Mar 2009 22:21:32 +0000 (08:21 +1000)]
st/dri2: use pipe_screen.is_format_supported to choose depth/stencil format
Corbin Simpson [Tue, 17 Mar 2009 20:11:55 +0000 (13:11 -0700)]
r300-gallium: Move all unsorted state into invariant state.
Gotta just slowly whittle this down.
Corbin Simpson [Tue, 17 Mar 2009 20:10:41 +0000 (13:10 -0700)]
r300-gallium: Emit invariant state, no matter what.
It's called "invariant" for a reason. :3
Corbin Simpson [Tue, 17 Mar 2009 20:07:44 +0000 (13:07 -0700)]
r300-gallium: Quick little cleanup of surface_fill state.
José Fonseca [Tue, 17 Mar 2009 19:50:27 +0000 (19:50 +0000)]
tgsi: Restore statement ordering.
Corbin Simpson [Tue, 17 Mar 2009 18:49:29 +0000 (11:49 -0700)]
r300-gallium: Debugging for the more sensitive card registers.
These are nearly always the cause of hardlocks, so let's dump them.
Corbin Simpson [Tue, 17 Mar 2009 18:48:55 +0000 (11:48 -0700)]
r300-gallium: r500-fs: Fixup immediate->constant counting a bit.
Corbin Simpson [Tue, 17 Mar 2009 18:42:13 +0000 (11:42 -0700)]
r300-gallium: More query stuff.
Should work, but doesn't. At least it doesn't hardlock.
Brian Paul [Tue, 17 Mar 2009 16:28:32 +0000 (10:28 -0600)]
swrast: use better _swrast_compute_lambda() function
The MAX-based function can produce values that are non-monotonic for a span
which causes glitches in texture filtering. The sqrt-based one avoids that.
This is perhaps slightly slower than before, but the difference
probably isn't noticable given we're doing software mipmap filtering.
Issue reported by Nir Radian <nirr@horizonsemi.com>
Vinson Lee [Tue, 17 Mar 2009 15:34:30 +0000 (09:34 -0600)]
mesa: update/fix doxygen comments
José Fonseca [Tue, 17 Mar 2009 14:36:37 +0000 (14:36 +0000)]
util: Realloc takes bytes.
Michal Krol [Tue, 17 Mar 2009 13:27:47 +0000 (14:27 +0100)]
wgl: Port sharedtex_mt to WGL.
Michal Krol [Tue, 17 Mar 2009 11:41:39 +0000 (12:41 +0100)]
tgsi: Document ps_2_0 instruction set operations.
Michal Krol [Tue, 17 Mar 2009 11:31:06 +0000 (12:31 +0100)]
tgsi: Document ps_1_4 instruction set operations.
Michal Krol [Tue, 17 Mar 2009 11:29:07 +0000 (12:29 +0100)]
tgsi: Document ps_1_1 instruction set operations.
Michal Krol [Tue, 17 Mar 2009 11:26:25 +0000 (12:26 +0100)]
tgsi: Begin documenting GLSL instruction set operations.
Michal Krol [Tue, 17 Mar 2009 11:21:03 +0000 (12:21 +0100)]
tgsi: Begin documenting NV_geometry_program4 instruction set operations.
Thomas Hellstrom [Tue, 17 Mar 2009 10:33:20 +0000 (11:33 +0100)]
xdemos: Fix sharedtex_mt.
1) Don't allow multiple threads sharing current context,
even if they are mutex protected.
2) Remove all XLockDisplay(), XUnLockDisplay() calls, as they were
only workarounds for xcb.
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
Michal Krol [Tue, 17 Mar 2009 10:34:42 +0000 (11:34 +0100)]
python: Return on unknown pixel format.
Michal Krol [Tue, 17 Mar 2009 09:56:00 +0000 (10:56 +0100)]
gallium: Use `_new' name, `new' is a reserved keyword in C++.
Michal Krol [Tue, 17 Mar 2009 09:54:08 +0000 (10:54 +0100)]
gallium: Provide unprotected atomic implementation for display and miniport interfaces.
Michal Krol [Tue, 17 Mar 2009 09:43:04 +0000 (10:43 +0100)]
python: Fix build after refcount rework.
Michal Krol [Tue, 17 Mar 2009 09:33:25 +0000 (10:33 +0100)]
python: Include `p_winsys_screen.h'.
Michal Krol [Tue, 17 Mar 2009 09:26:38 +0000 (10:26 +0100)]
python: Do not pass screen object to pipe_buffer_reference.
Michal Krol [Tue, 17 Mar 2009 09:18:24 +0000 (10:18 +0100)]
tgsi: Silence const pointer cast warnings.
Corbin Simpson [Tue, 17 Mar 2009 00:00:27 +0000 (17:00 -0700)]
r300-gallium: r500-fs: Properly set up TEX/OUT.
Corbin Simpson [Mon, 16 Mar 2009 23:47:05 +0000 (16:47 -0700)]
r300-gallium: r500-fs: Texture insts, ABS, moar comments.
Corbin Simpson [Mon, 16 Mar 2009 17:44:23 +0000 (10:44 -0700)]
r300-gallium: Clean up some code, un-special-case scalar ops.
Corbin Simpson [Mon, 16 Mar 2009 17:23:45 +0000 (10:23 -0700)]
r300-gallium: r500-fs: CMP/MOV/SWZ, negation, ADD/MAD/MUL/SUB.
Also a fair amount of cleanup.
Corbin Simpson [Mon, 16 Mar 2009 16:48:07 +0000 (09:48 -0700)]
r300-gallium: Fix relocation for textures.
This keeps texture emit from invalidating CS.
Jakob Bornecrantz [Mon, 16 Mar 2009 19:57:34 +0000 (20:57 +0100)]
trace: Fix memory leak
José Fonseca [Mon, 16 Mar 2009 19:11:08 +0000 (19:11 +0000)]
util: bitmask data type.
Jakob Bornecrantz [Mon, 16 Mar 2009 19:32:14 +0000 (20:32 +0100)]
trace: Re-init refcounters just incase
Jakob Bornecrantz [Sat, 14 Mar 2009 09:22:48 +0000 (10:22 +0100)]
trace: Dump buffer data via buffer writes
Jakob Bornecrantz [Mon, 16 Mar 2009 19:14:21 +0000 (20:14 +0100)]
progs/trivial: Ignores