mesa.git
12 years agoscons: Unbreak mingw build.
José Fonseca [Tue, 20 Sep 2011 19:50:27 +0000 (20:50 +0100)]
scons: Unbreak mingw build.

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

12 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

12 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.

12 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.

12 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.

12 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.

12 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>
12 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>
12 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>
12 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>
12 years agoi965: Fix compiler warnings.
Eric Anholt [Tue, 20 Sep 2011 17:19:50 +0000 (10:19 -0700)]
i965: Fix compiler warnings.

12 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>
12 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...

12 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.

12 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>
12 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>
12 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>
12 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>
12 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

12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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.

12 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.

12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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

12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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>
12 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.

12 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.

12 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>
12 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

12 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.

12 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.

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

12 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.

12 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

12 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

12 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.

12 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.

12 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.

12 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.

12 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.

12 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

12 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

12 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()

12 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

12 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.

12 years agod3d1x: initialize point size and line width to 1
Christoph Bumiller [Sat, 17 Sep 2011 10:07:42 +0000 (12:07 +0200)]
d3d1x: initialize point size and line width to 1

Otherwise lines would never be visible since the width cannot be
specified in D3D10.
Wireframe mode is also affected by line width.

12 years agor300/compiler: Add support for the output modifier (OMOD)
Tom Stellard [Wed, 15 Jun 2011 15:00:53 +0000 (08:00 -0700)]
r300/compiler: Add support for the output modifier (OMOD)

12 years agor300/compiler: Move some helper functions to radeon_compiler_util.c
Tom Stellard [Wed, 15 Jun 2011 15:00:13 +0000 (08:00 -0700)]
r300/compiler: Move some helper functions to radeon_compiler_util.c

12 years agor300/compiler: Don't unroll loops that conditionally increment the counter
Tom Stellard [Fri, 16 Sep 2011 01:24:55 +0000 (18:24 -0700)]
r300/compiler: Don't unroll loops that conditionally increment the counter

12 years agonouveau: Fix typos of ParseSourceList in SConscript files.
Vinson Lee [Mon, 12 Sep 2011 16:21:31 +0000 (09:21 -0700)]
nouveau: Fix typos of ParseSourceList in SConscript files.

Reviewed-by: Chia-I Wu <olv@lunarg.com>
12 years agoscons: fix incorrect test for embedded build
Brian Paul [Fri, 16 Sep 2011 16:11:52 +0000 (10:11 -0600)]
scons: fix incorrect test for embedded build

This was missed back in commit 41750107496858a047afa8d81d20fe903f285a78.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
12 years agowinsys/radeon: use the cache bufmgr for buffers with PIPE_BIND_CUSTOM
Marek Olšák [Tue, 13 Sep 2011 13:01:45 +0000 (15:01 +0200)]
winsys/radeon: use the cache bufmgr for buffers with PIPE_BIND_CUSTOM

so that we don't abuse PIPE_BIND_VERTEX_BUFFER all the time.

12 years agosoftpipe: use pipe_get_tile_rgba_format()
Brian Paul [Thu, 15 Sep 2011 22:21:12 +0000 (16:21 -0600)]
softpipe: use pipe_get_tile_rgba_format()

Pass an explicit surface format as we do with pipe_put_tile_rgba_format().
This fixes the piglit fbo-srgb-blit test.  With GL_EXT_framebuffer_sRGB we
override the resource's format with an explicit format (linear vs. sRGB).
We need to do so both when getting and putting tiles.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40402

Reviewed-by: Dave Airlie <airlied@redhat.com>
12 years agosoftpipe: use util_format_is_depth_or_stencil()
Brian Paul [Thu, 15 Sep 2011 22:20:01 +0000 (16:20 -0600)]
softpipe: use util_format_is_depth_or_stencil()

Reviewed-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: fixup missing scaled r600 types.
Dave Airlie [Fri, 16 Sep 2011 13:08:30 +0000 (14:08 +0100)]
r600g: fixup missing scaled r600 types.

I was still missing a couple of types on r600/r700 codepaths.

Fixes these up.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: interpret integer texture types as ints.
Dave Airlie [Thu, 15 Sep 2011 11:41:00 +0000 (12:41 +0100)]
r600g: interpret integer texture types as ints.

For signed/unsigned with no normalisation or srgb, assume its an INT
type texture.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: take constantly interpolated values into a/c
Dave Airlie [Thu, 15 Sep 2011 11:39:26 +0000 (12:39 +0100)]
r600g: take constantly interpolated values into a/c

We could constant interpolated values now and set have_perspective
if nothing else is set to avoid a GPU hang.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: add flat non-interpolation support.
Dave Airlie [Thu, 15 Sep 2011 11:38:10 +0000 (12:38 +0100)]
r600g: add flat non-interpolation support.

TGSI CONSTANT interpolation is just flat, and we just read the values
direct from the LDS into the GPR without doing any interpolation on them.

This is needed to pass integer types into the fragment shader.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: set number type correctly for color buffers.
Dave Airlie [Thu, 15 Sep 2011 11:34:43 +0000 (12:34 +0100)]
r600g: set number type correctly for color buffers.

If we get a scaled type assume its a real integer type (as textures are).

Also fixup the blend bypass and blend clamp flags on evergreen as per the
docs.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agor600g: add missing formats to color buffer setup.
Dave Airlie [Sat, 10 Sep 2011 16:53:34 +0000 (17:53 +0100)]
r600g: add missing formats to color buffer setup.

just playing with EXT_texture_integer, and this was first bug.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 years agosoftpipe: use consistent indentation in sp_quad_blend.c
Brian Paul [Wed, 14 Sep 2011 14:30:52 +0000 (08:30 -0600)]
softpipe: use consistent indentation in sp_quad_blend.c

12 years agogallivm: fix build with LLVM 3.0svn
Tobias Droste [Thu, 15 Sep 2011 00:39:26 +0000 (02:39 +0200)]
gallivm: fix build with LLVM 3.0svn

LLVM 3.0svn added SubtargetInfo as additional parameter to
createMCDisassembler() and createMCInstPrinter().
See revision 139237 of LLVM.

Signed-off-by: Tobias Droste <tdroste@gmx.de>
Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoChange strerror(ret) to strerror(-ret).
Eugeni Dodonov [Thu, 15 Sep 2011 18:12:02 +0000 (15:12 -0300)]
Change strerror(ret) to strerror(-ret).

12 years agosoftpipe: fix blending for luminance/intensity surfaces
Brian Paul [Thu, 15 Sep 2011 17:31:55 +0000 (11:31 -0600)]
softpipe: fix blending for luminance/intensity surfaces

If we're drawing to a luminance, luminance/alpha or intensity surface
we have to adjust (rebase) the fragment/quad colors before writing them
to the tile cache.  The tile cache always stores RGBA colors but if
we're caching a L/A surface (for example) we need to be sure that R=G=B
so that subsequent reads from the surface cache appear to return L/A

We previously had a special case for RGB (no alpha) surfaces.  This
change generalizes that for the other base formats.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40408, but sRGB
formats are still failing.  That'll be addressed in a later patch.

12 years agoutil: add util_format_is_luminance/intensity/rgb(), etc
Brian Paul [Thu, 15 Sep 2011 17:31:55 +0000 (11:31 -0600)]
util: add util_format_is_luminance/intensity/rgb(), etc

Reviewed-by: José Fonseca <jfonseca@vmware.com>
12 years agowayland: Flush before blocking in swapbuffers.
Jørgen Lind [Thu, 15 Sep 2011 15:36:46 +0000 (17:36 +0200)]
wayland: Flush before blocking in swapbuffers.

Make sure that we've sent the frame request that we're going to block on.

12 years agomesa: fix error handling for dlist image unpacking
Brian Paul [Thu, 15 Sep 2011 15:06:19 +0000 (09:06 -0600)]
mesa: fix error handling for dlist image unpacking

When compiling glDrawPixels, glTexImage(), etc. and we're copying
the user's image we need to be careful about GL error checking.
Previously, we were incorrectly generating GL_OUT_OF_MEMORY in
unpack_image() if width <= 0 or height <= 0 or for invalid format/type
values.  We now check those arguments in unpack_image() and return NULL
if there's a bad value.  The command will get compiled with the
arguments as-is and image=NULL.  Later, when the command is executed the
correct errors will be generated.

This issue was reported by Yuanhan Liu <yuanhan.liu@linux.intel.com>

Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
12 years agost/mesa: rewrap a long line
Brian Paul [Thu, 15 Sep 2011 14:58:31 +0000 (08:58 -0600)]
st/mesa: rewrap a long line

12 years agomesa: add missing ')' in error message
Brian Paul [Thu, 15 Sep 2011 14:02:52 +0000 (08:02 -0600)]
mesa: add missing ')' in error message

12 years agouniforms: accept all int/unsigned int sampler types in uniform checks.
Dave Airlie [Wed, 14 Sep 2011 11:07:47 +0000 (12:07 +0100)]
uniforms: accept all int/unsigned int sampler types in uniform checks.

I'm not 100% sure about this, it may need a version check or it might
be completely wrong.

added multisample ones as well.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglsl: Remove field array_lvalue from ir_variable.
Paul Berry [Sat, 10 Sep 2011 14:48:46 +0000 (07:48 -0700)]
glsl: Remove field array_lvalue from ir_variable.

The array_lvalue field was attempting to enforce the restriction that
whole arrays can't be used on the left-hand side of an assignment in
GLSL 1.10 or GLSL ES, and can't be used as out or inout parameters in
GLSL 1.10.

However, it was buggy (it didn't work properly for built-in arrays),
and it was clumsy (it unnecessarily kept track on a
variable-by-variable basis, and it didn't cover the GLSL ES case).

This patch removes the array_lvalue field completely in favor of
explicit checks in ast_parameter_declarator::hir() (this check is
added) and in do_assignment (this check was already present).

This causes a benign behavioral change: when the user attempts to pass
an array as an out or inout parameter of a function in GLSL 1.10, the
error is now flagged at the time the function definition is
encountered, rather than at the time of invocation.  Previously we
allowed such functions to be defined, and only flagged the error if
they were invoked.

Fixes Piglit tests
spec/glsl-1.10/compiler/qualifiers/fn-{out,inout}-array-prohibited*
and
spec/glsl-1.20/compiler/assignment-operators/assign-builtin-array-allowed.vert.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>