mesa.git
12 years agoradeon/llvm: Add flag operand to some instructions
Tom Stellard [Wed, 22 Aug 2012 15:04:58 +0000 (15:04 +0000)]
radeon/llvm: Add flag operand to some instructions

This new operand replaces the MachineOperand flags in LLVM, which
will be deprecated soon.  Eventually all instructions should have a flag
operand, but for now this operand has only been added to instructions
that need it.

12 years agoradeon/llvm: Encapsulate setting of MachineOperand flags
Tom Stellard [Tue, 21 Aug 2012 19:30:26 +0000 (19:30 +0000)]
radeon/llvm: Encapsulate setting of MachineOperand flags

MachineOperand flags will be removed soon, so it is convienent to
have only one function that modifies them.

12 years agobuild: Link DRI drivers with dricore in case of no direct rendering
Matt Turner [Fri, 17 Aug 2012 23:24:32 +0000 (16:24 -0700)]
build: Link DRI drivers with dricore in case of no direct rendering

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Only build libmesagallium.la if building Gallium
Matt Turner [Fri, 17 Aug 2012 22:51:59 +0000 (15:51 -0700)]
build: Only build libmesagallium.la if building Gallium

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Clean glx Makefile.am
Matt Turner [Fri, 17 Aug 2012 22:43:27 +0000 (15:43 -0700)]
build: Clean glx Makefile.am

mapi/glapi is already built when make is run in src/glx.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Put mapi/shared-glapi in CORE_DIRS
Matt Turner [Fri, 17 Aug 2012 21:54:25 +0000 (14:54 -0700)]
build: Put mapi/shared-glapi in CORE_DIRS

SRC_DIRS was overwritten (visible in the second hunk).

Also don't require mapi/shared-glapi to be built for GLES.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Only allow shared-glapi with DRI
Matt Turner [Fri, 17 Aug 2012 21:22:47 +0000 (14:22 -0700)]
build: Only allow shared-glapi with DRI

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Set sensible DRI/X11/OSMesa defaults
Matt Turner [Fri, 17 Aug 2012 21:05:56 +0000 (14:05 -0700)]
build: Set sensible DRI/X11/OSMesa defaults

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Print whether shared-glapi is enabled
Matt Turner [Fri, 17 Aug 2012 18:25:14 +0000 (11:25 -0700)]
build: Print whether shared-glapi is enabled

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild/x11: Force usage of C++ linker
Matt Turner [Fri, 17 Aug 2012 18:16:45 +0000 (11:16 -0700)]
build/x11: Force usage of C++ linker

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild/x11: Don't link against shared-glapi
Matt Turner [Fri, 17 Aug 2012 18:12:48 +0000 (11:12 -0700)]
build/x11: Don't link against shared-glapi

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Remove deprecated --with-driver= flag
Matt Turner [Fri, 17 Aug 2012 16:31:16 +0000 (09:31 -0700)]
build: Remove deprecated --with-driver= flag

Tested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoradeonsi: rework vertex format handling
Christian König [Wed, 22 Aug 2012 10:35:02 +0000 (12:35 +0200)]
radeonsi: rework vertex format handling

Preventing piglit's draw-vertices test from hanging the GPU.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix SPI_PS_INPUT_ENA handling
Christian König [Tue, 21 Aug 2012 12:41:29 +0000 (14:41 +0200)]
radeonsi: fix SPI_PS_INPUT_ENA handling

We need to enable at least one interpolation mode,
otherwise the GPU will hang.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agor600g: fix lockups with dual_src_blend v2
Vadim Girlin [Tue, 21 Aug 2012 11:39:25 +0000 (15:39 +0400)]
r600g: fix lockups with dual_src_blend v2

Disable blending when dual_src_blend is enabled and number of color exports
in the current fragment shader is less than 2.

Fixes lockups with ext_framebuffer_multisample-
alpha-to-coverage-dual-src-blend piglit test.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
12 years agost/dri: Add shared usage on buffers created
Jakob Bornecrantz [Tue, 14 Aug 2012 13:19:22 +0000 (15:19 +0200)]
st/dri: Add shared usage on buffers created

Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agogbm: Add shared usage on images created
Jakob Bornecrantz [Tue, 14 Aug 2012 13:15:56 +0000 (15:15 +0200)]
gbm: Add shared usage on images created

Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
12 years agomesa: Fix generic compressed texture formats' handling in glTexImage/glCopyTexImage
Anuj Phogat [Tue, 21 Aug 2012 18:03:48 +0000 (11:03 -0700)]
mesa: Fix generic compressed texture formats' handling in glTexImage/glCopyTexImage

The generic texture formats should be accepted by the <internalformat>
parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, and
CopyTexImage2D functions. When the application specifies a generic
format, the driver is free to pick an uncompressed format.

This patch reverts the changes due to following commit:
commit a36581ccc06693231011c3fe136207e73191b1ce
mesa: do more teximage error checking for generic compressed formats

This patch fixes compressed texture format failures in intel oglconform
pxconv-gettex test case:
https://bugs.freedesktop.org/show_bug.cgi?id=47220

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeon/llvm: ExpandSpecialInstrs - Add support for cube instructions
Tom Stellard [Tue, 21 Aug 2012 14:53:50 +0000 (14:53 +0000)]
radeon/llvm: ExpandSpecialInstrs - Add support for cube instructions

12 years agoradeon/llvm: ExpandSpecialInstrs - Add support for vector instructions
Tom Stellard [Tue, 21 Aug 2012 14:33:04 +0000 (14:33 +0000)]
radeon/llvm: ExpandSpecialInstrs - Add support for vector instructions

12 years agoradeon/llvm: Add R600ExpandSpecialInstrs pass
Tom Stellard [Mon, 20 Aug 2012 21:09:00 +0000 (21:09 +0000)]
radeon/llvm: Add R600ExpandSpecialInstrs pass

This pass expends reduction instructions into a MachineInstrBundle that
contains 4 instruction, one for each instruction slot.

12 years agoradeon/llvm: Add helper function for getting sub reg indices
Tom Stellard [Mon, 20 Aug 2012 21:08:03 +0000 (21:08 +0000)]
radeon/llvm: Add helper function for getting sub reg indices

12 years agoradeonsi: Handle NULL sampler views getting passed in by the state tracker.
Michel Dänzer [Tue, 21 Aug 2012 11:48:18 +0000 (13:48 +0200)]
radeonsi: Handle NULL sampler views getting passed in by the state tracker.

Don't dereference NULL pointers, and if all views are NULL, don't generate an
invalid PM4 packet which locks up the GPU.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
12 years agoAPIspec: Remove cruft about AMD_compressed_???_texture
Ian Romanick [Thu, 26 Jul 2012 17:38:15 +0000 (10:38 -0700)]
APIspec: Remove cruft about AMD_compressed_???_texture

Mesa doesn't support these extensions, and it seems unlikely that it
ever will

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glFramebufferTexture3D textarget validation
Ian Romanick [Fri, 27 Jul 2012 14:23:14 +0000 (07:23 -0700)]
mesa/es: Remove redundant glFramebufferTexture3D textarget validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glGetShaderiv pname validation
Ian Romanick [Fri, 27 Jul 2012 14:18:48 +0000 (07:18 -0700)]
mesa/es: Remove redundant glGetShaderiv pname validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glCompressedTexImage border validation
Ian Romanick [Fri, 27 Jul 2012 14:06:58 +0000 (07:06 -0700)]
mesa/es: Remove redundant glCompressedTexImage border validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glPointSizePointer type validation
Ian Romanick [Wed, 25 Jul 2012 22:24:38 +0000 (15:24 -0700)]
mesa/es: Remove redundant glPointSizePointer type validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glGetBufferPointer pname validation
Ian Romanick [Wed, 25 Jul 2012 23:15:25 +0000 (16:15 -0700)]
mesa/es: Remove redundant glGetBufferPointer pname validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glGetVertexAttribPointer pname validation
Ian Romanick [Wed, 25 Jul 2012 22:20:32 +0000 (15:20 -0700)]
mesa/es: Remove redundant glGetVertexAttribPointer pname validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant element type validation
Ian Romanick [Wed, 25 Jul 2012 14:26:33 +0000 (07:26 -0700)]
mesa/es: Remove redundant element type validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant glGetShaderPrecisionFormat shader type validation
Ian Romanick [Wed, 25 Jul 2012 03:18:17 +0000 (20:18 -0700)]
mesa/es: Remove redundant glGetShaderPrecisionFormat shader type validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant depth func validation
Ian Romanick [Tue, 20 Sep 2011 23:50:50 +0000 (16:50 -0700)]
mesa/es: Remove redundant depth func validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant stencil op fail/zfail/zpass validation
Ian Romanick [Tue, 20 Sep 2011 23:50:22 +0000 (16:50 -0700)]
mesa/es: Remove redundant stencil op fail/zfail/zpass validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant shade model mode validation
Ian Romanick [Tue, 20 Sep 2011 23:47:43 +0000 (16:47 -0700)]
mesa/es: Remove redundant shade model mode validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant light pname and light validation
Ian Romanick [Tue, 20 Sep 2011 23:45:43 +0000 (16:45 -0700)]
mesa/es: Remove redundant light pname and light validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant hint mode validation
Ian Romanick [Tue, 20 Sep 2011 23:43:43 +0000 (16:43 -0700)]
mesa/es: Remove redundant hint mode validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant separate stencil face validation
Ian Romanick [Tue, 20 Sep 2011 23:21:41 +0000 (16:21 -0700)]
mesa/es: Remove redundant separate stencil face validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant stencil function validation
Ian Romanick [Tue, 20 Sep 2011 23:20:08 +0000 (16:20 -0700)]
mesa/es: Remove redundant stencil function validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant logic op operand validation
Ian Romanick [Tue, 20 Sep 2011 23:19:04 +0000 (16:19 -0700)]
mesa/es: Remove redundant logic op operand validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant alpha function validation
Ian Romanick [Tue, 20 Sep 2011 23:17:16 +0000 (16:17 -0700)]
mesa/es: Remove redundant alpha function validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant separate stencil mask face validation
Ian Romanick [Tue, 20 Sep 2011 23:15:22 +0000 (16:15 -0700)]
mesa/es: Remove redundant separate stencil mask face validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant front-face mode validation
Ian Romanick [Tue, 20 Sep 2011 23:13:14 +0000 (16:13 -0700)]
mesa/es: Remove redundant front-face mode validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant face culling mode validation
Ian Romanick [Tue, 20 Sep 2011 23:09:55 +0000 (16:09 -0700)]
mesa/es: Remove redundant face culling mode validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant blend equation mode validation
Ian Romanick [Tue, 20 Sep 2011 23:08:35 +0000 (16:08 -0700)]
mesa/es: Remove redundant blend equation mode validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant texture target validation
Ian Romanick [Tue, 20 Sep 2011 23:07:04 +0000 (16:07 -0700)]
mesa/es: Remove redundant texture target validation

Mesa doesn't check the parameter passed to glMultiTexCoord*.  It does,
however, mask the texture value to prevent out-of-bounds writes.  This
patch will promote this non-conformant behavior to OpenGL ES 1.  I don't
think anyone will care, and the gets some silly code out of a hot path.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Rearrange placement of GL_TEXTURE_MAX_ANISOTROPY_EXT in APIspec
Ian Romanick [Mon, 3 Oct 2011 20:09:51 +0000 (13:09 -0700)]
mesa/es: Rearrange placement of GL_TEXTURE_MAX_ANISOTROPY_EXT in APIspec

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es: Remove redundant min/mag filter validation
Ian Romanick [Mon, 3 Oct 2011 20:05:47 +0000 (13:05 -0700)]
mesa/es: Remove redundant min/mag filter validation

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeon-llvm: Start multithreaded before using llvm.
Mathias Fröhlich [Sat, 18 Aug 2012 09:43:51 +0000 (11:43 +0200)]
radeon-llvm: Start multithreaded before using llvm.

This is required to make some of llvm's api calls
thread save. In particular the PassRegistry, which is
implicitly accessed while compiling shader programs.
The PassRegistry uses a mutex that is only active if
the llvm_is_multithreaded() returns true.
Calling llvm_start_multithreading() makes this happen
and by calling this function we try to make sure that
we can savely compile shaders in paralell.
Since there is also a call llvm_stop_multithreading()
in the llvm api, we cannot guarantee that this does
not get switched off while we are relying on this being
set, but for the easier use cases this fixes a race with
the radeon llvm compiler we have as of today.

Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Signed-off-by: Tom Stellard <thomas.stellard@amd.com>
12 years agor600g: Move common compute/3D register init to its own function
archibald [Mon, 20 Aug 2012 14:44:39 +0000 (14:44 +0000)]
r600g: Move common compute/3D register init to its own function

Signed-off-by: Tom Stellard <thomas.stellard@amd.com>
12 years agonv50/ir/tgsi: handle DP2 in tgsi Instruction srcMask
Christoph Bumiller [Sat, 18 Aug 2012 15:34:44 +0000 (17:34 +0200)]
nv50/ir/tgsi: handle DP2 in tgsi Instruction srcMask

Solved by Tiziano Bacocco on IRC.

12 years agonv50/ir/emit: don't forget saturation bit on f32 add immediate
Christoph Bumiller [Sat, 18 Aug 2012 15:30:50 +0000 (17:30 +0200)]
nv50/ir/emit: don't forget saturation bit on f32 add immediate

Solved by Maxim Levitsky on IRC.

12 years agomesa: use #if over #ifdef in the FEATURE_ES1 check to fix a build failure.
Tilman Sauerbeck [Sat, 18 Aug 2012 09:51:22 +0000 (11:51 +0200)]
mesa: use #if over #ifdef in the FEATURE_ES1 check to fix a build failure.

mfeatures.h will define FEATURE_ES1 to 0 if it's not defined yet.

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

Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agost/mesa: fix sampler view counting
Brian Paul [Fri, 17 Aug 2012 14:16:23 +0000 (08:16 -0600)]
st/mesa: fix sampler view counting

In the past, when we called pipe::set_sampler_views(n) the drivers set
samplers [n..MAX] to NULL.  We no longer do that.  The state tracker
code was already trying to set unused sampler views to NULL to cover
that case, but the logic was broken and unnoticed until now.  This patch
fixes it.

Strictly speaking, this patch shouldn't be necessary.  Drivers should simply
ignore unused samplers and sampler views.  But some drivers like llvmpipe (and
others?) count those things and they figure into state validation.  That could
be fixed in the future.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=53617

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agoutil: update and fix u_upload_mgr.h comments
Brian Paul [Fri, 17 Aug 2012 21:20:07 +0000 (15:20 -0600)]
util: update and fix u_upload_mgr.h comments

12 years agost/mesa: use Elements() instead of hard-coded number
Brian Paul [Fri, 17 Aug 2012 20:33:31 +0000 (14:33 -0600)]
st/mesa: use Elements() instead of hard-coded number

And add a comment about the velems_util_draw[] array.

12 years agomesa: remove unused params, add const qualifiers
Brian Paul [Fri, 17 Aug 2012 16:52:16 +0000 (10:52 -0600)]
mesa: remove unused params, add const qualifiers

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: querying GL_TEXTURE_COMPRESSED_IMAGE_SIZE for a buffer obj is illegal
Brian Paul [Fri, 17 Aug 2012 16:50:39 +0000 (10:50 -0600)]
mesa: querying GL_TEXTURE_COMPRESSED_IMAGE_SIZE for a buffer obj is illegal

GL_INVALID_OPERATION is to be raised when querying a non-compressed
image/buffer.  Since a buffer object can't have a compressed format this
query always generates an error.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa/es: Don't generate ES1 type conversion wrappers
Ian Romanick [Fri, 27 Jul 2012 21:38:37 +0000 (14:38 -0700)]
mesa/es: Don't generate ES1 type conversion wrappers

These are gradually going to get whittled away and eventually folded into the
source files with the native type functions.

v2: Add (speculative) SConscript changes.  These may be broken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoi965: Fix bug in the old FS backend's projtex() calculation.
Eric Anholt [Tue, 14 Aug 2012 01:08:56 +0000 (18:08 -0700)]
i965: Fix bug in the old FS backend's projtex() calculation.

In the old backend, we looked at any FS attribute's proj_attrib_mask bits, not
just texcoords.  Now that we have _mesa_vert_result_to_frag_attrib(), we can
fill in the other FS inputs with correct proj_attrib_mask info.

NOTE: This is a candidate for stable branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46644
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Support GL_TEXTURE_BUFFER in GetTexLevelParameter[if]v in GL 3.1+.
Kenneth Graunke [Mon, 11 Jun 2012 02:33:01 +0000 (19:33 -0700)]
mesa: Support GL_TEXTURE_BUFFER in GetTexLevelParameter[if]v in GL 3.1+.

The OpenGL 3.1 specification explicitly allows this.  Oddly, the
ARB_texture_buffer_object spec's issues section claims this isn't
allowed, but proceeds to explain that the extension simply doesn't edit
the underlying spec to allow it, and thus it didn't appear in the list
of legal texture targets.

Thus, this patch legalizes it only in 3.1+ contexts, but still returns
INVALID_ENUM in earlier contexts that expose ARB_texture_buffer_object.

Unfortunately, the behavior of the call is horrendously undefined.

Fixes oglconform's tbo/negative.textureParams test.

v2: Require desktop OpenGL.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Split out part of glGetTexLevelParameter into a helper function.
Kenneth Graunke [Mon, 11 Jun 2012 08:27:38 +0000 (01:27 -0700)]
mesa: Split out part of glGetTexLevelParameter into a helper function.

Move the _mesa_GetTexLevelParameter[iv] functions below the helper
function so the prototype is available.

This will be useful in the next commit.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add GL_TEXTURE_CUBE_MAP to _mesa_max_texture_levels(). [v2]
Kenneth Graunke [Mon, 11 Jun 2012 02:11:55 +0000 (19:11 -0700)]
mesa: Add GL_TEXTURE_CUBE_MAP to _mesa_max_texture_levels(). [v2]

For cube maps, _mesa_generate_mipmap() calls this with
GL_TEXTURE_CUBE_MAP (the gl_texture_object's Target) rather than one
of the faces.  This caused _mesa_max_texture_levels() to return 0, which
resulted in maxLevels == -1 and the next line's assertion to fail.

This function is called from seven places:
- fbobject.c: framebuffer_texture()
- mipmap.c: _mesa_generate_mipmap()
- texgetimage.c:
  - getteximage_error_check()
  - getcompressedteximage_error_check()
- texparam.c: _mesa_GetTexLevelParameteriv()
- texstorage.c: tex_storage_error_check()

All of these (or their callers) now explicitly check for invalid targets
already, so this shouldn't cause invalid targets to slip through.
(Technically _mesa_generate_mipmap() doesn't check for invalid targets,
but the API-facing _mesa_GenerateMipmapEXT() function does.)

+2 oglconforms (float-texture/mipmap.automatic and mipmap.manual)

In addition to fixing the mipmap bug, it should also cause glTexStorage
to accept GL_TEXTURE_CUBE_MAP, which is explicitly allowed by the spec.

v2: Drop alterations to callers; this is now in a patch series that adds
    explicit checking to API functions.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add explicit target checking to GetTexLevelParameter[if]v().
Kenneth Graunke [Mon, 11 Jun 2012 01:41:58 +0000 (18:41 -0700)]
mesa: Add explicit target checking to GetTexLevelParameter[if]v().

Previously, it relied on _mesa_max_texture_levels() for texture target
error checking.  This was somewhat dodgy, as _mesa_max_texture_levels()
is called in seven diferent places, not all of which necessarily accept
the same list of targets.

I copied the list of legal targets from _mesa_max_texture_levels(), so
this patch should not introduce any change in behavior.  Future patches
will cause the two to diverge.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add explicit target checking to Get[Compressed]TexImage().
Kenneth Graunke [Mon, 11 Jun 2012 02:06:23 +0000 (19:06 -0700)]
mesa: Add explicit target checking to Get[Compressed]TexImage().

Previously, they relied on _mesa_max_texture_levels() for texture target
error checking.  This was somewhat dodgy, as _mesa_max_texture_levels()
is called in seven diferent places, not all of which necessarily accept
the same list of targets.

I copied the list of legal targets from _mesa_max_texture_levels() but
removed the proxy targets, as both functions explicitly rejected those
targets.  This changes the order in which we check errors, which could
change whether we return INVALID_VALUE or INVALID_ENUM.  However, it
shouldn't change the list of accepted targets.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agollvmpipe: remove polygon stipple assertion
Brian Paul [Fri, 17 Aug 2012 14:58:15 +0000 (08:58 -0600)]
llvmpipe: remove polygon stipple assertion

It's possible for us to have an unused sampler bound when the fragment
shader itself doesn't use any samplers.  So the assertion isn't valid.

Fixes http://bugs.freedesktop.org/show_bug.cgi?id=53616

12 years agosvga: minor code reformatting
Brian Paul [Thu, 16 Aug 2012 21:27:39 +0000 (15:27 -0600)]
svga: minor code reformatting

To be consistent with other functions.

12 years agobuild: Remove -shared from OSMesa's LDFLAGS
Matt Turner [Tue, 14 Aug 2012 19:36:01 +0000 (12:36 -0700)]
build: Remove -shared from OSMesa's LDFLAGS

Would break the static build.

12 years agobuild: Remove EXTRA_LIB_PATH
Matt Turner [Tue, 14 Aug 2012 19:33:32 +0000 (12:33 -0700)]
build: Remove EXTRA_LIB_PATH

You can add extra library paths to LDFLAGS directly.

12 years agobuild: Require X11 pkg-config files
Matt Turner [Tue, 14 Aug 2012 19:24:31 +0000 (12:24 -0700)]
build: Require X11 pkg-config files

12 years agor600g: disable tiling for 422 formats again
Marek Olšák [Thu, 16 Aug 2012 18:36:40 +0000 (20:36 +0200)]
r600g: disable tiling for 422 formats again

12 years agor600g: fix blits of subsampled formats
Marek Olšák [Tue, 7 Aug 2012 01:30:43 +0000 (03:30 +0200)]
r600g: fix blits of subsampled formats

12 years agor600g: fix copying between NPOT mipmapped compressed textures
Marek Olšák [Thu, 16 Aug 2012 17:05:22 +0000 (19:05 +0200)]
r600g: fix copying between NPOT mipmapped compressed textures

We aligned the dimensions to the blocksize, then divided by it
(in r600_blit.c), then minified, which was wrong.

The minification must be done first, not last.
This fixes piglit/fbo-generatemipmap-formats with S3TC and maybe
a bunch of other tests too. Tested on RV730.

12 years agor600g: make F2U trans-only on r600-r700
Marek Olšák [Wed, 15 Aug 2012 17:06:04 +0000 (19:06 +0200)]
r600g: make F2U trans-only on r600-r700

This fixes a failing assertion in r600_asm.c.

12 years agor600g: set CB_COLOR_INFO to INVALID for disabled colorbuffers on r600-r700
Marek Olšák [Tue, 14 Aug 2012 20:10:35 +0000 (22:10 +0200)]
r600g: set CB_COLOR_INFO to INVALID for disabled colorbuffers on r600-r700

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agor600g: rename r600_resource_texture to r600_texture
Marek Olšák [Tue, 14 Aug 2012 00:29:17 +0000 (02:29 +0200)]
r600g: rename r600_resource_texture to r600_texture

12 years agor600g: always put tiled textures in VRAM
Marek Olšák [Tue, 14 Aug 2012 00:22:13 +0000 (02:22 +0200)]
r600g: always put tiled textures in VRAM

12 years agor600g: cleanup r600_resource_texture in favor of radeon_surface
Marek Olšák [Sun, 12 Aug 2012 16:40:33 +0000 (18:40 +0200)]
r600g: cleanup r600_resource_texture in favor of radeon_surface

12 years agor600g: remove unused parameter in r600_texture_create_object
Marek Olšák [Sun, 12 Aug 2012 16:36:52 +0000 (18:36 +0200)]
r600g: remove unused parameter in r600_texture_create_object

12 years agor600g: fixup the usage flag for the flushed depth texture
Marek Olšák [Sun, 12 Aug 2012 16:22:42 +0000 (18:22 +0200)]
r600g: fixup the usage flag for the flushed depth texture

12 years agowayland-drm: close fd after the display is uninitialized
Philipp Brüschweiler [Wed, 15 Aug 2012 16:14:44 +0000 (18:14 +0200)]
wayland-drm: close fd after the display is uninitialized

This fixes a "kernel rejected pushbuf: Bad file descriptor" error on
wl_drm display destruction.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
12 years agoscons: Fix MinGW cross compilation.
José Fonseca [Wed, 15 Aug 2012 18:24:58 +0000 (19:24 +0100)]
scons: Fix MinGW cross compilation.

Compensate for the recent changes and assumptions added to
Makefiles.sources

12 years agoradeon/llvm: Lower implicit parameters before ISel
Tom Stellard [Thu, 16 Aug 2012 15:49:31 +0000 (15:49 +0000)]
radeon/llvm: Lower implicit parameters before ISel

12 years agogallium/draw: move misplaced brace
Brian Paul [Thu, 16 Aug 2012 15:16:42 +0000 (09:16 -0600)]
gallium/draw: move misplaced brace

12 years agomesa: raise GL_INVALID_OPERATION in glGenerateMipmap for missing base image
Brian Paul [Fri, 10 Aug 2012 16:36:17 +0000 (10:36 -0600)]
mesa: raise GL_INVALID_OPERATION in glGenerateMipmap for missing base image

This seems to be expected by the WebGL texture-mips test.  The error makes
sense, but I haven't found (yet) any OpenGL documentation specifying this
error condition.

See http://bugs.freedesktop.org/show_bug.cgi?id=44912

Note: This is a candidate for the 8.0 branch.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
12 years agor600: update sampler, sampler_view code for the future
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
r600: update sampler, sampler_view code for the future

For when we have pipe->set_sampler_states(pipe, shader, start, num, samplers),
etc.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agorbug: update data structures, functions for future changes
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
rbug: update data structures, functions for future changes

To support geom/compute/etc shaders, samplers, sampler views, etc.
To support pipe->bind_sampler_states() w/ start_slot.

12 years agogallium/trace: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
gallium/trace: add 'start' parameter to bind_sampler_states/views()

12 years agogallium/identity: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
gallium/identity: add 'start' parameter to bind_sampler_states/views()

12 years agogalahad: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
galahad: add 'start' parameter to bind_sampler_states/views()

12 years agosvga: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
svga: add 'start' parameter to bind_sampler_states/views()

12 years agollvmpipe: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
llvmpipe: add 'start' parameter to bind_sampler_states/views()

12 years agosoftpipe: add 'start' parameter to bind_sampler_states/views()
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
softpipe: add 'start' parameter to bind_sampler_states/views()

To support updating a sub-range of sampler states/views in the future.
Note that we always pass start=0 at this time.

12 years agogallium/trace: consolidate sampler, sampler_view code
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
gallium/trace: consolidate sampler, sampler_view code

12 years agogallium/identity: consolidate sampler, sampler_view code
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
gallium/identity: consolidate sampler, sampler_view code

This will simplify things when the pipe_context functions are consolidated.

12 years agost/mesa: add support for GS textures and samplers
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
st/mesa: add support for GS textures and samplers

12 years agost/mesa: combine vertex/fragment sampler state in arrays
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
st/mesa: combine vertex/fragment sampler state in arrays

As with other recent changes, put the vertex and fragment sampler state
into arrays indexed by the shader type.  This will let us easily add
support for other types of shaders in the future.

12 years agogallium: remove PIPE_MAX_VERTEX/GEOMETRY_SAMPLERS #define
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
gallium: remove PIPE_MAX_VERTEX/GEOMETRY_SAMPLERS #define

PIPE_MAX_SAMPLERS, PIPE_MAX_VERTEX_SAMPLERS and PIPE_MAX_GEOMETRY_SAMPLERS
were all defined to the same value (16).

In various places we're creating arrays such as
sampler_views[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS] so we were assuming
the same number of max samplers for all shader stages anyway.

Of course, drivers are still free to advertise different numbers of max
samplers for different shaders.

12 years agodraw: index samplers and sampler_view state by shader type
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
draw: index samplers and sampler_view state by shader type

So that we can handle GS state and other types of shaders in the future.

12 years agodraw: move tgsi-related state into a tgsi sub-struct
Brian Paul [Fri, 10 Aug 2012 02:59:44 +0000 (20:59 -0600)]
draw: move tgsi-related state into a tgsi sub-struct

To better organize things a bit.