mesa.git
11 years agoi965/ivb: Flag RG32F quirk for texture gather regardless of swizzles
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>
11 years agoi965/vs: Add support for textureGather(.., comp)
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>
11 years agoi965/fs: Add support for textureGather(.., comp)
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>
11 years agoglsl: add ARB_gpu_shader5's additional textureGather signatures
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>
11 years agoglsl: Add support for specifying the component in textureGather
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>
11 years agodocs: mark ARB_conservative_depth done on i965
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>
11 years agoi965: Enable ARB_conservative_depth for Gen7+.
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>
11 years agoi965/wm: Program correct conservative depth modes
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>
11 years agodocs: rephrase 9.2.1, 9.1.7 news item
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.

11 years agodocs: add the MD5 sums for the 9.2.1 and 9.1.7 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

11 years agodocs: Mark off KHR_debug, update relnotes
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>
11 years agoi965/vs: add missing break between ir_query_levels and ir_tg4 cases
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>
11 years agodocs: Mark off ARB_texture_query_levels, update relnotes
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>
11 years agoi965: enable ARB_texture_query_levels on Gen6+
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>
11 years agoi965/vs: implement ir_query_levels
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>
11 years agoi965/fs: implement ir_query_levels
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>
11 years agoi965: ignore all texturing opcodes without a coordinate, for cubemap normalize
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>
11 years agoglsl: add plumbing for GL_ARB_texture_query_levels
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>
11 years agomesa: add plumbing for GL_ARB_texture_query_levels
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>
11 years agodocs: Add release notes for 9.1.7 release
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.

11 years agodocs: Add release notes and NEWS item for 9.2.1 release
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?

11 years agohaiku: Ensure correct libraries are referenced.
Alexander von Gluck IV [Fri, 4 Oct 2013 17:28:42 +0000 (17:28 +0000)]
haiku: Ensure correct libraries are referenced.

11 years agohaiku: Clean up code, use target-helpers
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!

11 years agohaiku: Drop haiku-softpipe.c; fix extern C
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

11 years agohaiku: Correct Haiku softpipe library
Alexander von Gluck IV [Thu, 3 Oct 2013 02:14:20 +0000 (02:14 +0000)]
haiku: Correct Haiku softpipe library

* Use LoadableModule vs SharedLibrary

11 years agohaiku: Add first Haiku renderer (softpipe)
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"

11 years agohaiku: Build Haiku's libGL from within Mesa
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

11 years agoglsl: Define isnormal for Oracle Solaris Studio.
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>
11 years agor600g: texture offsets for non-TXF instructions
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>
11 years agor600g: remove an assertion causing a crash at context cleanup
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.

11 years agor300g: remove unused function r300_lacks_vertex_textures
Marek Olšák [Fri, 4 Oct 2013 15:14:07 +0000 (17:14 +0200)]
r300g: remove unused function r300_lacks_vertex_textures

11 years agomesa: Don't return any data for GL_SHADER_BINARY_FORMATS
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>
11 years agosvga: fix incorrect memcpy src in svga_buffer_upload_piecewise()
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>
11 years agoutil: when packing depth values, round to nearest.
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>
11 years agoradeonsi/compute: Fix segfault caused by recent refactoring
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>
11 years agoradeonsi: Fix build
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

11 years agoconfigure: set HAVE_COMMON_DRI when building only swrast
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>
11 years agoradeonsi/compute: fix bind_compute_sampler_states() breakage
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.

11 years agoi965/fs: Improve accuracy of dFdy() to match dFdx().
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>
11 years agogallium/tests: fix SHADER typo
Brian Paul [Thu, 3 Oct 2013 20:24:55 +0000 (14:24 -0600)]
gallium/tests: fix SHADER typo

11 years agogallium-egl: use standard variable types over EGLBoolean/EGLint
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>
11 years agogallium: remove old bind_*_sampler_states() functions
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.

11 years agogallium/docs: update bind_sampler_states() documentation
Brian Paul [Thu, 12 Sep 2013 23:31:08 +0000 (17:31 -0600)]
gallium/docs: update bind_sampler_states() documentation

11 years agocso: make sure all sampler states are set/cleared
Brian Paul [Thu, 12 Sep 2013 23:30:50 +0000 (17:30 -0600)]
cso: make sure all sampler states are set/cleared

11 years agofreedreno: use new bind_sampler_states() function
Brian Paul [Thu, 12 Sep 2013 22:11:03 +0000 (16:11 -0600)]
freedreno: use new bind_sampler_states() function

11 years agosvga: don't hook in old bind_fragment_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 22:10:06 +0000 (16:10 -0600)]
svga: don't hook in old bind_fragment_sampler_states() functions

11 years agoradeon: don't use old bind_vertex/fragment_sampler_states() hooks
Brian Paul [Thu, 12 Sep 2013 21:45:52 +0000 (15:45 -0600)]
radeon: don't use old bind_vertex/fragment_sampler_states() hooks

11 years agoi915g: remove old bind_vertex/fragment_sampler_states() hooks
Brian Paul [Thu, 12 Sep 2013 21:41:39 +0000 (15:41 -0600)]
i915g: remove old bind_vertex/fragment_sampler_states() hooks

11 years agonoop: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:38:06 +0000 (15:38 -0600)]
noop: remove old bind_*_sampler_states() functions

11 years agogalahad: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:36:51 +0000 (15:36 -0600)]
galahad: remove old bind_*_sampler_states() functions

11 years agovl: remove old bind_fragment_sampler_states() calls
Brian Paul [Thu, 12 Sep 2013 21:34:02 +0000 (15:34 -0600)]
vl: remove old bind_fragment_sampler_states() calls

11 years agoutil: remove old bind_fragment_sampler_states() calls from blitter code
Brian Paul [Thu, 12 Sep 2013 21:33:44 +0000 (15:33 -0600)]
util: remove old bind_fragment_sampler_states() calls from blitter code

11 years agodraw: remove use of old bind_fragment_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:25:08 +0000 (15:25 -0600)]
draw: remove use of old bind_fragment_sampler_states()

11 years agonouveau: remove old bind_*_sampler_states() functions
Brian Paul [Fri, 13 Sep 2013 00:14:02 +0000 (18:14 -0600)]
nouveau: remove old bind_*_sampler_states() functions

11 years agocso: remove use of old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:24:22 +0000 (15:24 -0600)]
cso: remove use of old bind_*_sampler_states() functions

11 years agorbug: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:19:46 +0000 (15:19 -0600)]
rbug: remove old bind_*_sampler_states() functions

11 years agoidentity: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:18:59 +0000 (15:18 -0600)]
identity: remove old bind_*_sampler_states() functions

11 years agotrace: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:18:16 +0000 (15:18 -0600)]
trace: remove old bind_*_sampler_states() functions

11 years agoilo: don't hook up old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:17:27 +0000 (15:17 -0600)]
ilo: don't hook up old bind_*_sampler_states() functions

11 years agollvmpipe: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:16:14 +0000 (15:16 -0600)]
llvmpipe: remove old bind_*_sampler_states() functions

11 years agosoftpipe: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:16:07 +0000 (15:16 -0600)]
softpipe: remove old bind_*_sampler_states() functions

11 years agoclover: remove bind_compute_sampler_states() calls
Brian Paul [Mon, 16 Sep 2013 16:21:07 +0000 (10:21 -0600)]
clover: remove bind_compute_sampler_states() calls

11 years agogallium/tests: use pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:40:13 +0000 (15:40 -0600)]
gallium/tests: use pipe_context::bind_sampler_states()

11 years agogallium/tools: update dump_state.py to use bind_sampler_states()
Brian Paul [Fri, 13 Sep 2013 00:11:45 +0000 (18:11 -0600)]
gallium/tools: update dump_state.py to use bind_sampler_states()

11 years agonouveau: implement pipe_context::bind_sampler_states()
Brian Paul [Fri, 13 Sep 2013 00:09:33 +0000 (18:09 -0600)]
nouveau: implement pipe_context::bind_sampler_states()

11 years agosoftpipe: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:09:10 +0000 (15:09 -0600)]
softpipe: implement pipe_context::bind_sampler_states()

11 years agoradeon: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:09:01 +0000 (15:09 -0600)]
radeon: implement pipe_context::bind_sampler_states()

11 years agosvga: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:42 +0000 (15:08 -0600)]
svga: implement pipe_context::bind_sampler_states()

11 years agotrace: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:10 +0000 (15:08 -0600)]
trace: implement pipe_context::bind_sampler_states()

11 years agorbug: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:04 +0000 (15:08 -0600)]
rbug: implement pipe_context::bind_sampler_states()

11 years agonoop: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:57 +0000 (15:07 -0600)]
noop: implement pipe_context::bind_sampler_states()

11 years agollvmpipe: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:48 +0000 (15:07 -0600)]
llvmpipe: implement pipe_context::bind_sampler_states()

11 years agoilo: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:39 +0000 (15:07 -0600)]
ilo: implement pipe_context::bind_sampler_states()

11 years agoidentity: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:33 +0000 (15:07 -0600)]
identity: implement pipe_context::bind_sampler_states()

11 years agoi915g: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:21 +0000 (15:07 -0600)]
i915g: implement pipe_context::bind_sampler_states()

11 years agogalahad: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:10 +0000 (15:07 -0600)]
galahad: implement pipe_context::bind_sampler_states()

11 years agoclover: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:56 +0000 (15:06 -0600)]
clover: use pipe_context::bind_sampler_states() if non-null

11 years agovl: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:44 +0000 (15:06 -0600)]
vl: use pipe_context::bind_sampler_states() if non-null

11 years agoutil: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:33 +0000 (15:06 -0600)]
util: use pipe_context::bind_sampler_states() if non-null

11 years agodraw: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:23 +0000 (15:06 -0600)]
draw: use pipe_context::bind_sampler_states() if non-null

11 years agocso: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 20:59:14 +0000 (14:59 -0600)]
cso: use pipe_context::bind_sampler_states() if non-null

11 years agogallium: add pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 20:55:06 +0000 (14:55 -0600)]
gallium: add pipe_context::bind_sampler_states()

The bind_vertex/geometry/fragment/compute_sampler_states() functions
will be replaced by a single functions.

11 years agor300g: rename r300_bind_sampler_states to r300_bind_fragment_sampler_states
Brian Paul [Thu, 12 Sep 2013 19:57:42 +0000 (13:57 -0600)]
r300g: rename r300_bind_sampler_states to r300_bind_fragment_sampler_states

11 years agodraw: rename bind_sampler_states variables
Brian Paul [Thu, 12 Sep 2013 19:43:14 +0000 (13:43 -0600)]
draw: rename bind_sampler_states variables

Put 'fragment' in the names.  In preparation for upcoming function
renaming.

11 years agor600g: fix ínitialization of non_disp_tiling flag
Marek Olšák [Thu, 3 Oct 2013 16:16:08 +0000 (18:16 +0200)]
r600g: fix ínitialization of non_disp_tiling flag

This fixes a regression caused by e64633e8c3a5498998a45ab721bf80edca101cf5

11 years agor600g,radeonsi: create aux_context last
Marek Olšák [Thu, 3 Oct 2013 14:39:50 +0000 (16:39 +0200)]
r600g,radeonsi: create aux_context last

This fixes a regression caused by 68f6dec32ed5eede361f76c8dbdf897652659baf.

11 years agor300g/swtcl: don't call draw_prepare_shader_outputs
Marek Olšák [Fri, 20 Sep 2013 13:13:45 +0000 (15:13 +0200)]
r300g/swtcl: don't call draw_prepare_shader_outputs

11 years agost/mesa: silence warning about unhandled enum in switch statement
Brian Paul [Thu, 3 Oct 2013 15:13:39 +0000 (09:13 -0600)]
st/mesa: silence warning about unhandled enum in switch statement

11 years agomesa: fix make check for ARB_texture_gather
Chris Forbes [Thu, 3 Oct 2013 01:10:08 +0000 (14:10 +1300)]
mesa: fix make check for ARB_texture_gather

Clean up inconsistency in enum decoration:
- Use the undecorated enums where possible.
- MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB remains decorated, since it
  has no undecorated equivalent in GL4.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70054
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agodocs: Mark off ARB_texture_gather
Chris Forbes [Wed, 2 Oct 2013 18:58:12 +0000 (07:58 +1300)]
docs: Mark off ARB_texture_gather

11 years agoi965/hsw: Apply gather4 RG32F w/a using SCS instead of shader.
Chris Forbes [Mon, 30 Sep 2013 09:53:14 +0000 (22:53 +1300)]
i965/hsw: Apply gather4 RG32F w/a using SCS instead of shader.

The new surface channel select bits allow us to avoid having to
recompile the shader for this workaround.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-and-tested-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Enable ARB_texture_gather on Gen7
Chris Forbes [Sun, 24 Mar 2013 07:18:55 +0000 (20:18 +1300)]
i965: Enable ARB_texture_gather on Gen7

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: use gather slots in the binding table for gather4.
Chris Forbes [Sun, 15 Sep 2013 06:23:14 +0000 (18:23 +1200)]
i965: use gather slots in the binding table for gather4.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Emit a second set of SURFACE_STATE for gather4 from textures.
Chris Forbes [Sun, 15 Sep 2013 05:58:12 +0000 (17:58 +1200)]
i965: Emit a second set of SURFACE_STATE for gather4 from textures.

This allows us to use a different surface format for gather4, which is
required for R32G32_FLOAT to work on Gen7.

V4: - Only emit alternate surface state for shaders which will actually
      use it.
    - Pass a simple 'for_gather' flag rather than a function pointer.
      The callee can decide what w/a to apply.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: make room in the binding table for a full alternate set of surface_states
Chris Forbes [Sun, 15 Sep 2013 06:11:37 +0000 (18:11 +1200)]
i965: make room in the binding table for a full alternate set of surface_states

Worst-case is that *every* texunit uses a format that needs overriding.

V4: Place the gather slots last, so shaders which don't use gather don't
    get penalized by having a huge binding table.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Add BRW_SURFACEFORMAT_R32G32_FLOAT_LD, required for IVB gather4 w/a
Chris Forbes [Sat, 10 Aug 2013 23:46:18 +0000 (11:46 +1200)]
i965: Add BRW_SURFACEFORMAT_R32G32_FLOAT_LD, required for IVB gather4 w/a

gather4 GREEN channel against a surface with format R32G32_FLOAT doesn't work
correctly on IVB. w/a from bspec:

   - use R32G32_FLOAT_LD = 0x97 instead, for gather4 only.
   - select BLUE channel to read GREEN

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: w/a for gather4 green RG32F
Chris Forbes [Sat, 10 Aug 2013 21:55:30 +0000 (09:55 +1200)]
i965: w/a for gather4 green RG32F

V4: Only flag quirks if there are any uses of gather in the shader,
    to avoid spurious recompiles just because someone happened to use
    RG32F.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoglsl: flag shaders which use gather4 at all
Chris Forbes [Wed, 25 Sep 2013 04:56:36 +0000 (16:56 +1200)]
glsl: flag shaders which use gather4 at all

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965/vs: Add support for ir_tg4
Chris Forbes [Sun, 31 Mar 2013 08:39:37 +0000 (21:39 +1300)]
i965/vs: Add support for ir_tg4

Pretty much the same as the FS case. Channel select goes in the header,

V2: Less mangling.
V3: Avoid sampling at all, for degenerate swizzles.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965/fs: Add support for ir_tg4
Chris Forbes [Sun, 31 Mar 2013 08:33:51 +0000 (21:33 +1300)]
i965/fs: Add support for ir_tg4

Lowers ir_tg4 (from textureGather and textureGatherOffset builtins) to
SHADER_OPCODE_TG4.

The usual post-sampling swizzle workaround can't work for ir_tg4,
so avoid doing that:

* For R/G/B/A swizzles use the hardware channel select (lives in the
   same dword in the header as the texel offset), and then don't do
   anything afterward in the shader.
* For 0/1 swizzles blast the appropriate constant over all the output
   channels instead of sampling.

V2: Avoid duplicating header enabling block
V3: Avoid sampling at all, for degenerate swizzles.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>