mesa.git
11 years agoRemove libGLU
Matt Turner [Thu, 23 Aug 2012 23:39:20 +0000 (16:39 -0700)]
Remove libGLU

It's been moved to its own repository, found at
http://cgit.freedesktop.org/mesa/glu/

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agodri: Rework planar image interface
Jakob Bornecrantz [Fri, 31 Aug 2012 17:48:26 +0000 (19:48 +0200)]
dri: Rework planar image interface

As discussed with Kristian on #wayland. Pushes the decision of components into
the dri driver giving it greater freedom to allow t to implement YUV samplers
in hardware, and which mode to use.

This interface will also allow drivers like SVGA to implement YUV surfaces
without the need to sub-allocate and instead send 3 seperate buffers for each
channel, currently not implemented.

I have tested these changes on Gallium Svga. Scott tested them on both intel
and Gallium Radeon. Kristan and Pekka tested them on intel.

v2: Fix typo in dri2_from_planar.
v3: Merge in intel changes.

Tested-by: Scott Moreau <oreaus@gmail.com>
Tested-by: Pekka Paalanen <ppaalanen@gmail.com>
Tested-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
11 years agoradeon/llvm: Rework how immediate operands are handled with SI
Tom Stellard [Fri, 31 Aug 2012 15:29:49 +0000 (11:29 -0400)]
radeon/llvm: Rework how immediate operands are handled with SI

Immediate operands were previously handled in the CodeEmitter, but that
code was buggy and very confusing.  This commit adds a pass that simplifies
the handling of immediate operands by spliting the loading of the
immediate into a sperate insruction that is bundled with the original.

11 years agoradeon/llvm: Fix typo in assert
Tom Stellard [Fri, 31 Aug 2012 14:48:49 +0000 (10:48 -0400)]
radeon/llvm: Fix typo in assert

11 years agoradeon/llvm: Fix isEG tablegen predicate
Tom Stellard [Fri, 31 Aug 2012 14:46:56 +0000 (10:46 -0400)]
radeon/llvm: Fix isEG tablegen predicate

This predicate incorrectly included SI GPUs, so some Evergreen
instructions were being emmitted on SI.

11 years agoradeon/llvm: Add support for RCP instruction on SI
Tom Stellard [Fri, 31 Aug 2012 13:59:00 +0000 (09:59 -0400)]
radeon/llvm: Add support for RCP instruction on SI

11 years agoradeon/llvm: Support AMDGPUfmin DAG node on SI
Tom Stellard [Thu, 30 Aug 2012 15:10:14 +0000 (11:10 -0400)]
radeon/llvm: Support AMDGPUfmin DAG node on SI

11 years agoradeonsi: Handle TGSI_SEMANTIC_PSIZE
Tom Stellard [Thu, 30 Aug 2012 14:35:36 +0000 (10:35 -0400)]
radeonsi: Handle TGSI_SEMANTIC_PSIZE

The relevant POINT_SIZE registers are being set using the
pipe_rasterizer_state, so we just need to tell the shader compiler which
export type to use.

This fixes several of the glean glsl tests.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoandroid: do not expose single buffered eglconfigs
Tapani Pälli [Mon, 13 Aug 2012 13:47:52 +0000 (16:47 +0300)]
android: do not expose single buffered eglconfigs

On Android we want to add only double buffered configs for visuals.
Earlier implementation set the SurfaceType as 0 for single buffered
configs but driver still exposed these configs that were not compatible
with any egl surface type.  This caused Khronos conformance test runs to
fail on Android. This patch fixes the issue by skipping single buffered
configs earlier and not exposing them.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
11 years agoandroid: fix liblog API changes
Tapani Pälli [Mon, 13 Aug 2012 06:03:06 +0000 (09:03 +0300)]
android: fix liblog API changes

android logging macros changed their name in JellyBean.

Signed-off-by: Bruce E. Robertson <bruce.e.robertson@intel.com>
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
11 years agoxmlconfig: use __progname when building for Android
Tapani Pälli [Tue, 5 Jun 2012 13:04:14 +0000 (16:04 +0300)]
xmlconfig: use __progname when building for Android

__progname symbol and strrchr are available with bionic.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
11 years agoscons: Remove leftover print statement.
Vinson Lee [Fri, 31 Aug 2012 15:23:28 +0000 (08:23 -0700)]
scons: Remove leftover print statement.

Remove print statement left over from commit
c57fb034b19156e06e2ec25d9b06a0e174d861c9.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
11 years agodocs: update relnotes-9.0
Andreas Boll [Fri, 31 Aug 2012 14:53:25 +0000 (16:53 +0200)]
docs: update relnotes-9.0

Signed-off-by: Brian Paul <brianp@vmware.com>
11 years agomesa: also bump version in Makefile.am and configure.ac to 9.0
Andreas Boll [Fri, 31 Aug 2012 14:43:56 +0000 (16:43 +0200)]
mesa: also bump version in Makefile.am and configure.ac to 9.0

Signed-off-by: Brian Paul <brianp@vmware.com>
11 years agoscons: Add default libraries to Solaris build.
Vinson Lee [Thu, 30 Aug 2012 06:16:44 +0000 (23:16 -0700)]
scons: Add default libraries to Solaris build.

Fixes SCons build on Solaris.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54293
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
11 years agost/mesa: s/CALLOC/calloc/ to fix allocation bug
Brian Paul [Thu, 30 Aug 2012 22:12:53 +0000 (16:12 -0600)]
st/mesa: s/CALLOC/calloc/ to fix allocation bug

The CALLOC() macro only takes one argument so this was being treated
as a comma expression.  Simply use calloc() instead.

A follow-on patch will replace all CALLOC() calls with calloc().

NOTE: This is a candidate for the 8.0 and 9.0 branches.

11 years agoutil: add casts to silence signed/unsigned comparison warnings
Brian Paul [Thu, 30 Aug 2012 19:49:30 +0000 (13:49 -0600)]
util: add casts to silence signed/unsigned comparison warnings

11 years agomesa: fix-up and use _mesa_delete_renderbuffer()
Brian Paul [Thu, 30 Aug 2012 15:27:16 +0000 (09:27 -0600)]
mesa: fix-up and use _mesa_delete_renderbuffer()

_mesa_delete_renderbuffer() should free the mutex (though that may be a
no-op) and then free the renderbuffer object itself.  Subclasses of
gl_renderbuffer can use this function too.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
11 years agodocs: Add some missing features to 9.0 release notes and GL3.txt
Ian Romanick [Thu, 30 Aug 2012 22:22:37 +0000 (15:22 -0700)]
docs: Add some missing features to 9.0 release notes and GL3.txt

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Bump version to 9.0
Ian Romanick [Thu, 30 Aug 2012 20:55:02 +0000 (13:55 -0700)]
mesa: Bump version to 9.0

Now that OpenGL 3.1 is supported by at least one driver, follow
tradition and bump the major version number.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agor600g: enable transform feedback on Cayman
Marek Olšák [Thu, 30 Aug 2012 14:33:36 +0000 (16:33 +0200)]
r600g: enable transform feedback on Cayman

There doesn't seem to be anything wrong with it.

11 years agor600g: implement MSAA for Cayman
Marek Olšák [Thu, 30 Aug 2012 03:38:02 +0000 (05:38 +0200)]
r600g: implement MSAA for Cayman

Everything works except for blitting MSAA colorbuffers, which isn't
so trivial on Cayman. It's a rarely-used feature anyway.

11 years agoi965/msaa: flag _NEW_MULTISAMPLE in the brw_tracked_state
Anuj Phogat [Wed, 29 Aug 2012 19:22:11 +0000 (12:22 -0700)]
i965/msaa: flag _NEW_MULTISAMPLE in the brw_tracked_state

This is required to get the program recompiled when SampleAlphaToCoverage
is enabled.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
11 years agor600g: enable MSAA on r6xx by default
Marek Olšák [Sun, 26 Aug 2012 21:03:51 +0000 (23:03 +0200)]
r600g: enable MSAA on r6xx by default

DRM 2.22.0 is required though. Also require the new DRM for r700, as
there are some important fixes for that generation too.

11 years agor600g: disable MSAA depth decompression on r6xx
Marek Olšák [Sun, 26 Aug 2012 21:02:37 +0000 (23:02 +0200)]
r600g: disable MSAA depth decompression on r6xx

11 years agor600g: implement color resolve for r600
Marek Olšák [Sun, 26 Aug 2012 20:38:35 +0000 (22:38 +0200)]
r600g: implement color resolve for r600

The blend state is different and the resolve single-sample buffer must have
FMASK and CMASK enabled. I decided to have one CMASK and one FMASK
per context instead of per resource.

There are new FMASK and CMASK allocation helpers and a new buffer_create
helper for that.

11 years agor600g: fix CB_SHADER_MASK and CB_TARGET_MASK for r6xx
Marek Olšák [Sun, 26 Aug 2012 20:33:55 +0000 (22:33 +0200)]
r600g: fix CB_SHADER_MASK and CB_TARGET_MASK for r6xx

11 years agor600g: implement draw_rectangle callback
Marek Olšák [Fri, 24 Aug 2012 03:57:22 +0000 (05:57 +0200)]
r600g: implement draw_rectangle callback

The color resolve on r6xx needs PT_RECTLIST. Using conventional primitive
types (triangles and quads) produces an ugly line between two diagonally
opposite corners. I guess a rectangular point sprite would work too.

11 years agor600g: implement MSAA for r700
Marek Olšák [Thu, 2 Aug 2012 20:31:22 +0000 (22:31 +0200)]
r600g: implement MSAA for r700

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
11 years agor600g: change programming of CB_SHADER_MASK on r600-r700
Marek Olšák [Tue, 21 Aug 2012 18:26:20 +0000 (20:26 +0200)]
r600g: change programming of CB_SHADER_MASK on r600-r700

This one actually makes more sense and gives the expected value
for MSAA resolve.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
11 years agoconfigure.ac: require libdrm_radeon 2.6.39 for MSAA
Marek Olšák [Sun, 26 Aug 2012 22:22:31 +0000 (00:22 +0200)]
configure.ac: require libdrm_radeon 2.6.39 for MSAA

11 years agometa: remove call to _meta_in_progress(), fix multisample enable/disable
Brian Paul [Thu, 30 Aug 2012 14:45:13 +0000 (08:45 -0600)]
meta: remove call to _meta_in_progress(), fix multisample enable/disable

This partially reverts d638da23d2ec2e9c52655b1ea138249e7f8bcccb.

With gallium the meta code is not always built so the call to
_meta_in_progress() was unresolved.  Simply special-case the
GL_MULTISAMPLE case in the meta code.  There might be other special
cases in the future given all the differences between legacy GL,
core GL, GLES, etc.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=54234
and https://bugs.freedesktop.org/show_bug.cgi?id=54239

v2 (Paul Berry <stereotype441@gmail.com>): keep _meta_in_progress
function, since it's needed by the i965 driver, but don't call it from
core mesa.

Signed-off-by: Brian Paul <brianp@vmware.com>
11 years agometa: add parenthesis to silence compiler warnings
Brian Paul [Thu, 30 Aug 2012 14:43:27 +0000 (08:43 -0600)]
meta: add parenthesis to silence compiler warnings

Reviewed-by: Paul Berry <stereotype441@gmail.com>
11 years agoscons : add HAVE_DLOPEN to build environment
Tapani Pälli [Tue, 28 Aug 2012 11:01:51 +0000 (14:01 +0300)]
scons : add HAVE_DLOPEN to build environment

fixes dlopen issue caused by 57c57df7b4579b60a84062df2e64f84dd84558b5

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54140

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
11 years agoradeonsi: fix stupid bug added in commit 07838603b9a69c05911edbcd351bfce5ad9b5a2c
Christian König [Fri, 24 Aug 2012 08:55:16 +0000 (10:55 +0200)]
radeonsi: fix stupid bug added in commit 07838603b9a69c05911edbcd351bfce5ad9b5a2c

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoi965/fs: Remove a dead member from live variables analysis.
Eric Anholt [Mon, 4 Jun 2012 22:44:58 +0000 (15:44 -0700)]
i965/fs: Remove a dead member from live variables analysis.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965/fs: Initialize output_components[] by filling it with zeros.
Kenneth Graunke [Wed, 29 Aug 2012 08:51:17 +0000 (01:51 -0700)]
i965/fs: Initialize output_components[] by filling it with zeros.

Prior to commit 2f1869822, emit_fb_writes() looped from 0 to 3, writing
all four components of a vec4 color output.  However, that broke for
smaller output types (float, vec2, or vec3).  To fix that, I introduced
a new variable (output_components[]) containing the size of the output
type for each render target.

Unfortunately, I forgot to actually initialize it in the constructor,
which meant that unless a shader wrote to gl_FragColor, or the specific
output for each render target, output_components would contain a garbage
value, and we'd loop for a completely non-deterministic amount of time.

Not actually emitting any color writes seems like the right approach.
We may still need to emit a render target write (to terminate the
thread), but don't have to put in any sensible values (the shader didn't
write anything, after all).

Fixes a regression since 2f18698220d8b27991fab550c4721590d17278e0.
NOTE: This is a candidate for stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54193
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Tested-by: Ian Romanick <idr@freedesktop.org>
11 years agomesa: Do something sensible when on-line compression is requested but not possible
Ian Romanick [Tue, 21 Aug 2012 22:20:23 +0000 (15:20 -0700)]
mesa: Do something sensible when on-line compression is requested but not possible

It is possible to force S3TC extensions to be enabled.  This is
generally done to support applications that will only supply
pre-compressed textures.  This accounts for the vast majority of
applications.

However, there is still the possibility of an application asking for
on-line compression.  In that case, generate a warning and substitute a
generic compressed format.  The driver will either pick an uncompressed
format or a compressed format that Mesa can handle on-line (e.g., FXT1).

This should only cause problems for applications that request on-line
compression and read the compressed texture back.  This is likely an
infinitesimal subset of an already infinitesimal subset.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Allow creation of OpenGL 3.1 contexts
Ian Romanick [Tue, 7 Aug 2012 19:50:44 +0000 (12:50 -0700)]
i965: Allow creation of OpenGL 3.1 contexts

v2: Fix API_OPENGL_CORE handling when TEXTURE_FLOAT_ENABLED is not
defined.  Based on review feedback from Eric Anholt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agoi965: Advertise GLSL 1.40 and TexBOs in core contexts
Ian Romanick [Wed, 8 Aug 2012 16:11:05 +0000 (09:11 -0700)]
i965: Advertise GLSL 1.40 and TexBOs in core contexts

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agointel: Clean up bits of cruft in intelCreateContext
Ian Romanick [Tue, 7 Aug 2012 19:46:22 +0000 (12:46 -0700)]
intel: Clean up bits of cruft in intelCreateContext

This and the previous three commits should probably be squashed together...

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agoi965: Set context flags
Ian Romanick [Fri, 17 Aug 2012 16:32:59 +0000 (09:32 -0700)]
i965: Set context flags

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/dri: Allow creation of forward-compatible contexts
Ian Romanick [Fri, 17 Aug 2012 16:23:50 +0000 (09:23 -0700)]
mesa/dri: Allow creation of forward-compatible contexts

This is done by changing the API to API_OPENGL_CORE.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Enable GL_OES_vertex_array_object
Ian Romanick [Wed, 22 Aug 2012 01:03:49 +0000 (18:03 -0700)]
mesa/es: Enable GL_OES_vertex_array_object

Functionally the same as GL_ARB_vertex_array_object.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agomesa: Enable GL_{ARB,APPLE}_vertex_array_object in all drivers
Ian Romanick [Wed, 22 Aug 2012 00:57:22 +0000 (17:57 -0700)]
mesa: Enable GL_{ARB,APPLE}_vertex_array_object in all drivers

This is a purely software extension.  The drivers don't need to do any
work to support it.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agometa: Don't use deprecated keyword in 1.30 shader
Ian Romanick [Sat, 18 Aug 2012 00:57:17 +0000 (17:57 -0700)]
meta: Don't use deprecated keyword in 1.30 shader

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Disallow alpha, luminance, and LA textures in core context
Ian Romanick [Sat, 18 Aug 2012 00:15:06 +0000 (17:15 -0700)]
mesa: Disallow alpha, luminance, and LA textures in core context

Also disallow the 1, 2, 3, and 4 formats.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Disallow more deprecated functions in core context
Ian Romanick [Sat, 18 Aug 2012 00:14:47 +0000 (17:14 -0700)]
mesa: Disallow more deprecated functions in core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Require names from Gen in core context
Ian Romanick [Sat, 18 Aug 2012 00:14:02 +0000 (17:14 -0700)]
mesa: Require names from Gen in core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Allow NULL vertex pointer without a VBO
Ian Romanick [Sat, 18 Aug 2012 00:12:39 +0000 (17:12 -0700)]
mesa: Allow NULL vertex pointer without a VBO

There is text in the OpenGL 3.x specs to explicitly allow this case.
Weird.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Disallow VertexAttribPointer without a VAO in a core context
Ian Romanick [Sat, 18 Aug 2012 00:12:12 +0000 (17:12 -0700)]
mesa: Disallow VertexAttribPointer without a VAO in a core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Disallow wide lines in forward compatible context
Ian Romanick [Fri, 17 Aug 2012 23:08:40 +0000 (16:08 -0700)]
mesa: Disallow wide lines in forward compatible context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Only FRONT_AND_BACK is allowed for PolygonMode in core context
Ian Romanick [Fri, 17 Aug 2012 23:03:06 +0000 (16:03 -0700)]
mesa: Only FRONT_AND_BACK is allowed for PolygonMode in core context

Page 407 (page 423 of the PDF) of the OpenGL 3.0 spec says (in the list
of deprecated functionality):

    "Separate polygon draw mode - PolygonMode face values of FRONT and
    BACK; polygons are always drawn in the same mode, no matter which
    face is being rasterized."

Also modify meta to not use FRONT or BACK in a core context.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agometa: Don't stray outside the confines of the API specified in the context
Paul Berry [Wed, 8 Aug 2012 18:56:33 +0000 (11:56 -0700)]
meta: Don't stray outside the confines of the API specified in the context

Signed-off-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Don't allow display lists or evaluators in core context
Ian Romanick [Fri, 17 Aug 2012 21:32:43 +0000 (14:32 -0700)]
mesa: Don't allow display lists or evaluators in core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Don't allow GL_EXTENSIONS query in core context
Ian Romanick [Fri, 17 Aug 2012 21:32:21 +0000 (14:32 -0700)]
mesa: Don't allow GL_EXTENSIONS query in core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Non-sprite points are deprecated
Ian Romanick [Wed, 15 Aug 2012 15:45:03 +0000 (08:45 -0700)]
mesa: Non-sprite points are deprecated

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Fix VAO deletion on GL 3.1 core.
Eric Anholt [Thu, 9 Aug 2012 01:44:40 +0000 (18:44 -0700)]
mesa: Fix VAO deletion on GL 3.1 core.

We were calling through a dispatch table entry that was NULL, since the apple
variant is only on legacy desktop.  Just call the function we mean instead of
indirecting through the dispatch.

11 years agomesa: Enable a bunch of missing getters on 3.1 core.
Eric Anholt [Thu, 9 Aug 2012 01:29:14 +0000 (18:29 -0700)]
mesa: Enable a bunch of missing getters on 3.1 core.

NOTE: maybe I enabled too many?

11 years agomesa: Expose texture buffer objects when the context is GL 3.1 core.
Eric Anholt [Thu, 26 Jul 2012 22:10:04 +0000 (15:10 -0700)]
mesa: Expose texture buffer objects when the context is GL 3.1 core.

v2: Use API_OPENGL_CORE.

v3: Only require desktop GL.  If a driver can't support TexBOs in a non-core
context, it should not enable them.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agomesa: Allow PACK / UNPACK queries for ES2
Ian Romanick [Wed, 8 Aug 2012 18:47:15 +0000 (11:47 -0700)]
mesa: Allow PACK / UNPACK queries for ES2

These are part of the GL_EXT_unpack_subimage extension and ES 3.0.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Kill ES2 wrapper functions
Ian Romanick [Sat, 28 Jul 2012 22:20:48 +0000 (15:20 -0700)]
mesa: Kill ES2 wrapper functions

v2: Fix completely broken condition around ClearColorIiEXT and
ClearColorIuiEXT.

v3: Add special VertexAttrib handling for ES2.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: glGetVertexAttribPointerv is part of core profile and ES2
Ian Romanick [Wed, 8 Aug 2012 20:37:45 +0000 (13:37 -0700)]
mesa: glGetVertexAttribPointerv is part of core profile and ES2

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glPointParameter pname in Mesa code rather than the ES wrapper
Ian Romanick [Sat, 28 Jul 2012 00:43:22 +0000 (17:43 -0700)]
mesa/es: Validate glPointParameter pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agomesa: Require OpenGL 2.0 for GL_POINT_SPRITE_COORD_ORIGIN
Ian Romanick [Sat, 28 Jul 2012 00:40:34 +0000 (17:40 -0700)]
mesa: Require OpenGL 2.0 for GL_POINT_SPRITE_COORD_ORIGIN

The comment in the code even says this is the right thing to do.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agomesa: Require that drivers supporting point sprites support point parameters
Ian Romanick [Sat, 28 Jul 2012 00:38:32 +0000 (17:38 -0700)]
mesa: Require that drivers supporting point sprites support point parameters

All drivers in Mesa do.  This allows a lot of extension checking code to be
gutted from the function.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agomesa/es: Validate glGetTexEnv parameters in Mesa code rather than the ES wrapper
Ian Romanick [Sat, 28 Jul 2012 00:48:30 +0000 (17:48 -0700)]
mesa/es: Validate glGetTexEnv parameters in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glTexEnv parameters in Mesa code rather than the ES wrapper
Ian Romanick [Sat, 28 Jul 2012 00:22:42 +0000 (17:22 -0700)]
mesa/es: Validate glTexEnv parameters in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetTexGen parameters in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 23:47:27 +0000 (16:47 -0700)]
mesa/es: Validate glGetTexGen parameters in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glTexGen parameters in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 23:27:23 +0000 (16:27 -0700)]
mesa/es: Validate glTexGen parameters in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glLightModel pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 23:13:02 +0000 (16:13 -0700)]
mesa/es: Validate glLightModel pname in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glMaterial face and pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 23:07:19 +0000 (16:07 -0700)]
mesa/es: Validate glMaterial face and pname in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetMaterial pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 22:57:09 +0000 (15:57 -0700)]
mesa/es: Validate glGetMaterial pname in Mesa code rather than the ES wrapper

Fixes a bug that glGetMaterial[fx]v in ES1 contexts would (try to) allow
queries of GL_AMBIENT_AND_DIFFUSE.  This enum can only be used in glMaterial,
not in the get.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetPointerv pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 22:49:50 +0000 (15:49 -0700)]
mesa/es: Validate glGetPointerv pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile, GLES1, and GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glMatrixMode mode in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 22:47:16 +0000 (15:47 -0700)]
mesa/es: Validate glMatrixMode mode in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glFog pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 19:37:05 +0000 (12:37 -0700)]
mesa/es: Validate glFog pname in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glReadPixels format and type in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 19:24:24 +0000 (12:24 -0700)]
mesa/es: Validate glReadPixels format and type in Mesa code rather than the ES wrapper

v2: Add proper GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glPixelStore pname in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 19:11:32 +0000 (12:11 -0700)]
mesa/es: Validate glPixelStore pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glEnable cap in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 18:56:42 +0000 (11:56 -0700)]
mesa/es: Validate glEnable cap in Mesa code rather than the ES wrapper

Also handle glDisable, glIsEnabled, glEnableClientState, and
glDisableClientState.

v2: Add proper core-profile and GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glHint target in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 18:03:06 +0000 (11:03 -0700)]
mesa/es: Validate glHint target in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetVertexAttribf pname in Mesa code rather than the ES wrapper
Ian Romanick [Wed, 25 Jul 2012 23:21:49 +0000 (16:21 -0700)]
mesa/es: Validate glGetVertexAttribf pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

v3: Allow glGetVertexAttribfv(0, GL_CURRENT_VERTEX_ATTRIB_ARB, param) in
OpenGL 3.1, just like OpenGL ES 2.0.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetString pname in Mesa code rather than the ES wrapper
Ian Romanick [Wed, 25 Jul 2012 22:39:50 +0000 (15:39 -0700)]
mesa/es: Validate glGetString pname in Mesa code rather than the ES wrapper

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate primitive modes in Mesa code rather than the ES wrapper
Ian Romanick [Wed, 25 Jul 2012 14:15:29 +0000 (07:15 -0700)]
mesa/es: Validate primitive modes in Mesa code rather than the ES wrapper

v2: Add proper core-profile filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa: Refactor _mesa_valid_prim_mode to use a switch-statement
Ian Romanick [Wed, 25 Jul 2012 14:12:33 +0000 (07:12 -0700)]
mesa: Refactor _mesa_valid_prim_mode to use a switch-statement

This makes the next change a bit easier.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate blend function enums in Mesa code rather than the ES wrapper
Ian Romanick [Wed, 25 Jul 2012 02:52:53 +0000 (19:52 -0700)]
mesa/es: Validate blend function enums in Mesa code rather than the ES wrapper

v2: Add proper core-profile filtering.

v3: Allow GL_SRC_ALPHA_SATURATE as a destination factor in GLES3.  Based
on review feedback from Eric Anholt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glClear mask in Mesa code rather than the ES wrapper
Ian Romanick [Tue, 20 Sep 2011 23:39:30 +0000 (16:39 -0700)]
mesa/es: Validate glClear mask in Mesa code rather than the ES wrapper

11 years agomesa/es: Validate glRenderbufferStorage internalFormat in Mesa code rather than the...
Ian Romanick [Fri, 27 Jul 2012 15:31:12 +0000 (08:31 -0700)]
mesa/es: Validate glRenderbufferStorage internalFormat in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

v3: Allow GL_RGB10_A2UI in GLES3 based on review feedback from Eric
Anholt.

v4: Arg.  Reject unsized RED and RG enums on GLES.  More feedback from
Eric.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGetRenderbufferParameter pname in Mesa code rather than the ES...
Ian Romanick [Fri, 27 Jul 2012 14:49:49 +0000 (07:49 -0700)]
mesa/es: Validate glGetRenderbufferParameter pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agomesa/es: Validate glGetFramebufferAttachmentParameter pname in Mesa code rather than...
Ian Romanick [Fri, 27 Jul 2012 14:47:28 +0000 (07:47 -0700)]
mesa/es: Validate glGetFramebufferAttachmentParameter pname in Mesa code rather than the ES wrapper

v2: Add proper core-profile, GLES1, and GLES3 filtering.

v3: Fix the GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME query when the
attachment type is GL_NONE on GLES3.  Other cleanups.  Based on review
feedback from Eric Anholt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glGenerateMipmap target in Mesa code rather than the ES wrapper
Ian Romanick [Fri, 27 Jul 2012 14:24:37 +0000 (07:24 -0700)]
mesa/es: Validate glGenerateMipmap target in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

v3: Fix a typo in GL_TEXTURE_2D_ARRAY checking.

v4: Change !_mesa_is_desktop_gl tests to _mesa_is_gles test.  The test
around GL_TEXTURE_2D_ARRAY got some other changes because that enum is
also available with GLES3 (which uses API_OPENGLES2).  Based on review
feedback from Eric Anholt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agomesa/es: Validate glFramebufferTexture2D textarget in Mesa code rather than the ES...
Ian Romanick [Fri, 27 Jul 2012 14:22:41 +0000 (07:22 -0700)]
mesa/es: Validate glFramebufferTexture2D textarget in Mesa code rather than the ES wrapper

v2: Add proper core-profile and GLES3 filtering.

v3: Change !_mesa_is_desktop_gl tests to _mesa_is_gles test.  The test
around GL_TEXTURE_2D_ARRAY got some other changes because that enum is
also available with GLES3 (which uses API_OPENGLES2).  Based on review
feedback from Eric Anholt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agoradeon/llvm: Fix encoding of FP immediates on SI
Tom Stellard [Wed, 29 Aug 2012 15:39:38 +0000 (11:39 -0400)]
radeon/llvm: Fix encoding of FP immediates on SI

11 years agoradeon/llvm: Create a register class for the M0 register
Tom Stellard [Wed, 29 Aug 2012 14:33:58 +0000 (10:33 -0400)]
radeon/llvm: Create a register class for the M0 register

The Common Subexpression Elimination pass will not operate on
instructions with physical register defs, so we end up with
several redundant copies to M0 when using interpolation.

Adding a register class that only contains the M0 register allows
use to use a virtual register to represent M0, and makes it possible
for the Common Subexpression Elimination pass to remove the extra
copies.

11 years agoradeon/llvm: Set the neverHasSideEffects bit on more instructions
Tom Stellard [Wed, 29 Aug 2012 14:20:24 +0000 (10:20 -0400)]
radeon/llvm: Set the neverHasSideEffects bit on more instructions

This flag makes these instructions candidates for the dead code
elimination and common subexpression elimination.

11 years agoradeon/llvm: Declare the interpolation intrinsics as ReadOnly
Tom Stellard [Wed, 29 Aug 2012 13:58:28 +0000 (09:58 -0400)]
radeon/llvm: Declare the interpolation intrinsics as ReadOnly

This signals to the Dead Code Elimination pass that it is safe to
remove these instructions when they are dead.

11 years agoradeon/llvm: Mark M0 as a def when lowering interpolation instructions
Tom Stellard [Tue, 28 Aug 2012 19:38:30 +0000 (15:38 -0400)]
radeon/llvm: Mark M0 as a def when lowering interpolation instructions

11 years agometa: Add GLSL variant of _mesa_meta_GenerateMipmap() function
Anuj Phogat [Wed, 29 Aug 2012 18:13:55 +0000 (11:13 -0700)]
meta: Add GLSL variant of _mesa_meta_GenerateMipmap() function

This reduces the overhead of using the fixed function internally
in the driver.

V2: Use setup_glsl_generate_mipmap() and setup_ff_generate_mipmap()
    functions to avoid code duplication.
    Use glsl version when ARB_{vertex, fragmet}_shader are present.
    Remove redundant code.

V3: Remove redundant border related code leaving the assertion.

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agoglsl: s/class/struct/ for ast_type_qualifier
Brian Paul [Wed, 29 Aug 2012 15:04:00 +0000 (09:04 -0600)]
glsl: s/class/struct/ for ast_type_qualifier

To silence an MSVC compiler warning about class vs. struct.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agomesa: convert a few more macros to inline functions
Brian Paul [Sat, 25 Aug 2012 12:50:40 +0000 (06:50 -0600)]
mesa: convert a few more macros to inline functions

11 years agomesa: remove COPY_4V_CAST() macro
Brian Paul [Sat, 25 Aug 2012 12:43:37 +0000 (06:43 -0600)]
mesa: remove COPY_4V_CAST() macro

Only used in one place, and not really needed.