Commit Graph

52847 Commits

Author SHA1 Message Date
Brian Paul e58dd465f0 st/mesa: silence warning about unhandled ir_query_levels in switch 2013-10-07 09:08:16 -06:00
Christian König 289d928c8e 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>
2013-10-07 11:16:53 +02:00
Christian König 731f5471fb 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>
2013-10-07 11:16:53 +02:00
Ilia Mirkin 7178d6ac59 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>
2013-10-06 12:59:18 -07:00
Francisco Jerez b3c04362b4 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>
2013-10-06 12:55:14 -07:00
Marek Olšák 373f8670d1 Revert "r600g: only flush the caches that need to be flushed during CP DMA operations"
This reverts commit 7948ed1250.

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
2013-10-06 03:13:48 +02:00
Chris Forbes 2656c6118b 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>
2013-10-06 11:25:14 +13:00
Chris Forbes e8ec2e0344 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>
2013-10-06 11:25:11 +13:00
Chris Forbes 09c6fd450d 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>
2013-10-06 11:25:03 +13:00
Chris Forbes 7335bc7526 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>
2013-10-06 11:13:17 +13:00
Chris Forbes 88ee9bc9d1 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>
2013-10-06 11:12:29 +13:00
Chris Forbes 7ec4668696 i965: Enable ARB_conservative_depth for Gen7+.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2013-10-06 11:05:35 +13:00
Chris Forbes 4697955c5b i965/wm: Program correct conservative depth modes
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2013-10-06 11:05:10 +13:00
Chris Forbes 84e1a396ec i965/vs: add missing break between ir_query_levels and ir_tg4 cases
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
2013-10-05 23:18:45 +13:00
Chris Forbes 317e172677 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>
2013-10-05 19:16:33 +13:00
Chris Forbes 4be21a07ea i965/vs: implement ir_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2013-10-05 19:16:33 +13:00
Chris Forbes fa6440acdb i965/fs: implement ir_query_levels
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2013-10-05 19:16:33 +13:00
Chris Forbes 7480ae3cb8 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>
2013-10-05 19:16:33 +13:00
Chris Forbes 7a4754d7d9 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>
2013-10-05 19:16:32 +13:00
Chris Forbes 6ce4e7672e 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>
2013-10-05 19:16:32 +13:00
Alexander von Gluck IV 765baec8f7 haiku: Ensure correct libraries are referenced. 2013-10-04 18:20:09 -05:00
Alexander von Gluck IV a4144af400 haiku: Clean up code, use target-helpers
* Thanks for the help xexaxo!
2013-10-04 18:20:09 -05:00
Alexander von Gluck IV 4d15ef5121 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
2013-10-04 18:20:09 -05:00
Alexander von Gluck IV bc2fb19773 haiku: Correct Haiku softpipe library
* Use LoadableModule vs SharedLibrary
2013-10-04 18:20:09 -05:00
Alexander von Gluck IV 8730236d1a haiku: Add first Haiku renderer (softpipe)
* This shared library gets parsed by the
  system as a system "add-on"
2013-10-04 18:20:09 -05:00
Alexander von Gluck IV c9f1217e1f 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
2013-10-04 18:20:09 -05:00
Vinson Lee 1349766612 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>
2013-10-04 15:37:33 -07:00
Grigori Goronzy 8419c5c3ce 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>
2013-10-04 22:44:47 +02:00
Marek Olšák c04b8d1dab r600g: remove an assertion causing a crash at context cleanup
Compute samplers are advertised, but not implemented.
I think that's intentional.
2013-10-04 20:01:51 +02:00
Marek Olšák eda1f2aa12 r300g: remove unused function r300_lacks_vertex_textures 2013-10-04 20:01:48 +02:00
Ian Romanick 0667e2c969 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>
2013-10-04 10:08:45 -07:00
Brian Paul a50c5f8d24 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>
2013-10-04 10:25:37 -06:00
Matthew McClure d164d50a85 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>
2013-10-04 10:55:51 +01:00
Tom Stellard b280516e11 radeonsi/compute: Fix segfault caused by recent refactoring
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2013-10-03 17:29:54 -07:00
Brian Paul b181be6266 radeonsi: Fix build
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>

https://bugs.freedesktop.org/show_bug.cgi?id=70106
2013-10-03 17:29:42 -07:00
Brian Paul 99a471c67b radeonsi/compute: fix bind_compute_sampler_states() breakage
Remove the assignment and the no-op function.
2013-10-03 17:32:40 -06:00
Paul Berry 800610f9eb 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>
2013-10-03 13:49:15 -07:00
Brian Paul 9267565ee4 gallium/tests: fix SHADER typo 2013-10-03 14:24:55 -06:00
Emil Velikov 13895abd86 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>
2013-10-03 14:05:29 -06:00
Brian Paul 379deaf5c6 gallium: remove old bind_*_sampler_states() functions
The new bind_sampler_states() function takes a shader argument to
specify the shader stage.
2013-10-03 14:05:29 -06:00
Brian Paul 55e81b06e7 gallium/docs: update bind_sampler_states() documentation 2013-10-03 14:05:28 -06:00
Brian Paul 1e2fbf2657 cso: make sure all sampler states are set/cleared 2013-10-03 14:05:28 -06:00
Brian Paul 7d7a9714d2 freedreno: use new bind_sampler_states() function 2013-10-03 14:05:28 -06:00
Brian Paul 88b17a15f3 svga: don't hook in old bind_fragment_sampler_states() functions 2013-10-03 14:05:28 -06:00
Brian Paul 27c054edf0 radeon: don't use old bind_vertex/fragment_sampler_states() hooks 2013-10-03 14:05:28 -06:00
Brian Paul 1e8d3eb08d i915g: remove old bind_vertex/fragment_sampler_states() hooks 2013-10-03 14:05:28 -06:00
Brian Paul edd9af675c noop: remove old bind_*_sampler_states() functions 2013-10-03 14:05:28 -06:00
Brian Paul f233ee0cd6 galahad: remove old bind_*_sampler_states() functions 2013-10-03 14:05:28 -06:00
Brian Paul d0520d5bf6 vl: remove old bind_fragment_sampler_states() calls 2013-10-03 14:05:28 -06:00
Brian Paul 3925e521d6 util: remove old bind_fragment_sampler_states() calls from blitter code 2013-10-03 14:05:28 -06:00