OSDN Git Service
José Fonseca [Tue, 3 Mar 2009 12:26:21 +0000 (12:26 +0000)]
Merge commit 'origin/gallium-0.1'
Conflicts:
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
José Fonseca [Tue, 3 Mar 2009 12:22:59 +0000 (12:22 +0000)]
pipebuffer: Cleanup merge.
Keith Whitwell [Tue, 3 Mar 2009 12:11:08 +0000 (12:11 +0000)]
winsys: return null for DONTBLOCK flag on existing winsys
Add code so that existing driver behaviour doesn't change.
Keith Whitwell [Tue, 3 Mar 2009 12:10:56 +0000 (12:10 +0000)]
pb: fix up merge mistakes
José Fonseca [Tue, 3 Mar 2009 12:01:01 +0000 (12:01 +0000)]
pipebuffer: Fix copy'n'paste typo.
Keith Whitwell [Tue, 3 Mar 2009 11:51:14 +0000 (11:51 +0000)]
Merge commit 'origin/gallium-0.1'
Conflicts:
scons/gallium.py
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
src/gallium/include/pipe/p_defines.h
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_exec_draw.c
Keith Whitwell [Tue, 3 Mar 2009 10:55:25 +0000 (10:55 +0000)]
vbo: missing line from previous commit
Keith Whitwell [Tue, 3 Mar 2009 10:47:31 +0000 (10:47 +0000)]
mesa/st: implement MapBufferRange callback
Using PIPE_BUFFER_USAGE_DONTBLOCK.
Keith Whitwell [Tue, 3 Mar 2009 10:46:12 +0000 (10:46 +0000)]
vbo: use MapBufferRange where available
Previously would have to allocate a new VBO after firing a draw command
as subsequent call to Map() on old VBO might block if the driver had
submitted the commands to hardware.
Keith Whitwell [Tue, 3 Mar 2009 10:44:35 +0000 (10:44 +0000)]
mesa: add MapBufferRange driver callbacks
Will be needed in coming GL extensions (GL_map_buffer_range, GL 3.0).
Will be used by the vbo module to avoid reallocating vbo's at each
draw primitive call.
Keith Whitwell [Tue, 3 Mar 2009 10:41:57 +0000 (10:41 +0000)]
mesa: Add BeginVertices driver call
Provides notification to the VBO modules prior to the first immediate call.
Pairs with FlushVertices()
Jakob Bornecrantz [Tue, 3 Mar 2009 02:24:31 +0000 (03:24 +0100)]
intel: Add Xorg driver
Jakob Bornecrantz [Tue, 3 Mar 2009 02:23:32 +0000 (03:23 +0100)]
intel: Add dri2 driver for gallium
Jakob Bornecrantz [Tue, 3 Mar 2009 02:22:46 +0000 (03:22 +0100)]
st/xorg: Add Xorg state tracker
Jakob Bornecrantz [Tue, 3 Mar 2009 02:22:05 +0000 (03:22 +0100)]
st/dri2: Add DRI2 a state tracker
This was based of the unfinnished code that Keith
Whitwell started on but never finnished. I moved
the code from the glx directory because dri drivers
can be used for more things then just glx.
Jakob Bornecrantz [Tue, 3 Mar 2009 01:05:52 +0000 (02:05 +0100)]
intel: Increase max relocs per batchbuffer
Brian Paul [Tue, 3 Mar 2009 00:55:09 +0000 (17:55 -0700)]
mesa: save some useful VBO debug/dump code (disabled)
Brian Paul [Tue, 3 Mar 2009 00:52:30 +0000 (17:52 -0700)]
mesa: more tex image debug/dumping code
Brian Paul [Tue, 3 Mar 2009 00:51:44 +0000 (17:51 -0700)]
mesa: comments and code documenting a bug with depth 32 TrueColor drawing/reading
It seems that XGetImage() from a depth 32 TrueColor window is flakey.
Drawing with XPutImage() instead of XPutPixel() seems to work better, but
still not perfectly.
Keep using the original code for now until more is learned.
Brian Paul [Mon, 2 Mar 2009 22:21:50 +0000 (15:21 -0700)]
mesa: move call to update_texture_compare_function()
Another conditional can be avoided.
Brian Paul [Mon, 2 Mar 2009 22:19:53 +0000 (15:19 -0700)]
mesa: fix texture enable regression
Need to clear the _ReallyEnabled field before possibly continuing the loop.
Also, set _Current pointer to NULL if the unit is no longer enabled.
Fixes piglit lodbias regression
Brian Paul [Mon, 2 Mar 2009 21:27:16 +0000 (14:27 -0700)]
mesa: use _mesa_reference_texobj() when setting texUnit->Current pointer
Fixes piglit copytexsubimage regression.
Brian Paul [Mon, 2 Mar 2009 19:27:16 +0000 (12:27 -0700)]
mesa: don't draw arrays if vertex position array is not enabled
For regular GL, we must have vertex positions in order to draw. But ES2
doesn't have that requirement (positions can be computed from any array
of data).
See bug 19911.
Brian Paul [Mon, 2 Mar 2009 18:27:32 +0000 (11:27 -0700)]
gallium: only enable depth test if a depth bufffer is available
Brian Paul [Mon, 2 Mar 2009 18:49:19 +0000 (11:49 -0700)]
mesa: remove warning/short-circuit of stencil enable w/ no stencil buffer
With FBOs one could enable stencil before a stencil buffer is later bound.
Brian Paul [Mon, 2 Mar 2009 18:47:52 +0000 (11:47 -0700)]
mesa: use Stencil._Enabled field instead of Stencil.Enabled
Brian Paul [Mon, 2 Mar 2009 18:46:49 +0000 (11:46 -0700)]
mesa: add ctx->Stencil._Enabled field
Only true if stenciling is enabled, and there's a stencil buffer.
Younes Manton [Mon, 2 Mar 2009 17:57:56 +0000 (12:57 -0500)]
nouveau: Grab correct surface from temp texture for transfers.
Younes Manton [Wed, 25 Feb 2009 20:09:20 +0000 (15:09 -0500)]
g3dvl: Grab surface pointer when flushing front buffer in SP winsys.
Brian Paul [Mon, 2 Mar 2009 18:00:28 +0000 (11:00 -0700)]
swrast: use _EnabledCoordUnits for fixed-function texturing
Using _EnabledUnits was wrong because it included vertex texture units.
This change plus the prev commit fixes occasional failures of glean/glsl1
vertex texture test failure.
Brian Paul [Mon, 2 Mar 2009 17:58:51 +0000 (10:58 -0700)]
mesa: fixed computation of _EnabledCoordUnits
This field should not include vertex textures. It indicates the coord
inputs for fragment / fixed-function processing.
José Fonseca [Mon, 2 Mar 2009 17:45:35 +0000 (17:45 +0000)]
pipebuffer: Cleanup code & comments.
José Fonseca [Mon, 2 Mar 2009 17:35:28 +0000 (17:35 +0000)]
pipebuffer: Handle PIPE_BUFFER_USAGE_DONTBLOCK flag.
Conflicts:
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
José Fonseca [Mon, 2 Mar 2009 17:18:21 +0000 (17:18 +0000)]
gallium: New PIPE_BUFFER_USAGE_DONTBLOCK flag.
To prevent blocking when mapping a buffer.
José Fonseca [Mon, 2 Mar 2009 17:32:37 +0000 (17:32 +0000)]
pipebuffer: Wait for the GPU to finish reading too.
No real change, as we're not tracking relocations read/write access yet.
José Fonseca [Tue, 24 Feb 2009 11:22:24 +0000 (11:22 +0000)]
pipebuffer: Remove unused var.
Brian Paul [Sun, 1 Mar 2009 01:36:48 +0000 (18:36 -0700)]
mesa: clarify comments for per-unit texture bitfields
Brian Paul [Sun, 1 Mar 2009 00:40:41 +0000 (17:40 -0700)]
mesa: move texture_override() code into calling loop
We can avoid a few iterations this way.
Brian Paul [Sun, 1 Mar 2009 00:02:49 +0000 (17:02 -0700)]
mesa: move update_texture_compare_function() call out of loop
Brian Paul [Sat, 28 Feb 2009 19:21:18 +0000 (12:21 -0700)]
mesa: remove unused AUX buffers
Remove all references to aux buffers 1..3. Keep AUX0 around for now just
in case, but it'll probably go too someday. I don't know of any OpenGL
drivers since the IRIX days that support aux color buffers.
Brian Paul [Mon, 2 Mar 2009 15:05:30 +0000 (08:05 -0700)]
mesa: remove VF_SOURCES, simplify MATH_XFORM_SOURCES
Corbin Simpson [Mon, 2 Mar 2009 02:24:40 +0000 (18:24 -0800)]
r300-gallium: Clean up casts and indents.
Corbin Simpson [Mon, 2 Mar 2009 02:12:05 +0000 (18:12 -0800)]
r300-gallium: Split off invariant state.
It's kind of like a CSO todo list. :3
Corbin Simpson [Sat, 28 Feb 2009 22:07:17 +0000 (14:07 -0800)]
r300-gallium: Add RADEON_NO_TCL debugging option.
Just like R300_NO_TCL, when set, forces HW TCL off.
Corbin Simpson [Sat, 28 Feb 2009 22:01:28 +0000 (14:01 -0800)]
r300-gallium: Fix register count.
Corbin Simpson [Sat, 28 Feb 2009 21:27:28 +0000 (13:27 -0800)]
r300-gallium: Fix hardlocks on trivial/clear.
I'm so happy I could cry.
Corbin Simpson [Sat, 28 Feb 2009 19:21:29 +0000 (11:21 -0800)]
r300-gallium: Use rs_state emit for r300_surface, move a few things around.
Also a possible fix for non-TCL chipsets and trivial/clear.
Corbin Simpson [Sat, 28 Feb 2009 19:20:26 +0000 (11:20 -0800)]
r300-gallium: Move maths from r300_state to r300_state_inlines.
Brian Paul [Sat, 28 Feb 2009 18:56:15 +0000 (11:56 -0700)]
mesa: just re-order some parts and update comments in sources.mak
Brian Paul [Sat, 28 Feb 2009 18:49:46 +0000 (11:49 -0700)]
mesa: rename, reorder FRAG_RESULT_x tokens
s/FRAG_RESULT_DEPR/FRAG_RESULT_DEPTH/
s/FRAG_RESULT_COLR/FRAG_RESULT/COLOR/
Remove FRAG_RESULT_COLH (NV half-precision) output since we never used it.
Next, we might merge the COLOR and DATA outputs (COLOR0, COLOR1, etc).
Brian Paul [Sat, 28 Feb 2009 18:16:00 +0000 (11:16 -0700)]
mesa: add gallium state tracker sources to ALL_SOURCES
This should fix some missing dependency checking.
Brian Paul [Sat, 28 Feb 2009 17:58:57 +0000 (10:58 -0700)]
mesa: convert some #defines to enums
This makes debugging with gdb a bit easier.
Ex:
(gdb) p ctx->DrawBuffer.Attachment[BUFFER_STENCIL]
Note however that gdb only seems to recognize enum types that are actually
used to declare a variable somewhere. For example, gl_buffer_index isn't
used to declare any vars so it's invisible to gdb. Work around this by
adding a dummy function in context.c that declares some vars with these
new types.
Brian Paul [Sat, 28 Feb 2009 00:27:20 +0000 (17:27 -0700)]
demos: add progs/glsl/shadow_sampler.c to test GLSL shadow2D(), etc.
Heh, I wrote this program a long time ago but just discovered today that
it wasn't in git.
Brian Paul [Fri, 27 Feb 2009 23:44:28 +0000 (16:44 -0700)]
mesa: move _GenFlags = 0x0 to texgen loop
Brian Paul [Fri, 27 Feb 2009 22:42:35 +0000 (15:42 -0700)]
mesa: use fp pointer in _tnl_InvalidateState()
Joakim Sindholt [Sat, 28 Feb 2009 17:51:09 +0000 (18:51 +0100)]
mesa: fix remaining FEEDBACK_TOKEN macros
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Corbin Simpson [Sat, 28 Feb 2009 17:55:09 +0000 (09:55 -0800)]
r300-gallium: Cleanup color formats.
Corbin Simpson [Sat, 28 Feb 2009 17:12:16 +0000 (09:12 -0800)]
r300-gallium: Be more Gallium-ish in some of the math.
Corbin Simpson [Sat, 28 Feb 2009 16:58:05 +0000 (08:58 -0800)]
r300-gallium: Move all state translators to r300_state_inlines.
Tryin' to do some cleanup.
Brian Paul [Sat, 28 Feb 2009 17:08:22 +0000 (10:08 -0700)]
mesa: move #include "bitset.h" out of mtypes.h - not needed in core Mesa
Brian Paul [Sat, 28 Feb 2009 17:06:55 +0000 (10:06 -0700)]
mesa: add a prototype to silence warnings
David Miller [Sat, 28 Feb 2009 07:34:41 +0000 (23:34 -0800)]
mesa: Sparc's IROUND() optimization is invalid.
We can't use the "fstoi" instruction like this.
Unlike other floating point instructions, "fstoi" always rounds
towards zero no matter what rounding mode the FPU has been set to.
This was validated using the following test program:
--------------------
static inline int iround(float f)
{
int r;
__asm__ ("fstoi %1, %0" : "=f" (r) : "f" (f));
return r;
}
#define IROUND(x) iround(x)
#define IROUND_REF(f) ((int) (((f) >= 0.0F) ? ((f) + 0.5F) : ((f) - 0.5F)))
int main(void)
{
float f = -2.0;
while (f < 3.0f) {
int sparc_val = IROUND(f);
int ref_val = IROUND_REF(f);
if (sparc_val != ref_val)
printf("DIFFERENT[%f]: REF==%d SPARC==%d\n",
f, ref_val, sparc_val);
f += 0.1f;
}
return 0;
}
--------------------
which prints out things like:
--------------------
DIFFERENT[-1.900000]: REF==-2 SPARC==-1
DIFFERENT[-1.800000]: REF==-2 SPARC==-1
DIFFERENT[-1.700000]: REF==-2 SPARC==-1
DIFFERENT[-1.600000]: REF==-2 SPARC==-1
DIFFERENT[-1.000000]: REF==-1 SPARC==0
DIFFERENT[-0.900000]: REF==-1 SPARC==0
DIFFERENT[-0.800000]: REF==-1 SPARC==0
DIFFERENT[-0.700000]: REF==-1 SPARC==0
DIFFERENT[-0.600000]: REF==-1 SPARC==0
DIFFERENT[0.500000]: REF==1 SPARC==0
DIFFERENT[0.600000]: REF==1 SPARC==0
...
--------------------
So we have to remove Sparc's IROUND() definition, it's wrong.
Signed-off-by: David S. Miller <davem@davemloft.net>
Brian Paul [Sat, 28 Feb 2009 05:26:18 +0000 (22:26 -0700)]
mesa: move GLfixed type and related macros to swrast module
Fixed point is only used in swrast and sw-based drivers.
Brian Paul [Sat, 28 Feb 2009 05:21:42 +0000 (22:21 -0700)]
mesa: convert macro to inline function
Brian Paul [Sat, 28 Feb 2009 05:18:33 +0000 (22:18 -0700)]
mesa: replace FEEDBACK_TOKEN macro with _mesa_feedback_token() inline function
Brian Paul [Sat, 28 Feb 2009 05:12:31 +0000 (22:12 -0700)]
mesa: comments, whitespace, reformatting
Brian Paul [Sat, 28 Feb 2009 05:04:58 +0000 (22:04 -0700)]
mesa: remove dead code
Brian Paul [Sat, 28 Feb 2009 05:01:40 +0000 (22:01 -0700)]
mesa: move gl_attrib_node struct to attrib.c too
Brian Paul [Sat, 28 Feb 2009 04:41:26 +0000 (21:41 -0700)]
mesa: move gl_enable_attrib struct to attrib.c, the only place it's used
Brian Paul [Sat, 28 Feb 2009 04:39:04 +0000 (21:39 -0700)]
mesa: lots of updated comments, formatting clean-ups
Corbin Simpson [Sat, 28 Feb 2009 16:13:31 +0000 (08:13 -0800)]
r300-gallium: A handful of fixups.
Corbin Simpson [Sat, 28 Feb 2009 08:01:41 +0000 (00:01 -0800)]
r300-gallium: Fix C99 error.
Corbin Simpson [Sat, 28 Feb 2009 07:40:18 +0000 (23:40 -0800)]
r300-gallium: Fix RS.
I should just stop using "git stash" altogether.
Michal Krol [Sat, 28 Feb 2009 14:09:43 +0000 (15:09 +0100)]
tgsi: More descriptive sanity diagnostic messages.
Michal Krol [Sat, 28 Feb 2009 14:09:43 +0000 (15:09 +0100)]
tgsi: More descriptive sanity diagnostic messages.
Brian Paul [Fri, 27 Feb 2009 22:46:40 +0000 (15:46 -0700)]
demos: fix renderbuffer leak in progs/tests/fbotexture.c
And re-org some code for testing purposes.
Brian Paul [Fri, 27 Feb 2009 20:13:52 +0000 (13:13 -0700)]
intel: remove some unneeded buffer unmap calls
Core mesa now unmaps the buffers if needed in these cases.
Brian Paul [Fri, 27 Feb 2009 20:44:42 +0000 (13:44 -0700)]
mesa: update fragResults array in arb_output_attrib_string()
Plus add some comments.
Corbin Simpson [Fri, 27 Feb 2009 20:23:16 +0000 (12:23 -0800)]
r300-gallium: Properly split up RS into r300 and r500 variants.
Corbin Simpson [Fri, 27 Feb 2009 18:52:49 +0000 (10:52 -0800)]
radeon: Add DRM stubs.
Nothing really of note, unfortunately.
Corbin Simpson [Fri, 27 Feb 2009 18:52:09 +0000 (10:52 -0800)]
Include p_compiler.h in drm_api.h for boolean typedef.
Corbin Simpson [Fri, 27 Feb 2009 18:46:14 +0000 (10:46 -0800)]
r300-gallium: Turn true and false into TRUE and FALSE.
Match the rest of Gallium.
Brian Paul [Fri, 27 Feb 2009 20:10:45 +0000 (13:10 -0700)]
mesa: set bufObj->Pointer = NULL after unmapping
Also, ctx->Driver.UnmapBuffer can never be null, so remove conditional.
Brian Paul [Fri, 27 Feb 2009 20:04:38 +0000 (13:04 -0700)]
mesa: if a buffer object is mapped when glDeleteBuffers() is called, unmap it
Brian Paul [Fri, 27 Feb 2009 19:41:11 +0000 (12:41 -0700)]
mesa: updated comments
Brian Paul [Fri, 27 Feb 2009 19:30:21 +0000 (12:30 -0700)]
mesa: fix incorrect error handling in glBufferDataARB()
If glBufferDataARB() is called while a buffer object is currently mapped
we're supposed to unmap the current buffer, then replace it. Don't generate
an error.
Shaohua Li [Mon, 23 Feb 2009 07:19:21 +0000 (15:19 +0800)]
i915: Add support for a new G33-like chipset.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Keith Whitwell [Fri, 27 Feb 2009 19:33:17 +0000 (19:33 +0000)]
tgsi: don't dump interpolation info except for fragment shader inputs
Don't print the meaningless and confusing CONSTANT interpolation
attribute after everything else.
Brian Paul [Fri, 27 Feb 2009 18:45:06 +0000 (11:45 -0700)]
tests: new mapvbo.c test
Test that glDrawArrays() isn't effected by a glMapBuffer()/modify/glUnmapBuffer()
immediately afterward.
Corbin Simpson [Fri, 27 Feb 2009 18:15:42 +0000 (10:15 -0800)]
r300-gallium: Add RS block setup.
This is still icky, and only compile-tested.
Corbin Simpson [Fri, 27 Feb 2009 16:23:01 +0000 (08:23 -0800)]
r300-gallium: Add RS600 chipsets.
Corbin Simpson [Fri, 27 Feb 2009 05:25:06 +0000 (21:25 -0800)]
r300-gallium: A handful of tiny vfmt fixups.
Using a tab of inputs should work, but I keep getting bad results.
If only Rawhide's GDB wasn't broken...
Robert Ellison [Fri, 27 Feb 2009 07:21:07 +0000 (00:21 -0700)]
i965: texture fixes: bordered textures, fallback rendering
i965 doesn't natively support GL_CLAMP; it treats it like
GL_CLAMP_TO_EDGE, which fails conformance tests.
This fix adds a clause to the check_fallbacks() test to check
whether GL_CLAMP is in use on any enabled 2D texture. If so,
and if strict conformance is required (via INTEL_STRICT_CONFORMANCE),
a software fallback is mandated.
In addition, validate textures *before* checking for fallbacks,
rather than after; otherwise, the texture state is never validated
and can't be trusted. (In particular, if texturing is enabled and
the sampler would access any level beyond level 0 of a texture, the
sampler will segfault, because texture validation sets the firstLevel
and lastLevel fields of a texture object so that the valid levels
will be mapped and accessed correctly. If texture validation doesn't
occur, only level 0 is accessed correctly, and that only because
firstLevel and lastLevel happen to be set to 0.)
Brian Paul [Fri, 27 Feb 2009 16:45:41 +0000 (09:45 -0700)]
gallium: fix state tracker's stencil buffer test
Need to check ctx->DrawBuffer->Visual.stencilBits not ctx->Visual.stencilBits
because the later only applies to the window system buffers, not user-created
FBOs.
This, plus the previous commit, fixes progs/tests/fbotexture.c
Brian Paul [Fri, 27 Feb 2009 16:43:58 +0000 (09:43 -0700)]
gallium: add st_validate_framebuffer() driver function
Gallium only supports combined depth/stencil buffers, not separate ones.
If the user tries to create create a FBO with separate depth/stencil
renderbuffers mark the FBO as unsupported.
Keith Whitwell [Fri, 27 Feb 2009 15:10:11 +0000 (15:10 +0000)]
util: set vbuf.max_index in draw_vertex_buffer()
(cherry picked from commit
1350f2efba5eeceebe0e711db6152c29e9889ce7)
Keith Whitwell [Thu, 19 Feb 2009 14:46:23 +0000 (14:46 +0000)]
softpipe: add dumping of post-tranfsormed vertices (disabled)
David Miller [Fri, 27 Feb 2009 10:38:40 +0000 (02:38 -0800)]
mesa: Fix and re-enable sparc normal asm.
Fix a bug reported in 2003 :-)
The output vector has 4 entries, not 3.
Unconditionally emit .register directives.
Signed-off-by: David S. Miller <davem@davemloft.net>
David Miller [Fri, 27 Feb 2009 10:38:37 +0000 (02:38 -0800)]
mesa: Fix Sparc cliptest asm code and re-enable.
Stop using register %g7 since that is used by the "system" (ie. the
pthread implementation makes use of it).
Also, the projection vector can be NULL and we shouldn't try to access
it at all in _mesa_sparc_cliptest_points4_np(). ioquake3 would crash
due to this bug.
Finally, unconditionally emit the register directives and re-enable in
_mesa_init_all_sparc_transform_asm().
Signed-off-by: David S. Miller <davem@davemloft.net>
Jakob Bornecrantz [Fri, 27 Feb 2009 02:27:31 +0000 (03:27 +0100)]
intel: Use flink for global buffer ids
Also fix minor drm api change