mesa.git
8 years agonvc0: fix compute state initialization on GK110+
Samuel Pitoiset [Sat, 13 Feb 2016 23:14:34 +0000 (00:14 +0100)]
nvc0: fix compute state initialization on GK110+

Because our firmware doesn't support the GK110_COMPUTE.FIRMWARE[0x6]
method the GPU hangs when it is used. Removing it fix the issue and
allow to launch compute shaders on GK110+.

Tested on GK208 and GM107.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoglsl: remove duplicate interpolation_string() function
Timothy Arceri [Sat, 13 Feb 2016 22:51:31 +0000 (09:51 +1100)]
glsl: remove duplicate interpolation_string() function

We already have one in the IR code that can be used everywhere its
needed in the AST code so remove the one from the AST.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
8 years agoglsl: remove unused helper
Timothy Arceri [Mon, 15 Feb 2016 07:38:29 +0000 (18:38 +1100)]
glsl: remove unused helper

Seems to have become unused when i965 moved to NIR.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
8 years agoglsl: set user defined varyings to smooth by default in ES
Timothy Arceri [Tue, 16 Feb 2016 00:03:56 +0000 (11:03 +1100)]
glsl: set user defined varyings to smooth by default in ES

This is usually handled by the backends in order to handle the
various interactions with the gl_*Color built-ins.

The problem is this means linking will fail if one side on the
interface adds the smooth qualifier to the varying and the other
side just uses the default even though they match.

This fixes various deqp tests. The spec is not clear what to for
desktop GL so leave it as is for now.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92743

8 years agogm107/ir: add ATOM CAS emission
Samuel Pitoiset [Tue, 16 Feb 2016 17:53:11 +0000 (18:53 +0100)]
gm107/ir: add ATOM CAS emission

This fixes the following dEQP test and the other compswap variants.

dEQP-GLES31.functional.ssbo.atomic.compswap.highp_int

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: do not init limits when compute shaders are not supported
Samuel Pitoiset [Mon, 15 Feb 2016 21:40:46 +0000 (22:40 +0100)]
st/mesa: do not init limits when compute shaders are not supported

When the number of uniform blocks is less than 12,
ARB_uniform_buffer_object can't be enabled and the maximum GL version
is not even 3.1...

This fixes a regression introduced in 7c79c1e (st/mesa: add compute
shader state) if the maximum number of uniform blocks allowed for
compute shaders is less than 12. This happens on Kepler but this might
also affect other Gallium drivers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reported-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Tested-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
8 years agomesa: Don't call driver when there is no compute work
Jordan Justen [Tue, 16 Feb 2016 16:21:22 +0000 (08:21 -0800)]
mesa: Don't call driver when there is no compute work

The ARB_compute_shader spec says:

  "If the work group count in any dimension is zero, no work groups
   are dispatched."

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoi965: Set compute shader shared memory max to 64k
Jordan Justen [Sat, 13 Feb 2016 22:25:33 +0000 (14:25 -0800)]
i965: Set compute shader shared memory max to 64k

See Ivy Bridge PRM, Volume 2, Part 2, 1.8.4 INTERFACE_DESCRIPTOR_DATA:

DWORD 5, bits 20:16: "This field indicates how much shared local
memory the thread group requires. The amount is specified in 4k
blocks, but only powers of 2 are allowed: 0, 4k, 8k, 16k, 32k and 64k
per half-slice."

For Haswell, see Volume 2d, INTERFACE_DESCRIPTOR_DATA:

DWORD 5, bits 20:16: With text identical to the Ivy Bridge PRM.

For Broadwell, see Volume 2d, INTERFACE_DESCRIPTOR_DATA:

DWORD 6, bits 20:16: With text identical to the Ivy Bridge PRM.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agost/mesa: use new CSO_BITS_ALL_SHADERS
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use new CSO_BITS_ALL_SHADERS

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agocso: add CSO_BITS_ALL_SHADERS
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
cso: add CSO_BITS_ALL_SHADERS

For saving/restoring all shader stages.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/mesa: simplify st->ctx, ctx->st usage in a various places
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: simplify st->ctx, ctx->st usage in a various places

8 years agost/mesa: use _mesa_geometric_width/height() in glDrawPixels code
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use _mesa_geometric_width/height() in glDrawPixels code

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: rename attr variable in st_DrawTex()
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: rename attr variable in st_DrawTex()

Rename to 'tex_attr' to be a bit more clear.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: use 'cso' instead of 'st->cso_context' in st_DrawTex()
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use 'cso' instead of 'st->cso_context' in st_DrawTex()

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: fix whitespace and add comment in st_DrawTex()
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: fix whitespace and add comment in st_DrawTex()

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: used _mesa_num_tex_faces() in st_finalize_texture()
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: used _mesa_num_tex_faces() in st_finalize_texture()

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agocso: make most of the cso_save/restore_x() functions static
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
cso: make most of the cso_save/restore_x() functions static

Users of the CSO save/restore facility all use the new
cso_save/restore_state() functions instead.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agopostprocess: use new cso_save/restore_state() functions
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
postprocess: use new cso_save/restore_state() functions

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agogallium/hud: use new cso_save/restore_state() functions
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
gallium/hud: use new cso_save/restore_state() functions

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agogallium/util: use new cso_save/restore_state() functions
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
gallium/util: use new cso_save/restore_state() functions

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: use cso_save/restore_state() in st_cb_texture.c
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use cso_save/restore_state() in st_cb_texture.c

This simplifies the error handling code too.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: use new cso_save/restore_state() functions
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use new cso_save/restore_state() functions

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agocso: add new cso_save/restore_state() functions
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
cso: add new cso_save/restore_state() functions

cso_save_state() takes a bitmask of state items to save.  Calling
cso_restore_state() restores those states.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agocso: remove comment
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
cso: remove comment

There's a similar comment just a few lines before.

8 years agost/mesa: use new cso_set_viewport_dims() helper
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use new cso_set_viewport_dims() helper

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agocso: add new cso_set_viewport_dims() helper
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
cso: add new cso_set_viewport_dims() helper

To simplify some viewport setting code in the state tracker.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: use 'cso' local var instead of st->cso_context
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: use 'cso' local var instead of st->cso_context

Just a little cleaner.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: consolidate quad drawing code
Brian Paul [Tue, 16 Feb 2016 17:22:32 +0000 (10:22 -0700)]
st/mesa: consolidate quad drawing code

The glClear, glBitmap and glDrawPixels code now use a new st_draw_quad()
helper function.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: overhaul vertex setup for clearing, glDrawPixels, glBitmap
Brian Paul [Tue, 16 Feb 2016 17:22:31 +0000 (10:22 -0700)]
st/mesa: overhaul vertex setup for clearing, glDrawPixels, glBitmap

Define a new st_util_vertex structure which is a bit smaller (9 floats
versus the previous 12 floats per vertex).  Clean up the glClear,
glDrawPixels and glBitmap code that sets up the vertex data and does the
drawing so it's all very similar.  This can lead to more consolidation.

v2: add assertion that vertex buffer slot == 0 to catch possible future
change in cso_get_aux_vertex_buffer_slot() behavior.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agost/mesa: include u_draw.h, not u_draw_quad.h in st_draw.c
Brian Paul [Tue, 16 Feb 2016 17:22:31 +0000 (10:22 -0700)]
st/mesa: include u_draw.h, not u_draw_quad.h in st_draw.c

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agoconfigure: Bail out on llvm-config component error
Jan Vesely [Fri, 12 Feb 2016 23:58:55 +0000 (18:58 -0500)]
configure: Bail out on llvm-config component error

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agoHandle removal of LLVMAddTargetData in SVN revision 260919
Matthew Dawson [Tue, 16 Feb 2016 06:25:20 +0000 (01:25 -0500)]
Handle removal of LLVMAddTargetData in SVN revision 260919

LLVM removed LLVMAddTargetData for the 3.9 release in r260919.  For the two
places in mesa where this is called, only enable the lines when compiling
for less then 3.9.

For the radeon driver, I'm not sure how to check if any other LLVM calls need
to be adjusted.  I think since the target data used is extracted from the
LLVMModule, it isn't necessary to pass it back to LLVM again.

The code does compile, and at least for radeonsi does run OpenGL games.

[ Michel Dänzer: Move #if closer to LLVMAddTargetData in lp_bld_init.c,
  and add HAVE_LLVM < 0x0309 guards around now unused occurrences of TD
  and data_layout ]

Signed-off-by: Matthew Dawson <matthew@mjdsystems.ca>
Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agoi965: Expose logic telling if non-msrt mcs is supported
Topi Pohjolainen [Fri, 1 Jan 2016 15:02:00 +0000 (17:02 +0200)]
i965: Expose logic telling if non-msrt mcs is supported

Alos use the opportunity to mark inputs constant. (Context has to be
given as read-write to intel_miptree_supports_non_msrt_fast_clear()
to support debug output).

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965/gen9: Refactor msrt mcs initialization
Topi Pohjolainen [Thu, 10 Dec 2015 14:03:03 +0000 (16:03 +0200)]
i965/gen9: Refactor msrt mcs initialization

This will be re-used to initialize auxiliary buffers in lossless
compression case.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Add a few assertions on lossless compression
Topi Pohjolainen [Tue, 2 Feb 2016 08:04:34 +0000 (10:04 +0200)]
i965: Add a few assertions on lossless compression

v2 (Ben): Use combination of msaa_layout and number of samples
          instead of introducing explicit type for lossless
          compression (intel_miptree_is_lossless_compressed()).

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Add a flag telling color resolve pass to ignore CCS_E
Topi Pohjolainen [Tue, 2 Feb 2016 08:00:41 +0000 (10:00 +0200)]
i965: Add a flag telling color resolve pass to ignore CCS_E

v2 (Ben): Use combination of msaa_layout and number of samples
          instead of introducing explicit type for lossless
          compression (intel_miptree_is_lossless_compressed()).

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Add resolve option for lossless compression
Topi Pohjolainen [Wed, 9 Dec 2015 13:48:57 +0000 (15:48 +0200)]
i965: Add resolve option for lossless compression

v2 (Ben): Use combination of msaa_layout and number of samples
          instead of introducing explicit type for lossless
          compression (intel_miptree_is_lossless_compressed()).

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Allow fast clear to be used with lossless compression
Topi Pohjolainen [Mon, 7 Dec 2015 10:23:04 +0000 (12:23 +0200)]
i965: Allow fast clear to be used with lossless compression

v2 (Ben): Use combination of msaa_layout and number of samples
          instead of introducing explicit type for lossless
          compression.
v3 (Ben): Squash with "i965: Resolve color buffer also in
          lossless compression case" and clarify simple
          non-compressed fast clear case.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Add helper for detecting lossless compression
Topi Pohjolainen [Thu, 11 Feb 2016 08:42:13 +0000 (10:42 +0200)]
i965: Add helper for detecting lossless compression

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoRevert "i965: Restore vbo after color resolve during brw_try_draw_prims()"
Topi Pohjolainen [Mon, 15 Feb 2016 08:58:41 +0000 (10:58 +0200)]
Revert "i965: Restore vbo after color resolve during brw_try_draw_prims()"

This got pushed accidentally in the first place but wasn't reverted
as it didn't regress piglit but instead fixed one newly introduced
test exercising a corner in case in i965 driver. However, saving and
restoring vertex buffer context is complicated and requires more
thought.

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

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Tapani Palli <tapani.palli@intel.com>
8 years agonvc0: initial support for GM20x GPUs
Ben Skeggs [Mon, 15 Feb 2016 21:56:44 +0000 (07:56 +1000)]
nvc0: initial support for GM20x GPUs

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: implement support for maxwell texture headers
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: implement support for maxwell texture headers

Adds support for the new TIC layout that's present on Maxwell GPUs,
heavily based on the code for the existing layout.

This code is required for GM20x support.  While GM10x supports the older
layout still, this commit switches it to use the updated version instead.

Piglit testing shows zero regressions on GM107.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: import maxwell texture header definitions from rnndb
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: import maxwell texture header definitions from rnndb

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: split tic format specification
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: split tic format specification

We previously stored texture format information as it would appear in
the TIC.

We're about to support the new TIC layout that appeared with Maxwell,
so it makes more sense to store the data in a split-out format.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: remove nv50_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: remove nv50_texture.xml.h

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: switch nvc0_tex.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: switch nvc0_tex.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: switch nvc0_surface.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: switch nvc0_surface.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_tex.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_tex.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_surface.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_surface.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_state.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_state.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: switch nv50_formats.c to updated g80_texture.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: switch nv50_formats.c to updated g80_texture.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: import updated g80_texture.xml.h from rnndb
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: import updated g80_texture.xml.h from rnndb

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: remove nv50_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: remove nv50_defs.xml.h

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: switch nv50_formats.c to updated g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: switch nv50_formats.c to updated g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: improved macros to handle format specification
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: improved macros to handle format specification

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50-: separate vertex formats from surface format descriptions
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50-: separate vertex formats from surface format descriptions

We've previously had identical naming between vertex and texture
formats, so it mostly made sense to define these together.

However, upcoming patches are going to transition the driver over to
using updated texture header definitions using NVIDIA's naming, and this
will no longer be the case.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: remove unnecessary includes
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: remove unnecessary includes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: switch nvc0_tex.c to updated g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: switch nvc0_tex.c to updated g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonvc0: switch nvc0_surface.c to updated g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nvc0: switch nvc0_surface.c to updated g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: remove unnecessary include
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: remove unnecessary include

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_transfer.c to g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_transfer.c to g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_tex.c to updated g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_tex.c to updated g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: switch nv50_surface.c to updated g80_defs.xml.h
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: switch nv50_surface.c to updated g80_defs.xml.h

Verified (binary diff) to produce identical code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50: import updated g80_defs.xml.h from rnndb
Ben Skeggs [Mon, 15 Feb 2016 05:37:29 +0000 (15:37 +1000)]
nv50: import updated g80_defs.xml.h from rnndb

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: count shader images in MaxCombinedShaderOutputResources
Nicolai Hähnle [Tue, 16 Feb 2016 03:00:04 +0000 (22:00 -0500)]
st/mesa: count shader images in MaxCombinedShaderOutputResources

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: enable GL image extensions when backend supports them
Ilia Mirkin [Sat, 9 Jan 2016 04:01:01 +0000 (23:01 -0500)]
st/mesa: enable GL image extensions when backend supports them

This enables ARB_shader_image_load_store and ARB_shader_image_size when
the backend claims support for these. It will also implicitly enable the
image component of ARB_shader_texture_image_samples.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agost/mesa: convert GLSL image intrinsics into TGSI
Ilia Mirkin [Sat, 9 Jan 2016 03:47:26 +0000 (22:47 -0500)]
st/mesa: convert GLSL image intrinsics into TGSI

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agost/mesa: allow st_format.h to be included from C++ files
Ilia Mirkin [Sat, 9 Jan 2016 06:04:34 +0000 (01:04 -0500)]
st/mesa: allow st_format.h to be included from C++ files

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agost/mesa: set pipe_image_view layers correctly for 3D textures
Nicolai Hähnle [Wed, 10 Feb 2016 16:19:55 +0000 (11:19 -0500)]
st/mesa: set pipe_image_view layers correctly for 3D textures

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: call st_finalize_texture from image atoms
Nicolai Hähnle [Sun, 7 Feb 2016 23:21:35 +0000 (18:21 -0500)]
st/mesa: call st_finalize_texture from image atoms

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add an image atom for shader images
Ilia Mirkin [Sat, 9 Jan 2016 00:58:33 +0000 (19:58 -0500)]
st/mesa: add an image atom for shader images

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agotgsi: show textual format representation
Ilia Mirkin [Sat, 9 Jan 2016 06:04:08 +0000 (01:04 -0500)]
tgsi: show textual format representation

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agogallium: add PIPE_SHADER_CAP_MAX_SHADER_IMAGES
Ilia Mirkin [Sat, 9 Jan 2016 03:56:23 +0000 (22:56 -0500)]
gallium: add PIPE_SHADER_CAP_MAX_SHADER_IMAGES

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
8 years agogallium: make image views non-persistent objects
Ilia Mirkin [Sat, 9 Jan 2016 00:06:33 +0000 (19:06 -0500)]
gallium: make image views non-persistent objects

Make them akin to shader buffers, with no refcounting/etc. Just used to
pass data about the bound image in ->set_shader_images.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/mesa: empty buffer binding if the buffer's not really there
Ilia Mirkin [Sat, 13 Feb 2016 23:37:33 +0000 (18:37 -0500)]
st/mesa: empty buffer binding if the buffer's not really there

This can happen with 0-sized buffers.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agodocs: Document VC4_DEBUG envvar
Rhys Kidd [Sat, 13 Feb 2016 21:03:02 +0000 (16:03 -0500)]
docs: Document VC4_DEBUG envvar

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agovc4: Add missing braces in initializer
Rhys Kidd [Fri, 12 Feb 2016 04:50:21 +0000 (23:50 -0500)]
vc4: Add missing braces in initializer

Silences the following GCC warning:

mesa/src/gallium/drivers/vc4/vc4_qir_schedule.c: In function 'qir_schedule_instructions':
mesa/src/gallium/drivers/vc4/vc4_qir_schedule.c:578:16: warning: missing braces around initializer [-Wmissing-braces]
         struct schedule_state state = { 0 };
                ^

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agovc4: Correct typo setting 'handled_qinst_cond'
Rhys Kidd [Sat, 13 Feb 2016 18:21:15 +0000 (13:21 -0500)]
vc4: Correct typo setting 'handled_qinst_cond'

Variable was previously always set to true. Accordingly, the later
assert() served no active purpose.

Found with GCC warning and code inspection:

mesa/src/gallium/drivers/vc4/vc4_qpu_emit.c: In function'vc4_generate_code':
mesa/src/gallium/drivers/vc4/vc4_qpu_emit.c:315:22: warning: variable 'handled_qinst_cond' set but not used [-Wunused-but-set-variable]
                 bool handled_qinst_cond = true;
                      ^

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agovc4: Don't treat conditional MOVs as raw MOV.
Eric Anholt [Mon, 15 Feb 2016 22:43:38 +0000 (14:43 -0800)]
vc4: Don't treat conditional MOVs as raw MOV.

The two consumers want to know that the destination will be exactly the
source, which is not true if we might not set the destination.

Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agoglsl: warn in GL as well as ES when varying not written
Timothy Arceri [Mon, 15 Feb 2016 03:06:04 +0000 (14:06 +1100)]
glsl: warn in GL as well as ES when varying not written

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93339

8 years agodocs: update GLES 3.1 section for recent nvc0 additions
Ilia Mirkin [Mon, 15 Feb 2016 22:42:57 +0000 (17:42 -0500)]
docs: update GLES 3.1 section for recent nvc0 additions

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agomesa: need to check resource and set length even if bufSize is 0
Ilia Mirkin [Fri, 12 Feb 2016 17:17:18 +0000 (12:17 -0500)]
mesa: need to check resource and set length even if bufSize is 0

This fixes a number of dEQP tests, such as:

dEQP-GLES31.functional.program_interface_query.buffer_limited_query.resource_query

It was expecting the length to be set even in the bufSize == 0 case.
Also _mesa_get_program_resourceiv does some error checking on the
resource which should probably happen even in the bufSize == 0 case as
well although there's no dEQP test for that.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
8 years agoi965/bxt: Production thread counts
Ben Widawsky [Sat, 13 Feb 2016 05:53:34 +0000 (21:53 -0800)]
i965/bxt: Production thread counts

v2: Forgot to squash in the comment removal

Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
8 years agoegl_dri2: NULL check for xcb_dri2_get_buffers_reply()
Daniel Czarnowski [Thu, 11 Feb 2016 12:03:58 +0000 (14:03 +0200)]
egl_dri2: NULL check for xcb_dri2_get_buffers_reply()

Without the check, unsuccessful xcb_dri2_get_buffers_reply(...) causes
segmentation fault in dri2_get_buffers.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org
8 years agonv50,nvc0: Remove duplicate logic from nvc0_set_framebuffer_state()
Edward O'Callaghan [Sun, 14 Feb 2016 21:54:30 +0000 (08:54 +1100)]
nv50,nvc0: Remove duplicate logic from nvc0_set_framebuffer_state()

We already have this logic in the gallium/util functions so
lets reduce some entropy while here.

V.2:
  Apply change to nv50 also as suggested by Samuel Pitoiset.

Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
8 years agonv50: add missing PIPE_SHADER_CAP_SUPPORTED_IRS
Samuel Pitoiset [Sun, 14 Feb 2016 21:51:34 +0000 (22:51 +0100)]
nv50: add missing PIPE_SHADER_CAP_SUPPORTED_IRS

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoi965: Fix gl_DrawID in the vec4 backend.
Kenneth Graunke [Sat, 13 Feb 2016 05:24:58 +0000 (21:24 -0800)]
i965: Fix gl_DrawID in the vec4 backend.

brw_draw_upload.c uploads VertexID/InstanceID first, then DrawID.
So we need to assign the attribute mapping in that order as well.

Fixes the following Pigit tests with the vec4 backend:
- arb_shader_draw_parameters-drawid vertexid
- arb_shader_draw_parameters-drawid-indirect basevertex

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
8 years agomesa: move assertion in _mesa_cube_face_target()
Brian Paul [Sun, 14 Feb 2016 14:16:25 +0000 (07:16 -0700)]
mesa: move assertion in _mesa_cube_face_target()

Fixes piglit arb_texture_view-sampling-2d-array-as-2d-layer regression.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94134
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
8 years agoclover: fix build failure since bfd695e
Serge Martin [Sat, 13 Feb 2016 22:39:22 +0000 (23:39 +0100)]
clover: fix build failure since bfd695e

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
8 years agoglsl: Fix overflow of ImageAccess[] array.
Kenneth Graunke [Sun, 14 Feb 2016 00:58:35 +0000 (16:58 -0800)]
glsl: Fix overflow of ImageAccess[] array.

The ImageAccess array is statically sized to MAX_IMAGE_UNIFORMS:

   GLenum ImageAccess[MAX_IMAGE_UNIFORMS];

There was no bounds checking ensuring we don't overflow.  Passing in a
shader with too many uniforms would cause writes to extend into other
fields, such as sh->NumImages.

Later linker checks already handle reporting an error when there are too
many images, so just avoid corrupting structures here.

This rearranges the logic a bit to look more like the sampler case.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agomesa: default FixedSampleLocations to true when using a dummy image
Ilia Mirkin [Thu, 11 Feb 2016 20:30:35 +0000 (15:30 -0500)]
mesa: default FixedSampleLocations to true when using a dummy image

GL_ARB_texture_multisample and GLES 3.1 expect the initial value to be
GL_TRUE. This fixes

dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample_array.fixed_sample_locations_integer

and a few related tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
8 years agonir/types: Add more type constructor functions
Jason Ekstrand [Fri, 12 Feb 2016 06:04:14 +0000 (22:04 -0800)]
nir/types: Add more type constructor functions

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agonir/types: Add a few more glsl_type_is_ functions
Jason Ekstrand [Fri, 12 Feb 2016 06:03:48 +0000 (22:03 -0800)]
nir/types: Add a few more glsl_type_is_ functions

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agonir/types: Add helpers for working with sampler and image types
Jason Ekstrand [Fri, 12 Feb 2016 05:56:18 +0000 (21:56 -0800)]
nir/types: Add helpers for working with sampler and image types

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agonir/types: Add helpers for function types
Jason Ekstrand [Fri, 12 Feb 2016 05:54:55 +0000 (21:54 -0800)]
nir/types: Add helpers for function types

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoglsl/types: Expose glsl_struct_field and glsl_function_param to C
Jason Ekstrand [Wed, 10 Feb 2016 02:24:37 +0000 (18:24 -0800)]
glsl/types: Expose glsl_struct_field and glsl_function_param to C

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoglsl/types: Add a helper for getting image types
Jason Ekstrand [Wed, 10 Feb 2016 02:19:20 +0000 (18:19 -0800)]
glsl/types: Add a helper for getting image types

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoglsl/types: Add support for function types
Jason Ekstrand [Wed, 10 Feb 2016 02:17:06 +0000 (18:17 -0800)]
glsl/types: Add support for function types

SPIR-V has a concept of a function type that's used fairly heavily.  We
could special-case function types in SPIR-V -> NIR but it's easier if we
just add support to glsl_types.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoglsl/types: Add a bare "sampler" type
Jason Ekstrand [Tue, 9 Feb 2016 22:09:12 +0000 (14:09 -0800)]
glsl/types: Add a bare "sampler" type

This is to be used by SPIR-V for representing a sampler that isn't attached
to any particular image.  In SPIR-V, all of the interesting bits such as
dimensionality, sampled type, etc. come from the image, the bare "sampler"
type simply uses a sampled type of VOID and 0 values for the rest.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoglsl/types: Rename sampler_type to sampled_type
Jason Ekstrand [Tue, 9 Feb 2016 21:56:23 +0000 (13:56 -0800)]
glsl/types: Rename sampler_type to sampled_type

It's a bit more descriptive since it is the base type that you get when you
sample from it.  Also, the next commit adds a bare "sampler" type and we
need glsl_type::sampler_type available for a public static member.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>