mesa.git
13 years agometa: fix broken sRGB mipmap generation
Brian Paul [Sat, 17 Sep 2011 17:26:54 +0000 (11:26 -0600)]
meta: fix broken sRGB mipmap generation

If we're generating a mipmap for an sRGB texture we need to bypass
sRGB->linear conversion.  Otherwise the destination mipmap level
(drawn with a textured quad) will have the wrong colors.
If we can't turn of sRGB->linear conversion (GL_EXT_texture_sRGB_decode)
we need to use the software fallback for mipmap generation.

Note: This is a candidate for the 7.11 branch.

13 years agomesa: fix PACK_COLOR_5551(), PACK_COLOR_1555() macros
Brian Paul [Tue, 20 Sep 2011 00:25:38 +0000 (18:25 -0600)]
mesa: fix PACK_COLOR_5551(), PACK_COLOR_1555() macros

The 1-bit alpha channel was incorrectly encoded.  Previously, any non-zero
alpha value for the ubyte alpha value would set A=1.  Instead, use the
most significant bit of the ubyte alpha to determine the A bit.  This is
consistent with the other channels and other OpenGL implementations.

Note: This is a candidate for the 7.11 branch.

Reviewed-by: Michel Dänzer <michel@daenzer.net>
13 years agomesa: move last bits of GLchan stuff into swrast
Brian Paul [Sat, 17 Sep 2011 22:31:03 +0000 (16:31 -0600)]
mesa: move last bits of GLchan stuff into swrast

This removes the last remnants of the GLchan datatype and associated
macros out of core Mesa and into swrast.

13 years agomesa: remove CHAN_TYPE cruft from debug.c
Brian Paul [Sat, 17 Sep 2011 22:22:47 +0000 (16:22 -0600)]
mesa: remove CHAN_TYPE cruft from debug.c

13 years agomesa: remove unused interp/stride chan macros
Brian Paul [Sat, 17 Sep 2011 22:20:18 +0000 (16:20 -0600)]
mesa: remove unused interp/stride chan macros

13 years agomesa: remove unused UNCLAMPED_FLOAT_TO_RGB_CHAN() macro
Brian Paul [Sat, 17 Sep 2011 22:17:46 +0000 (16:17 -0600)]
mesa: remove unused UNCLAMPED_FLOAT_TO_RGB_CHAN() macro

13 years agoradeon: use _mesa_unclamped_float_rgba_to_ubyte()
Brian Paul [Sat, 17 Sep 2011 22:12:33 +0000 (16:12 -0600)]
radeon: use _mesa_unclamped_float_rgba_to_ubyte()

13 years agor200: use _mesa_unclamped_float_rgba_to_ubyte()
Brian Paul [Sat, 17 Sep 2011 22:12:27 +0000 (16:12 -0600)]
r200: use _mesa_unclamped_float_rgba_to_ubyte()

13 years agomesa: remove unused <type>_TO_CHAN() macros
Brian Paul [Sat, 17 Sep 2011 22:08:27 +0000 (16:08 -0600)]
mesa: remove unused <type>_TO_CHAN() macros

13 years agomesa: convert _mesa_unpack_color_span_chan() to ubyte
Brian Paul [Sat, 17 Sep 2011 21:55:03 +0000 (15:55 -0600)]
mesa: convert _mesa_unpack_color_span_chan() to ubyte

13 years agomesa: replace GLchan with GLubyte in texcompress_s3tc.c
Brian Paul [Sat, 17 Sep 2011 21:49:44 +0000 (15:49 -0600)]
mesa: replace GLchan with GLubyte in texcompress_s3tc.c

13 years agomesa/gallium: remove GLchan from latc, rgtc code
Brian Paul [Sat, 17 Sep 2011 21:47:03 +0000 (15:47 -0600)]
mesa/gallium: remove GLchan from latc, rgtc code

13 years agomesa: remove GLchan in texcompress_fxt1.c
Brian Paul [Sat, 17 Sep 2011 21:41:42 +0000 (15:41 -0600)]
mesa: remove GLchan in texcompress_fxt1.c

13 years agomesa: s/_mesa_make_temp_chan_image()/_mesa_make_temp_ubyte_image()
Brian Paul [Sat, 17 Sep 2011 21:36:13 +0000 (15:36 -0600)]
mesa: s/_mesa_make_temp_chan_image()/_mesa_make_temp_ubyte_image()

Another step toward eliminating the GLchan type.

13 years agomesa: move _mesa_upscale_teximage2d() to texcompress_fxt1.c
Brian Paul [Sat, 17 Sep 2011 21:25:33 +0000 (15:25 -0600)]
mesa: move _mesa_upscale_teximage2d() to texcompress_fxt1.c

Was used by no other code.

13 years agomesa: s/GLchan/GLubyte/ in mipmap generation code
Brian Paul [Sat, 17 Sep 2011 21:22:28 +0000 (15:22 -0600)]
mesa: s/GLchan/GLubyte/ in mipmap generation code

13 years agomake: Don't use builtin_stubs.cpp for standalone GLSL compiler.
Kenneth Graunke [Tue, 20 Sep 2011 06:06:53 +0000 (23:06 -0700)]
make: Don't use builtin_stubs.cpp for standalone GLSL compiler.

builtin_stubs.cpp is only supposed to be used for builtin_compiler.  It
contains a stub version of _mesa_glsl_initialize_functions() that does
nothing.

libglsl.a already contains builtin_function.cpp, the generated file that
contains a version of _mesa_glsl_initialize_functions() that actually
initializes all the built-in functions.

By mistakenly linking to builtin_stubs, glsl_compiler and glsl_test are
unable to compile any shaders that use built-in functions.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
13 years agoGLES2/gl2ext: upgrade to gl2ext.h version 15049
Ian Romanick [Tue, 20 Sep 2011 22:54:52 +0000 (15:54 -0700)]
GLES2/gl2ext: upgrade to gl2ext.h version 15049

13 years agomesa: Don't expose compressed paletted formats via GL_{NUM_,}COMPRESSED_TEXTURE_FORMATS
Ian Romanick [Wed, 14 Sep 2011 16:49:09 +0000 (11:49 -0500)]
mesa: Don't expose compressed paletted formats via GL_{NUM_,}COMPRESSED_TEXTURE_FORMATS

Fixes a bug introduced by commit faf5d65.  These formats should only
be exposed in OpenGL ES 1.x.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: Xun Fang <xunx.fang@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40860

13 years agogallium: remove trailing comma to silence warning
Brian Paul [Tue, 20 Sep 2011 22:36:21 +0000 (16:36 -0600)]
gallium: remove trailing comma to silence warning

13 years agoGallium: Increase PIPE_MAX_CLIP_PLANES to 8.
Paul Berry [Thu, 15 Sep 2011 21:37:11 +0000 (14:37 -0700)]
Gallium: Increase PIPE_MAX_CLIP_PLANES to 8.

Since Mesa is now capable of supporting up to 8 clipping planes
instead of 6, this patch updates Gallium internals to support 8
clipping planes as well.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoGallium: remove unnecessary ifdef for MAX_CLIPPED_VERTICES.
Paul Berry [Thu, 8 Sep 2011 01:18:45 +0000 (18:18 -0700)]
Gallium: remove unnecessary ifdef for MAX_CLIPPED_VERTICES.

draw_pipe_clip.c contained an ifdef to ensure that its local
definition of MAX_CLIPPED_VERTICES would not take effect if the global
MAX_CLIPPED_VERTICES (defined in src/mesa/main/config.h) was already
defined.  This was unnecessary because draw_pipe_clip.c doesn't
directly or indirectly include src/mesa/main/config.h.  Removed the
ifdef to reduce confusion.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agoIncrease MAX_CLIP_PLANES to 8
Paul Berry [Thu, 8 Sep 2011 01:28:32 +0000 (18:28 -0700)]
Increase MAX_CLIP_PLANES to 8

This will allow drivers to increase ctx->Const.MaxClipPlanes to 8,
which is required for GLSL-1.30 compliance.

No driver behavior should be affected.  However, many data structures
use MAX_CLIP_PLANES as an array size, so these arrays will get
slightly larger.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoHardcode the default value of ctx->Const.MaxClipPlanes to 6.
Paul Berry [Thu, 8 Sep 2011 01:24:00 +0000 (18:24 -0700)]
Hardcode the default value of ctx->Const.MaxClipPlanes to 6.

Previously this value was set to MAX_CLIP_PLANES, which is defined to
be 6.  But MAX_CLIP_PLANES needs to be increased to 8 to support
GLSL-1.30-compliant drivers.  This patch hard-codes the default value
of ctx->Const.MaxClipPlanes to 6, so that when MAX_CLIP_PLANES is
increased, it won't affect drivers that do not support 8 clip planes.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Remove bogus assertion on MAX_CLIP_PLANES.
Paul Berry [Tue, 13 Sep 2011 22:40:07 +0000 (15:40 -0700)]
i965: Remove bogus assertion on MAX_CLIP_PLANES.

This patch removes the assertion "MAX_CLIP_PLANES == 6" from the i965
driver.  This assertion is unnecessary; nothing in the driver requires
MAX_CLIP_PLANES to be 6.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agomesa: Update clipping code to use ctx->Const.MaxClipPlanes.
Paul Berry [Thu, 8 Sep 2011 00:44:28 +0000 (17:44 -0700)]
mesa: Update clipping code to use ctx->Const.MaxClipPlanes.

To support GLSL 1.30, we will need to increase MAX_CLIP_PLANES to 8.
To avoid breaking drivers that do not yet support 8 clip planes, this
patch modifies the Mesa core code that pertains to clipping to use
ctx->Const.MaxClipPlanes rather than MAX_CLIP_PLANES, since
ctx->Const.MaxClipPlanes will remain 6 for drivers that only support 6
clip planes.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoscons: Unbreak mingw build.
José Fonseca [Tue, 20 Sep 2011 19:50:27 +0000 (20:50 +0100)]
scons: Unbreak mingw build.

13 years agoscons: MacOSX build fixes.
José Fonseca [Tue, 20 Sep 2011 19:40:05 +0000 (20:40 +0100)]
scons: MacOSX build fixes.

13 years agoglsl_to_tgsi: implement ir_binop_all_equal and ir_binop_any_nequal for native integers
Bryan Cain [Mon, 19 Sep 2011 21:46:44 +0000 (16:46 -0500)]
glsl_to_tgsi: implement ir_binop_all_equal and ir_binop_any_nequal for native integers

13 years agoi965/vs: Add support for compute-to-MRF.
Eric Anholt [Tue, 6 Sep 2011 20:21:24 +0000 (13:21 -0700)]
i965/vs: Add support for compute-to-MRF.

Removes 1.8% of the instructions from 97% of the vertex shaders in
shader-db.

13 years agoi965/vs: Do VUE writes using the MRF file instead of hardware register.
Eric Anholt [Tue, 6 Sep 2011 19:32:33 +0000 (12:32 -0700)]
i965/vs: Do VUE writes using the MRF file instead of hardware register.

We'll only do compute-to-MRF on accesses to this file.

13 years agoi965/vs: Handle destinations in the MRF file.
Eric Anholt [Tue, 6 Sep 2011 19:29:15 +0000 (12:29 -0700)]
i965/vs: Handle destinations in the MRF file.

We've been referencing MRFs through the HW_REG file so far, but that
makes it harder to handle compute-to-MRF and similar optimizations.

13 years agoi965/vs: Add a function for how many MRFs get written as part of a SEND.
Eric Anholt [Tue, 6 Sep 2011 19:26:42 +0000 (12:26 -0700)]
i965/vs: Add a function for how many MRFs get written as part of a SEND.

This will be used for compute-to-mrf, which needs to know when MRFs
get overwritten.

13 years agoi965/vs: Remove dead fields of src_reg.
Eric Anholt [Tue, 6 Sep 2011 18:56:53 +0000 (11:56 -0700)]
i965/vs: Remove dead fields of src_reg.

These were copy and pasted from the FS, and are never used.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965/vs: Add support for simple algebraic optimizations.
Eric Anholt [Fri, 2 Sep 2011 22:18:29 +0000 (15:18 -0700)]
i965/vs: Add support for simple algebraic optimizations.

We generate silly code for array access, and it's easier to generally
support the cleanup than to specifically avoid the bad code in each
place we might generate it.

Removes 4.6% of instructions from 41.6% of shaders in shader-db,
particularly savage2/hon and unigine.

v2: Fixes by Ken: Make is_zero/one member functions, and fix a
    progress flag.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoi965: Fix polygon stipple offset state flagging.
Eric Anholt [Mon, 19 Sep 2011 16:26:50 +0000 (09:26 -0700)]
i965: Fix polygon stipple offset state flagging.

_NEW_WINDOW_POS wasn't a real Mesa state flag, but we were missing
_NEW_BUFFERS to update the stipple offset when FBO binding or window
size changed, and _NEW_POLYGON to update when stippling gets enabled.

Fixes oglconform's tristrip test.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
13 years agoi965: Add missing _NEW_POLYGON flag to polygon stipple upload.
Eric Anholt [Mon, 19 Sep 2011 16:25:49 +0000 (09:25 -0700)]
i965: Add missing _NEW_POLYGON flag to polygon stipple upload.

Because we skip the pattern upload when stippling is disabled, we need
to check again when it might have been turned on.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
13 years agoi965: Fix compiler warnings.
Eric Anholt [Tue, 20 Sep 2011 17:19:50 +0000 (10:19 -0700)]
i965: Fix compiler warnings.

13 years agomesa: fix error handling for glMaterial*
Yuanhan Liu [Tue, 20 Sep 2011 05:32:50 +0000 (13:32 +0800)]
mesa: fix error handling for glMaterial*

Trigger GL_INVALID_ENUM error if the face paramter is not a valid value.

Trigger GL_INVALID_VALUE error if the GL_SHININESS value is out side
[0, ctx->Constant.MaxShiniess].

v2: fix the max shininess value.

v3: suggested by Brian, move the face check into glMaterialfv function
    to reduce code duplicate. Also, refactor the error message.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agost/egl: add support for null platform
Chia-I Wu [Tue, 20 Sep 2011 06:01:45 +0000 (14:01 +0800)]
st/egl: add support for null platform

The backend calls null_sw_create() to create sw_winsys.  And that is
pretty much it...

13 years agoegl: add null platform
Chia-I Wu [Tue, 20 Sep 2011 06:01:26 +0000 (14:01 +0800)]
egl: add null platform

The null platform has no window or pixmap surface (but pbuffer surface).
And the only valid display is EGL_DEFAULT_DISPLAY.  It is useful for
offscreen rendering.  It works everywhere becase no window system is
required.

13 years agoconfigs: remove rest of APP_LIB_DEPS lines
Dave Airlie [Tue, 20 Sep 2011 07:22:59 +0000 (08:22 +0100)]
configs: remove rest of APP_LIB_DEPS lines

pointed out by GArik_ on #radeon.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agoi965/fs: Implement texelFetch() on Gen4.
Kenneth Graunke [Tue, 6 Sep 2011 23:39:01 +0000 (16:39 -0700)]
i965/fs: Implement texelFetch() on Gen4.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965/fs: Implement texelFetch() on Ivybridge.
Kenneth Graunke [Fri, 26 Aug 2011 00:43:58 +0000 (17:43 -0700)]
i965/fs: Implement texelFetch() on Ivybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965/fs: Implement texelFetch() on Ironlake and Sandybridge.
Kenneth Graunke [Fri, 26 Aug 2011 00:13:37 +0000 (17:13 -0700)]
i965/fs: Implement texelFetch() on Ironlake and Sandybridge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoglapi: Update generated file modified by previous commit
Ian Romanick [Tue, 6 Sep 2011 20:05:15 +0000 (13:05 -0700)]
glapi: Update generated file modified by previous commit

13 years agoglapi: Don't emit remap data for individual extensions
Ian Romanick [Tue, 6 Sep 2011 20:02:13 +0000 (13:02 -0700)]
glapi: Don't emit remap data for individual extensions

All of the extensions actually supported by Mesa have been remapped by
remap.c for a long time.  Emitting all of these data structures is
just clutter.

Drivers that need additional functions remapped, should add
'offset="assign"' to the function definition in the .xml file.

The changes to remap_helper.h are in a follow-on ~8700 line patch that
would surely be rejected by the mailing list.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chia-I Wu <olv@lunarg.com>
13 years agomesa: Delete stale comment about MESAX extensions
Ian Romanick [Sat, 20 Aug 2011 21:17:45 +0000 (14:17 -0700)]
mesa: Delete stale comment about MESAX extensions

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
13 years agomesa: Replace _mesa_rgba_logicop_enabled(ctx) with ctx->Color.ColorLogicOpEnabled
Ian Romanick [Fri, 9 Sep 2011 21:27:38 +0000 (14:27 -0700)]
mesa: Replace _mesa_rgba_logicop_enabled(ctx) with ctx->Color.ColorLogicOpEnabled

Since GL_EXT_blend_logic_op is removed, _mesa_rgba_logicop_enabled(ctx)
just returns ctx->Color.ColorLogicOpEnabled.  That seems kind of silly.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
13 years agomesa: Use ColorLogicOpEnabled instead of _LogicOpEnabled
Ian Romanick [Fri, 9 Sep 2011 21:23:15 +0000 (14:23 -0700)]
mesa: Use ColorLogicOpEnabled instead of _LogicOpEnabled

Since GL_EXT_blend_logic_op is removed, _LogicOpEnabled and
ColorLogicOpEnabled always have the same value.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
13 years agomesa: Remove support for GL_EXT_blend_logic_op
Ian Romanick [Fri, 9 Sep 2011 21:14:42 +0000 (14:14 -0700)]
mesa: Remove support for GL_EXT_blend_logic_op

Support is removed for four reasons:

1. The implementation was broken with respect to separate blend
equations.  The GL_EXT_blend_equation_separate spec says:

    "If EXT_blend_logic_op and EXT_blend_equation_separate are both
    supported, the logic op blend equation should be supported separately
    for RGB and alpha as with the other blend equation modes."

But Mesa's implementation of GL_LOGIC_OP specifically forbids this.

2. No hardware supported by Mesa can support separate blend equations
involving GL_LOGIC_OP.

3. No applications could be found that use this extension.

4. No other Linux OpenGL drivers support this extension.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Cc: Brian Paul <brianp@vmware.com>
13 years agost/mesa: Remove support for GL_EXT_blend_logic_op
Ian Romanick [Fri, 9 Sep 2011 21:07:54 +0000 (14:07 -0700)]
st/mesa: Remove support for GL_EXT_blend_logic_op

It was broken, and it isn't really useful anyway.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Cc: Brian Paul <brianp@vmware.com>
13 years agomesa: Remove unused _mesa_enable_imaging_extensions function
Ian Romanick [Thu, 8 Sep 2011 16:58:13 +0000 (09:58 -0700)]
mesa: Remove unused _mesa_enable_imaging_extensions function

The last user of this function was driInitExtensions, and that function
was removed in a previous commit.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
13 years agoautogen.sh: Honor NOCONFIGURE environment variable
Colin Walters [Sat, 17 Sep 2011 15:21:30 +0000 (11:21 -0400)]
autogen.sh: Honor NOCONFIGURE environment variable

See http://people.gnome.org/~walters/docs/build-api.txt

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa: Throw an error when starting conditional render on an active query.
Eric Anholt [Fri, 9 Sep 2011 00:17:31 +0000 (17:17 -0700)]
mesa: Throw an error when starting conditional render on an active query.

From the NV_conditional_render spec:

    BeginQuery sets the active query object name for the query type given by
    <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
    active query object name for <target> is non-zero, if <id> is the active
    query object name for any query type, or if <id> is the active query
    object for condtional rendering (Section 2.X), the error INVALID OPERATION
    is generated.

Fixes piglit nv_conditional_render-begin-while-active.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Throw an error instead of asserting for condrender with query == 0.
Eric Anholt [Thu, 8 Sep 2011 23:52:44 +0000 (16:52 -0700)]
mesa: Throw an error instead of asserting for condrender with query == 0.

From the NV_conditional_render spec:

    BeginQuery sets the active query object name for the query type given by
    <target> to <id>.  If BeginQuery is called with an <id> of zero, if the
    active query object name for <target> is non-zero, if <id> is the active
    query object name for any query type, or if <id> is the active query
    object for condtional rendering (Section 2.X), the error INVALID OPERATION
    is generated.

Fixes piglit nv_conditional_render-begin-zero.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: Add support for Begin/EndConditionalRender in display lists.
Eric Anholt [Thu, 8 Sep 2011 23:42:39 +0000 (16:42 -0700)]
mesa: Add support for Begin/EndConditionalRender in display lists.

Fixes piglit nv_conditional_render-dlist.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix an autoconf build-system bug related to glsl_to_tgsi
Marek Olšák [Fri, 16 Sep 2011 19:51:58 +0000 (21:51 +0200)]
mesa: fix an autoconf build-system bug related to glsl_to_tgsi

st_glsl_to_tgsi.cpp was completely ignored by makedepend because it was
not included in ALL_SOURCES, which caused that the file was not recompiled
when certain header files were changed (like glsl/ir.h).

The first part of this commit is just a consolidation.
The second part is the fix.

13 years agomesa: fix format/type check in unpack_image() for bitmaps
Brian Paul [Mon, 19 Sep 2011 17:38:02 +0000 (11:38 -0600)]
mesa: fix format/type check in unpack_image() for bitmaps

Passing type == GL_BITMAP returns 0 while error values return -1.
This fixes glPolygonStipple being compiled into display lists.

13 years agoi965 new VS: Fix copy propagation of double negatives.
Paul Berry [Thu, 15 Sep 2011 00:06:35 +0000 (17:06 -0700)]
i965 new VS: Fix copy propagation of double negatives.

When copy propagating a value into an instruction that negates its
argument, we need to invert the sense of the value's "negate" flag, so
that -(+x) becomes -x and -(-x) becomes +x.

Previously, we were always setting the value's "negate" flag to true
in this circumstance, so that both -(+x) and -(-x) turned into -x.

Fixes Piglit test vs-double-negative.shader_test.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agomesa: Advertise GL_OES_compressed_paletted_texture in OpenGL ES1.x
Ian Romanick [Tue, 13 Sep 2011 19:05:27 +0000 (14:05 -0500)]
mesa: Advertise GL_OES_compressed_paletted_texture in OpenGL ES1.x

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Remove redundant compressed paletted texture error checks
Ian Romanick [Mon, 12 Sep 2011 16:49:55 +0000 (11:49 -0500)]
mesa: Remove redundant compressed paletted texture error checks

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Refactor compressed texture error checks to work with paletted textures
Ian Romanick [Mon, 12 Sep 2011 16:46:09 +0000 (11:46 -0500)]
mesa: Refactor compressed texture error checks to work with paletted textures

This code was really broken before.  A lot of the error checks were
done much later (too late), and some of the error checks would fail.
The underlying problem is that Mesa doesn't ever keep compressed paletted
textures in their original format.  The textures are immediately
converted to some RGB or RGBA format.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39991
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Add _mesa_cpal_compressed_format_type
Ian Romanick [Mon, 12 Sep 2011 16:45:43 +0000 (11:45 -0500)]
mesa: Add _mesa_cpal_compressed_format_type

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Refactor expected texture size check in cpal_get_info
Ian Romanick [Mon, 12 Sep 2011 16:38:52 +0000 (11:38 -0500)]
mesa: Refactor expected texture size check in cpal_get_info

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Add GL_OES_compressed_paletted_texture formats to _mesa_base_tex_format
Ian Romanick [Mon, 12 Sep 2011 16:37:50 +0000 (11:37 -0500)]
mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_base_tex_format

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agomesa: Add GL_OES_compressed_paletted_texture formats to _mesa_is_compressed_format
Ian Romanick [Mon, 12 Sep 2011 16:36:53 +0000 (11:36 -0500)]
mesa: Add GL_OES_compressed_paletted_texture formats to _mesa_is_compressed_format

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Jin Yang <jin.a.yang@intel.com>
13 years agoUpdate llvmpipe's gitignore
Nicholas Miell [Mon, 19 Sep 2011 09:48:36 +0000 (02:48 -0700)]
Update llvmpipe's gitignore

Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for glMapBufferRange
Yuanhan Liu [Mon, 19 Sep 2011 10:25:55 +0000 (18:25 +0800)]
mesa: fix error handling for glMapBufferRange

Accroding the man page, GL_INVALID_VALUE would generated if access has any
bits set other than those valid defined bits.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: generate GL_INVALID_OPERATION in glIsEnabledIndex() between Begin/End
Brian Paul [Mon, 19 Sep 2011 14:13:38 +0000 (08:13 -0600)]
mesa: generate GL_INVALID_OPERATION in glIsEnabledIndex() between Begin/End

13 years agomesa: fix error handling for glSelectBuffer
Yuanhan Liu [Mon, 19 Sep 2011 07:03:04 +0000 (15:03 +0800)]
mesa: fix error handling for glSelectBuffer

According the man page, trigger a GL_INVALID_VALUE if size < 0.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for glPixelZoom
Yuanhan Liu [Mon, 19 Sep 2011 07:03:03 +0000 (15:03 +0800)]
mesa: fix error handling for glPixelZoom

According the man page, GL_INVALID_OPERATION should generated if
glPixelZoom is executed between the execution of glBegin and the
corresponding execution of glEnd.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for glIsEnabled
Yuanhan Liu [Mon, 19 Sep 2011 07:03:01 +0000 (15:03 +0800)]
mesa: fix error handling for glIsEnabled

According the man page, GL_INVALID_OPERATION should be generated if
glIsEnabled is executed betwwen the execution of glBegin and the
correspoding execution of glEnd.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for glTexEnv
Yuanhan Liu [Mon, 19 Sep 2011 07:03:00 +0000 (15:03 +0800)]
mesa: fix error handling for glTexEnv

Fix error handling while calling glTexEnv with invalid texture
environment parameters.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for some glGet* functions
Yuanhan Liu [Mon, 19 Sep 2011 07:02:59 +0000 (15:02 +0800)]
mesa: fix error handling for some glGet* functions

According to the man page, it should trigger a GL_INVALID_OPERATION
while calling some glGet* functions inside glBegin and glEnd.

This patch dose handle the following functions:
 glGetBooleanv
 glGetFloatv
 glGetIntegerv
 glGetInteger64v
 glGetDoublev

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agomesa: fix error handling for glEvalMesh1/2D
Yuanhan Liu [Mon, 19 Sep 2011 07:02:58 +0000 (15:02 +0800)]
mesa: fix error handling for glEvalMesh1/2D

According man page, trigger error when calling glEvalMesh1/2D inside
glBegin/glEnd.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoRemove unused APP_LIB_DEPS variable
Matt Turner [Sun, 18 Sep 2011 21:34:47 +0000 (17:34 -0400)]
Remove unused APP_LIB_DEPS variable

Unused since removal of demos from the repository?

Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoegl_glx.c: use unsigned instead of uint
Matt Turner [Sun, 18 Sep 2011 17:26:20 +0000 (13:26 -0400)]
egl_glx.c: use unsigned instead of uint

We've had a hack to fix this in Gentoo on Solaris for a while.

Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoRemove unneeded xdamages header from dri2_glx.c.
Matt Turner [Sat, 17 Sep 2011 22:59:49 +0000 (18:59 -0400)]
Remove unneeded xdamages header from dri2_glx.c.

It's needed for dri1 but not dri2.

Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agograw: fix tests to build on msvc again.
Dave Airlie [Mon, 19 Sep 2011 09:20:10 +0000 (10:20 +0100)]
graw: fix tests to build on msvc again.

Should fix https://bugs.freedesktop.org/show_bug.cgi?id=40997

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor300/compiler: Fix regalloc for values with multiple writers
Tom Stellard [Mon, 19 Sep 2011 00:43:41 +0000 (17:43 -0700)]
r300/compiler: Fix regalloc for values with multiple writers

https://bugs.freedesktop.org/show_bug.cgi?id=40062
https://bugs.freedesktop.org/show_bug.cgi?id=36939

Note: This is a candidate for the 7.11 branch.

13 years agoswrast: fix more store_texel() bugs
Brian Paul [Tue, 13 Sep 2011 19:30:17 +0000 (13:30 -0600)]
swrast: fix more store_texel() bugs

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40412 on swrast.

13 years agogallium: move clear paths from rgba to a pointer to a color union (v2)
Dave Airlie [Fri, 16 Sep 2011 08:39:34 +0000 (09:39 +0100)]
gallium: move clear paths from rgba to a pointer to a color union (v2)

This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values.

Notes:
1. the value is opaque.
2. only when the value is used should it be interpretered according to
the surface format it is going to be used with.
3. float clears on integer buffers and vice-versa are undefined.

v2: fixed up vega and graw, dropped hunks that shouldn't have been in
patch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agomesa: use ctx->Driver.AllocTextureImageBuffer() to alloc texture memory
Brian Paul [Sat, 17 Sep 2011 20:50:49 +0000 (14:50 -0600)]
mesa: use ctx->Driver.AllocTextureImageBuffer() to alloc texture memory

13 years agomesa: plug in swrast texture image alloc/free functions
Brian Paul [Sat, 17 Sep 2011 20:50:49 +0000 (14:50 -0600)]
mesa: plug in swrast texture image alloc/free functions

Use the swrast allocation/free functions instead of core Mesa.

13 years agoswrast: add Alloc/FreeTextureImageBuffer() driver functions
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
swrast: add Alloc/FreeTextureImageBuffer() driver functions

Not called yet.  These will replace the core Mesa functions for allocating
and freeing malloc'd texture memory.

13 years agomesa: add AllocTextureImageBuffer() driver hook
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
mesa: add AllocTextureImageBuffer() driver hook

13 years agomesa: move gl_texture_image::FetchTexel fields to swrast
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
mesa: move gl_texture_image::FetchTexel fields to swrast

This also involves passing swrast_texture_image instead of gl_texture_image
into all the fetch functions.

13 years agoswrast: plug in _swrast_new/delete_texture_image() functions
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
swrast: plug in _swrast_new/delete_texture_image() functions

13 years agoradeon: make radeon_texture_image a subclass of swrast_texture_image
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
radeon: make radeon_texture_image a subclass of swrast_texture_image

13 years agointel: make intel_texture_image a subclass of swrast_texture_image
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
intel: make intel_texture_image a subclass of swrast_texture_image

We need to subclass swrast_texture_image because if we use swrast for
fallback rendering, we'll need to have swrast_texture_image objects.

13 years agoswrast: introduce new swrast_texture_image struct
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
swrast: introduce new swrast_texture_image struct

No subclass fields yet.  Subsequent patches will add the fields related
to software rendering that are currently in gl_texture_image.

13 years agomesa: add new DeleteTextureImage() driver hook
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
mesa: add new DeleteTextureImage() driver hook

Matches the NewTextureImage() hook.  With new subclasses of
gl_texture_image coming we need a new hook to properly delete objects of
those subclasses.

13 years agomesa: move software texel fetch code into swrast
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
mesa: move software texel fetch code into swrast

It's only used by swrast now so move it out of core Mesa.

13 years agomesa: move _mesa_update_fetch_functions() calls into swrast
Brian Paul [Sat, 17 Sep 2011 20:50:48 +0000 (14:50 -0600)]
mesa: move _mesa_update_fetch_functions() calls into swrast

Do it during swrast state validation since the FetchTexel() functions
are only called from swrast now and not core Mesa.
Remove assertions in mipmap.c since they're no longer appropriate.

13 years agomesa: implement unpack_SIGNED_GR1616 in format_unpack.c
Brian Paul [Sat, 17 Sep 2011 19:33:04 +0000 (13:33 -0600)]
mesa: implement unpack_SIGNED_GR1616 in format_unpack.c

13 years agometa: fix/add checks for GL_EXT_framebuffer_sRGB
Brian Paul [Sat, 17 Sep 2011 17:13:31 +0000 (11:13 -0600)]
meta: fix/add checks for GL_EXT_framebuffer_sRGB

This fixes spurious GL errors when the GL_EXT_framebuffer_sRGB extension
is not supported.

Note: This is a candidate for the 7.11 branch

13 years agomesa: s/short/ushort/ in unpack_SIGNED_RGBA_16()
Brian Paul [Sat, 17 Sep 2011 16:50:07 +0000 (10:50 -0600)]
mesa: s/short/ushort/ in unpack_SIGNED_RGBA_16()

13 years agod3d1x: fix parsing of SM4 relative addressing register op
Christoph Bumiller [Sat, 17 Sep 2011 10:11:44 +0000 (12:11 +0200)]
d3d1x: fix parsing of SM4 relative addressing register op

13 years agod3d1x: set flatshade_first in rasterizer state
Christoph Bumiller [Sat, 17 Sep 2011 09:58:05 +0000 (11:58 +0200)]
d3d1x: set flatshade_first in rasterizer state

D3D10 specifies the first vertex as the leading/provoking one.