Marek Olšák [Sun, 6 Oct 2013 17:52:13 +0000 (19:52 +0200)]
gallium/dri targets: use DRI_DRIVER_LDFLAGS
which contains -Wl,-Bsymbolic. If I understand it correctly, it prevents
symbols from clashing if multiple drivers are loaded at the same time.
Tested-by: Emil Velikov <emil.l.velikov@gmail.com>
Marek Olšák [Tue, 8 Oct 2013 12:23:22 +0000 (14:23 +0200)]
radeonsi: fix occlusion queries for CIK
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Tue, 8 Oct 2013 00:47:36 +0000 (02:47 +0200)]
radeonsi: draw register fixes for CIK
This doesn't fix any known issue. I'm just following the docs.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Chia-I Wu [Fri, 27 Sep 2013 04:31:32 +0000 (12:31 +0800)]
i965: keep SecHalf flag after register coalescing
Copy sechalf to the new register, otherwise we would read wrong HW registers.
Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chia-I Wu [Mon, 30 Sep 2013 06:12:19 +0000 (14:12 +0800)]
i965: allow SIMD8 sampler messages in SIMD16 mode
When the instruction to send the sampler message is forced uncompressed or
sechalf, send SIMD8 one even in SIMD16 mode.
Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chia-I Wu [Fri, 27 Sep 2013 07:23:56 +0000 (15:23 +0800)]
i965: make BRW_COMPRESSION_2NDHALF valid for brw_SAMPLE
SIMD8 sampler messages are allowed in SIMD16 mode, and they could not work
without BRW_COMPRESSION_2NDHALF. Later PRMs (gen5 and later) do not
explicitly state whether BRW_COMPRESSION_2NDHALF is allowed, but they do have
examples using send with SecHalf. It should be safe to assume SecHalf is
valid.
Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Vinson Lee [Sat, 27 Jul 2013 07:04:41 +0000 (00:04 -0700)]
i965: Initialize brw_blorp_const_color_program::prog_data.
Fixes "Uninitialized scalar field" defect reported by Coverity.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Eric Anholt [Tue, 8 Oct 2013 20:17:07 +0000 (13:17 -0700)]
i965: Fix a compiler warning about conservative depth enums.
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Paul Berry [Sat, 13 Jul 2013 03:17:13 +0000 (20:17 -0700)]
i965/gs: Fixup gl_PointSize on entry to geometry shaders.
gl_PointSize is stored in the w component of VARYING_SLOT_PSIZ, but
the geometry shader infrastructure assumes that it should look for all
geometry shader inputs of type float in the x component. So when
compiling a geomtery shader that uses a gl_PointSize input, fix it up
during the shader prolog by moving the w component to the x component.
This is similar to how we emit fixups and workarounds for vertex
shader attributes.
Fixes piglit test spec/glsl-1.50/execution/geometry/core-inputs.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Bryan Cain [Fri, 15 Feb 2013 15:30:51 +0000 (09:30 -0600)]
glsl/gs: handle gl_ClipDistance geometry input in lower_clip_distance.
This corresponds to the lowering of gl_ClipDistance to
gl_ClipDistanceMESA for vertex and geometry shader outputs. Since
this lowering pass occurs after lower_named_interface blocks, it deals
with 2D arrays (gl_ClipDistance[vertex][clip_plane]) rather than 1D
arrays in an interface block
(gl_in[vertex].gl_ClipDistance[clip_plane]).
v2 (Paul Berry <stereotype441@gmail.com>): Fix indexing order for
gl_ClipDistance input lowering. Properly lower bulk assignment of
gl_ClipDistance inputs. Rework for GLSL 1.50 style geometry shaders.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
v3 (Paul Berry <stereotype441@gmail.com>): Add comments and assertions
to clarify that the 2D version of clip distance is only used for
geometry shader inputs.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Paul Berry [Sat, 3 Aug 2013 01:12:23 +0000 (18:12 -0700)]
glsl/gs: add gl_in support to builtin_variables.cpp.
Previously, builtin_variables.cpp was written assuming that we
supported ARB_geometry_shader4 style geometry shader inputs, meaning
that each built-in varying input to a geometry was supplied via an
array variable whose name ended in "In", e.g. gl_PositionIn or
gl_PointSizeIn.
However, in GLSL 1.50 style geometry shaders, things work
differently--built-in inputs are supplied to geometry shaders via a
built-in interface block called gl_in, which contains all the built-in
inputs using their usual names (e.g. the gl_Position input is supplied
to the geometry shader as gl_in[i].gl_Position).
This patch adds the necessary logic to builtin_variables.cpp to create
the gl_in interface block and populate it accordingly for geometry
shader inputs. The old ARB_geometry_shader4 style varyings are
removed, though they can easily be added back in the future if we
decide to support ARB_geometry_shader4.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Paul Berry [Mon, 9 Sep 2013 23:39:47 +0000 (16:39 -0700)]
glsl: Keep track of location for interface block fields.
This patch adds a "location" element to struct glsl_struct_field, so
that we can keep track of the gl_varying_slot associated with each
built-in geometry shader input.
In lower_named_interface_blocks, we use this value to populate the
"location" field in the ir_variable that stores each geometry shader
input.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Adam Jackson [Fri, 4 Oct 2013 13:25:51 +0000 (09:25 -0400)]
glx: Generate fewer errors in MakeContextCurrent
For a few reasons.
1: In the (current) common case, these conditionals are never true. All
we're doing by checking them is slowing down MakeCurrent. The server
does these checks already anyway.
2: GLX >= 3.0 contexts may legally be made current without a bound
framebuffer.
This does not fix piglit/glx-create-context-current-no-framebuffer, but
is a prerequisite for fixing it.
Cc: "9.1 9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Adam Jackson [Fri, 4 Oct 2013 13:25:51 +0000 (09:25 -0400)]
glx: Propagate failures from SendMakeCurrentRequest where possible
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Adam Jackson [Fri, 4 Oct 2013 13:25:51 +0000 (09:25 -0400)]
glx: Hide xGLXMakeCurrentReply inside SendMakeCurrentRequest
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Marek Olšák [Mon, 7 Oct 2013 11:49:42 +0000 (13:49 +0200)]
st/dri: don't export any private symbols
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Marek Olšák [Mon, 7 Oct 2013 11:49:42 +0000 (13:49 +0200)]
gallium/swrast: don't export any private symbols
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Marek Olšák [Mon, 7 Oct 2013 11:49:42 +0000 (13:49 +0200)]
gallium/radeon: don't export any private symbols
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Marek Olšák [Mon, 7 Oct 2013 11:03:34 +0000 (13:03 +0200)]
configure.ac: report an error if LLVM shared libs are disabled and CL is enabled
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Marek Olšák [Sat, 28 Sep 2013 19:28:53 +0000 (21:28 +0200)]
st/mesa: improve format selection for GLES
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
Stéphane Marchesin [Tue, 8 Oct 2013 03:49:35 +0000 (20:49 -0700)]
i915g: Rename sampler to fragment_sampler
Otherwise it is fairly confusing.
Stéphane Marchesin [Tue, 8 Oct 2013 03:33:31 +0000 (20:33 -0700)]
i915g: Fix the sampler bind function
The new sampler bind sends us NULL samplers, so we need to count
the number of valid samplers ourselves. This fixes ~500 piglit
regressions from the sampler rework.
While we're at it, let's also support start.
Chad Versace [Thu, 3 Oct 2013 00:21:33 +0000 (17:21 -0700)]
gen7: Use logical, not physical, dims in 3DSTATE_DEPTH_BUFFER (v2)
In 3DSTATE_DEPTH_BUFFER, we set Width and Height to the miptree slice's
physical dimensions. (Logical and physical dimensions may differ for
multisample surfaces).
However, in SURFACE_STATE, we always set Width and Height to the slice's
logical dimensions. We should do the same for 3DSTATE_DEPTH_BUFFER,
because the hw docs say so.
No Piglit regressions (-x glx -x glean) on Ivybridge with Wayland.
v2: No Piglit regressions, for real this time.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Chad Versace [Fri, 4 Oct 2013 20:40:42 +0000 (13:40 -0700)]
doxygen: Generate Doxygen for i965
Now, one can do the following to generate and read the i965 Doxygen:
cd $MESA_TOP/doxygen
make
firefox i965/index.html
Reviewed-by: Frank Henigman <fjhenigman@google.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Matt Turner [Sat, 28 Sep 2013 00:37:51 +0000 (17:37 -0700)]
i965: Remove the "ARF" register file.
The registers in the architecture register file don't share much in
common, so there's no point in grouping them together. Use the HW_REG
class instead. The vec4 backend already does this.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Fri, 20 Sep 2013 02:31:31 +0000 (19:31 -0700)]
i965: Fixup for don't dead-code eliminate instructions that write to the accumulator.
Accidentally pushed an old version of the patch.
v2: Set destination register using brw_null_reg().
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Wed, 18 Sep 2013 04:34:45 +0000 (21:34 -0700)]
i965: Generate code for ir_binop_imul_high.
v2: Make accumulator's type match the type of the operation. Noticed by
Ken.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Thu, 26 Sep 2013 20:51:37 +0000 (13:51 -0700)]
i965: Use the multiplication result's type for the accumulator.
Reviewed-by: Eric Anholt <eric@anholt.net>
Matt Turner [Thu, 26 Sep 2013 20:38:11 +0000 (13:38 -0700)]
i965/fs: Disable CSE on instructions writing to HW_REG.
CSE would otherwise combine the two mul(8) emitted by [iu]mulExtended:
mul(8) acc0 x y
mach(8) null x y
mov(8) lsb acc0
...
mul(8) acc0 x y
mach(8) msb x y
Into:
mul(8) temp x y
mov(8) acc0 temp
mach(8) null x y
mov(8) lsb acc0
...
mov(8) acc0 temp
mach(8) msb x y
But mul(8) into the accumulator produces more than 32-bits of precision,
which is required and lost if multiplying into a general register and
moving to the accumulator.
Reviewed-by: Eric Anholt <eric@anholt.net>
Matt Turner [Wed, 18 Sep 2013 04:34:15 +0000 (21:34 -0700)]
glsl: Implement [iu]mulExtended() built-ins for ARB_gpu_shader5.
These built-ins have two "out" parameters, which makes implementing them
efficiently with our current compiler infrastructure difficult. Instead,
implement them in terms of the existing ir_binop_mul IR (to return the
low 32-bits) and a new ir_binop_mul64 which returns the high 32-bits.
v2: Rename mul64 -> imul_high as suggested by Ken.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Fri, 20 Sep 2013 05:55:24 +0000 (22:55 -0700)]
i965: Add Gen assertion checks for newer instructions.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Fri, 20 Sep 2013 02:31:31 +0000 (19:31 -0700)]
i965: Don't dead-code eliminate instructions that write to the accumulator.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Thu, 19 Sep 2013 20:01:08 +0000 (13:01 -0700)]
i965: Generate code for ir_binop_carry and ir_binop_borrow.
Using the ADDC and SUBB instructions on Gen7.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Thu, 19 Sep 2013 20:02:23 +0000 (13:02 -0700)]
i965: Add UD null register helpers.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Matt Turner [Wed, 18 Sep 2013 01:02:05 +0000 (18:02 -0700)]
glsl: Implement usubBorrow() built-in for ARB_gpu_shader5.
i965 implements this with a single (multiple destination) instruction,
SUBB. Emitting SUBB directly from usubBorrow() would be ideal, but our
optimization passes don't know how to copy with expressions with
side-effects.
Radeon has an SUBB_UINT instruction that only generates the borrow
bit. I've chosen to go this route and implement usubBorrow() by doing the
subtraction and the borrow operations separately.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Matt Turner [Wed, 18 Sep 2013 00:44:03 +0000 (17:44 -0700)]
glsl: Implement uaddCarry() built-in for ARB_gpu_shader5.
i965 implements this with a single (multiple destination) instruction,
ADDC. Emitting ADDC directly from uaddCarry() would be ideal, but our
optimization passes don't know how to copy with expressions with
side-effects.
Radeon has an ADDC_UINT instruction that only generates the carry
bit. I've chosen to go this route and implement uaddCarry() by doing the
addition and the carry operations separately.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Matt Turner [Thu, 19 Sep 2013 19:56:10 +0000 (12:56 -0700)]
glsl: Add ir_binop_carry and ir_binop_borrow.
Calculates the carry out of the addition of two values and the
borrow from subtraction respectively. Will be used in uaddCarry() and
usubBorrow() built-in implementations.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Wed, 11 Sep 2013 23:08:23 +0000 (18:08 -0500)]
glsl_compiler: Enable any extension that any Mesa driver enables
The only GLSL extension that is not enabled is AMD_vertex_shader_layer.
I think the standalone-compiler could enable this (as shading language
support is complete), but no driver enables it.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Wed, 11 Sep 2013 22:53:06 +0000 (17:53 -0500)]
glsl_compiler: Sort extensions by name
Makes it a little easier to see which ones are missing.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 9 Sep 2013 19:14:17 +0000 (14:14 -0500)]
glsl_compiler: Always log the compiler diagnostics
Not just when there's an error.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 9 Sep 2013 19:07:15 +0000 (14:07 -0500)]
glsl_compiler: Set max GLSL version on the command line
Infer whether or not to use ES based on the GLSL version (100 or 300 are
for ES). This replaces the --glsl-es command line option. Set various
compiler limits based on the minimums required for the specified GLSL
version.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 9 Sep 2013 15:06:59 +0000 (10:06 -0500)]
glsl_compiler: Use no_argument instead of 0 in getopt_long options
The choices aren't just 0 and 1, so using the enum names is much more
clear.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 9 Sep 2013 14:58:08 +0000 (09:58 -0500)]
glsl_compiler: Re-enable building glsl_compiler
This allows application developers to use Mesa's compiler as a
standalone validator for their shaders.
This is mostly a revert of commit
569f0e4.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 10 Sep 2013 17:16:57 +0000 (12:16 -0500)]
glsl: Remove glsl_parser_state MaxVaryingFloats field
Pull the data directly from the context like the other varying related
limits. The parser state shadow copies were added back when the parser
state didn't have a pointer to the context. There's no reason to do it
now days.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Ian Romanick [Tue, 10 Sep 2013 17:13:04 +0000 (12:13 -0500)]
glsl: Set gl_MaxVertexOutputs from VertexProgram.MaxOutputComponents etc
gl_MaxVertexOutputVectors => ctx->Const.VertexProgram.MaxOutputComponents
gl_MaxFragmentInputVectors => ctx->Const.FragmentProgram.MaxInputComponents
v2: Add types so that the code compiles. Pointed out by Brian.
v3: Leave gl_MaxVaryingFloats et al. as-is. Suggested by Paul.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com> [v2]
Reviewed-by: Marek Olšák <marek.olsak@amd.com> [v2]
Reviewed-by: Paul Berry <stereotype441@gmail.com> [v2]
Ian Romanick [Tue, 10 Sep 2013 17:00:34 +0000 (12:00 -0500)]
glsl: Count shader inputs and outputs separately
Starting with OpenGL 3.2 input limits and output limits for stages may
not match. This means they need to be accounted separately.
No piglit regressions.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Emilio Pozuelo Monfort [Thu, 3 Oct 2013 17:33:58 +0000 (19:33 +0200)]
glapi: add output info to GetProgramiv's params
Signed-off-by: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Laurent Carlier [Fri, 4 Oct 2013 19:22:30 +0000 (21:22 +0200)]
clover: fix building with llvm-3.4 since rev191922
http://llvm.org/viewvc/llvm-project?view=revision&revision=191922
Brian Paul [Mon, 7 Oct 2013 15:08:10 +0000 (09:08 -0600)]
st/mesa: silence warning about unhandled ir_query_levels in switch
Christian König [Wed, 25 Sep 2013 13:51:08 +0000 (15:51 +0200)]
radeon/vdpau: only export necessary symbols
Export only the absolutely necessary symbols in radeon vdpau targets.
Signed-off-by: Christian König <christian.koenig@amd.com>
Christian König [Wed, 25 Sep 2013 14:26:58 +0000 (16:26 +0200)]
radeon/uvd: optimize message handling a bit
No need to keep a copy of the message in system memory anymore,
since it should now be in GART memory on newer chips.
Signed-off-by: Christian König <christian.koenig@amd.com>
Kenneth Graunke [Sun, 6 Oct 2013 20:58:34 +0000 (13:58 -0700)]
docs: Mark a few more things as "in progress" in GL3.txt.
Ilia Mirkin [Fri, 4 Oct 2013 08:28:58 +0000 (04:28 -0400)]
dri/nouveau: add AllocTextureImageBuffer implementation
This fixes issues where get_rt_format would see a 0 format because the
nouveau_surface had not been properly initialized. Fixes crash on
supertuxkart startup (which still fails due to out-of-vram issues).
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Francisco Jerez [Sat, 21 Sep 2013 01:36:08 +0000 (18:36 -0700)]
glsl: Fix usage of the wrong union member in program_resource_visitor::recursion.
In the array-of-struct case, recursion() takes the row_major flag for
each iteration from 't->fields.structure[i]', but 't' is not a record
type. Inherit the array declaration row_major flag instead.
This mistake was found by running piglit on valgrind.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69449
Cc: "9.1 9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Sat, 5 Oct 2013 16:34:32 +0000 (18:34 +0200)]
Revert "r600g: only flush the caches that need to be flushed during CP DMA operations"
This reverts commit
7948ed1250cae78ae1b22dbce4ab23aceacc6159.
It caused graphical corruption. I've got no idea why.
Bugzilla:
https://bugs.freedesktop.org/show_bug.cgi?id=70042
https://bugs.freedesktop.org/show_bug.cgi?id=68451
Conflicts:
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
Chris Forbes [Sat, 5 Oct 2013 10:26:07 +0000 (23:26 +1300)]
i965/ivb: Flag RG32F quirk for texture gather regardless of swizzles
As of ARB_gpu_shader5, textureGather doesn't always read the
post-swizzle RED channel -- so we can't just look at the red swizzle
state.
Theoretically we could only flag the quirk if *some* green swizzle is in
use, but that's probably more trouble than it's worth.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 10:10:04 +0000 (23:10 +1300)]
i965/vs: Add support for textureGather(.., comp)
- For HSW: Select the channel based on the component selected (swizzle
is done in HW)
- For IVB: Select the channel based on the swizzle state for the
component selected. Only apply the RG32F w/a if we actually want
green -- we're about to flag it regardless of swizzle state.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 09:59:17 +0000 (22:59 +1300)]
i965/fs: Add support for textureGather(.., comp)
- For HSW: Select the channel based on the component selected (swizzle
is done in HW)
- For IVB: Select the channel based on the swizzle state for the
component selected. Only apply the RG32F w/a if we actually want
green -- we're about to flag it regardless of swizzle state.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 04:57:18 +0000 (17:57 +1300)]
glsl: add ARB_gpu_shader5's additional textureGather signatures
- gsampler2DRect support
- optional `comp` parameter
Future patches will add shadow sampler support and
textureGatherOffsets().
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 05:26:56 +0000 (18:26 +1300)]
glsl: Add support for specifying the component in textureGather
ARB_gpu_shader5 introduces new variants of textureGather* which have an
explicit component selector, rather than relying purely on the sampler's
swizzle state.
This patch adds the GLSL plumbing for the extra parameter.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 08:45:07 +0000 (21:45 +1300)]
docs: mark ARB_conservative_depth done on i965
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Sat, 5 Oct 2013 08:40:57 +0000 (21:40 +1300)]
i965: Enable ARB_conservative_depth for Gen7+.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 08:39:25 +0000 (21:39 +1300)]
i965/wm: Program correct conservative depth modes
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Brian Paul [Sat, 5 Oct 2013 20:25:23 +0000 (14:25 -0600)]
docs: rephrase 9.2.1, 9.1.7 news item
Both are bug-fix releases, not new development releases.
Brian Paul [Sat, 5 Oct 2013 20:20:37 +0000 (14:20 -0600)]
docs: add the MD5 sums for the 9.2.1 and 9.1.7 releases
Timothy Arceri [Sat, 5 Oct 2013 09:00:20 +0000 (19:00 +1000)]
docs: Mark off KHR_debug, update relnotes
Signed-off-by: Timothy Arceri <t_arceri@yahoo.com.au>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 5 Oct 2013 10:18:39 +0000 (23:18 +1300)]
i965/vs: add missing break between ir_query_levels and ir_tg4 cases
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Sat, 5 Oct 2013 06:15:15 +0000 (19:15 +1300)]
docs: Mark off ARB_texture_query_levels, update relnotes
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Sat, 5 Oct 2013 04:11:57 +0000 (17:11 +1300)]
i965: enable ARB_texture_query_levels on Gen6+
Theoretically would work on Gen5 as well but requires GLSL 1.30, which
is not (yet) enabled by default there.
V2: Enable for Gen5 conditionally on GLSL version.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Chris Forbes [Thu, 26 Sep 2013 17:52:20 +0000 (05:52 +1200)]
i965/vs: implement ir_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Chris Forbes [Thu, 26 Sep 2013 08:44:18 +0000 (20:44 +1200)]
i965/fs: implement ir_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Chris Forbes [Thu, 26 Sep 2013 08:08:32 +0000 (20:08 +1200)]
i965: ignore all texturing opcodes without a coordinate, for cubemap normalize
Previously we special-cased textureSize() but this is the more correct
condition.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Chris Forbes [Thu, 26 Sep 2013 07:37:30 +0000 (19:37 +1200)]
glsl: add plumbing for GL_ARB_texture_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Chris Forbes [Thu, 26 Sep 2013 07:09:21 +0000 (19:09 +1200)]
mesa: add plumbing for GL_ARB_texture_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Carl Worth [Sat, 5 Oct 2013 04:56:58 +0000 (21:56 -0700)]
docs: Add release notes for 9.1.7 release
Including a news item.
Carl Worth [Sat, 5 Oct 2013 03:53:09 +0000 (20:53 -0700)]
docs: Add release notes and NEWS item for 9.2.1 release
Better late than never, right?
Alexander von Gluck IV [Fri, 4 Oct 2013 17:28:42 +0000 (17:28 +0000)]
haiku: Ensure correct libraries are referenced.
Alexander von Gluck IV [Fri, 4 Oct 2013 15:26:03 +0000 (15:26 +0000)]
haiku: Clean up code, use target-helpers
* Thanks for the help xexaxo!
Alexander von Gluck IV [Thu, 3 Oct 2013 21:05:23 +0000 (21:05 +0000)]
haiku: Drop haiku-softpipe.c; fix extern C
* It isn't needed any longer as we're
moving in the code that called it.
* The winsys code is C, so make sure
we include the header in the extern C
Alexander von Gluck IV [Thu, 3 Oct 2013 02:14:20 +0000 (02:14 +0000)]
haiku: Correct Haiku softpipe library
* Use LoadableModule vs SharedLibrary
Alexander von Gluck IV [Thu, 3 Oct 2013 01:22:48 +0000 (01:22 +0000)]
haiku: Add first Haiku renderer (softpipe)
* This shared library gets parsed by the
system as a system "add-on"
Alexander von Gluck IV [Tue, 1 Oct 2013 21:03:48 +0000 (21:03 +0000)]
haiku: Build Haiku's libGL from within Mesa
* This in essence means that Mesa would be
taking control of Haiku's OpenGL kit.
* This works by dispatching renderers from the
OpenGL add-ons directory
Vinson Lee [Fri, 4 Oct 2013 18:24:03 +0000 (11:24 -0700)]
glsl: Define isnormal for Oracle Solaris Studio.
This patch fixes this Oracle Solaris Studio build error.
"../../src/glsl/ir_constant_expression.cpp", line 1398: Error: The function "isnormal" must have a prototype.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Grigori Goronzy [Wed, 2 Oct 2013 22:12:55 +0000 (00:12 +0200)]
r600g: texture offsets for non-TXF instructions
All texture instructions can use offsets, not just TXF. Offsets into
the literals array were wrong, too.
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Marek Olšák [Fri, 4 Oct 2013 17:58:57 +0000 (19:58 +0200)]
r600g: remove an assertion causing a crash at context cleanup
Compute samplers are advertised, but not implemented.
I think that's intentional.
Marek Olšák [Fri, 4 Oct 2013 15:14:07 +0000 (17:14 +0200)]
r300g: remove unused function r300_lacks_vertex_textures
Ian Romanick [Thu, 5 Sep 2013 19:47:13 +0000 (12:47 -0700)]
mesa: Don't return any data for GL_SHADER_BINARY_FORMATS
We return 0 for GL_NUM_SHADER_BINARY_FORMATS, so
GL_SHADER_BINARY_FORMATS should not write any data to the application
buffer.
Fixes piglit test 'arb_get_program_binary-overrun shader'.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Brian Paul [Thu, 3 Oct 2013 17:51:14 +0000 (11:51 -0600)]
svga: fix incorrect memcpy src in svga_buffer_upload_piecewise()
As we march over the source buffer we're uploading in pieces, we
need to memcpy from the current offset, not the start of the buffer.
Fixes graphical corruption when drawing very large vertex buffers.
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Matthew McClure <mcclurem@vmware.com>
Matthew McClure [Thu, 26 Sep 2013 23:57:26 +0000 (16:57 -0700)]
util: when packing depth values, round to nearest.
This patch adds the lrint, lrintf, llrint, and llrintf rounding utility
functions. When packing unorm depth values, we will round to nearest.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Tom Stellard [Thu, 3 Oct 2013 21:39:59 +0000 (17:39 -0400)]
radeonsi/compute: Fix segfault caused by recent refactoring
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Brian Paul [Fri, 4 Oct 2013 00:26:18 +0000 (17:26 -0700)]
radeonsi: Fix build
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
https://bugs.freedesktop.org/show_bug.cgi?id=70106
Emil Velikov [Thu, 3 Oct 2013 22:23:20 +0000 (23:23 +0100)]
configure: set HAVE_COMMON_DRI when building only swrast
With commit
cb1febb07, I have incorrectly removed HAVE_COMMON_DRI
assuming that swrast does not need to build the translations for
driconf options, as effectively swrast/drisw does not use them.
With the incoming unification work of dri and drisw, it makes
sense just to revert the offending hunk.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70057
Reported-by: Vinson Lee <vlee@freedesktop.org>
Tested-by: Vinson Lee <vlee@freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Brian Paul [Thu, 3 Oct 2013 23:31:49 +0000 (17:31 -0600)]
radeonsi/compute: fix bind_compute_sampler_states() breakage
Remove the assignment and the no-op function.
Paul Berry [Fri, 20 Sep 2013 16:04:31 +0000 (09:04 -0700)]
i965/fs: Improve accuracy of dFdy() to match dFdx().
Previously, we computed dFdy() using the following instruction:
add(8) dst<1>F src<4,4,0)F -src.2<4,4,0>F { align1 1Q }
That had the disadvantage that it computed the same value for all 4
pixels of a 2x2 subspan, which meant that it was less accurate than
dFdx(). This patch changes it to the following instruction when
c->key.high_quality_derivatives is set:
add(8) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1Q }
This gives it comparable accuracy to dFdx().
Unfortunately, align16 instructions can't be compressed, so in SIMD16
shaders, instead of emitting this instruction:
add(16) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1H }
We need to unroll to two instructions:
add(8) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1Q }
add(8) (dst+1)<1>F (src+1)<4,4,1>.xyxyF -(src+1)<4,4,1>.zwzwF { align16 2Q }
Fixes piglit test spec/glsl-1.10/execution/fs-dfdy-accuracy.
Acked-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Brian Paul [Thu, 3 Oct 2013 20:24:55 +0000 (14:24 -0600)]
gallium/tests: fix SHADER typo
Emil Velikov [Thu, 29 Aug 2013 11:25:00 +0000 (05:25 -0600)]
gallium-egl: use standard variable types over EGLBoolean/EGLint
The inferface/prototype in native_wayland_bufmgr.h uses boolean/int, as
well as the rest of the file. Convert to improve consistency and to
prevent gcc compiler warnings due to type miss-match.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Brian Paul [Thu, 12 Sep 2013 23:31:28 +0000 (17:31 -0600)]
gallium: remove old bind_*_sampler_states() functions
The new bind_sampler_states() function takes a shader argument to
specify the shader stage.
Brian Paul [Thu, 12 Sep 2013 23:31:08 +0000 (17:31 -0600)]
gallium/docs: update bind_sampler_states() documentation
Brian Paul [Thu, 12 Sep 2013 23:30:50 +0000 (17:30 -0600)]
cso: make sure all sampler states are set/cleared
Brian Paul [Thu, 12 Sep 2013 22:11:03 +0000 (16:11 -0600)]
freedreno: use new bind_sampler_states() function