mesa.git
15 years agogallium: only enable depth test if a depth bufffer is available
Brian Paul [Mon, 2 Mar 2009 18:27:32 +0000 (11:27 -0700)]
gallium: only enable depth test if a depth bufffer is available

15 years agomesa: remove warning/short-circuit of stencil enable w/ no stencil buffer
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.

15 years agomesa: use Stencil._Enabled field instead of Stencil.Enabled
Brian Paul [Mon, 2 Mar 2009 18:47:52 +0000 (11:47 -0700)]
mesa: use Stencil._Enabled field instead of Stencil.Enabled

15 years agomesa: add ctx->Stencil._Enabled field
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.

15 years agonouveau: Grab correct surface from temp texture for transfers.
Younes Manton [Mon, 2 Mar 2009 17:57:56 +0000 (12:57 -0500)]
nouveau: Grab correct surface from temp texture for transfers.

15 years agog3dvl: Grab surface pointer when flushing front buffer in SP winsys.
Younes Manton [Wed, 25 Feb 2009 20:09:20 +0000 (15:09 -0500)]
g3dvl: Grab surface pointer when flushing front buffer in SP winsys.

15 years agoswrast: use _EnabledCoordUnits for fixed-function texturing
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.

15 years agomesa: fixed computation of _EnabledCoordUnits
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.

15 years agomesa: clarify comments for per-unit texture bitfields
Brian Paul [Sun, 1 Mar 2009 01:36:48 +0000 (18:36 -0700)]
mesa: clarify comments for per-unit texture bitfields

15 years agomesa: move texture_override() code into calling loop
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.

15 years agomesa: move update_texture_compare_function() call out of loop
Brian Paul [Sun, 1 Mar 2009 00:02:49 +0000 (17:02 -0700)]
mesa: move update_texture_compare_function() call out of loop

15 years agomesa: remove unused AUX buffers
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.

15 years agomesa: remove VF_SOURCES, simplify MATH_XFORM_SOURCES
Brian Paul [Mon, 2 Mar 2009 15:05:30 +0000 (08:05 -0700)]
mesa: remove VF_SOURCES, simplify MATH_XFORM_SOURCES

15 years agor300-gallium: Clean up casts and indents.
Corbin Simpson [Mon, 2 Mar 2009 02:24:40 +0000 (18:24 -0800)]
r300-gallium: Clean up casts and indents.

15 years agor300-gallium: Split off invariant state.
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

15 years agor300-gallium: Add RADEON_NO_TCL debugging option.
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.

15 years agor300-gallium: Fix register count.
Corbin Simpson [Sat, 28 Feb 2009 22:01:28 +0000 (14:01 -0800)]
r300-gallium: Fix register count.

15 years agor300-gallium: Fix hardlocks on trivial/clear.
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.

15 years agor300-gallium: Use rs_state emit for r300_surface, move a few things around.
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.

15 years agor300-gallium: Move maths from r300_state to r300_state_inlines.
Corbin Simpson [Sat, 28 Feb 2009 19:20:26 +0000 (11:20 -0800)]
r300-gallium: Move maths from r300_state to r300_state_inlines.

15 years agomesa: just re-order some parts and update comments in sources.mak
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

15 years agomesa: rename, reorder FRAG_RESULT_x tokens
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).

15 years agomesa: add gallium state tracker sources to ALL_SOURCES
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.

15 years agomesa: convert some #defines to enums
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.

15 years agodemos: add progs/glsl/shadow_sampler.c to test GLSL shadow2D(), etc.
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.

15 years agomesa: move _GenFlags = 0x0 to texgen loop
Brian Paul [Fri, 27 Feb 2009 23:44:28 +0000 (16:44 -0700)]
mesa: move _GenFlags = 0x0 to texgen loop

15 years agomesa: use fp pointer in _tnl_InvalidateState()
Brian Paul [Fri, 27 Feb 2009 22:42:35 +0000 (15:42 -0700)]
mesa: use fp pointer in _tnl_InvalidateState()

15 years agomesa: fix remaining FEEDBACK_TOKEN macros
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>
15 years agor300-gallium: Cleanup color formats.
Corbin Simpson [Sat, 28 Feb 2009 17:55:09 +0000 (09:55 -0800)]
r300-gallium: Cleanup color formats.

15 years agor300-gallium: Be more Gallium-ish in some of the math.
Corbin Simpson [Sat, 28 Feb 2009 17:12:16 +0000 (09:12 -0800)]
r300-gallium: Be more Gallium-ish in some of the math.

15 years agor300-gallium: Move all state translators to r300_state_inlines.
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.

15 years agomesa: move #include "bitset.h" out of mtypes.h - not needed in core Mesa
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

15 years agomesa: add a prototype to silence warnings
Brian Paul [Sat, 28 Feb 2009 17:06:55 +0000 (10:06 -0700)]
mesa: add a prototype to silence warnings

15 years agomesa: Sparc's IROUND() optimization is invalid.
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>
15 years agomesa: move GLfixed type and related macros to swrast module
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.

15 years agomesa: convert macro to inline function
Brian Paul [Sat, 28 Feb 2009 05:21:42 +0000 (22:21 -0700)]
mesa: convert macro to inline function

15 years agomesa: replace FEEDBACK_TOKEN macro with _mesa_feedback_token() 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

15 years agomesa: comments, whitespace, reformatting
Brian Paul [Sat, 28 Feb 2009 05:12:31 +0000 (22:12 -0700)]
mesa: comments, whitespace, reformatting

15 years agomesa: remove dead code
Brian Paul [Sat, 28 Feb 2009 05:04:58 +0000 (22:04 -0700)]
mesa: remove dead code

15 years agomesa: move gl_attrib_node struct to attrib.c too
Brian Paul [Sat, 28 Feb 2009 05:01:40 +0000 (22:01 -0700)]
mesa: move gl_attrib_node struct to attrib.c too

15 years agomesa: move gl_enable_attrib struct to attrib.c, the only place it's used
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

15 years agomesa: lots of updated comments, formatting clean-ups
Brian Paul [Sat, 28 Feb 2009 04:39:04 +0000 (21:39 -0700)]
mesa: lots of updated comments, formatting clean-ups

15 years agor300-gallium: A handful of fixups.
Corbin Simpson [Sat, 28 Feb 2009 16:13:31 +0000 (08:13 -0800)]
r300-gallium: A handful of fixups.

15 years agor300-gallium: Fix C99 error.
Corbin Simpson [Sat, 28 Feb 2009 08:01:41 +0000 (00:01 -0800)]
r300-gallium: Fix C99 error.

15 years agor300-gallium: Fix RS.
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.

15 years agotgsi: More descriptive sanity diagnostic messages.
Michal Krol [Sat, 28 Feb 2009 14:09:43 +0000 (15:09 +0100)]
tgsi: More descriptive sanity diagnostic messages.

15 years agodemos: fix renderbuffer leak in progs/tests/fbotexture.c
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.

15 years agointel: remove some unneeded buffer unmap calls
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.

15 years agomesa: update fragResults array in arb_output_attrib_string()
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.

15 years agor300-gallium: Properly split up RS into r300 and r500 variants.
Corbin Simpson [Fri, 27 Feb 2009 20:23:16 +0000 (12:23 -0800)]
r300-gallium: Properly split up RS into r300 and r500 variants.

15 years agoradeon: Add DRM stubs.
Corbin Simpson [Fri, 27 Feb 2009 18:52:49 +0000 (10:52 -0800)]
radeon: Add DRM stubs.

Nothing really of note, unfortunately.

15 years agoInclude p_compiler.h in drm_api.h for boolean typedef.
Corbin Simpson [Fri, 27 Feb 2009 18:52:09 +0000 (10:52 -0800)]
Include p_compiler.h in drm_api.h for boolean typedef.

15 years agor300-gallium: Turn true and false into TRUE and FALSE.
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.

15 years agomesa: set bufObj->Pointer = NULL after unmapping
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.

15 years agomesa: if a buffer object is mapped when glDeleteBuffers() is called, unmap it
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

15 years agomesa: updated comments
Brian Paul [Fri, 27 Feb 2009 19:41:11 +0000 (12:41 -0700)]
mesa: updated comments

15 years agomesa: fix incorrect error handling in glBufferDataARB()
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.

15 years agoi915: Add support for a new G33-like chipset.
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>
15 years agotgsi: don't dump interpolation info except for fragment shader inputs
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.

15 years agotests: new mapvbo.c test
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.

15 years agor300-gallium: Add RS block setup.
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.

15 years agor300-gallium: Add RS600 chipsets.
Corbin Simpson [Fri, 27 Feb 2009 16:23:01 +0000 (08:23 -0800)]
r300-gallium: Add RS600 chipsets.

15 years agor300-gallium: A handful of tiny vfmt fixups.
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...

15 years agoi965: texture fixes: bordered textures, fallback rendering
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.)

15 years agogallium: fix state tracker's stencil buffer test
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

15 years agogallium: add st_validate_framebuffer() driver function
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.

15 years agoutil: set vbuf.max_index in draw_vertex_buffer()
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)

15 years agosoftpipe: add dumping of post-tranfsormed vertices (disabled)
Keith Whitwell [Thu, 19 Feb 2009 14:46:23 +0000 (14:46 +0000)]
softpipe: add dumping of post-tranfsormed vertices (disabled)

15 years agomesa: Fix and re-enable sparc normal asm.
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>
15 years agomesa: Fix Sparc cliptest asm code and re-enable.
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>
15 years agointel: Use flink for global buffer ids
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

15 years agoegl: Fix for minor api change
Jakob Bornecrantz [Fri, 27 Feb 2009 02:25:48 +0000 (03:25 +0100)]
egl: Fix for minor api change

15 years agost/drm: Seperate get handle for global buffer ids
Jakob Bornecrantz [Fri, 27 Feb 2009 02:25:08 +0000 (03:25 +0100)]
st/drm: Seperate get handle for global buffer ids

15 years agomesa: Fix DEBUG_MATH build on sparc.
David S. Miller [Fri, 27 Feb 2009 01:59:04 +0000 (18:59 -0700)]
mesa: Fix DEBUG_MATH build on sparc.

Need to use '__asm__' instead of plain 'asm'.

math/m_debug_clip.c: In function ‘test_cliptest_function’:
math/m_debug_clip.c:253: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘asm’
math/m_debug_clip.c:253: warning: implicit declaration of function ‘asm’

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agodocs: add SPARC assembly updates
Brian Paul [Fri, 27 Feb 2009 01:37:26 +0000 (18:37 -0700)]
docs: add SPARC assembly updates

15 years agointel: no-op the intel_finish_render_texture() function
Brian Paul [Fri, 27 Feb 2009 01:42:00 +0000 (18:42 -0700)]
intel: no-op the intel_finish_render_texture() function

It doesn't have to do anything.  See comments for more details.

15 years agointel: check texture formats in intel_validate_framebuffer()
Brian Paul [Thu, 26 Feb 2009 23:51:50 +0000 (16:51 -0700)]
intel: check texture formats in intel_validate_framebuffer()

We can't render into any texture format; only certain formats.
Check that render-to-texture's format is renderable in the
intel_validate_framebuffer()

There seems to be a bug somewhere that causes rendering to rgb565 textures
to be corrupted so disallow that for now.  This will be revisted.

15 years agointel: updated comment, some debug code (disabled)
Brian Paul [Thu, 26 Feb 2009 23:44:42 +0000 (16:44 -0700)]
intel: updated comment, some debug code (disabled)

15 years agoi965: rename draw_regions -> color_regions
root [Thu, 26 Feb 2009 22:04:20 +0000 (15:04 -0700)]
i965: rename draw_regions -> color_regions

Be a little more specific about what these are.

15 years agodemos: add a fourth test case to VBO test for position/color in different VBOs
Brian Paul [Thu, 26 Feb 2009 21:51:41 +0000 (14:51 -0700)]
demos: add a fourth test case to VBO test for position/color in different VBOs

15 years agomesa: avoid extraneous calls to ctx->Driver.BindFramebuffer()
Brian Paul [Thu, 26 Feb 2009 21:49:24 +0000 (14:49 -0700)]
mesa: avoid extraneous calls to ctx->Driver.BindFramebuffer()

Only call this driver function when we really need to bind different buffers.

15 years agoi965: add missing init for region->width
Brian Paul [Thu, 26 Feb 2009 21:02:52 +0000 (14:02 -0700)]
i965: add missing init for region->width

This doesn't seem to really effect anything but seeing width=0 in drawing
regions was confusing.

15 years agomesa: replace old prog_instruction::Sampler field with Aux field
Brian Paul [Tue, 24 Feb 2009 00:50:55 +0000 (17:50 -0700)]
mesa: replace old prog_instruction::Sampler field with Aux field

The i965 driver needs an extra instruction field for color output information.
It was using the Sampler field for this.  Use the Aux field instead.  This
will probaby be revisited at some point...

15 years agoi965: whitespace/indentation fixes
Brian Paul [Mon, 23 Feb 2009 23:39:22 +0000 (16:39 -0700)]
i965: whitespace/indentation fixes

15 years agomesa: Resurrect SPARC asm code.
David S. Miller [Thu, 26 Feb 2009 13:35:15 +0000 (05:35 -0800)]
mesa: Resurrect SPARC asm code.

This rewrites the sparc GLAPI code so that it's PIC friendly and works
with all of the TLS/PTHREADS/64-bit/32-bit combinations properly.

As a result we can turn SPARC asm back on.  Currently it's only
enabled on Linux, as that's the only place where I can test this
stuff out.

For the moment the cliptest SPARC asm routines are disabled as they
are non-working.  The problem is that they use register %g7 as a
temporary which is where the threading libraries store the thread
pointer on SPARC.  I will fix that code up in a future change as it's
a pretty important routine to optimize.

Like x86 we do the runtime patch as a pthread once-invoked initializer
in init_glapi_relocs().

Unlike x86, however, our GLAPI stubs on SPARC are just two instruction
sequences that branch to a trampoline and put the GLAPI offset into a
register.  The trampoline is what we run-time patch.  The stubs thus
all look like:

glFoo:
ba __glapi_sparc_foo_stub
 sethi GLAPI_OFFSET(glFOO) * PTR_SIZE, %g3

This actually makes generate_entrypoint() a lot simpler on SPARC.  For
this case in generate_entrypoint() we generate stubs using a 'call'
instead of the 'ba' above to make sure it can reach.

In order to get a proper tail call going here, in the unpatched case,
we do several tricks.  To get the current PC, for example, we save the
return address register into a temporary, do a call, save the return
address register written by the call to another temporary, then
restore the original return address register value.  This is to
avoid having to allocate a stack frame.

This is necessary for PIC address formation.

This new GLAPI scheme lets us get rid of the ugly SPARC GLAPI hacks in
__glXInitialize() and one_time_init().

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agointel: Revert disable of accelerated Bitmap, which slipped in with spans stuff.
Eric Anholt [Thu, 26 Feb 2009 19:45:07 +0000 (11:45 -0800)]
intel: Revert disable of accelerated Bitmap, which slipped in with spans stuff.

15 years agoFix "cast to pointer from integer of different size"
Tomas Carnecky [Thu, 26 Feb 2009 06:31:35 +0000 (07:31 +0100)]
Fix "cast to pointer from integer of different size"

The script generates code like:
   pixels = (const GLvoid *) (ptr_is_null != 0) ? NULL : (pc + 80);
which causes the above mentioned warning. Add parenthesis around the
whole expression to fix it.

Signed-off-by: Tomas Carnecky <tom@dbservice.com>
15 years agoi965: fix for RHW workaround
Xiang, Haihao [Thu, 26 Feb 2009 09:31:01 +0000 (17:31 +0800)]
i965: fix for RHW workaround

It is possible that an object whose vertices all are outside of a
view plane is passed to clip thread due to the RHW workaround. This
object should be rejected by clip thread. Fix bug #19879

15 years agointel: Disable creating DRI2 FBconfigs with depth size != color size.
Eric Anholt [Thu, 26 Feb 2009 08:18:46 +0000 (00:18 -0800)]
intel: Disable creating DRI2 FBconfigs with depth size != color size.

While it's a nice idea to be able to allow clients to choose a smaller
(or bigger for 16bpp screens!) depth size, right now DRI2 hands back a buffer
with a size that matches the drawable, rather than being based off of the
visual.  This led to problems in readback as parts of the driver disagreed
on what format the depth buffer was really in.

Fixes the remainder of bug #19447.

15 years agointel: Add span code for z24 without stencil.
Eric Anholt [Thu, 26 Feb 2009 07:58:38 +0000 (23:58 -0800)]
intel: Add span code for z24 without stencil.

It seems that in this case the Mesa code is handing us x8z24 values instead
of z24s8 values, so we need to not do the rotation.  Fixes half of OGLconform
depthrange.c.

Bug #19447.

15 years agointel: make template wrappers for the spans templates.
Eric Anholt [Thu, 26 Feb 2009 07:54:40 +0000 (23:54 -0800)]
intel: make template wrappers for the spans templates.

This is insanity, but so is copying the same blocks containing the actual
interesting code in the file three times each for the different tile formats.

15 years agointel: Fix up x8r8g8b8 renderbuffer format so that alpha=1 spans code happens.
Eric Anholt [Thu, 26 Feb 2009 06:54:51 +0000 (22:54 -0800)]
intel: Fix up x8r8g8b8 renderbuffer format so that alpha=1 spans code happens.

I was lured into a false sense of security by the fact that the spans code was
already there, and a bunch of tests didn't catch the problem.  oglconform's
mask.c did, though.

Bug #19970.

15 years agoautoconf: Fixup EGL build
Dan Nicholson [Thu, 26 Feb 2009 01:45:34 +0000 (17:45 -0800)]
autoconf: Fixup EGL build

This gets the needed libraries pulled in for libEGL for autoconf.

15 years agoi965: Rename CMD_CONST_BUFFER_STATE to the CS_URB_STATE used in the docs.
Eric Anholt [Wed, 25 Feb 2009 20:41:25 +0000 (12:41 -0800)]
i965: Rename CMD_CONST_BUFFER_STATE to the CS_URB_STATE used in the docs.

15 years agoR300: Add support for RS600 chips
Alex Deucher [Wed, 25 Feb 2009 22:30:56 +0000 (17:30 -0500)]
R300: Add support for RS600 chips

15 years agonouveau: nv04-nv40 texture transfer.
Younes Manton [Wed, 25 Feb 2009 17:55:26 +0000 (12:55 -0500)]
nouveau: nv04-nv40 texture transfer.

15 years agog3dvl: Update winsys stuff.
Younes Manton [Fri, 20 Feb 2009 19:51:31 +0000 (14:51 -0500)]
g3dvl: Update winsys stuff.

15 years agoegl: remove compiler flags from CFLAGS
Brian Paul [Wed, 25 Feb 2009 15:45:08 +0000 (08:45 -0700)]
egl: remove compiler flags from CFLAGS

The incoming CFLAGS already has -fPIC and -Wall.  Don't want -g here either.

15 years agoegl: use new EGL_LIB_DEPS to pass library dependencies to mklib when building libEGL
Brian Paul [Wed, 25 Feb 2009 15:41:13 +0000 (08:41 -0700)]
egl: use new EGL_LIB_DEPS to pass library dependencies to mklib when building libEGL

EGL_LIB_DEPS may need fine-tuning for some platforms.  It's only defined
in configs/default ATM.

15 years agoegl: add comment/reminder to fix the CFLAGS in this Makefile
Brian Paul [Wed, 25 Feb 2009 14:58:17 +0000 (07:58 -0700)]
egl: add comment/reminder to fix the CFLAGS in this Makefile