mesa.git
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>
8 years agollvmpipe: Do not use barriers if not using threads.
Vinson Lee [Thu, 11 Feb 2016 00:42:19 +0000 (16:42 -0800)]
llvmpipe: Do not use barriers if not using threads.

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94088
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
8 years agoi965: Reupload push and pull constants when we get new shader image unit state.
Francisco Jerez [Fri, 12 Feb 2016 04:17:15 +0000 (20:17 -0800)]
i965: Reupload push and pull constants when we get new shader image unit state.

Fixes several of the
"dEQP-GLES31.functional.image_load_store*load_store*single_layer" dEQP
tests that use image formats we implement using untyped surface
messages.

Cc: mesa-stable@lists.freedesktop.org
Tested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965: fix MAX_COMPUTE_SHARED_SIZE constant value
Samuel Pitoiset [Sat, 13 Feb 2016 21:49:37 +0000 (22:49 +0100)]
i965: fix MAX_COMPUTE_SHARED_SIZE constant value

MAX_COMPUTE_SHARED_SIZE should be set to 32768. This fixes a regression
introduced in be27f77 (mesa: do not use a constant for
MAX_COMPUTE_SHARED_SIZE).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94139
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agonv50/ir: add missing SV_TID and SV_CTAID sysvals on GM107
Samuel Pitoiset [Sat, 13 Feb 2016 21:25:46 +0000 (22:25 +0100)]
nv50/ir: add missing SV_TID and SV_CTAID sysvals on GM107

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agonv50/ir: add MEMBAR emission for GM107
Samuel Pitoiset [Sat, 13 Feb 2016 21:06:15 +0000 (22:06 +0100)]
nv50/ir: add MEMBAR emission for GM107

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agodocs: document MESA_GLES_VERSION_OVERRIDE envvar
Alejandro Piñeiro [Sat, 13 Feb 2016 18:05:49 +0000 (19:05 +0100)]
docs: document MESA_GLES_VERSION_OVERRIDE envvar

v2: Removed reference to FC not being an allowed suffix (Brian Paul)

Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agost/mesa: fix pipe_grid_info initializer
Samuel Pitoiset [Sat, 13 Feb 2016 16:01:17 +0000 (17:01 +0100)]
st/mesa: fix pipe_grid_info initializer

Fixes MSVC build error which doesn't allow empty initializers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
8 years agotrace: add all compute related functions
Samuel Pitoiset [Sun, 24 Jan 2016 15:10:14 +0000 (16:10 +0100)]
trace: add all compute related functions

Changes from v3:
 - dump the TGSI compute program

Changes from v2:
 - remove use of MALLOC()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: implement limits for ARB_compute_shader
Samuel Pitoiset [Wed, 20 Jan 2016 17:12:39 +0000 (18:12 +0100)]
st/mesa: implement limits for ARB_compute_shader

According to the spec, this also increases the following minimum values:
 - MAX_COMBINED_TEXTURE_IMAGE_UNITS     96 (6*16), was 80
 - MAX_UNIFORM_BUFFER_BINDINGS          72 (6*12), was 60

ARB_compute_shader is not enabled by default because images support is
still not implemented yet. If you want to use it you need to set
MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader.

Changes from v2:
 - make use of the new PIPE_CAP_SHADER_SUPPORTED_IRS cap instead of
   enabling the extension when PIPE_CAP_COMPUTE is enabled.
 - query for PIPE_CAP_COMPUTE first
 - s/shader_supported_irs/compute_supported_irs/
 - disable ARB_compute_shader and add a comment which explains why

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add compute program dispatch callbacks
Samuel Pitoiset [Sun, 3 Jan 2016 14:41:48 +0000 (15:41 +0100)]
st/mesa: add compute program dispatch callbacks

This state tracker implements DispatchCompute() and DispatchComputeIndirect().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add state validation for compute shaders
Samuel Pitoiset [Tue, 5 Jan 2016 22:53:30 +0000 (23:53 +0100)]
st/mesa: add state validation for compute shaders

This binds atomics, constants, samplers, ssbos, textures and ubos.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add mappings for compute shader sysvals
Samuel Pitoiset [Mon, 11 Jan 2016 14:20:32 +0000 (15:20 +0100)]
st/mesa: add mappings for compute shader sysvals

LOCAL_INVOCATION_ID, WORK_GROUP_ID and NUM_WORK_GROUPS are respectively
mapped to THREAD_ID, BLOCK_ID and GRID_SIZE.

Changes from v2:
 - add assertions in st_translate_program()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/mesa: keep track of shared memory declarations
Samuel Pitoiset [Sat, 6 Feb 2016 21:19:46 +0000 (22:19 +0100)]
st/mesa: keep track of shared memory declarations

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/mesa: add intrinsics for shared variables
Samuel Pitoiset [Sat, 16 Jan 2016 22:15:42 +0000 (23:15 +0100)]
st/mesa: add intrinsics for shared variables

This adds GLSL intrinsics for load/store and atomic operations.

Changes from v2:
 - use PROGRAM_MEMORY instead of PROGRAM_BUFFER

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add conversion for compute shaders
Samuel Pitoiset [Wed, 3 Feb 2016 17:08:01 +0000 (18:08 +0100)]
st/mesa: add conversion for compute shaders

According to the spec, there are no predefined inputs nor any
fixed-function outputs.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/mesa: add compute shader states
Samuel Pitoiset [Thu, 7 Jan 2016 21:02:43 +0000 (22:02 +0100)]
st/mesa: add compute shader states

Changes from v2:
 - use as much common code as possible (eg. st_basic_variant)

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add a second pipeline for compute
Samuel Pitoiset [Tue, 5 Jan 2016 20:20:06 +0000 (21:20 +0100)]
st/mesa: add a second pipeline for compute

Compute needs a new and different validation path.

Changes from v2:
 - make use of unreachable() instead of assert() when the pipeline is
   invalid
 - move the st_pipeline enumeration to st_context.h instead of st_api.h

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agotgsi/ureg: add shared variables support for compute shaders
Samuel Pitoiset [Sat, 16 Jan 2016 22:08:55 +0000 (23:08 +0100)]
tgsi/ureg: add shared variables support for compute shaders

This introduces TGSI_FILE_MEMORY for shared, global and local memory.
Only shared memory is currently supported.

Changes from v2:
 - introduce TGSI_FILE_MEMORY

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agogallium: add PIPE_SHADER_CAP_SUPPORTED_IRS
Samuel Pitoiset [Wed, 3 Feb 2016 17:57:58 +0000 (18:57 +0100)]
gallium: add PIPE_SHADER_CAP_SUPPORTED_IRS

This cap indicates the supported representations of programs. It should
be a mask of pipe_shader_ir bits. It will allow to enable
ARB_compute_shader if the underlying driver supports TGSI.

Changes from v2:
 - improve description of PIPE_SHADER_CAP_SUPPORTED_IRS

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agogallium: add indirect compute parameters to pipe_grid_info
Samuel Pitoiset [Mon, 18 Jan 2016 15:19:32 +0000 (16:19 +0100)]
gallium: add indirect compute parameters to pipe_grid_info

Like indirect draw, we need to store a resource and an offset that
needs to be 4 byte aligned. When indirect is used, the size of the
grid (in blocks) is stored with three 32-bit integers.

Changes from v2:
 - s/most values/block sizes/

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agogallium: add a new interface for pipe_context::launch_grid()
Samuel Pitoiset [Tue, 12 Jan 2016 17:00:00 +0000 (18:00 +0100)]
gallium: add a new interface for pipe_context::launch_grid()

This introduces pipe_grid_info which contains all information to
describe a launch_grid call. This will be used to implement indirect
compute in the same fashion as indirect draw.

Changes from v2:
 - correctly initialize pipe_grid_info for nv50/nvc0

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agogallium/cso: add support for compute shaders
Samuel Pitoiset [Mon, 4 Jan 2016 22:56:08 +0000 (23:56 +0100)]
gallium/cso: add support for compute shaders

Changes from v2:
 - removed cso_{save,restore}_compute_shader() functions and the
   compute_shader_saved variable because disabling compute shaders for
   meta ops is not currently needed

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agomesa: add PROGRAM_MEMORY
Samuel Pitoiset [Sat, 6 Feb 2016 21:16:48 +0000 (22:16 +0100)]
mesa: add PROGRAM_MEMORY

This will be used for shared, global and local memory areas.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agomesa: store shared size in gl_compute_program
Samuel Pitoiset [Wed, 3 Feb 2016 17:08:46 +0000 (18:08 +0100)]
mesa: store shared size in gl_compute_program

The size of shared variables needs to be stored in gl_compute_program
in order to set up pipe_compute_state::req_local_mem.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agomesa: do not use a constant for MAX_COMPUTE_SHARED_SIZE
Samuel Pitoiset [Sun, 17 Jan 2016 16:33:59 +0000 (17:33 +0100)]
mesa: do not use a constant for MAX_COMPUTE_SHARED_SIZE

This will allow to query the underlying drivers for the maximum
total storage size of all variables declared as <shared> with
PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agomesa: make compute maximums reflect driver-provided values
Ilia Mirkin [Wed, 20 Jan 2016 08:06:53 +0000 (03:06 -0500)]
mesa: make compute maximums reflect driver-provided values

Looks like the various max's were never plumbed through.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agoi965: Add means for limiting color resolves
Topi Pohjolainen [Wed, 9 Dec 2015 10:56:06 +0000 (12:56 +0200)]
i965: Add means for limiting color resolves

Until now there has been only one type of color buffer that needs
to resolved - namely single sampled fast clear. As even the
sampler engine in GPU doesn't understand the associated meta data,
the color values need to be always resolved prior to reading them.

From SKL onwards there is new scheme supported called the lossless
compression of single sampled color buffers. This is something that
is understood by the sampling engine and therefore resolving of
these types of buffers is not necessary before sampling.
This patch adds means to make the distinction when considering if
resolve is needed.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Refactor resolving of auxiliary mode
Topi Pohjolainen [Mon, 7 Dec 2015 19:48:27 +0000 (21:48 +0200)]
i965: Refactor resolving of auxiliary mode

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Don't try to create aux buffer for non-msrt aux-buffer
Topi Pohjolainen [Mon, 7 Dec 2015 09:56:05 +0000 (11:56 +0200)]
i965: Don't try to create aux buffer for non-msrt aux-buffer

In addition to simply calling miptree_create() the higher level
call intel_miptree_create() also considers if the buffer should
be associated with an auxiliary buffer based on the given format.

Here we are allocating an auxiliary buffer which in turn has such
format that would mislead intel_miptree_create_layout() later on
to try to associate the auxiliary buffer with an auxiliary buffer.
To prevent this the actual buffer creation logic was split out
into its own function. Lets invoke that instead.

v2 (Ben): Do not signal msaa layout with explicit argument but
          using layout_flags instead.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agoi965: Rename optimizer debug 00 filename
Ben Widawsky [Thu, 11 Feb 2016 18:55:48 +0000 (10:55 -0800)]
i965: Rename optimizer debug 00 filename

This allows ls, and scripts to get the file names in the correct order of
optimization.

Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agoi965: Make brw_clear_cache NULL out stale program pointers.
Kenneth Graunke [Fri, 12 Feb 2016 03:22:32 +0000 (19:22 -0800)]
i965: Make brw_clear_cache NULL out stale program pointers.

The L3 partitioning code tries to look at all programs - both render
programs (VS/TCS/TES/GS/FS) and compute (CS).

After calling brw_clear_cache, all prog_data pointers are invalid and
point to freed data.  The intention was that flagging the dirty bits for
all programs would cause the next draw call to re-run the atoms for each
program stage, uploading new programs and installing new, valid pointers.

However, this doesn't quite work in our new multi-pipeline world.  When
drawing or dispatching a compute workload, we only consider the programs
for the appropriate pipeline: drawing sets up VS/TCS/TES/GS/FS, but not
CS, and vice versa.  This leaves pointers dangling a bit longer than
intended.

The L3 configuration code tries to inspect the prog_data for all shader
stages, so that we avoid having to reconfigure it when swapping back and
forth between render and compute workloads.  So we can't have dangling
pointers.

The fix is simple: have brw_clear_cache NULL out stale prog_data
pointers, making it safe to inspect.  The next L3 configuration pass
will see either the render shaders or compute shader as missing for
one go around, but will pick them up when both pipelines have run.

In other words, we'll simply reconfigure L3 twice, which is safe,
if a tiny bit wasteful - but then again, we just threw every compiled
shader we had on the floor and started recompiling the from scratch,
which is massively more wasteful, so it's not much of a concern.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93790
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jordan Justen <jljusten@gmail.com>
8 years agomesa: avoid segfault in GetProgramPipelineInfoLog when no length
Ilia Mirkin [Fri, 12 Feb 2016 19:23:30 +0000 (14:23 -0500)]
mesa: avoid segfault in GetProgramPipelineInfoLog when no length

If there is no pipe info log, we would unconditionally deref length,
which was only optionally there. _mesa_copy_string handles the source
being null, as well as the length, so may as well just always call it.

Fixes a segfault in

dEQP-GLES31.functional.state_query.program_pipeline.info_log

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa: reset offset/size to 0 when removing atomic binding
Ilia Mirkin [Fri, 12 Feb 2016 18:49:08 +0000 (13:49 -0500)]
mesa: reset offset/size to 0 when removing atomic binding

Similar to commit dd9d2963d6 (mesa: AtomicBufferBindings should be
initialized to zero.), we should reset these to zero when unbinding.
This fixes a number of dEQP failures due to cross-test pollution. The
tests properly unbound everything, but when querying the values again,
the expectation was that they would be 0.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
8 years agomesa: recognize enums GL_COLOR_ATTACHMENT8-31 as valid
Ilia Mirkin [Fri, 12 Feb 2016 18:12:09 +0000 (13:12 -0500)]
mesa: recognize enums GL_COLOR_ATTACHMENT8-31 as valid

Similar as for AUX1-3, these enums aren't invalid (i.e. -1) but also not
supported by mesa. Returning BUFFER_COUNT causes the proper error to be
returned by ReadBuffer and other functions. This resolves some failures
in

dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_buffer

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa/clear: update ClearBufferfv error handling for GL 4.5 spec
Ilia Mirkin [Fri, 12 Feb 2016 17:59:25 +0000 (12:59 -0500)]
mesa/clear: update ClearBufferfv error handling for GL 4.5 spec

This fixes

dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.clear_bufferfv

and brings the logic up to spec with GL 4.5

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa/clear: update ClearBufferuiv error handling for GL 4.5 spec
Ilia Mirkin [Fri, 12 Feb 2016 17:56:10 +0000 (12:56 -0500)]
mesa/clear: update ClearBufferuiv error handling for GL 4.5 spec

This fixes

dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.clear_bufferuiv

and brings the logic up to spec with GL 4.5

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa/clear: simplify ClearBufferiv error handling
Ilia Mirkin [Fri, 12 Feb 2016 17:54:42 +0000 (12:54 -0500)]
mesa/clear: simplify ClearBufferiv error handling

Might as well handle everything in the same error call.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa/clear: remove dead code handling ClearBufferiv(GL_DEPTH)
Ilia Mirkin [Fri, 12 Feb 2016 17:50:50 +0000 (12:50 -0500)]
mesa/clear: remove dead code handling ClearBufferiv(GL_DEPTH)

There's a hunk above which sets INVALID_ENUM for GL_DEPTH
unconditionally.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Brian Paul <brianp@vmware.com>
8 years agomesa: allow DEPTH_STENCIL_TEXTURE_MODE queries in GLES 3.1 contexts
Ilia Mirkin [Thu, 11 Feb 2016 20:21:02 +0000 (15:21 -0500)]
mesa: allow DEPTH_STENCIL_TEXTURE_MODE queries in GLES 3.1 contexts

This fixes

dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.depth_stencil_mode_integer

and a few related tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
8 years agoi915: include teximage.h
Kenneth Graunke [Fri, 12 Feb 2016 23:20:29 +0000 (15:20 -0800)]
i915: include teximage.h

To get _mesa_num_tex_faces() prototype.

8 years agoi965: include teximage.h
Brian Paul [Fri, 12 Feb 2016 22:42:27 +0000 (15:42 -0700)]
i965: include teximage.h

To get _mesa_num_tex_faces() prototype.

8 years agost/nine: Implement Managed vertex/index buffers
Axel Davy [Sat, 6 Feb 2016 12:39:58 +0000 (13:39 +0100)]
st/nine: Implement Managed vertex/index buffers

We were implementing those the same way than
the default pool, which is sub-optimal.

The buffer is supposed to return pointer to
a ram copy when user locks, and automatically
update the vram copy when needed.

v2: Rename NineBuffer9_Validate to NineBuffer9_Upload
Rename validate_buffers to update_managed_buffers
Initialize NineBuffer9 managed fields after the resource
is allocated. In case of allocation failure, when the dtor
is executed, This->base.pool is then rightfully set.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Align stack for entry points
Axel Davy [Sun, 7 Feb 2016 11:29:45 +0000 (12:29 +0100)]
st/nine: Align stack for entry points

For 32 bits, incoming stack is 4-byte aligned.
We need to realign the stack to 16-byte at some point,
or there are issues later (crash with SSE, llvm, etc).

This patch chooses to align the stack at API entry points.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Drop path for ureg_NRM and ureg_CLAMP
Axel Davy [Sat, 6 Feb 2016 19:03:51 +0000 (20:03 +0100)]
st/nine: Drop path for ureg_NRM and ureg_CLAMP

using MIN/MAX is fine instead of CLAMP.
NRM doesn't exist anymore.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Remove usage of SQRT in ff code
Axel Davy [Sat, 6 Feb 2016 18:55:54 +0000 (19:55 +0100)]
st/nine: Remove usage of SQRT in ff code

SQRT is not supported everywhere, so replace
it by RSQ + MUL and handle case <= 0.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix stateblocks crashes with lights
Axel Davy [Sat, 6 Feb 2016 18:29:10 +0000 (19:29 +0100)]
st/nine: Fix stateblocks crashes with lights

We had several issues of crashes with it.
This should fix it.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: SCRATCH does support all formats
Axel Davy [Tue, 26 Jan 2016 17:27:39 +0000 (18:27 +0100)]
st/nine: SCRATCH does support all formats

Add new argument to d3d9_to_pipe_format_checked to
be able to bypass format support checks. This argument
is set to TRUE when the requested Pool is SCRATCH.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Add format checks to create_zs_or_rt_surface
Axel Davy [Tue, 26 Jan 2016 17:21:26 +0000 (18:21 +0100)]
st/nine: Add format checks to create_zs_or_rt_surface

Returns INVALIDCALL when trying to create a surface
of unsupported format.

In practice, apps are supposed to check for format
support before trying to create a render target
of that format. However some bad behaving apps
could just try to create the surface and deduce if
it failed that it wasn't supported.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Support ATI1/ATI2 for CubeTexture
Axel Davy [Tue, 26 Jan 2016 17:14:02 +0000 (18:14 +0100)]
st/nine: Support ATI1/ATI2 for CubeTexture

Texture and CubeTexture use common code,
and thus ATI1/ATI2 is already implemented
for CubeTexture.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Clean pSharedHandle Texture ctors checks
Axel Davy [Tue, 26 Jan 2016 17:00:30 +0000 (18:00 +0100)]
st/nine: Clean pSharedHandle Texture ctors checks

Clarify the behaviour and clean the checks

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Move texture creation checks
Axel Davy [Tue, 26 Jan 2016 16:32:22 +0000 (17:32 +0100)]
st/nine: Move texture creation checks

We were having checks at both Create*Texture functions
and in ctors.

Move all Create*Texture checks to ctors.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Clean useless code in texture9.c
Axel Davy [Tue, 26 Jan 2016 16:13:00 +0000 (17:13 +0100)]
st/nine: Clean useless code in texture9.c

This->base.base.resource is worth NULL
for SYSTEMMEM textures.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Do not set SHARED flag for shared textures.
Axel Davy [Tue, 26 Jan 2016 16:04:21 +0000 (17:04 +0100)]
st/nine: Do not set SHARED flag for shared textures.

We do not support shared textures, thus no need to set
the shared flag.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agost/nine: Do not set resource usage for SYSTEMMEM
Axel Davy [Tue, 26 Jan 2016 16:02:53 +0000 (17:02 +0100)]
st/nine: Do not set resource usage for SYSTEMMEM

We do not create a resource for SYSTEMMEM textures,
thus we do not need to set resource usage.

The only exception is vertexbuffer SYSTEMMEM, since
we do use a pipe resource for them.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
8 years agomesa: move _mesa_num_tex_faces() to teximage.h
Brian Paul [Thu, 11 Feb 2016 15:16:30 +0000 (08:16 -0700)]
mesa: move _mesa_num_tex_faces() to teximage.h

So it's near the other cube map helper functions.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
8 years agomesa: simplify some code with new _mesa_cube_face_target() function
Brian Paul [Thu, 11 Feb 2016 15:14:27 +0000 (08:14 -0700)]
mesa: simplify some code with new _mesa_cube_face_target() function

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
8 years agomesa: add _mesa_cube_face_target() helper
Brian Paul [Thu, 11 Feb 2016 14:54:42 +0000 (07:54 -0700)]
mesa: add _mesa_cube_face_target() helper

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
8 years agomesa: make _mesa_tex_target_to_face() an inline function
Brian Paul [Thu, 11 Feb 2016 14:54:27 +0000 (07:54 -0700)]
mesa: make _mesa_tex_target_to_face() an inline function

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>