mesa.git
12 years agoi915g: silence a const pointer warning
Brian Paul [Sat, 4 Aug 2012 14:30:15 +0000 (08:30 -0600)]
i915g: silence a const pointer warning

12 years agoradeonsi: fix build failure after blitter changes
Marek Olšák [Sat, 4 Aug 2012 14:34:24 +0000 (16:34 +0200)]
radeonsi: fix build failure after blitter changes

12 years agor600g: precompute color buffer state in pipe_surface and reuse it
Marek Olšák [Wed, 1 Aug 2012 23:43:01 +0000 (01:43 +0200)]
r600g: precompute color buffer state in pipe_surface and reuse it

12 years agor600g: precompute depth buffer state in pipe_surface and reuse it
Marek Olšák [Wed, 1 Aug 2012 23:43:01 +0000 (01:43 +0200)]
r600g: precompute depth buffer state in pipe_surface and reuse it

This is done on-demand, because we don't know in advance if a zbuffer
will be bound as depth or color.

12 years agor600g: simplify create_surface
Marek Olšák [Wed, 1 Aug 2012 15:04:29 +0000 (17:04 +0200)]
r600g: simplify create_surface

12 years agor600g: drop the old texture allocation code
Marek Olšák [Sun, 29 Jul 2012 16:53:19 +0000 (18:53 +0200)]
r600g: drop the old texture allocation code

Made obsolete by the libdrm surface allocator.

12 years agor600g: make sure copying of all texture formats is accelerated
Marek Olšák [Fri, 27 Jul 2012 22:38:42 +0000 (00:38 +0200)]
r600g: make sure copying of all texture formats is accelerated

12 years agogallium/u_blitter: add a query for checking whether copying is supported
Marek Olšák [Fri, 27 Jul 2012 23:19:18 +0000 (01:19 +0200)]
gallium/u_blitter: add a query for checking whether copying is supported

v2: add comments

12 years agor600g: don't decompress depth or stencil if there isn't any
Marek Olšák [Sat, 28 Jul 2012 11:55:59 +0000 (13:55 +0200)]
r600g: don't decompress depth or stencil if there isn't any

12 years agor600g: correct texture memory size for Z32F_S8X24 on evergreen
Marek Olšák [Sun, 29 Jul 2012 15:10:00 +0000 (17:10 +0200)]
r600g: correct texture memory size for Z32F_S8X24 on evergreen

12 years agogallium/u_blitter: remove fallback for stencil copy that all drivers skipped
Marek Olšák [Fri, 27 Jul 2012 20:45:52 +0000 (22:45 +0200)]
gallium/u_blitter: remove fallback for stencil copy that all drivers skipped

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/u_blitter: add ability to blit only depth or only stencil
Marek Olšák [Fri, 27 Jul 2012 19:44:17 +0000 (21:44 +0200)]
gallium/u_blitter: add ability to blit only depth or only stencil

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium: define PIPE_MASK_RGBAZS
Marek Olšák [Fri, 27 Jul 2012 19:31:59 +0000 (21:31 +0200)]
gallium: define PIPE_MASK_RGBAZS

I need this and it seems like it could be useful.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/u_blitter: minor cleanup
Marek Olšák [Fri, 27 Jul 2012 19:27:14 +0000 (21:27 +0200)]
gallium/u_blitter: minor cleanup

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/tgsi: fixup texture name strings
Marek Olšák [Fri, 27 Jul 2012 17:09:14 +0000 (19:09 +0200)]
gallium/tgsi: fixup texture name strings

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/u_blitter: set sample mask to ~0
Marek Olšák [Sun, 22 Jul 2012 18:27:04 +0000 (20:27 +0200)]
gallium/u_blitter: set sample mask to ~0

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/u_blit: bail out if src is a multisample texture
Marek Olšák [Tue, 24 Jul 2012 14:11:04 +0000 (16:11 +0200)]
gallium/u_blit: bail out if src is a multisample texture

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium/u_blit: check nr_samples before using resource_copy_region
Marek Olšák [Tue, 24 Jul 2012 14:10:45 +0000 (16:10 +0200)]
gallium/u_blit: check nr_samples before using resource_copy_region

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agogallium: set sample mask to ~0 for clear, blit and gen_mipmap
Marek Olšák [Tue, 24 Jul 2012 09:17:29 +0000 (11:17 +0200)]
gallium: set sample mask to ~0 for clear, blit and gen_mipmap

The sample mask affects single-sampled rendering too (it's orthogonal
to the color mask).

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agor600g: fix F2U opcode translation
Dave Airlie [Sat, 4 Aug 2012 11:39:30 +0000 (13:39 +0200)]
r600g: fix F2U opcode translation

Signed-off-by: Marek Olšák <maraeo@gmail.com>
12 years agodraw: Ensure channel in convert_to_soa is initialized.
Vinson Lee [Fri, 3 Aug 2012 05:38:24 +0000 (22:38 -0700)]
draw: Ensure channel in convert_to_soa is initialized.

Fixes uninitialized pointer read defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agou_blitter: Move a pointer dereference after null check.
Vinson Lee [Fri, 3 Aug 2012 06:28:10 +0000 (23:28 -0700)]
u_blitter: Move a pointer dereference after null check.

Fixes dereference before null check defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agoUse C99 NAN and INFINITY macros
Matt Turner [Wed, 1 Aug 2012 21:48:47 +0000 (14:48 -0700)]
Use C99 NAN and INFINITY macros

12 years agogallium/tests/trivial: updates for CSO interface changes
Brian Paul [Fri, 3 Aug 2012 17:58:43 +0000 (11:58 -0600)]
gallium/tests/trivial: updates for CSO interface changes

12 years agost/xorg: updates for CSO interface changes
Brian Paul [Fri, 3 Aug 2012 17:56:36 +0000 (11:56 -0600)]
st/xorg: updates for CSO interface changes

12 years agost/xa: updates for CSO interface changes
Brian Paul [Fri, 3 Aug 2012 17:56:28 +0000 (11:56 -0600)]
st/xa: updates for CSO interface changes

12 years agovega: fix build breakage from cso sampler/view changes
Brian Paul [Fri, 3 Aug 2012 14:33:08 +0000 (08:33 -0600)]
vega: fix build breakage from cso sampler/view changes

12 years agocso: remove unreachable break statements
Brian Paul [Thu, 2 Aug 2012 22:30:10 +0000 (16:30 -0600)]
cso: remove unreachable break statements

12 years agocso: 80-column wrapping, remove trailing whitespace, etc
Brian Paul [Thu, 2 Aug 2012 22:29:13 +0000 (16:29 -0600)]
cso: 80-column wrapping, remove trailing whitespace, etc

12 years agogallium: consolidate CSO sampler and sampler_view functions
Brian Paul [Thu, 2 Aug 2012 19:02:40 +0000 (13:02 -0600)]
gallium: consolidate CSO sampler and sampler_view functions

Merge the vertex/fragment versions of the cso_set/save/restore_samplers()
functions.  Now we pass the shader stage (PIPE_SHADER_x) to the function
to indicate vertex/fragment/geometry samplers.  For example:

cso_single_sampler(cso, PIPE_SHADER_FRAGMENT, unit, sampler);

This results in quite a bit of code reduction, fewer CSO functions and
support for geometry shaders.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agost/mesa: Ensure dst in compile_instruction is initialized.
Vinson Lee [Thu, 2 Aug 2012 06:11:33 +0000 (23:11 -0700)]
st/mesa: Ensure dst in compile_instruction is initialized.

Fixes uninitialized scalar variable defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeon/llvm: Add $(LLVM_LDFLAGS) to the loader linker flags
Tom Stellard [Thu, 2 Aug 2012 19:37:02 +0000 (19:37 +0000)]
radeon/llvm: Add $(LLVM_LDFLAGS) to the loader linker flags

12 years agoradeon/llvm: Add support for more f32 CMP instructions on SI
Tom Stellard [Thu, 2 Aug 2012 18:14:22 +0000 (14:14 -0400)]
radeon/llvm: Add support for more f32 CMP instructions on SI

12 years agoradeon/llvm: Add support for fneg on SI
Tom Stellard [Thu, 2 Aug 2012 18:05:20 +0000 (14:05 -0400)]
radeon/llvm: Add support for fneg on SI

12 years agoradeon/llvm: Add support for fp_to_sint on SI
Tom Stellard [Thu, 2 Aug 2012 18:04:36 +0000 (14:04 -0400)]
radeon/llvm: Add support for fp_to_sint on SI

12 years agoradeon/llvm: Remove CMOVLOG DAG node
Tom Stellard [Thu, 2 Aug 2012 19:42:50 +0000 (19:42 +0000)]
radeon/llvm: Remove CMOVLOG DAG node

12 years agoradeonsi: Properly initialize si_shader_ctx.radeon_bld
Tom Stellard [Thu, 2 Aug 2012 17:21:30 +0000 (13:21 -0400)]
radeonsi: Properly initialize si_shader_ctx.radeon_bld

12 years agoradeonsi: Handle TGSI TXP opcode.
Michel Dänzer [Thu, 2 Aug 2012 15:19:22 +0000 (17:19 +0200)]
radeonsi: Handle TGSI TXP opcode.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeonsi: Handle TGSI DIV opcode.
Michel Dänzer [Thu, 2 Aug 2012 15:30:44 +0000 (17:30 +0200)]
radeonsi: Handle TGSI DIV opcode.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agosvga: remove questionable INLINE qualifiers
Brian Paul [Thu, 2 Aug 2012 15:40:41 +0000 (09:40 -0600)]
svga: remove questionable INLINE qualifiers

12 years agosvga: sort #includes
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
svga: sort #includes

12 years agosvga: add some comments in svga_screen_cache.c
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
svga: add some comments in svga_screen_cache.c

12 years agosvga: whitespace, formatting fixes
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
svga: whitespace, formatting fixes

12 years agosvga: remove unneeded 'struct svga_screen' declarations
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
svga: remove unneeded 'struct svga_screen' declarations

12 years agomesa: fix default_access_mode() result for ES2
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
mesa: fix default_access_mode() result for ES2

The GL_OES_mapbuffer extension is supported by OpenGL ES 1 and ES 2 so return
GL_MAP_WRITE_BIT for both ES versions, not just ES 1.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: default_access_mode() returns a GLbitfield, not GLenum
Brian Paul [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
mesa: default_access_mode() returns a GLbitfield, not GLenum

12 years agoscons: set YACCHXXFILESUFFIX to stop needless rebuilding of the parser
José Fonseca [Thu, 2 Aug 2012 15:40:40 +0000 (09:40 -0600)]
scons: set YACCHXXFILESUFFIX to stop needless rebuilding of the parser

Before, the GLSL parser was getting rebuilt every time that scons was
run.  The problem was scons was expecting a glsl_parser.hpp file but
we were generating a glsl_parser.h file.

Signed-off-by: Brian Paul <brianp@vmware.com>
12 years agoradeonsi: initial VDPAU target
Christian König [Fri, 13 Jul 2012 09:23:10 +0000 (11:23 +0200)]
radeonsi: initial VDPAU target

Windowed speed is of course way to slow, but fullscreen
works like a charm now.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeon/llvm: fix fp immediates on SI
Christian König [Wed, 1 Aug 2012 18:46:39 +0000 (20:46 +0200)]
radeon/llvm: fix fp immediates on SI

I don't know if this is a good idea, but it
fixes the problem at hand.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeonsi: fix TEX writemask
Christian König [Wed, 1 Aug 2012 21:18:14 +0000 (23:18 +0200)]
radeonsi: fix TEX writemask

Using the writemask in the sampler results in packet
VGPRS. For now just sample all components and let
llvm chose the right one.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix shader param and color count
Christian König [Wed, 1 Aug 2012 20:35:24 +0000 (22:35 +0200)]
radeonsi: fix shader param and color count

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: fix texture loads from sampler > 0
Christian König [Wed, 1 Aug 2012 13:20:07 +0000 (15:20 +0200)]
radeonsi: fix texture loads from sampler > 0

The backend is multiplying the offset by the numbers of
elements anyway, so doing it twice just makes everything
crash.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoradeonsi: disable tiling until we fixed all bugs
Christian König [Wed, 1 Aug 2012 09:21:19 +0000 (11:21 +0200)]
radeonsi: disable tiling until we fixed all bugs

Currently there are more important things to worry about.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoscons: Add support for Intel Compiler.
Vinson Lee [Wed, 1 Aug 2012 05:55:39 +0000 (22:55 -0700)]
scons: Add support for Intel Compiler.

The patch makes the SCons build with Intel Compiler successful.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agometa: Use sampler object in framebuffer blit
Pauli Nieminen [Tue, 12 Jun 2012 18:39:01 +0000 (21:39 +0300)]
meta: Use sampler object in framebuffer blit

Framebuffer blit needs to setup texture sampling with no reference to the
user's texturing state, and a sampler object lets us avoid a bunch of changes
to the user's state setup.

We don't bother caching the sampler object since we're changing parameters in
it based on the filtering option to glBlitFramebuffer().

Fixes piglit GL_ARB_sampler_objects/framebufferblit and rendering in l4d2 (our
setting of srgb decode wasn't being respected due to the user's sampler object
being active).

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agometa: Add sampler object to texture decompression
Pauli Nieminen [Tue, 12 Jun 2012 18:39:00 +0000 (21:39 +0300)]
meta: Add sampler object to texture decompression

Sampler objects can be used to shadow texture object state without
modifying original application state. Decompression path feels a bit
like path where caching shouldn't happen. But as everything else is
cached already I decided to cache sampler state too.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: Allow meta module to call sampler functions
Pauli Nieminen [Tue, 12 Jun 2012 18:38:57 +0000 (21:38 +0300)]
mesa: Allow meta module to call sampler functions

To allow meta module to use sample objects mesa GL functions need to be
visible and linkable for meta module.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoswrast: Support sampler object for texture fetching state
Pauli Nieminen [Tue, 12 Jun 2012 18:38:56 +0000 (21:38 +0300)]
swrast: Support sampler object for texture fetching state

swrast needs to pass sampler object into all texture fetching functions
to use correct sampling state when sampler object is bound to the unit.
The changes were made using half manual regular expression replace.

v2: Fix NULL deref in _swrast_choose_triangle(), because the _Current
    values aren't set yet, so we need to look at our texObj2D. (anholt)

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: Make ARB_sampler_objects mandatory
Pauli Nieminen [Tue, 12 Jun 2012 18:38:55 +0000 (21:38 +0300)]
mesa: Make ARB_sampler_objects mandatory

To allow meta acceleration operations to use sampler objects the
ARB_sampler_objects extension needs to be mandatory for all drivers.
Because the extension doesn't have any hardware dependencies it is
trivial to implement.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa/program: Use sampler object state if present
Pauli Nieminen [Tue, 12 Jun 2012 18:38:54 +0000 (21:38 +0300)]
mesa/program: Use sampler object state if present

CompareFailValue is part of Sampler state that needs to be read from
bound sampler object if present.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa/ff_shader: Fix sampler state reading
Pauli Nieminen [Tue, 12 Jun 2012 18:38:53 +0000 (21:38 +0300)]
mesa/ff_shader: Fix sampler state reading

Fixed function fragment shader generator was incorrectly read texture
sampling state directly from texture object. To make sure that
ARB_sampler_object works correctly shader generator has to use the
bound sampler if one exist.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoradeon&r200: Add support for ARB_sampler_objects
Pauli Nieminen [Tue, 12 Jun 2012 18:38:52 +0000 (21:38 +0300)]
radeon&r200: Add support for ARB_sampler_objects

Preparation for the mandatory support of ARB_sampler_objects. I have tested
this patch with rv280 only.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoradeon: Fix printf format not to warn in 64bit
Pauli Nieminen [Tue, 12 Jun 2012 18:38:51 +0000 (21:38 +0300)]
radeon: Fix printf format not to warn in 64bit

When I build tested radeon changes I noticed two warnings about format
size missmatch in 64bit. I decided to clean them to make relevant
compiler warnings easier to spot.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agonouveau: Add support for ARB_sampler_objects
Pauli Nieminen [Tue, 12 Jun 2012 18:38:50 +0000 (21:38 +0300)]
nouveau: Add support for ARB_sampler_objects

ARB_sampler_objects is very simple software only extension to support.  I want
to make it a mandatory extension for Mesa drivers to allow the meta module to
use it.

This patch add support for the extension to nouveau. It is completely untested
search and replace patch, except for flagging the texture state as needing to
be recomputed when a sampler object is present.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
12 years agomesa/samplerobj: Support EXT_texture_sRGB_decode
Pauli Nieminen [Tue, 12 Jun 2012 18:38:47 +0000 (21:38 +0300)]
mesa/samplerobj: Support EXT_texture_sRGB_decode

sRGBDecode state is part of sampler object state but mesa was missing
handlers to access the state. This patch adds the support for required
state changes and queries.

GL_EXT_texture_sRGB_decode issue 4:
"4) Should we add forward-looking support for ARB_sampler_objects?

        RESOLVED: YES

        If ARB_sampler_objects exists in the implementation, the sampler
        objects should also include this parameter per sampler."

Fixes piglit GL_ARB_sampler_objects/GL_EXT_texture_sRGB_decode.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: Move DepthMode to texture object
Pauli Nieminen [Tue, 12 Jun 2012 18:38:46 +0000 (21:38 +0300)]
mesa: Move DepthMode to texture object

GL_DEPTH_TEXTURE_MODE isn't meant to be part of sampler state based on
compatibility profile specifications.

OpenGL specification 4.1 compatibility 20100725 3.9.2:
"... The values accepted in the pname parameter
are TEXTURE_WRAP_S, TEXTURE_WRAP_T, TEXTURE_WRAP_R, TEXTURE_MIN_-
FILTER, TEXTURE_MAG_FILTER, TEXTURE_BORDER_COLOR, TEXTURE_MIN_-
LOD, TEXTURE_MAX_LOD, TEXTURE_LOD_BIAS, TEXTURE_COMPARE_MODE, and
TEXTURE_COMPARE_FUNC. Texture state listed in table 6.25 but not listed here and
in the sampler state in table 6.26 is not part of the sampler state, and remains in the
texture object."

The list of states is in Table 6.24 "Textures (state per texture
object)" instead of 6.25 mentioned in the specification text.

Same can be found from 3.3 compatibility specification.

Signed-off-by: Pauli Nieminen <pauli.nieminen@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.
Paul Berry [Fri, 27 Jul 2012 01:02:20 +0000 (18:02 -0700)]
i965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.

This patch allows GL_SAMPLES to be set to either 0 or 1 on i965
platforms that don't support MSAA (those prior to Gen6).  Setting
GL_SAMPLES=1 has the same effect as setting it to 0 on these platforms
(because MSAA is unsupported), but is distinguishable via the GL API.

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

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoi965/msaa: Treat GL_SAMPLES=1 as equivalent to GL_SAMPLES=0.
Paul Berry [Fri, 27 Jul 2012 01:01:28 +0000 (18:01 -0700)]
i965/msaa: Treat GL_SAMPLES=1 as equivalent to GL_SAMPLES=0.

EXT_framebuffer_multisample is a required subpart of
ARB_framebuffer_object, which means that we must support it even on
platforms that don't support MSAA.  Fortunately
EXT_framebuffer_multisample allows for this by allowing GL_MAX_SAMPLES
to be set to 1.

This leads to a tricky quirk in the GL spec: since
GlRenderbufferStorageMultisamples() accepts any value for its
"samples" parameter up to and including GL_MAX_SAMPLES, that means
that on platforms that don't support MSAA, GL_SAMPLES is allowed to be
set to either 0 or 1.  On platforms that do support MSAA, GL_SAMPLES=1
is not used; 0 means no MSAA, and 2 or higher means MSAA.

In other words, GL_SAMPLES needs to be interpreted as follows:
  =0  no MSAA (possible on all platforms)
  =1  no MSAA (only possible on platforms where MSAA unsupported)
  >1  MSAA (only possible on platforms where MSAA supported)

This patch modifies all MSAA-related code to choose between
multisampling and single-sampling based on the condition (GL_SAMPLES >
1) instead of (GL_SAMPLES > 0) so that GL_SAMPLES=1 will be treated as
"no MSAA".

Note that since GL_SAMPLES=1 implies GL_SAMPLE_BUFFERS=1, we can no
longer use GL_SAMPLE_BUFFERS to distinguish between MSAA and non-MSAA
rendering.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Add support for OES_standard_derivatives in GLSL ES.
Tomeu Vizoso [Mon, 16 Jul 2012 18:45:17 +0000 (20:45 +0200)]
glsl: Add support for OES_standard_derivatives in GLSL ES.

Previously, we advertised the extension but the builtin functions
were enabled only for GLSL and not for ES.

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

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agointel: Use consistent pattern in intelCreateBuffer
Chad Versace [Tue, 10 Jul 2012 00:01:29 +0000 (17:01 -0700)]
intel: Use consistent pattern in intelCreateBuffer

The 16-bit depth case did not follow the function's prevalent pattern.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agointel: Decrease nesting level in intelCreateBuffer
Chad Versace [Mon, 9 Jul 2012 23:51:23 +0000 (16:51 -0700)]
intel: Decrease nesting level in intelCreateBuffer

Nearly the whole function body was contained in the 'else' branch. The
'if' branch did one thing: return early with an error. Clean things up by
moving all the code out of the 'else' branch. Decreases max nesting level
from 4 to 3.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agointel: Remove dead code in intelAllocateBuffer
Chad Versace [Mon, 9 Jul 2012 22:51:06 +0000 (15:51 -0700)]
intel: Remove dead code in intelAllocateBuffer

After commit "intel: Convert to using private depth/stencil buffers", we
request from DRI2GetBuffersWithFormat only the front left and back left
buffers. We no longer request depth and stencil buffers.

Assert that in intelAllocateBuffer and remove the related dead code.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agoconfigure.ac: Remove extra ;;
Matt Turner [Wed, 1 Aug 2012 17:11:46 +0000 (10:11 -0700)]
configure.ac: Remove extra ;;

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=53053
12 years agoconfigure.ac: Don't duplicate CFLAGS
Matt Turner [Wed, 1 Aug 2012 15:38:35 +0000 (08:38 -0700)]
configure.ac: Don't duplicate CFLAGS

These assignments caused CFLAGS specified on the configure line to
appear twice in the final CFLAGS. Removing them makes the behavior
reasonable -- USER_CFLAGS are appended at the end of CFLAGS, allowing
the builder to override flags added by configure.ac like
-fno-strict-aliasing.

Reviewed-by: Adam Jackson <ajax@redhat.com>
12 years agoconfigure.ac: Remove contractions to stop breaking syntax highlighting
Matt Turner [Wed, 1 Aug 2012 15:32:49 +0000 (08:32 -0700)]
configure.ac: Remove contractions to stop breaking syntax highlighting

Reviewed-by: Adam Jackson <ajax@redhat.com>
12 years agoconfigure.ac: remove remnants of ppc asm support
Matt Turner [Wed, 1 Aug 2012 15:27:37 +0000 (08:27 -0700)]
configure.ac: remove remnants of ppc asm support

Missed by d387899388bd7090bda50593e35f8ed3cb730c47.

Reviewed-by: Adam Jackson <ajax@redhat.com>
12 years agolinux: Default to dri not xlib on all arches
Adam Jackson [Wed, 1 Aug 2012 15:44:28 +0000 (11:44 -0400)]
linux: Default to dri not xlib on all arches

Even on s390{,x} where there's no video card, you still want this so GLX
protocol works.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
12 years agonv50,nvc0: make resolve sampler objects allow sRGB conversion
Christoph Bumiller [Tue, 31 Jul 2012 21:32:14 +0000 (23:32 +0200)]
nv50,nvc0: make resolve sampler objects allow sRGB conversion

Just figured out what that bit does.

Note: It's converted back to sRGB on write, so no effective
conversion occurs.

12 years agoRevert "gallium: specify resource_resolve destination via a pipe_surface"
Christoph Bumiller [Tue, 31 Jul 2012 13:56:09 +0000 (15:56 +0200)]
Revert "gallium: specify resource_resolve destination via a pipe_surface"

This reverts commit 5d5af7d359e0060fa00b90a8f04900b96f9058b0.

It turns out the issue this was supposed to fix merely counter-acted
a bug in the hardware driver that I wasn't aware of.

The resource_resolve is not supposed to do sRGB conversion, period.
(This would violate the requirement that source and destination must
be of the same format).

12 years agor200: get rid of dubious aux scissor bits
Roland Scheidegger [Fri, 27 Jul 2012 01:58:45 +0000 (03:58 +0200)]
r200: get rid of dubious aux scissor bits

no point in emitting aux scissor values if we
a) never enable them
b) never set the actual values

plus it is enough to have that aux scissor enable reg (which we never set to
enable) in one place not two.

12 years agoradeon/r200: get rid of some unneeded cliprect/scissor code
Roland Scheidegger [Fri, 27 Jul 2012 01:49:25 +0000 (03:49 +0200)]
radeon/r200: get rid of some unneeded cliprect/scissor code

Noone was interested in the number of cliprects, and noone cared
about the intersect result neither. So just nuke this.

12 years agor200: get rid of old gart memory functions from old dri1
Roland Scheidegger [Fri, 27 Jul 2012 01:46:41 +0000 (03:46 +0200)]
r200: get rid of old gart memory functions from old dri1

Those functions are SO dead.

12 years agoradeon/r200: fix bogus clears
Roland Scheidegger [Fri, 27 Jul 2012 01:43:11 +0000 (03:43 +0200)]
radeon/r200: fix bogus clears

There were several problems with these functions (which are a remnant
of dri1 hyperz mostly - should bring it back somehow someday).
First, it would always do a swrast clear if the buffer to clear was a fbo.
Second, for buffers we wouldn't handle the clear (I guess aux/accum?) we
would actually still have tried to clear that later even when we already
cleared it with swrast.

12 years agoradeon/r200: fix bogus assert/scissor wrt width/height 2048
Roland Scheidegger [Fri, 27 Jul 2012 02:03:45 +0000 (04:03 +0200)]
radeon/r200: fix bogus assert/scissor wrt width/height 2048

This addresses one issue raised in bug #51658 discovered by Eugene St Leger.
The assert is bogus since there's no problem with texture width/height being
2048 (the width/height programmed is width/height minus one).
OTOH though the programmed size for scissor rect should be width/height
minus one too otherwise bad things may happen (as it is inclusive, and there's
not enough bits for more than a value of 2047).

12 years agoradeon/llvm: fix calculation of max register number
Christian König [Tue, 31 Jul 2012 16:30:45 +0000 (18:30 +0200)]
radeon/llvm: fix calculation of max register number

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agoradeon/llvm: Add pseudo-support for 64-bit immediate types on SI
Tom Stellard [Tue, 31 Jul 2012 20:05:54 +0000 (20:05 +0000)]
radeon/llvm: Add pseudo-support for 64-bit immediate types on SI

SI does not support 64-bit immediates natively, but llvm will generate
i64 immediates when indexing loads and stores (since SI has 64-bit
pointers).  The i64 indices will always be small enough to fit into
32-bits (i.e. the high 32 bits will always be all zeros), so we can
treat these index values as 32-bits.

12 years agoradeon/llvm: Fix incorrect return value in SelectADDRReg()
Tom Stellard [Tue, 31 Jul 2012 16:17:59 +0000 (16:17 +0000)]
radeon/llvm: Fix incorrect return value in SelectADDRReg()

We need to return true when we match the pattern.

12 years agoradeon/llvm: Move SMRD IMM pattern before SMRD SGPR pattern
Tom Stellard [Tue, 31 Jul 2012 16:42:15 +0000 (16:42 +0000)]
radeon/llvm: Move SMRD IMM pattern before SMRD SGPR pattern

In tablegen, if two patterns match, the one that comes first in the file
is given preference.  We want the SMRD IMM pattern to be given
preference, because it encodes the pointer offset in its immediate
field, which saves us an add instruction.

12 years agoglsl: Reject linking shaders with too many uniform blocks.
Eric Anholt [Mon, 25 Jun 2012 19:47:01 +0000 (12:47 -0700)]
glsl: Reject linking shaders with too many uniform blocks.

Part of fixing piglit maxblocks.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Return -1 for glGetUniformLocation on UBOs.
Eric Anholt [Mon, 25 Jun 2012 17:10:26 +0000 (10:10 -0700)]
mesa: Return -1 for glGetUniformLocation on UBOs.

Fixes piglit ARB_uniform_buffer_object/getuniformlocation.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Assign array and matrix stride values according to std140 layout.
Eric Anholt [Fri, 22 Jun 2012 21:34:33 +0000 (14:34 -0700)]
glsl: Assign array and matrix stride values according to std140 layout.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Add support for default layout qualifiers for uniforms.
Eric Anholt [Fri, 22 Jun 2012 20:36:35 +0000 (13:36 -0700)]
glsl: Add support for default layout qualifiers for uniforms.

I ended up having to add rallocing of the ast_type_qualifier in order
to avoid pulling in ast.h for glsl_parser_extras.h, because I wanted
to track an ast_type_qualifier in the state.

Fixes piglit ARB_uniform_buffer_object/row-major.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Merge UBO layout qualifiers in a qualifier list.
Eric Anholt [Fri, 22 Jun 2012 20:31:56 +0000 (13:31 -0700)]
glsl: Merge UBO layout qualifiers in a qualifier list.

Yes, you get to say things like "layout(row_major, column_major)" and
get column major.

Part of fixing piglit ARB_uniform_buffer_object/row_major.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add support for GL_ARB_ubo's glGetActiveUniformName().
Eric Anholt [Thu, 21 Jun 2012 21:58:58 +0000 (14:58 -0700)]
mesa: Add support for GL_ARB_ubo's glGetActiveUniformName().

This is like a stripped-down version of glGetActiveUniform that just
returns the name, since the other return values (type and size) of
that function are now meant to be handled with
glGetActiveUniformsiv().

Fixes piglit ARB_uniform_buffer_object/getactiveuniformname

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add support for most of the other pnames of glGetActiveUniformBlockiv().
Eric Anholt [Tue, 19 Jun 2012 21:29:49 +0000 (14:29 -0700)]
mesa: Add support for most of the other pnames of glGetActiveUniformBlockiv().

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add support for getting active uniform block names.
Eric Anholt [Tue, 19 Jun 2012 22:24:30 +0000 (15:24 -0700)]
mesa: Add support for getting active uniform block names.

Fixes piglit ARB_uniform_buffer_object/getactiveuniformblockname.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add support for glUniformBlockBinding() and the API to get it back.
Eric Anholt [Tue, 19 Jun 2012 20:43:00 +0000 (13:43 -0700)]
mesa: Add support for glUniformBlockBinding() and the API to get it back.

Fixes piglit ARB_uniform_buffer_object/uniformbufferbinding.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Incorporate all UBO language changes into GLSL 1.40.
Eric Anholt [Mon, 18 Jun 2012 23:47:04 +0000 (16:47 -0700)]
glsl: Incorporate all UBO language changes into GLSL 1.40.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agomesa: Add support for glGetProgramiv pnames for UBOs.
Eric Anholt [Thu, 14 Jun 2012 15:57:04 +0000 (08:57 -0700)]
mesa: Add support for glGetProgramiv pnames for UBOs.

Fixes piglit ARB_uniform_buffer_object/getprogramiv.

v2: Add extension checks.
v3: Appease MSVC.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Refactor #version validation to be more future-proof.
Kenneth Graunke [Tue, 31 Jul 2012 08:28:35 +0000 (01:28 -0700)]
glsl: Refactor #version validation to be more future-proof.

The previous implementation required a flag in _mesa_glsl_parse_state
and line of code to initialize it for every version of the shading
language we intend to support.  As we look to add 150, 330, 400, 410,
420, and beyond, this gets rather unwieldy.

This patch retains the switch statement (to reject, say, #version 111),
but removes all the bits.  Code to check for ctx->API == API_OPENGL_CORE
could easily be added to the 110 and 120 cases to reject those.

v2: Use _mesa_is_desktop_gl to preserve the existing behavior in the
    presence of the new API_OPENGL_CORE enumeration.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net> [v1]