Brian Paul [Wed, 30 Dec 2009 16:25:24 +0000 (09:25 -0700)]
mesa: implement GL3 glClearBuffer() functions
These functions clear color/depth/stencil buffers with a value that's
passed to the function, rather than the context clear values.
For now these functions are implemented in terms of the existing
ctx->Driver.Clear() hook. In the future when we have non-normalized
integer and unsigned integer color buffer formats we'll need new
driver hook(s) to pass int and uint clear values to the driver.
Note: these functions are not hooked into the dispatch table at this time.
Brian Paul [Mon, 28 Dec 2009 22:12:14 +0000 (15:12 -0700)]
mklib: use a wrapper for ar
Luca Barbieri [Wed, 30 Dec 2009 01:54:39 +0000 (02:54 +0100)]
nouveau: Fix glTexSubImage on swizzled surfaces on <=NV40
Currently in nvXX_transfer_new a temporary as large as the surface is created.
If the subrectangle is not the whole texture we would need to read
back the whole texture, but we aren't.
Thus, everything but the subrectangle specified is loaded as garbage.
This can be seen in progs/demos/ray.
This patch fixes the problem by creating a temporary that covers only
the desired subrectangle.
That makes us hit an alignment assert in nv04_surface_2d.c. Fix it
using the point registers instead of manipulating the swizzled surface
offset to account for the destination coordinates (which do not seem
to have a 1024 limit).
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Brian Paul [Wed, 30 Dec 2009 06:04:27 +0000 (23:04 -0700)]
mesa: fix-up blend enable/disable code in _mesa_PopAttrib()
Brian Paul [Wed, 30 Dec 2009 05:58:44 +0000 (22:58 -0700)]
mesa: finish-up indexed color mask code in _mesa_PopAttrib()
Brian Paul [Wed, 30 Dec 2009 05:56:32 +0000 (22:56 -0700)]
mesa: plug in GL_EXT_draw_buffers2 functions
Brian Paul [Wed, 30 Dec 2009 05:55:57 +0000 (22:55 -0700)]
mesa: regenerate API files related to GL_EXT_draw_buffers2
Brian Paul [Wed, 30 Dec 2009 05:54:30 +0000 (22:54 -0700)]
glapi: extension info for GL_EXT_draw_buffers2
Brian Paul [Tue, 29 Dec 2009 23:30:54 +0000 (16:30 -0700)]
mesa: added infrastructure for GL_EXT_draw_buffers2
Brian Paul [Tue, 29 Dec 2009 23:30:04 +0000 (16:30 -0700)]
mesa: add dlist support for indexed colormask and indexed enables/disables
Not plugged into dispatch table yet...
Brian Paul [Tue, 29 Dec 2009 23:17:14 +0000 (16:17 -0700)]
mesa: implement per-buffer color masking
This is part of the GL_EXT_draw_buffers2 extension and part of GL 3.0.
The ctx->Color.ColorMask field is now a 2-D array. Until drivers are
modified to support per-buffer color masking, they can just look at
the 0th color mask.
The new _mesa_ColorMaskIndexed() function will be called by
glColorMaskIndexedEXT() or glColorMaski().
Brian Paul [Tue, 29 Dec 2009 22:09:16 +0000 (15:09 -0700)]
mesa: implement indexed glGet functions
The functions are _mesa_GetBooleanIndexedv(), _mesa_GetIntegerIndexedv(), and
_mesa_GetInteger64Indexedv(). These will be called from API functions such as
glGetBooleanIndexedvEXT() and glGetBooleani_v().
Only the GL_BLEND query is supported at this time.
Brian Paul [Tue, 29 Dec 2009 22:04:03 +0000 (15:04 -0700)]
mesa: per-buffer blend enabled flags
ctx->Color.BlendEnabled is now a GLbitfield instead of a GLboolean to
indicate blend on/off status for each color/draw buffer.
This is infrastructure for GL_EXT_draw_buffers2 and OpenGL 3.x
New functions include _mesa_EnableIndexed(), _mesa_DisableIndexed(), and
_mesa_IsEnabledIndexed(). The enable function corresponds to
glEnableIndexedEXT() for GL_EXT_draw_buffers2 or glEnablei() for GL3.
Note that there's quite a few tests for ctx->Color.BlendEnabled != 0 in
drivers, etc. Those tests can remain as-is since the mask will be 0 or ~0
unless GL_EXT_draw_buffers2 is enabled.
Brian Paul [Tue, 29 Dec 2009 15:47:40 +0000 (08:47 -0700)]
glsl: added default case in _fetch_token() to silence warnings
Eric Anholt [Tue, 29 Dec 2009 03:09:01 +0000 (19:09 -0800)]
intel: Fix false positives in checking for non-packed depth/stencil RB.
The wine d3d9 visual.c testcase was tripping over this and failing.
Presumably it's binding a packed depth/stencil texture to both
stencil and depth attachment points, and we make a new renderbuffer
wrapper for each in that case.
Eric Anholt [Tue, 29 Dec 2009 02:15:06 +0000 (18:15 -0800)]
intel: Allow binding a stencil but not a depth buffer.
Wine's d3d9 visual.c testcase tries this a lot, so I've added some
piglit tests (fbo-nodepth-test, fbo-nostencil-test, fbo-stencil-only)
and enabled it.
Eric Anholt [Mon, 28 Dec 2009 22:38:43 +0000 (14:38 -0800)]
intel: Improve INTEL_DEBUG=fbo output.
Eric Anholt [Sun, 27 Dec 2009 02:43:20 +0000 (18:43 -0800)]
intel: Remove dead fthrottle_mode option. We only do IRQ waits.
Noticed by clang.
Eric Anholt [Tue, 22 Dec 2009 22:43:11 +0000 (14:43 -0800)]
mesa: remove gratuitous stores I added in remove_instructions.
Younes Manton [Mon, 28 Dec 2009 22:33:34 +0000 (17:33 -0500)]
nouveau: Unreference state/buffer objects on context/screen destruction.
- unreference state objects so that buffer objects are unreferenced and
eventually destroyed
- free channel at screen's destruction
Based on Krzysztof Smiechowicz's patch.
Luca Barbieri [Sat, 26 Dec 2009 06:35:17 +0000 (07:35 +0100)]
nouveau: Fix swizzling for copies to rectangular textures
nVidia hardware seems to swizzle rectangular texture (with width !=
height) coordinates by swizzling the lower bits and then adding the
higher bits from the larger dimension.
However, nv04_swizzle_bits ignores width and height and just
interleaves everything.
This causes problems with rectangular POT textures with height or
width 2048 or 4096 (but not 2048x1024 where it works by chance) since
the driver swizzles them in 1024x1024 chunks and gets the start
position for the non-first chunks wrong.
The following patch seems to fix those problems.
Luca Barbieri [Sun, 27 Dec 2009 03:04:46 +0000 (04:04 +0100)]
nouveau: Fix nv20-40 swizzled miptree RTs
I just coded a patch that does this and seems to work fine. It must be
fixed since it breaks OpenGL (or the state tracker can be changed, but
it seems better to do it in the driver).
The patch also fixes NV20 and NV30 in the same way. They compile but
are untested.
I would guess that using the 3D engine is faster for the larger
levels, but the 2D engine is faster for the smaller ones (and lacks
this issue).
Luca Barbieri [Sat, 26 Dec 2009 07:12:15 +0000 (08:12 +0100)]
NV30/NV40 CMP and SCS src == dst handling
CMP and SCS can produce incorrect results if the source and
destination are the same.
This patch should fix the issues.
CMP is fixed by predicating both moves.
SCS by changing the order if the source component is X.
José Fonseca [Mon, 28 Dec 2009 22:52:41 +0000 (22:52 +0000)]
llvmpipe: Unmapping vertex/index buffers does NOT flush draw module anymore.
Not since
6094e79f4e3350d123c7532b1c73faa60834a62d.
Drivers now need to flush draw module explicitely (which explains why
all those previous commits adding draw_flushes calls were necessary).
This is a good thing, but it's tricky to get this right in face of user buffers
(it's not even clear who has the responsibility to flush when a user buffer
is seen -- statetracker or pipe driver), so just force flush (temporarily)
since it's not a bottleneck now.
José Fonseca [Mon, 28 Dec 2009 16:39:30 +0000 (16:39 +0000)]
python/retrace: Dump only the specified image rectangles.
José Fonseca [Mon, 28 Dec 2009 16:25:48 +0000 (16:25 +0000)]
xlib: Integrate the trace driver with all pipe drivers.
And not just softpipe.
It is particularly convenient to use llvmpipe instead, since it is much
faster. It also allows to use rbug with all xlib drivers.
José Fonseca [Mon, 28 Dec 2009 15:22:17 +0000 (15:22 +0000)]
scons: Fix xlib build.
After glsl rework merge.
Francisco Jerez [Sat, 26 Dec 2009 16:26:49 +0000 (17:26 +0100)]
nv04: Fix build after the latest nouveau_class.h changes.
Marcin Kościelnicki [Mon, 28 Dec 2009 16:23:40 +0000 (16:23 +0000)]
nv50: Dehexify and bring up to date with new method defines.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Brian Paul [Sun, 27 Dec 2009 17:24:21 +0000 (10:24 -0700)]
Merge branch 'mesa_7_7_branch'
Brian Paul [Sun, 27 Dec 2009 17:24:12 +0000 (10:24 -0700)]
cell: add glsl to SRC_DIRS
Brian Paul [Sun, 27 Dec 2009 17:09:24 +0000 (10:09 -0700)]
st/mesa: add missing case for PIPE_FORMAT_B8G8R8A8_UNORM
Dave Airlie [Sun, 27 Dec 2009 06:13:41 +0000 (16:13 +1000)]
r300g: fix use of uninitialised variables.
These buffers were getting dereferenced later.
Dave Airlie [Sun, 27 Dec 2009 05:23:13 +0000 (15:23 +1000)]
r300g: rename modesetting_drv.so to radeong_drv.so
José Fonseca [Sat, 26 Dec 2009 21:05:31 +0000 (21:05 +0000)]
softpipe: Flush draw module when fragment pipeline state changes.
José Fonseca [Sat, 26 Dec 2009 15:21:16 +0000 (15:21 +0000)]
llvmpipe: Treat state changes systematically.
That is:
- check for no op
- update/flush draw module
- update bound state and mark it as dirty
In particular flushing the draw module is important since it may contain
unflushed primitives which would otherwise be draw with wrong state.
Eric Anholt [Wed, 23 Dec 2009 01:30:13 +0000 (17:30 -0800)]
i965: Extra asserts on flow control instructions to clarify for clang.
Eric Anholt [Wed, 23 Dec 2009 01:18:03 +0000 (17:18 -0800)]
i965: Clean up double initialization of dst_flags from a rebase resolve.
Caught by clang.
Eric Anholt [Wed, 23 Dec 2009 01:05:10 +0000 (17:05 -0800)]
i965: Fix setup of immediate types for gen4 disasm.
Caught by clang.
José Fonseca [Sat, 26 Dec 2009 11:02:02 +0000 (11:02 +0000)]
llvmpipe: Use comments and more code from softpipe's is_texture_referenced implementation.
José Fonseca [Sat, 26 Dec 2009 11:01:05 +0000 (11:01 +0000)]
softpipe: Flush draw module before switching framebuffer.
Otherwise geometry might end up in the wrong rendertarget.
José Fonseca [Sat, 26 Dec 2009 11:00:42 +0000 (11:00 +0000)]
llvmpipe: Flush draw module before switching framebuffer.
Otherwise geometry will end up in the wrong rendertarget.
José Fonseca [Sat, 26 Dec 2009 10:59:46 +0000 (10:59 +0000)]
tgsi: Don't dump parenthesis for negation.
It doesn't seem necessary, and more importantly, tgsi_parse doesn't know
how to read them.
José Fonseca [Sat, 26 Dec 2009 01:14:59 +0000 (01:14 +0000)]
python: Update python state tracker and samples for recent interface changes.
José Fonseca [Fri, 25 Dec 2009 17:40:08 +0000 (17:40 +0000)]
trace: Fix transfer size computation.
José Fonseca [Fri, 25 Dec 2009 17:39:47 +0000 (17:39 +0000)]
scons: Put the configuration info in the build directory too.
It fixes cached configuration results from one platform being erroneously
used in other platforms.
José Fonseca [Thu, 24 Dec 2009 15:53:45 +0000 (15:53 +0000)]
svga: Allow to dump an individual command.
Dave Airlie [Fri, 25 Dec 2009 21:28:21 +0000 (07:28 +1000)]
r300g: fixup for GS additions
draw_set_mapped_constant_buffer changed API
Zack Rusin [Thu, 24 Dec 2009 18:08:36 +0000 (13:08 -0500)]
gallium: remove TGSI_SEMANTIC_VERTICES
it's a leftover from an early version of geometry shading support.
geometry shaders now encode the primitive size in the PROPERTY token
and don't need special input with their size.
Zack Rusin [Thu, 24 Dec 2009 14:34:07 +0000 (09:34 -0500)]
draw: disable some debugging output coming from the geometry shaders
Zack Rusin [Thu, 24 Dec 2009 14:30:00 +0000 (09:30 -0500)]
gallium: geometry shader can be always enabled and we don't need a cap for that
using the draw module allows us to enable geometry shading even on hardware
that doesn't support it.
Zack Rusin [Thu, 24 Dec 2009 14:20:45 +0000 (09:20 -0500)]
util: put vertices_per_primitive function in its proper location
Zack Rusin [Thu, 24 Dec 2009 13:15:29 +0000 (08:15 -0500)]
draw/tgsi: fix geometry shader input/output swizzling
Zack Rusin [Wed, 23 Dec 2009 20:41:47 +0000 (15:41 -0500)]
tgsi: dump the indices correctly when dealing with 2d arrays
Zack Rusin [Wed, 23 Dec 2009 19:39:16 +0000 (14:39 -0500)]
tgsi: fix property parsing/building
Zack Rusin [Wed, 23 Dec 2009 18:43:30 +0000 (13:43 -0500)]
python: fix python state tracker after some latest changes
Zack Rusin [Wed, 23 Dec 2009 18:30:12 +0000 (13:30 -0500)]
softpipe: make it possible to dump geometry shader from the softpipe
Zack Rusin [Wed, 23 Dec 2009 17:40:39 +0000 (12:40 -0500)]
tgsi: add missing support for two dimensional arrays in various places
in particular asm text parsing and sanity checking were missing code
to handle multi-dimensional arrays/geometry shaders
Zack Rusin [Wed, 23 Dec 2009 17:40:19 +0000 (12:40 -0500)]
python/gs: fix the example
Zack Rusin [Wed, 23 Dec 2009 17:39:21 +0000 (12:39 -0500)]
gallium: add an inline that returns number of vertices per primitive
Zack Rusin [Wed, 23 Dec 2009 17:34:34 +0000 (12:34 -0500)]
softpipe/gs: don't crash with null shader
Zack Rusin [Sat, 19 Dec 2009 18:54:53 +0000 (13:54 -0500)]
gs: fix drivers so they work with geometry shaders
Zack Rusin [Tue, 15 Dec 2009 14:26:51 +0000 (09:26 -0500)]
tgsi: make the tgsi assembly parser report line/column on error
Zack Rusin [Mon, 14 Dec 2009 22:11:46 +0000 (17:11 -0500)]
gallium: add geometry shader support to gallium
Brian Paul [Wed, 23 Dec 2009 23:55:37 +0000 (16:55 -0700)]
mklib: put usage info into usage() function
Brian Paul [Wed, 23 Dec 2009 23:50:06 +0000 (16:50 -0700)]
mklib: expand .a into .o files on FreeBSD, put common code into subroutines
Keith Whitwell [Thu, 24 Dec 2009 12:52:43 +0000 (12:52 +0000)]
i965g: get trivial/tri working again after edgeflag changes
Keith Whitwell [Thu, 24 Dec 2009 12:45:42 +0000 (12:45 +0000)]
i965g: strict aliasing changes
Keith Whitwell [Thu, 24 Dec 2009 12:44:12 +0000 (12:44 +0000)]
gallium/util: quieten compiler
Keith Whitwell [Tue, 22 Dec 2009 10:14:59 +0000 (10:14 +0000)]
i965g: calculate depth min/max
Previously hard-wired to 0..1
Christoph Bumiller [Thu, 24 Dec 2009 12:35:55 +0000 (13:35 +0100)]
nv50: support TGSI_OPCODE_CONT
Christoph Bumiller [Thu, 24 Dec 2009 11:39:42 +0000 (12:39 +0100)]
nv50: make edgeflags work
It doesn't seem to be possible to set the egdeflag in the
vertex shader, so we need to fallback to pushing vertices
through the FIFO and use method 0x15e4 if they are used.
This only works if VP does MOV OUT[X] IN[Y] where X is the
edgeflag output, and Y is saved so we can tell the correct
input later.
The VP still writes the useless values to wasted outputs
as punishment.
Tom Fogal [Wed, 23 Dec 2009 18:24:52 +0000 (11:24 -0700)]
Regenerate gl_mangle.h.
Signed-off-by: Brian Paul <brianp@vmware.com>
José Fonseca [Wed, 23 Dec 2009 15:21:56 +0000 (15:21 +0000)]
llvmpipe: Install unit tests on build/xxx/bin
José Fonseca [Wed, 23 Dec 2009 13:23:39 +0000 (13:23 +0000)]
util: Define common dynamic library extensions.
Maarten Maathuis [Sun, 20 Dec 2009 13:03:03 +0000 (05:03 -0800)]
gallium: only create pipe buffer when size is nonzero
- This fixes a crash upon starting spring (a rts engine/game).
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Keith Whitwell [Wed, 23 Dec 2009 15:57:06 +0000 (15:57 +0000)]
glsl/pp: move static functions out of header file
Keith Whitwell [Wed, 23 Dec 2009 15:56:31 +0000 (15:56 +0000)]
glsl/pp: quieten compiler about missing case statements
Tomas Carnecky [Wed, 23 Dec 2009 15:57:17 +0000 (16:57 +0100)]
i965g: Rename {pf->util_format}_is_depth_or_stencil()
Roland Scheidegger [Wed, 23 Dec 2009 15:55:16 +0000 (16:55 +0100)]
rbug: rename pf_is_compressed to util_format_is_compressed
Tomas Carnecky [Wed, 23 Dec 2009 15:40:20 +0000 (15:40 +0000)]
[i965] Rename {pf -> util}_format_is_depth_or_stencil()
The function was moved and renamed in
0bed834b.
Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Vinson Lee [Tue, 22 Dec 2009 08:54:34 +0000 (00:54 -0800)]
progs/tests: Fix build.
(cherry picked from commit
1bf2d78b11ac9ac71f4be285963db1af9f09fe73)
Eric Anholt [Wed, 16 Dec 2009 23:50:40 +0000 (15:50 -0800)]
intel: Replace some gen3 IS_* checks with context structure usage.
Shaves 400 bytes or so from i915_dri.so.
Eric Anholt [Wed, 16 Dec 2009 23:42:55 +0000 (15:42 -0800)]
intel: Replace IS_965 checks with context structure usage.
Saves another 600 bytes or so of code.
Eric Anholt [Wed, 16 Dec 2009 23:22:26 +0000 (15:22 -0800)]
intel: Replace IS_G4X() across the driver with context structure usage.
Saves ~2KB of code.
Eric Anholt [Wed, 16 Dec 2009 22:45:50 +0000 (14:45 -0800)]
intel: Replace IS_IGDNG checks with intel->is_ironlake or needs_ff_sync.
Saves ~480 bytes of code.
Eric Anholt [Tue, 22 Dec 2009 20:38:11 +0000 (12:38 -0800)]
mesa: Fix a NULL deref in glDeleteFragmentShaderATI(badname);
Fixes piglit ati-fs-bad-delete. Caught by clang.
Eric Anholt [Tue, 22 Dec 2009 20:08:14 +0000 (12:08 -0800)]
mesa: remove unnecessary store.
Eric Anholt [Tue, 22 Dec 2009 19:40:01 +0000 (11:40 -0800)]
mesa: Remove an unnecessary store reported by clang.
This was a workaround for a compiler warning that was showing a real
error. The real error was later fixed.
Eric Anholt [Tue, 22 Dec 2009 19:18:29 +0000 (11:18 -0800)]
intel: Fix leakage of active texture state in glBitmap fp metaops.
Noticed by clang.
Eric Anholt [Tue, 22 Dec 2009 19:08:38 +0000 (11:08 -0800)]
i915: Fix use of uninitialized variable in OPCODE_NOISE stub.
We don't actually care which register is used since we're just
swizzling (0,0,0,0), but it should be a valid variable number.
Detected by clang.
Eric Anholt [Tue, 22 Dec 2009 19:04:32 +0000 (11:04 -0800)]
mesa: Replace CLAMP_SELF() macro with more obvious CLAMP() usage.
The same code is generated, and readers and static analyzers are
happier.
Eric Anholt [Tue, 22 Dec 2009 18:58:47 +0000 (10:58 -0800)]
intel: Remove unused stored values reported by clang.
Eric Anholt [Tue, 22 Dec 2009 18:56:34 +0000 (10:56 -0800)]
mesa: Remove _mesa_exit wrapper for exit().
It does nothing else while being less useful than exit() because it lacks
attributes that real exit() has.
Brian Paul [Tue, 22 Dec 2009 21:21:07 +0000 (14:21 -0700)]
mesa: adjust OPCODE_IF/ELSE BranchTarget fields to point to ELSE/ENDIF instr.
This is a little more logical. Suggested in bug report 25654.
Brian Paul [Tue, 22 Dec 2009 21:15:30 +0000 (14:15 -0700)]
mesa: adjust BRK/CONT BranchTarget to always point to ENDLOOP instruction
To be more consistant.
Brian Paul [Tue, 22 Dec 2009 19:57:31 +0000 (12:57 -0700)]
mesa: added some assertions in BNGLOOP/ENDLOOP cases
Brian Paul [Tue, 22 Dec 2009 20:28:39 +0000 (13:28 -0700)]
mesa: fix binary() function, printf format string
Need to use the constant 1ULL and 0xllx format string. This fixes incorrect
results and a NULL pointer/parameter bug.
Roland Scheidegger [Tue, 22 Dec 2009 20:26:51 +0000 (21:26 +0100)]
i965g: fix for edgeflag changes (untested)
Roland Scheidegger [Tue, 22 Dec 2009 19:54:26 +0000 (20:54 +0100)]
Merge branch 'gallium-edgeflags'
Conflicts:
src/mesa/state_tracker/st_draw.c