mesa.git
10 years agor600g: Removed unnecessary positivity check for unsigned int variable.
Siavash Eliasi [Thu, 12 Dec 2013 14:58:52 +0000 (18:28 +0330)]
r600g: Removed unnecessary positivity check for unsigned int variable.

Signed-off-by: Marek Olšák <marek.olsak@amd.com>
10 years agost/dri: Allow creating OpenGL 3.3 core contexts
Michel Dänzer [Wed, 29 Jan 2014 09:24:04 +0000 (18:24 +0900)]
st/dri: Allow creating OpenGL 3.3 core contexts

Enables OpenGL 3.3 piglit tests.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agobuild: Share the all-local rule for linking libraries into the build dir
Kristian Høgsberg [Wed, 29 Jan 2014 19:40:25 +0000 (11:40 -0800)]
build: Share the all-local rule for linking libraries into the build dir

This consolidates how we link the libraries into the build directory.
It works for lib_LTLIBRARIES but not custom shared libraries like DRI
drivers or gallium state trackers which needs special casing (cf dri
mega drivers, for example)

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
10 years agoloader: do not print the pci id during normal operation
Emil Velikov [Thu, 23 Jan 2014 17:59:39 +0000 (17:59 +0000)]
loader: do not print the pci id during normal operation

Spamming the pci id is not beneficial. Make sure it's printed
only when needed.

v2: Change severity to _LOADER_DEBUG, rather than removing
the message.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoloader: print WARNING and FATAL messages using the default logger
Emil Velikov [Tue, 28 Jan 2014 01:20:45 +0000 (01:20 +0000)]
loader: print WARNING and FATAL messages using the default logger

Lower values are used for more severe cases.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoglsl: s/_NDEBUG/NDEBUG/
Emil Velikov [Thu, 23 Jan 2014 17:43:16 +0000 (17:43 +0000)]
glsl: s/_NDEBUG/NDEBUG/

The former symbol is never defined within mesa. Based on the code
it seems that the original intent was to use NDEBUG.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agodir-locals.el: Set indent-tabs-mode true for makefile-mode
Kristian Høgsberg [Wed, 29 Jan 2014 18:30:23 +0000 (10:30 -0800)]
dir-locals.el: Set indent-tabs-mode true for makefile-mode

Makefiles need hard tabs, let's not make that harder than it needs to be.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
10 years agomesa: Return after ScissorArrayv or ScissorIndexed detect a parameter error
Courtney Goeltzenleuchter [Thu, 23 Jan 2014 20:53:42 +0000 (13:53 -0700)]
mesa: Return after ScissorArrayv or ScissorIndexed detect a parameter error

Fixes piglit arb_viewport_array-scissor-ignore.

Signed-off-by: Courtney Goeltzenleuchter <courtney@LunarG.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jon Ashburn <jon@lunarg.com>
10 years agodocs: Add GL_ARB_map_buffer_alignment status to GL3.txt and release notes
Ian Romanick [Thu, 23 Jan 2014 00:17:48 +0000 (16:17 -0800)]
docs: Add GL_ARB_map_buffer_alignment status to GL3.txt and release notes

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: GL_ARB_map_buffer_alignment is not optional
Siavash Eliasi [Thu, 28 Nov 2013 08:56:42 +0000 (12:26 +0330)]
mesa: GL_ARB_map_buffer_alignment is not optional

Every driver supports it.  All current and future Gallium drivers always
support it, and all existing classic drivers support it.

v2: Making GL_ARB_map_buffer_alignment a desktop OpenGL extension only.

v3: Squash two commits together.

v4 (idr): MIN_MAP_BUFFER_ALIGNMENT queries don't have any dependencies.
In previous versions of the patch it depended on EXTRA_API_GL which
would prevent the query from working in core profile contexts.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agonouveau: Use gl_constants::MinMapBufferAlignment as the alignment in nouveau_bo_new
Siavash Eliasi [Thu, 28 Nov 2013 08:56:39 +0000 (12:26 +0330)]
nouveau: Use gl_constants::MinMapBufferAlignment as the alignment in nouveau_bo_new

This driver does not support GL_ARB_map_buffer_range, so no special
treatment is needed for unaligned offsets in the mapping.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoradeon / r200: Use gl_constants::MinMapBufferAlignment as the alignment in radeon_bo...
Siavash Eliasi [Thu, 28 Nov 2013 08:56:38 +0000 (12:26 +0330)]
radeon / r200: Use  gl_constants::MinMapBufferAlignment as the alignment in radeon_bo_open

These drivers do not support GL_ARB_map_buffer_range, so no special
treatment is needed for unaligned offsets in the mapping.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Use _mesa_align_malloc in _mesa_buffer_data
Siavash Eliasi [Thu, 28 Nov 2013 08:56:37 +0000 (12:26 +0330)]
mesa: Use _mesa_align_malloc in _mesa_buffer_data

v2: Fixed memory leak.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa: Set gl_constants::MinMapBufferAlignment to 64 by default
Siavash Eliasi [Thu, 28 Nov 2013 08:56:36 +0000 (12:26 +0330)]
mesa: Set gl_constants::MinMapBufferAlignment to 64 by default

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agomesa/st: Unconditionally enable ARB_map_buffer_alignment.
Siavash Eliasi [Thu, 28 Nov 2013 08:56:35 +0000 (12:26 +0330)]
mesa/st: Unconditionally enable ARB_map_buffer_alignment.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agofreedreno: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Ian Romanick [Wed, 22 Jan 2014 22:02:42 +0000 (14:02 -0800)]
freedreno: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

Allocations actually have page alignment, but 64 is still a reasonable
value.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
10 years agoilo: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Siavash Eliasi [Thu, 28 Nov 2013 08:56:34 +0000 (12:26 +0330)]
ilo: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

Ian manually ran the map_buffer_range* tests and the
arb_map_buffer_alignment-* tests, but he did not do a full piglit run.

v2 (idr): Use 64 instead of 4096

Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
10 years agosvga: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Siavash Eliasi [Thu, 28 Nov 2013 08:56:33 +0000 (12:26 +0330)]
svga: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

v2: Fixed setting switch cases prior to
PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT incorrectly.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi915g: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Siavash Eliasi [Tue, 3 Dec 2013 04:53:06 +0000 (08:23 +0330)]
i915g: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

v2: Fixed setting switch cases prior to
PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT incorrectly.

10 years agoi915g: Use alignment of 64 instead of 16 for buffer allocation
Siavash Eliasi [Tue, 3 Dec 2013 04:50:32 +0000 (08:20 +0330)]
i915g: Use alignment of 64 instead of 16 for buffer allocation

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agollvmpipe: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Siavash Eliasi [Thu, 28 Nov 2013 08:56:30 +0000 (12:26 +0330)]
llvmpipe: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

v2: Fixed setting switch cases prior to
PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT incorrectly.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agollvmpipe: Use alignment of 64 instead of 16 for buffer allocation
Siavash Eliasi [Thu, 28 Nov 2013 17:44:31 +0000 (21:14 +0330)]
llvmpipe: Use alignment of 64 instead of 16 for buffer allocation

v2: Changed allocation alignment of llvmpipe_displaytarget_layout.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agosoftpipe: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64
Siavash Eliasi [Thu, 28 Nov 2013 08:56:28 +0000 (12:26 +0330)]
softpipe: Set PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT to 64

v2: Fixed setting switch cases prior to
PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT incorrectly.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agosoftpipe: Use alignment of 64 instead of 16 for buffer allocation
Siavash Eliasi [Thu, 28 Nov 2013 17:40:29 +0000 (21:10 +0330)]
softpipe: Use alignment of 64 instead of 16 for buffer allocation

v2: Changed allocation alignment in softpipe_displaytarget_layout.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoi915g: support more PIPE_CAPs
Stéphane Marchesin [Wed, 29 Jan 2014 02:28:56 +0000 (18:28 -0800)]
i915g: support more PIPE_CAPs

10 years agoradeonsi: Put GS ring buffer descriptors with streamout buffer descriptors
Michel Dänzer [Tue, 28 Jan 2014 06:39:30 +0000 (15:39 +0900)]
radeonsi: Put GS ring buffer descriptors with streamout buffer descriptors

And mark the constant buffers as read only for the GPU again.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Enable OpenGL 3.3
Michel Dänzer [Fri, 24 Jan 2014 08:51:34 +0000 (17:51 +0900)]
radeonsi: Enable OpenGL 3.3

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Geometry shader micro-optimizations
Michel Dänzer [Fri, 24 Jan 2014 07:46:27 +0000 (16:46 +0900)]
radeonsi: Geometry shader micro-optimizations

Move parameter loads out of loops, and use the instruction offset
instead of a VGPR for the vertex attribute offset when writing to the
ESGS ring buffer.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: We don't support indirect addressing of geometry shader inputs
Michel Dänzer [Wed, 22 Jan 2014 09:47:21 +0000 (18:47 +0900)]
radeonsi: We don't support indirect addressing of geometry shader inputs

Fixes piglit spec/glsl-1.50/execution/geometry/dynamic_input_array_index

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Pass VS resource descriptors to the HW ES shader stage as well
Michel Dänzer [Wed, 22 Jan 2014 08:32:09 +0000 (17:32 +0900)]
radeonsi: Pass VS resource descriptors to the HW ES shader stage as well

This makes sure constants and samplers work in the vertex shader even
when a geometry shader is active.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Fix streamout from geometry shader
Michel Dänzer [Wed, 8 Jan 2014 08:48:21 +0000 (17:48 +0900)]
radeonsi: Fix streamout from geometry shader

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Simplify shader PM4 state handling
Michel Dänzer [Fri, 17 Jan 2014 00:53:14 +0000 (09:53 +0900)]
radeonsi: Simplify shader PM4 state handling

Just always bind the current states before drawing.

Besides the simplification, as a bonus this makes sure the VS hardware
shader stage always uses the GS copy shader when a geometry shader is
active, fixing a number of GS related piglit tests.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Properly match ES outputs to GS inputs
Michel Dänzer [Wed, 15 Jan 2014 06:24:14 +0000 (15:24 +0900)]
radeonsi: Properly match ES outputs to GS inputs

Fixes piglit vs-gs-arrays-within-blocks-pass.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Really dump TGSI code before any TGSI->LLVM conversion attempt
Michel Dänzer [Wed, 15 Jan 2014 03:31:07 +0000 (12:31 +0900)]
radeonsi: Really dump TGSI code before any TGSI->LLVM conversion attempt

While we're at it, use the local variable 'sel'.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Also export clip distances with geometry shader
Michel Dänzer [Thu, 9 Jan 2014 09:18:26 +0000 (18:18 +0900)]
radeonsi: Also export clip distances with geometry shader

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Take GS into account for VS state in more places
Michel Dänzer [Thu, 9 Jan 2014 07:10:49 +0000 (16:10 +0900)]
radeonsi: Take GS into account for VS state in more places

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Handle adjacency primitives
Michel Dänzer [Thu, 9 Jan 2014 07:35:46 +0000 (16:35 +0900)]
radeonsi: Handle adjacency primitives

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Handle TGSI_SEMANTIC_PRIMID
Michel Dänzer [Thu, 9 Jan 2014 03:55:26 +0000 (12:55 +0900)]
radeonsi: Handle TGSI_SEMANTIC_PRIMID

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Generalize counting of shader parameters
Michel Dänzer [Thu, 9 Jan 2014 06:33:34 +0000 (15:33 +0900)]
radeonsi: Generalize counting of shader parameters

Now it covers ES->GS as well as VS->PS.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Fix handling of geometry shader output vertex ID
Michel Dänzer [Wed, 8 Jan 2014 09:45:10 +0000 (18:45 +0900)]
radeonsi: Fix handling of geometry shader output vertex ID

It needs to increment at shader runtime, not at shader compile time, as
the geometry shader can emit vertices in loops. LLVM automagically
converts the ID back to an immediate value if its value can be
determined at compile time.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Initial geometry shader support
Michel Dänzer [Thu, 21 Nov 2013 07:45:28 +0000 (16:45 +0900)]
radeonsi: Initial geometry shader support

Partly based on the corresponding r600g work by Vadim Girlin and Dave
Airlie.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoradeonsi: Refactor shader input / output handling code
Michel Dänzer [Mon, 9 Dec 2013 06:33:53 +0000 (15:33 +0900)]
radeonsi: Refactor shader input / output handling code

In preparation for adding geometry shader support.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoi965/fs: Add a saturation propagation optimization pass.
Matt Turner [Thu, 12 Dec 2013 08:30:16 +0000 (00:30 -0800)]
i965/fs: Add a saturation propagation optimization pass.

Transforms, for example,

mul     vgrf3, vgrf2, vgrf1
mov.sat vgrf4, vgrf3

into

mul.sat vgrf3, vgrf2, vgrf1
mov     vgrf4, vgrf3

which gives register_coalescing an opportunity to remove the MOV
instruction.

total instructions in shared programs: 1515039 -> 1504634 (-0.69%)
instructions in affected programs:     798586 -> 788181 (-1.30%)
GAINED:                                0
LOST:                                  4

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
10 years agoi965: Add can_do_saturate() method to backend_instruction.
Matt Turner [Thu, 12 Dec 2013 07:07:49 +0000 (23:07 -0800)]
i965: Add can_do_saturate() method to backend_instruction.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
10 years agomesa: Generate correct error code in glDrawBuffers()
Anuj Phogat [Tue, 28 Jan 2014 01:23:32 +0000 (17:23 -0800)]
mesa: Generate correct error code in glDrawBuffers()

OpenGL 3.3 spec expects GL_INVALID_OPERATION:
 "For both the default framebuffer and framebuffer objects, the
  constants FRONT, BACK, LEFT, RIGHT, and FRONT AND BACK are not
  valid in the bufs array passed to DrawBuffers, and will result
  in the error INVALID OPERATION."

But OpenGL 4.0 spec changed the error code to GL_INVALID_ENUM:
 "For both the default framebuffer and framebuffer objects, the
  constants FRONT, BACK, LEFT, RIGHT, and FRONT_AND_BACK are not
  valid in the bufs array passed to DrawBuffers, and will result
  in the error INVALID_ENUM."

This patch changes the behaviour to match OpenGL 4.0 spec
Fixes Khronos OpenGL CTS draw_buffers_api.test.

V2: Update the comment in code.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoloader: fix running with --disable-egl builds
Dave Airlie [Tue, 28 Jan 2014 05:52:13 +0000 (15:52 +1000)]
loader: fix running with --disable-egl builds

I sometimes build without EGL just for speed purposes, however
it no longer finds my drivers when I do due to the HAVE_LIBUDEV
defines being wrong.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
10 years agoi965: Ignore 'centroid' interpolation qualifier in case of persample shading
Anuj Phogat [Wed, 22 Jan 2014 23:41:58 +0000 (15:41 -0800)]
i965: Ignore 'centroid' interpolation qualifier in case of persample shading

I missed this change in commit f5cfb4a. It fixes the incorrect
rendering caused in Dolphin Emulator.

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

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Tested-by: Markus Wick <wickmarkus@web.de>
Reviewed-by: Matt Turner <mattst88@gmail.com>
10 years agogbm: Make libgbm.so.1 symlink.
Matt Turner [Tue, 28 Jan 2014 06:17:25 +0000 (22:17 -0800)]
gbm: Make libgbm.so.1 symlink.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agomesa: Allow depth = 0 parameter for TexImage3D.
Kevin Rogovin [Mon, 27 Jan 2014 10:16:19 +0000 (12:16 +0200)]
mesa: Allow depth = 0 parameter for TexImage3D.

Fixes the tests for the depth parameter for TexImage3D calls when the
target type is GL_TEXTURE_2D_ARRAY or GL_TEXTURE_CUBE_MAP_ARRAY
so that a depth value of 0 is accepted. Previously, the check
incorrectly required the depth argument to be atleast 1.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agor600g,radeonsi: Don't set resource_create in r600_common_screen_init()
Tom Stellard [Tue, 28 Jan 2014 14:51:50 +0000 (06:51 -0800)]
r600g,radeonsi: Don't set resource_create in r600_common_screen_init()

r600g and radeonsi have different implementations of resource_create.

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

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
10 years agoc11: Add missing stdlib.h include.
José Fonseca [Tue, 28 Jan 2014 14:35:04 +0000 (14:35 +0000)]
c11: Add missing stdlib.h include.

For malloc/free.

Silences gcc mingw warnings.

10 years agoloader: include dlfcn.h when building with HAVE_LIBUDEV
Emil Velikov [Tue, 28 Jan 2014 10:15:17 +0000 (10:15 +0000)]
loader: include dlfcn.h when building with HAVE_LIBUDEV

The code depending on the definitions is already wrapped
in the same conditional so go ahead and wrap the include.

Otherwise we'll brake compilation on platforms that are
missing the header. Add assert.h in there as well, as it
is introduced and used in the same fashon.

Cc: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74122
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
10 years agogallivm: Workaround http://llvm.org/PR18600
José Fonseca [Fri, 24 Jan 2014 14:25:46 +0000 (14:25 +0000)]
gallivm: Workaround http://llvm.org/PR18600

We have code generation paths that carry out swizzles of AoS vectors via
bitwise shifts, as these tend to generate more efficient code than
straightforward byte shuffles.  But when the input is a constant the
additional bitwise arithmetic operations somehow don't really get
constant propagated properly, evenutally causing assertion failure in
InstCombine pass.

Therefore avoid the bug by using the trivial shuffles for constant
inputs.

Although the sample LLVM IR can cause a crash with any LLVM version,
this was only seen in practice with LLVM 3.2.

Reviewed-by: Matthew McClure <mcclurem@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
10 years agoglsl: Avoid combining statements from different basic blocks.
Matt Turner [Mon, 27 Jan 2014 18:49:12 +0000 (10:49 -0800)]
glsl: Avoid combining statements from different basic blocks.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74113
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoglsl: Set proper swizzle when a channel is missing in vectorizing.
Matt Turner [Fri, 24 Jan 2014 23:17:08 +0000 (15:17 -0800)]
glsl: Set proper swizzle when a channel is missing in vectorizing.

Previously, for example if the x channel was missing from a series of
assignments we were attempting to vectorize, the wrong swizzle mask
would be applied.

   a.y = b.y;
   a.z = b.z;
   a.w = b.w;

would be incorrectly transformed into

   a.yzw = b.xyz;

Fixes two transform feedback tests in the ES3 conformance suite.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73978
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73954
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglsl: Use bitfieldInsert in ldexp() lowering.
Matt Turner [Mon, 27 Jan 2014 19:56:14 +0000 (11:56 -0800)]
glsl: Use bitfieldInsert in ldexp() lowering.

Shaves a few instructions off of lowered ldexp().

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglsl: Add constant evaluation of ir_binop_bfm.
Matt Turner [Thu, 23 Jan 2014 23:39:43 +0000 (15:39 -0800)]
glsl: Add constant evaluation of ir_binop_bfm.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglcpp: Resolve implicit GLSL version to 100 if the API is ES.
Matt Turner [Mon, 27 Jan 2014 02:06:18 +0000 (18:06 -0800)]
glcpp: Resolve implicit GLSL version to 100 if the API is ES.

Fixes a regression since b2d1c579 where ES shaders without a #version
declaration would fail to compile if their precision declaration was
wrapped in the standard #ifdef GL_ES check.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74066
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglcpp: Check version_resolved in the proper place.
Matt Turner [Sat, 25 Jan 2014 19:57:02 +0000 (11:57 -0800)]
glcpp: Check version_resolved in the proper place.

The check was in the wrong place, such that if a shader incorrectly put
a preprocessor token before the #version declaration, the version would
be resolved twice, leading to a segmentation fault when attempting to
redefine the __VERSION__ macro.

 #extension GL_ARB_sample_shading: require
 #version 130
 void main() {}

Also, rename glcpp_parser_resolve_version to
             glcpp_parser_resolve_implicit_version to avoid confusion.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Carl Worth <cworth@cworth.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agor600g: s/r600_llvm_gpu_string/r600_get_llvm_processor_name/
Michel Dänzer [Tue, 28 Jan 2014 01:12:32 +0000 (10:12 +0900)]
r600g: s/r600_llvm_gpu_string/r600_get_llvm_processor_name/

Fixes build failure introduced by commit
65dc588bfd3b8145131340ffe77f216be58378ac ('r600g,radeonsi: consolidate
get_compute_param'), which consolidated the former into the latter.

10 years agoradeonsi: cleanup includes, add missing license
Marek Olšák [Wed, 22 Jan 2014 17:50:36 +0000 (18:50 +0100)]
radeonsi: cleanup includes, add missing license

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: remove open-coded PS_PARTIAL_FLUSH event
Marek Olšák [Wed, 22 Jan 2014 17:30:21 +0000 (18:30 +0100)]
radeonsi: remove open-coded PS_PARTIAL_FLUSH event

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: move some inline functions from si_pipe.h to si_state.c
Marek Olšák [Wed, 22 Jan 2014 16:30:31 +0000 (17:30 +0100)]
radeonsi: move some inline functions from si_pipe.h to si_state.c

And si_tex_aniso_filter is unused.

v2: remove INLINE occurences

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: remove si_resource.h
Marek Olšák [Wed, 22 Jan 2014 14:37:53 +0000 (15:37 +0100)]
radeonsi: remove si_resource.h

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: remove si.h
Marek Olšák [Wed, 22 Jan 2014 11:45:02 +0000 (12:45 +0100)]
radeonsi: remove si.h

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: move si_upload_const_buffer to a better place
Marek Olšák [Wed, 22 Jan 2014 02:08:50 +0000 (03:08 +0100)]
radeonsi: move si_upload_const_buffer to a better place

This gets rid of another file.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: inline si_translate_index_buffer
Marek Olšák [Wed, 22 Jan 2014 02:05:21 +0000 (03:05 +0100)]
radeonsi: inline si_translate_index_buffer

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: inline si_upload_index_buffer
Marek Olšák [Wed, 22 Jan 2014 01:57:28 +0000 (02:57 +0100)]
radeonsi: inline si_upload_index_buffer

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate remaining obviously duplicated pipe_screen code
Marek Olšák [Wed, 22 Jan 2014 01:49:53 +0000 (02:49 +0100)]
r600g,radeonsi: consolidate remaining obviously duplicated pipe_screen code

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate get_compute_param
Marek Olšák [Wed, 22 Jan 2014 01:42:20 +0000 (02:42 +0100)]
r600g,radeonsi: consolidate get_compute_param

v2: added fprintf to r600_get_llvm_processor_name

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate get_paramf and get_video_param
Marek Olšák [Wed, 22 Jan 2014 01:12:51 +0000 (02:12 +0100)]
r600g,radeonsi: consolidate get_paramf and get_video_param

radeonsi now reports PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = true if UVD support
isn't available. It's what all the other drivers do.

Also, some #include directives were missing in radeon_uvd.h.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate variables for CS tracing
Marek Olšák [Wed, 22 Jan 2014 01:02:18 +0000 (02:02 +0100)]
r600g,radeonsi: consolidate variables for CS tracing

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate get_timestamp, get_driver_query_info
Marek Olšák [Wed, 22 Jan 2014 00:29:18 +0000 (01:29 +0100)]
r600g,radeonsi: consolidate get_timestamp, get_driver_query_info

This enables more queries for the Gallium HUD with radeonsi.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate get_name and get_vendor queries
Marek Olšák [Wed, 22 Jan 2014 00:20:21 +0000 (01:20 +0100)]
r600g,radeonsi: consolidate get_name and get_vendor queries

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeon: place context-related functions first in r600_pipe_common.c
Marek Olšák [Wed, 22 Jan 2014 00:14:10 +0000 (01:14 +0100)]
radeon: place context-related functions first in r600_pipe_common.c

To follow the unwritten convention of r600g and radeonsi.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g,radeonsi: consolidate the contents of r600_resource.c
Marek Olšák [Tue, 21 Jan 2014 23:58:12 +0000 (00:58 +0100)]
r600g,radeonsi: consolidate the contents of r600_resource.c

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: advertise the pipeline statistics query
Marek Olšák [Tue, 21 Jan 2014 23:08:11 +0000 (00:08 +0100)]
radeonsi: advertise the pipeline statistics query

Implemented by the common code. You can now visualize the statistics
with the HUD, see GALLIUM_HUD=help for all available queries. For example:

GALLIUM_HUD=clipper-primitives-generated

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agoradeonsi: use queries from r600g
Marek Olšák [Tue, 21 Jan 2014 23:06:32 +0000 (00:06 +0100)]
radeonsi: use queries from r600g

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g: remove a no-op while loop
Marek Olšák [Tue, 21 Jan 2014 22:46:44 +0000 (23:46 +0100)]
r600g: remove a no-op while loop

for (;;) {

} while ();

I was surprised to see such a statement.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g: convert query emission code to radeon_emit
Marek Olšák [Tue, 21 Jan 2014 22:44:39 +0000 (23:44 +0100)]
r600g: convert query emission code to radeon_emit

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g: only emit NOP relocations for queries if VM is disabled
Marek Olšák [Tue, 21 Jan 2014 22:31:51 +0000 (23:31 +0100)]
r600g: only emit NOP relocations for queries if VM is disabled

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agor600g: move queries to drivers/radeon
Marek Olšák [Tue, 21 Jan 2014 17:01:01 +0000 (18:01 +0100)]
r600g: move queries to drivers/radeon

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
10 years agomesa: Fix Type A _INT formats to MESA_FORMAT naming standard
Mark Mueller [Wed, 22 Jan 2014 06:37:20 +0000 (22:37 -0800)]
mesa: Fix Type A _INT formats to MESA_FORMAT naming standard

Replace Type A _INT formats names with _SINT to match naming spec,
and update type C formats as follows:
    s/MESA_FORMAT_R_INT8\b/MESA_FORMAT_R_SINT8/g
    s/MESA_FORMAT_R_INT16\b/MESA_FORMAT_R_SINT16/g
    s/MESA_FORMAT_R_INT32\b/MESA_FORMAT_R_SINT32/g
    s/MESA_FORMAT_RG_INT8\b/MESA_FORMAT_RG_SINT8/g
    s/MESA_FORMAT_RG_INT16\b/MESA_FORMAT_RG_SINT16/g
    s/MESA_FORMAT_RG_INT32\b/MESA_FORMAT_RG_SINT32/g
    s/MESA_FORMAT_RGB_INT8\b/MESA_FORMAT_RGB_SINT8/g
    s/MESA_FORMAT_RGB_INT16\b/MESA_FORMAT_RGB_SINT16/g
    s/MESA_FORMAT_RGB_INT32\b/MESA_FORMAT_RGB_SINT32/g
    s/MESA_FORMAT_RGBA_INT8\b/MESA_FORMAT_RGBA_SINT8/g
    s/MESA_FORMAT_RGBA_INT16\b/MESA_FORMAT_RGBA_SINT16/g
    s/MESA_FORMAT_RGBA_INT32\b/MESA_FORMAT_RGBA_SINT32/g
    s/\bMESA_FORMAT_RED_RGTC1\b/MESA_FORMAT_R_RGTC1_UNORM/g
    s/\bMESA_FORMAT_SIGNED_RED_RGTC1\b/MESA_FORMAT_R_RGTC1_SNORM/g
    s/\bMESA_FORMAT_RG_RGTC2\b/MESA_FORMAT_RG_RGTC2_UNORM/g
    s/\bMESA_FORMAT_SIGNED_RG_RGTC2\b/MESA_FORMAT_RG_RGTC2_SNORM/g
    s/\bMESA_FORMAT_L_LATC1\b/MESA_FORMAT_L_LATC1_UNORM/g
    s/\bMESA_FORMAT_SIGNED_L_LATC1\b/MESA_FORMAT_L_LATC1_SNORM/g
    s/\bMESA_FORMAT_LA_LATC2\b/MESA_FORMAT_LA_LATC2_UNORM/g
    s/\bMESA_FORMAT_SIGNED_LA_LATC2\b/MESA_FORMAT_LA_LATC2_SNORM/g

10 years agomesa: Fix MESA_FORMAT names containg SIGNED
Mark Mueller [Wed, 22 Jan 2014 06:27:40 +0000 (22:27 -0800)]
mesa: Fix MESA_FORMAT names containg SIGNED

Update comments. Replace format names containing SIGNED with
SNORM appended w/decoration per the format name spec:

    s/MESA_FORMAT_SIGNED_R8\b/MESA_FORMAT_R_SNORM8/g
    s/MESA_FORMAT_SIGNED_RG88_REV\b/MESA_FORMAT_R8G8_SNORM/g
    s/MESA_FORMAT_SIGNED_RGBX8888\b/MESA_FORMAT_X8B8G8R8_SNORM/g
    s/MESA_FORMAT_SIGNED_RGBA8888\b/MESA_FORMAT_A8B8G8R8_SNORM/g
    s/MESA_FORMAT_SIGNED_RGBA8888_REV\b/MESA_FORMAT_R8G8B8A8_SNORM/g
    s/MESA_FORMAT_SIGNED_R16\b/MESA_FORMAT_R_SNORM16/g
    s/MESA_FORMAT_SIGNED_GR1616\b/MESA_FORMAT_R16G16_SNORM/g
    s/MESA_FORMAT_SIGNED_RGB_16\b/MESA_FORMAT_RGB_SNORM16/g
    s/MESA_FORMAT_SIGNED_RGBA_16\b/MESA_FORMAT_RGBA_SNORM16/g
    s/MESA_FORMAT_SIGNED_A8\b/MESA_FORMAT_A_SNORM8/g
    s/MESA_FORMAT_SIGNED_I8\b/MESA_FORMAT_I_SNORM8/g
    s/MESA_FORMAT_SIGNED_L8\b/MESA_FORMAT_L_SNORM8/g
    s/MESA_FORMAT_SIGNED_A16\b/MESA_FORMAT_A_SNORM16/g
    s/MESA_FORMAT_SIGNED_I16\b/MESA_FORMAT_I_SNORM16/g
    s/MESA_FORMAT_SIGNED_L16\b/MESA_FORMAT_L_SNORM16/g
    s/MESA_FORMAT_SIGNED_AL88\b/MESA_FORMAT_L8A8_SNORM/g
    s/MESA_FORMAT_SIGNED_RG88\b/MESA_FORMAT_G8R8_SNORM/g
    s/MESA_FORMAT_SIGNED_RG1616\b/MESA_FORMAT_G16R16_SNORM/g

10 years agomesa: Fix MESA_FORMAT names with ALPH, INTENSITY, and LUMINANCE
Mark Mueller [Wed, 22 Jan 2014 05:44:59 +0000 (21:44 -0800)]
mesa: Fix MESA_FORMAT names with ALPH, INTENSITY, and LUMINANCE

Compressed spelled out color components ALPHA, INTENSITY, and LUMINANCE to A, I, and L:
    s/MESA_FORMAT_ALPHA_UINT8\b/MESA_FORMAT_A_UINT8/g'
    s/MESA_FORMAT_ALPHA_UINT16\b/MESA_FORMAT_A_UINT16/g'
    s/MESA_FORMAT_ALPHA_UINT32\b/MESA_FORMAT_A_UINT32/g'
    s/MESA_FORMAT_ALPHA_INT32\b/MESA_FORMAT_A_SINT32/g'
    s/MESA_FORMAT_ALPHA_INT16\b/MESA_FORMAT_A_SINT16/g'
    s/MESA_FORMAT_ALPHA_INT8\b/MESA_FORMAT_A_SINT8/g'
    s/MESA_FORMAT_INTENSITY_UINT8\b/MESA_FORMAT_I_UINT8/g'
    s/MESA_FORMAT_INTENSITY_UINT16\b/MESA_FORMAT_I_UINT16/g'
    s/MESA_FORMAT_INTENSITY_UINT32\b/MESA_FORMAT_I_UINT32/g'
    s/MESA_FORMAT_INTENSITY_INT32\b/MESA_FORMAT_I_SINT32/g'
    s/MESA_FORMAT_INTENSITY_INT16\b/MESA_FORMAT_I_SINT16/g'
    s/MESA_FORMAT_INTENSITY_INT8\b/MESA_FORMAT_I_SINT8/g'
    s/MESA_FORMAT_LUMINANCE_UINT8\b/MESA_FORMAT_L_UINT8/g'
    s/MESA_FORMAT_LUMINANCE_UINT16\b/MESA_FORMAT_L_UINT16/g'
    s/MESA_FORMAT_LUMINANCE_UINT32\b/MESA_FORMAT_L_UINT32/g'
    s/MESA_FORMAT_LUMINANCE_INT32\b/MESA_FORMAT_L_SINT32/g'
    s/MESA_FORMAT_LUMINANCE_INT16\b/MESA_FORMAT_L_SINT16/g'
    s/MESA_FORMAT_LUMINANCE_INT8\b/MESA_FORMAT_L_SINT8/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_UINT8\b/MESA_FORMAT_LA_UINT8/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_UINT16\b/MESA_FORMAT_LA_UINT16/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_UINT32\b/MESA_FORMAT_LA_UINT32/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_INT32\b/MESA_FORMAT_LA_SINT32/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_INT16\b/MESA_FORMAT_LA_SINT16/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_INT8\b/MESA_FORMAT_LA_SINT8/g'
    s/MESA_FORMAT_ALPHA_FLOAT16\b/MESA_FORMAT_A_FLOAT16/g'
    s/MESA_FORMAT_ALPHA_FLOAT32\b/MESA_FORMAT_A_FLOAT32/g'
    s/MESA_FORMAT_INTESITY_FLOAT16\b/MESA_FORMAT_I_FLOAT16/g'
    s/MESA_FORMAT_INTESITY_FLOAT32\b/MESA_FORMAT_I_FLOAT32/g'
    s/MESA_FORMAT_INTENSITY_FLOAT16\b/MESA_FORMAT_I_FLOAT16/g'
    s/MESA_FORMAT_INTENSITY_FLOAT32\b/MESA_FORMAT_I_FLOAT32/g'
    s/MESA_FORMAT_LUMINANCE_FLOAT16\b/MESA_FORMAT_L_FLOAT16/g'
    s/MESA_FORMAT_LUMINANCE_FLOAT32\b/MESA_FORMAT_L_FLOAT32/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16\b/MESA_FORMAT_LA_FLOAT16/g'
    s/MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32\b/MESA_FORMAT_LA_FLOAT32/g'

10 years agomesa: Change many Type P MESA_FORMATs to meet naming spec
Mark Mueller [Sun, 26 Jan 2014 23:12:56 +0000 (15:12 -0800)]
mesa: Change many Type P MESA_FORMATs to meet naming spec

Conversion of Type P formats as follows (w/related comment fixes):
    s/MESA_FORMAT_RGB565\b/MESA_FORMAT_B5G6R5_UNORM/g
    s/MESA_FORMAT_RGB565_REV\b/MESA_FORMAT_R5G6B5_UNORM/g
    s/MESA_FORMAT_ARGB4444\b/MESA_FORMAT_B4G4R4A4_UNORM/g
    s/MESA_FORMAT_ARGB4444_REV\b/MESA_FORMAT_A4R4G4B4_UNORM/g
    s/MESA_FORMAT_RGBA5551\b/MESA_FORMAT_A1B5G5R5_UNORM/g
    s/MESA_FORMAT_XBGR8888_SNORM\b/MESA_FORMAT_R8G8B8X8_SNORM/g
    s/MESA_FORMAT_XBGR8888_SRGB\b/MESA_FORMAT_R8G8B8X8_SRGB/g
    s/MESA_FORMAT_ARGB1555\b/MESA_FORMAT_B5G5R5A1_UNORM/g
    s/MESA_FORMAT_ARGB1555_REV\b/MESA_FORMAT_A1R5G5B5_UNORM/g
    s/MESA_FORMAT_AL44\b/MESA_FORMAT_L4A4_UNORM/g
    s/MESA_FORMAT_RGB332\b/MESA_FORMAT_B2G3R3_UNORM/g
    s/MESA_FORMAT_ARGB2101010\b/MESA_FORMAT_B10G10R10A2_UNORM/g
    s/MESA_FORMAT_Z24_S8\b/MESA_FORMAT_S8_UINT_Z24_UNORM/g
    s/MESA_FORMAT_S8_Z24\b/MESA_FORMAT_Z24_UNORM_S8_UINT/g
    s/MESA_FORMAT_X8_Z24\b/MESA_FORMAT_Z24_UNORM_X8_UINT/g
    s/MESA_FORMAT_Z24_X8\b/MESA_FORMAT_X8Z24_UNORM/g
    s/MESA_FORMAT_RGB9_E5_FLOAT\b/MESA_FORMAT_R9G9B9E5_FLOAT/g
    s/MESA_FORMAT_R11_G11_B10_FLOAT\b/MESA_FORMAT_R11G11B10_FLOAT/g
    s/MESA_FORMAT_Z32_FLOAT_X24S8\b/MESA_FORMAT_Z32_FLOAT_S8X24_UINT/g
    s/MESA_FORMAT_ABGR2101010_UINT\b/MESA_FORMAT_R10G10B10A2_UINT/g
    s/MESA_FORMAT_XRGB4444_UNORM\b/MESA_FORMAT_B4G4R4X4_UNORM/g
    s/MESA_FORMAT_XRGB1555_UNORM\b/MESA_FORMAT_B5G5R5X1_UNORM/g
    s/MESA_FORMAT_XRGB2101010_UNORM\b/MESA_FORMAT_B10G10R10X2_UNORM/g
    s/MESA_FORMAT_AL88\b/MESA_FORMAT_L8A8_UNORM/g
    s/MESA_FORMAT_AL88_REV\b/MESA_FORMAT_A8L8_UNORM/g
    s/MESA_FORMAT_AL1616\b/MESA_FORMAT_L16A16_UNORM/g
    s/MESA_FORMAT_AL1616_REV\b/MESA_FORMAT_A16L16_UNORM/g
    s/MESA_FORMAT_RG88\b/MESA_FORMAT_G8R8_UNORM/g
    s/MESA_FORMAT_GR88\b/MESA_FORMAT_R8G8_UNORM/g
    s/MESA_FORMAT_GR1616\b/MESA_FORMAT_R16G16_UNORM/g
    s/MESA_FORMAT_RG1616\b/MESA_FORMAT_G16R16_UNORM/g
    s/MESA_FORMAT_SRGBA8\b/MESA_FORMAT_A8B8G8R8_SRGB/g
    s/MESA_FORMAT_SARGB8\b/MESA_FORMAT_B8G8R8A8_SRGB/g
    s/MESA_FORMAT_SLA8\b/MESA_FORMAT_L8A8_SRGB/g

Conflicts:
src/mesa/drivers/dri/i965/brw_surface_formats.c
src/mesa/main/format_pack.c
src/mesa/main/format_unpack.c
src/mesa/main/formats.c
src/mesa/main/texformat.c
src/mesa/main/texstore.c

10 years agomesa: Change many Type A MESA_FORMATs to meet naming standard
Mark Mueller [Tue, 21 Jan 2014 03:08:54 +0000 (19:08 -0800)]
mesa: Change many Type A MESA_FORMATs to meet naming standard

Update comments. Conversion of the following Type A formats:
    s/MESA_FORMAT_RGB888\b/MESA_FORMAT_BGR_UNORM8/g
    s/MESA_FORMAT_BGR888\b/MESA_FORMAT_RGB_UNORM8/g
    s/MESA_FORMAT_A8\b/MESA_FORMAT_A_UNORM8/g
    s/MESA_FORMAT_A16\b/MESA_FORMAT_A_UNORM16/g
    s/MESA_FORMAT_L8\b/MESA_FORMAT_L_UNORM8/g
    s/MESA_FORMAT_L16\b/MESA_FORMAT_L_UNORM16/g
    s/MESA_FORMAT_I8\b/MESA_FORMAT_I_UNORM8/g
    s/MESA_FORMAT_I16\b/MESA_FORMAT_I_UNORM16/g
    s/MESA_FORMAT_R8\b/MESA_FORMAT_R_UNORM8/g
    s/MESA_FORMAT_R16\b/MESA_FORMAT_R_UNORM16/g
    s/MESA_FORMAT_Z16\b/MESA_FORMAT_Z_UNORM16/g
    s/MESA_FORMAT_Z32\b/MESA_FORMAT_Z_UNORM32/g
    s/MESA_FORMAT_S8\b/MESA_FORMAT_S_UINT8/g
    s/MESA_FORMAT_SRGB8\b/MESA_FORMAT_BGR_SRGB8/g
    s/MESA_FORMAT_RGBA_16\b/MESA_FORMAT_RGBA_UNORM16/g
    s/MESA_FORMAT_SL8\b/MESA_FORMAT_L_SRGB8/g
    s/MESA_FORMAT_Z32_FLOAT\b/MESA_FORMAT_Z_FLOAT32/g
    s/MESA_FORMAT_XBGR16161616_UNORM\b/MESA_FORMAT_RGBX_UNORM16/g
    s/MESA_FORMAT_XBGR16161616_SNORM\b/MESA_FORMAT_RGBX_SNORM16/g
    s/MESA_FORMAT_XBGR16161616_FLOAT\b/MESA_FORMAT_RGBX_FLOAT16/g
    s/MESA_FORMAT_XBGR16161616_UINT\b/MESA_FORMAT_RGBX_UINT16/g
    s/MESA_FORMAT_XBGR16161616_SINT\b/MESA_FORMAT_RGBX_SINT16/g
    s/MESA_FORMAT_XBGR32323232_FLOAT\b/MESA_FORMAT_RGBX_FLOAT32/g
    s/MESA_FORMAT_XBGR32323232_UINT\b/MESA_FORMAT_RGBX_UINT32/g
    s/MESA_FORMAT_XBGR32323232_SINT\b/MESA_FORMAT_RGBX_SINT32/g
    s/MESA_FORMAT_XBGR8888_UINT\b/MESA_FORMAT_RGBX_UINT8/g
    s/MESA_FORMAT_XBGR8888_SINT\b/MESA_FORMAT_RGBX_SINT8/g

10 years agomesa: Rename 4 color component unsigned byte MESA_FORMATs
Mark Mueller [Mon, 20 Jan 2014 22:21:43 +0000 (14:21 -0800)]
mesa: Rename 4 color component unsigned byte MESA_FORMATs

Change all 4 color component unsigned byte formats to meet spec for P
Type formats:
    s/MESA_FORMAT_RGBA8888\b/MESA_FORMAT_A8B8G8R8_UNORM/g
    s/MESA_FORMAT_RGBA8888_REV\b/MESA_FORMAT_R8G8B8A8_UNORM/g
    s/MESA_FORMAT_ARGB8888\b/MESA_FORMAT_B8G8R8A8_UNORM/g
    s/MESA_FORMAT_ARGB8888_REV\b/MESA_FORMAT_A8R8G8B8_UNORM/g
    s/MESA_FORMAT_RGBX8888\b/MESA_FORMAT_X8B8G8R8_UNORM/g
    s/MESA_FORMAT_RGBX8888_REV\b/MESA_FORMAT_R8G8B8X8_UNORM/g
    s/MESA_FORMAT_XRGB8888\b/MESA_FORMAT_B8G8R8X8_UNORM/g
    s/MESA_FORMAT_XRGB8888_REV\b/MESA_FORMAT_X8R8G8B8_UNORM/g

10 years agomesa: change gl_format to mesa_format
Mark Mueller [Sat, 4 Jan 2014 22:11:43 +0000 (14:11 -0800)]
mesa: change gl_format to mesa_format

s/\bgl_format\b/mesa_format/g. Use better name for Mesa Formats enum

10 years agodocs: Update GL3.txt due to recent work
Ian Romanick [Mon, 13 Jan 2014 22:48:16 +0000 (14:48 -0800)]
docs: Update GL3.txt due to recent work

v2: Note that Fredrik Höglund is working on GL_ARB_multi_bind, not
Maxence Le Doré.  Suggested by Matt.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
10 years agoglcpp: Make sure GL_AMD_shader_trinary_minmax is defined
Ian Romanick [Fri, 24 Jan 2014 21:28:24 +0000 (13:28 -0800)]
glcpp: Make sure GL_AMD_shader_trinary_minmax is defined

The define was only available if
gl_extensions::AMD_shader_trinary_minmax was set, but no driver set it.
Since the extension is advertised by default, remove that field too.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: Maxence Le Doré <maxence.ledore@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
10 years agomesa: Clean up bad code formatting left from previous commit
Ian Romanick [Wed, 13 Nov 2013 22:00:06 +0000 (14:00 -0800)]
mesa: Clean up bad code formatting left from previous commit

Also s/_EXT// on enums that are now part of core.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agomesa: GL_EXT_framebuffer_blit is not optional
Ian Romanick [Wed, 13 Nov 2013 21:30:37 +0000 (13:30 -0800)]
mesa: GL_EXT_framebuffer_blit is not optional

Every driver supports it.  All current and future Gallium drivers always
support it, and all existing classic drivers support it.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoradeon: Enable GL_EXT_framebuffer_blit
Ian Romanick [Wed, 13 Nov 2013 21:26:03 +0000 (13:26 -0800)]
radeon: Enable GL_EXT_framebuffer_blit

The dd_function_table::BlitFramebuffer is already initialized to
_mesa_meta_BlitFramebuffer, so it should just work.

Tested on a Radeon 7500 (OpenGL renderer string: Mesa DRI R100 (RV200
5157) TCL DRI2).  I couldn't do a full piglit run because it would tank
the system with or without this patch.  I just ran all the blit tests
(-t blit to piglit-run.py).  Only fbo-sys-sub-blit failed.  All of the
other tests that weren't skipped (i.e., all the multisample and sRGB
tests skip) passed.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agor200: Enable GL_EXT_framebuffer_blit
Ian Romanick [Wed, 13 Nov 2013 21:25:04 +0000 (13:25 -0800)]
r200: Enable GL_EXT_framebuffer_blit

The dd_function_table::BlitFramebuffer is already initialized to
_mesa_meta_BlitFramebuffer, so it should just work.

Tested on a FireGL 8800 (OpenGL renderer string: Mesa DRI R200 (R200
5148) TCL DRI).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoradeon / r200: Pass the API into _mesa_initialize_context
Ian Romanick [Thu, 19 Dec 2013 19:04:29 +0000 (11:04 -0800)]
radeon / r200: Pass the API into _mesa_initialize_context

Otherwise an application that requested an OpenGL ES 1.x context would
actually get a desktop OpenGL context.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "9.1 9.2 10.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agomesa: Validate internalFormat with target in glTexStorage paths
Ian Romanick [Wed, 18 Dec 2013 22:38:16 +0000 (14:38 -0800)]
mesa: Validate internalFormat with target in glTexStorage paths

Fixes the glTexStorage3D failure in
ext_packed_depth_stencil-depth-stencil-texture and
oes_packed_depth_stencil-depth-stencil-texture_gles2.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agomesa: Refactor internalFormat / target checks to a separate function
Ian Romanick [Wed, 18 Dec 2013 22:35:01 +0000 (14:35 -0800)]
mesa: Refactor internalFormat / target checks to a separate function

We need almost identical code in the glTexStorage path.

v2: Fix typo in a comment noticed by Topi.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agomesa: Generate the correct error for a depth format with a 3D texture
Ian Romanick [Wed, 18 Dec 2013 22:09:58 +0000 (14:09 -0800)]
mesa: Generate the correct error for a depth format with a 3D texture

All versions of the OpenGL spec are quite clear that
GL_INVALID_OPERATION should be generated.  I added a quotation from the
3.3 core profile spec.

Fixes the glTexImage3D subcases of
ext_packed_depth_stencil-depth-stencil-texture and
oes_packed_depth_stencil-depth-stencil-texture_gles2.  The same subtests
of oes_packed_depth_stencil-depth-stencil-texture_gles1 fail, but they
fail with a different wrong error code.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
10 years agoglx: Update glxext.h to revision 24777.
Matt Turner [Sun, 26 Jan 2014 03:12:13 +0000 (19:12 -0800)]
glx: Update glxext.h to revision 24777.

It readds the GLXContextID typedef, but under #ifndef GLX_VERSION_1_3
and glx.h already defines GLX_VERSION_1_3.

Bugzilla: https://cvs.khronos.org/bugzilla/show_bug.cgi?id=11454
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>