platform/upstream/mesa.git
7 years agoradv: add debug flags for syncing shaders after every draw call
Samuel Pitoiset [Mon, 11 Sep 2017 13:00:41 +0000 (15:00 +0200)]
radv: add debug flags for syncing shaders after every draw call

To improve GPU hangs detection when shaders are stucked.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: add radv_cmd_buffer_after_draw() helper function
Samuel Pitoiset [Mon, 11 Sep 2017 12:50:12 +0000 (14:50 +0200)]
radv: add radv_cmd_buffer_after_draw() helper function

To share common code after every draw/compute calls.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: save the bound pipeline pointers into the trace BO
Samuel Pitoiset [Tue, 5 Sep 2017 19:02:14 +0000 (21:02 +0200)]
radv: save the bound pipeline pointers into the trace BO

When a GPU hang is detected in radv_gpu_hang_occured() we know
which command buffer is faulty but the bound pipelines might
have been updated during the execution.

The pointers to the radv_pipeline objects are emitted just
after the second trace ID, that way it would be easy to dump
the active shaders at the moment of the hang.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: add a comment that describes the trace BO layout
Samuel Pitoiset [Mon, 11 Sep 2017 13:12:25 +0000 (15:12 +0200)]
radv: add a comment that describes the trace BO layout

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: initialize the trace BO to 0
Samuel Pitoiset [Wed, 13 Sep 2017 09:13:03 +0000 (11:13 +0200)]
radv: initialize the trace BO to 0

To avoid random initial values.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
7 years agoswr: use ARRAY_SIZE macro
Eric Engestrom [Wed, 6 Sep 2017 10:21:32 +0000 (11:21 +0100)]
swr: use ARRAY_SIZE macro

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agomesa: Deal with size differences between GLuint and GLhandleARB in GetAttachedObjectsARB
Jeremy Huddleston Sequoia [Sun, 8 May 2016 07:47:10 +0000 (00:47 -0700)]
mesa: Deal with size differences between GLuint and GLhandleARB in GetAttachedObjectsARB

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agogallium/{r600, radeonsi}: Fix segfault with color format (v2)
Denis Pauk [Tue, 12 Sep 2017 20:38:45 +0000 (23:38 +0300)]
gallium/{r600, radeonsi}: Fix segfault with color format (v2)

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

v2: Patch cleanup proposed by Nicolai Hähnle.
    * deleted changes in si_translate_texformat.

Cc: Nicolai Hähnle <nhaehnle@gmail.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
7 years agoi965: Add an INTEL_DEBUG=submit option for printing batch statistics.
Kenneth Graunke [Tue, 5 Sep 2017 22:46:30 +0000 (15:46 -0700)]
i965: Add an INTEL_DEBUG=submit option for printing batch statistics.

When a batch is submitted, INTEL_DEBUG=bat prints a message indicating
which part of the code triggered the flush, and some statistics about
the batch/state buffer utilization.

It also decodes the batchbuffer in debug builds...which is so much
output that it drowns out the utilization messages, if that's all you
care about.

INTEL_DEBUG=submit now just does the utilization messages.
INTEL_DEBUG=bat continues to do both (as the message is a good indicator
that we're starting decode of a new batch).

v2: Rename from "flush" to "submit" (suggested by Chris) because we
    might want "flush" for PIPE_CONTROL debugging someday.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agoradv/nir: call opt_remove_phis after trivial continues.
Dave Airlie [Wed, 13 Sep 2017 02:49:31 +0000 (03:49 +0100)]
radv/nir: call opt_remove_phis after trivial continues.

With the shaders in the ssao demo, the nir_opt_if wasn't
working properly without this, after this the if gets optimised
so that loop unrolling gets called.

(loop unrolling fails due to instruction count, but at least
it gets to do that.)

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoutil/build_id: Include <dlfcn.h>
Chad Versace [Wed, 13 Sep 2017 18:51:04 +0000 (11:51 -0700)]
util/build_id: Include <dlfcn.h>

Fix the build for Android Nougat.

The dladdr(3) manpage says that <dlfcn.h> is required. On Linux, the
build succeeded without it because build_id.c includes <link.h> which
includes <dlfcn.h>. On Android, we must include <dlfcn.h> directly.

Fixes: 5c98d382 "util: Query build-id by symbol address, not library name"
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agoutil: Query build-id by symbol address, not library name
Chad Versace [Tue, 12 Sep 2017 22:52:03 +0000 (15:52 -0700)]
util: Query build-id by symbol address, not library name

This patch renames build_id_find_nhdr() to
build_id_find_nhdr_for_addr(), and changes it to never examine the
library name.

Tested on Fedora by confirming that build_id_get_data() returns the same
build-id as the file(1) tool. For BSD, I confirmed that the API used
(dladdr() and struct Dl_info) is documented in FreeBSD's manpages.

This solves two problems:

    - We can now the query the build-id without knowing the installed library's
      filename.

      This matters because Android requires specific filenames for HAL
      modules, such as "/vendor/lib/hw/vulkan.${board}.so". The HAL
      filenames do not follow the Unix convention of "libfoo.so".  In
      other words, the same query code will now work on Linux and Android.

    - Querying the build-id now works correctly when the process
      contains multiple shared objects with the same basename.
      (Admittedly, this is a highly unlikely scenario).

Cc: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agost/glsl_to_tgsi: remove unused code in temprename
Nicolai Hähnle [Wed, 6 Sep 2017 09:49:12 +0000 (11:49 +0200)]
st/glsl_to_tgsi: remove unused code in temprename

Reviewed-By: Gert Wollny <gw.fossdev@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
7 years agost/glsl_to_tgsi: be precise about merging scopes
Nicolai Hähnle [Wed, 6 Sep 2017 09:43:06 +0000 (11:43 +0200)]
st/glsl_to_tgsi: be precise about merging scopes

enclosing_scope already contains enclosing_scope_first_read.
What we really want to check here -- not for correctness, but
for speed -- is whether last_read_scope already contains
enclosing_scope.

Reviewed-By: Gert Wollny <gw.fossdev@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
7 years agoac/surface: match Z and stencil tile config
Nicolai Hähnle [Tue, 5 Sep 2017 14:16:29 +0000 (16:16 +0200)]
ac/surface: match Z and stencil tile config

Fixes various piglit tests on Stoney, see the comment.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoac/surface: sanity-check that we got a TC-compatible HTILE if requested
Nicolai Hähnle [Thu, 7 Sep 2017 11:20:25 +0000 (13:20 +0200)]
ac/surface: sanity-check that we got a TC-compatible HTILE if requested

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoac/addrlib: enable assertions in debug builds
Nicolai Hähnle [Thu, 7 Sep 2017 10:16:14 +0000 (12:16 +0200)]
ac/addrlib: enable assertions in debug builds

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoac/addrlib: relax an assertion
Nicolai Hähnle [Mon, 11 Sep 2017 13:20:41 +0000 (15:20 +0200)]
ac/addrlib: relax an assertion

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoac/addrlib: relax an assertion
Nicolai Hähnle [Thu, 7 Sep 2017 10:16:36 +0000 (12:16 +0200)]
ac/addrlib: relax an assertion

This assertion is triggered on Stoney in Piglit
./bin/framebuffer-blit-levels {draw,read} stencil -auto -fbo
and similar tests. It should be harmless -- just relax it until
we can get internal clarification.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: hard-code pixel center for interpolateAtSample without multisample buffers
Nicolai Hähnle [Sun, 10 Sep 2017 17:46:31 +0000 (19:46 +0200)]
radeonsi: hard-code pixel center for interpolateAtSample without multisample buffers

The GLSL rules for interpolateAtSample are unfortunate:

   "Returns the value of the input interpolant variable at
    the location of sample number sample. If
    multisample buffers are not available, the input
    variable will be evaluated at the center of the pixel.
    If sample sample does not exist, the position used to
    interpolate the input variable is undefined."

This fix will fallback to monolithic shader compilation when
interpolateAtSample is used without multisampling.

One alternative would be to always upload 16 sample positions,
filling the buffer up with repetition when the actual number of
samples is less, and then ANDing the sample ID with 0xf. However,
that punishes all well-behaving users of interpolateAtSample,
when in reality, only conformance tests should be affected by
the issue.

Fixes
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.non_multisample_buffer.*

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: apply a mask to gl_SampleMaskIn in the PS prolog
Nicolai HÃ\83¤hnle [Sun, 10 Sep 2017 17:19:40 +0000 (19:19 +0200)]
radeonsi: apply a mask to gl_SampleMaskIn in the PS prolog

gl_SampleMaskIn is supposed to contain set bits only for the samples that
are covered by the current fragment shader invocation, but the VGPR
initialization hardware loads the set of all bits that are covered at the
current pixel.

Fixes various tests in
dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.*

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: remove SET_PREDICATION workaround on newer firmware
Nicolai Hähnle [Fri, 25 Aug 2017 23:11:14 +0000 (01:11 +0200)]
radeonsi: remove SET_PREDICATION workaround on newer firmware

We need to keep the workaround for older firmware, though.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoamd/common: get ME/PFP/CE firmware feature versions as well
Nicolai Hähnle [Fri, 25 Aug 2017 22:33:14 +0000 (00:33 +0200)]
amd/common: get ME/PFP/CE firmware feature versions as well

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: rename variable to clarify its meaning
Nicolai Hähnle [Fri, 8 Sep 2017 16:51:16 +0000 (18:51 +0200)]
radeonsi: rename variable to clarify its meaning

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: make si_init_shader_selector_async static
Nicolai Hähnle [Sat, 26 Aug 2017 22:43:13 +0000 (00:43 +0200)]
radeonsi: make si_init_shader_selector_async static

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: fix segfault in descriptor dumping
Nicolai Hähnle [Sat, 9 Sep 2017 15:36:07 +0000 (17:36 +0200)]
radeonsi: fix segfault in descriptor dumping

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoddebug: write out final driver log messages with GALLIUM_DDEBUG=always
Nicolai Hähnle [Wed, 6 Sep 2017 08:11:40 +0000 (10:11 +0200)]
ddebug: write out final driver log messages with GALLIUM_DDEBUG=always

If the last operation happens to be a non-draw, such as a
transfer_map that triggers a decompress blit, there may be
interesting messages left in the driver log.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoswr/rast: Fetch compile state changes
Tim Rowley [Thu, 7 Sep 2017 23:53:03 +0000 (18:53 -0500)]
swr/rast: Fetch compile state changes

Add InstanceStrideEnable field and rename InstanceDataStepRate to
InstanceAdvancementState in INPUT_ELEMENT_DESC structure.

Add stubs for handling InstanceStrideEnable in FetchJit::JitLoadVertices()
and FetchJit::JitGatherVertices() and assert if they are triggered.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: adjust linux cpu topology identification code
Tim Rowley [Wed, 6 Sep 2017 19:59:33 +0000 (14:59 -0500)]
swr/rast: adjust linux cpu topology identification code

Make more robust to handle strange strange configurations like a vmware
exported 4-way numa X 1-core configuration.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Missed conversion to SIMD_T
Tim Rowley [Wed, 30 Aug 2017 16:02:16 +0000 (11:02 -0500)]
swr/rast: Missed conversion to SIMD_T

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: whitespace changes
Tim Rowley [Thu, 7 Sep 2017 20:18:35 +0000 (15:18 -0500)]
swr/rast: whitespace changes

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: add graph write to jit debug putput
Tim Rowley [Thu, 7 Sep 2017 20:18:08 +0000 (15:18 -0500)]
swr/rast: add graph write to jit debug putput

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Migrate memory pointers to gfxptr_t type
Tim Rowley [Thu, 7 Sep 2017 20:17:23 +0000 (15:17 -0500)]
swr/rast: Migrate memory pointers to gfxptr_t type

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Remove hardcoded clip/cull slot from clipper
Tim Rowley [Tue, 22 Aug 2017 22:46:14 +0000 (17:46 -0500)]
swr/rast: Remove hardcoded clip/cull slot from clipper

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Start to remove hardcoded clipcull_dist vertex attrib slot
Tim Rowley [Tue, 22 Aug 2017 21:42:57 +0000 (16:42 -0500)]
swr/rast: Start to remove hardcoded clipcull_dist vertex attrib slot

Add new field in SWR_BACKEND_STATE::vertexClipCullOffset to specify the
start of the clip/cull section of the vertex header.  Removed use of
hardcoded slot from binner.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Move clip/cull enables in API
Tim Rowley [Mon, 21 Aug 2017 22:11:34 +0000 (17:11 -0500)]
swr/rast: Move clip/cull enables in API

Moved from from SWR_RASTSTATE to SWR_BACKEND_STATE.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: Add new API SwrStallBE
Tim Rowley [Fri, 18 Aug 2017 17:34:48 +0000 (12:34 -0500)]
swr/rast: Add new API SwrStallBE

SwrStallBE stalls the backend threads until all work submitted before
the stall has finished.  The frontend threads can continue to make
forward progress.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoglsl: compile unused function out
Eric Engestrom [Tue, 12 Sep 2017 14:58:28 +0000 (15:58 +0100)]
glsl: compile unused function out

The function is only called from one place, which is hidden behind
the same `#ifdef DEBUG`.

Fixes: ca73c3358c91434e68ab "glsl: Mark functions static"
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agoradv: compile out unused code
Eric Engestrom [Thu, 24 Aug 2017 15:22:42 +0000 (16:22 +0100)]
radv: compile out unused code

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoradv: clear push_constant_stages when resetting a command buffer
Samuel Pitoiset [Tue, 12 Sep 2017 17:08:47 +0000 (19:08 +0200)]
radv: clear push_constant_stages when resetting a command buffer

Per the spec:

   "Resetting a command buffer is an operation that discards any
   previously recorded commands and puts a command buffer in the
   initial state."

As far I'm concerned, that flag can be changed by calling
VkCmdPushConstants() (or any other functions which update it),
so it should be cleared as well.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: add more radv_emit_XXX() helpers for the dynamic state
Samuel Pitoiset [Tue, 12 Sep 2017 17:08:46 +0000 (19:08 +0200)]
radv: add more radv_emit_XXX() helpers for the dynamic state

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv: remove useless 'cmd_buffer' param from radv_buffer_view_init()
Samuel Pitoiset [Tue, 12 Sep 2017 17:08:45 +0000 (19:08 +0200)]
radv: remove useless 'cmd_buffer' param from radv_buffer_view_init()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
7 years agoradv/gfx9: fix image resource handling.
Dave Airlie [Tue, 15 Aug 2017 05:35:52 +0000 (15:35 +1000)]
radv/gfx9: fix image resource handling.

GFX9 changes how images are layed out, so this needs updating.

Fixes: dEQP-VK.query_pool.statistics_query.*

Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/ac: bump params array for image atomic comp swap
Dave Airlie [Wed, 13 Sep 2017 05:15:11 +0000 (22:15 -0700)]
radv/ac: bump params array for image atomic comp swap

For the comp_swap case this was overflowing and crashing
sometimes.

Fixes:
dEQP-VK.image.atomic_operations.compare_exchange.*

Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/gfx9: set mip0-depth correctly for 2d arrays/3d images
Dave Airlie [Mon, 21 Aug 2017 20:02:03 +0000 (21:02 +0100)]
radv/gfx9: set mip0-depth correctly for 2d arrays/3d images

This field covers the whole resource.

Fixes:
dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.3d.format.*
dEQP-VK.texture.filtering.3d.combinations.*

Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: handle GFX9 1D textures
Dave Airlie [Wed, 16 Aug 2017 05:20:29 +0000 (06:20 +0100)]
radv: handle GFX9 1D textures

As GFX9 can't handle 1D depth textures, radeonsi and
apparantly pro just update all 1D textures to 2D,
and work around it.

This ports the workarounds from radeonsi.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: don't use iview for meta image width/height.
Dave Airlie [Tue, 22 Aug 2017 03:35:53 +0000 (13:35 +1000)]
radv: don't use iview for meta image width/height.

Work out the width/height from the level manually, as on GFX9
we won't minify the iview width/height.

This fixes:
dEQP-VK.api.image_clearing.core.clear_color_image* on gfx9

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: "17.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agointel/eu/validate: Look up types on demand in execution_type()
Jason Ekstrand [Thu, 31 Aug 2017 22:41:43 +0000 (15:41 -0700)]
intel/eu/validate: Look up types on demand in execution_type()

We are looking up the execution type prior to checking how many sources
we have.  This leads to looking for a type for src1 on MOV instructions
which is bogus.  On BDW+, the src1 register type overlaps with the
64-bit immediate and causes us problems.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
7 years agoRevert "winsys/amdgpu: disable local BOs on Raven"
Marek Olšák [Fri, 8 Sep 2017 15:34:59 +0000 (17:34 +0200)]
Revert "winsys/amdgpu: disable local BOs on Raven"

This reverts commit 1cda9a2fee05effd9c64bd773bc6005281593662.

It works now.

7 years agoradv: Don't allocate CMASK for linear images.
Bas Nieuwenhuizen [Sun, 27 Aug 2017 22:18:44 +0000 (00:18 +0200)]
radv: Don't allocate CMASK for linear images.

We can't use it anyway in fast clears, and on GFX9 it seems to
actually hange the card if we specify it.

Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver"

7 years agoradv: Disable multilayer & multilevel DCC.
Bas Nieuwenhuizen [Tue, 29 Aug 2017 22:58:03 +0000 (00:58 +0200)]
radv: Disable multilayer & multilevel DCC.

The current DCC init routine doesn't account for initializing a
single layer or level. Multilayer seems hard for small textures on
pre-GFX9 as tre metadata for the layers can be interleaved. For
GFX9 multilevel textures are a problem for similar reasons.

So just disable this for now, until we handle the texture modes
correctly.

Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver"

7 years agodocs: Document shader capturing environment variables.
Kenneth Graunke [Mon, 11 Sep 2017 22:47:55 +0000 (15:47 -0700)]
docs: Document shader capturing environment variables.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
7 years agodocs/egl: remove reference to EGL_DRIVERS_PATH
Eric Engestrom [Tue, 12 Sep 2017 14:35:54 +0000 (15:35 +0100)]
docs/egl: remove reference to EGL_DRIVERS_PATH

Support for external egl drivers was dropped a few years ago.

Fixes: 209360bbb91bb10346eb "egl/main: drop support for external egl drivers"
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoutil/disk_cache: turn MESA_GLSL_CACHE_DISABLE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 09:49:45 +0000 (10:49 +0100)]
util/disk_cache: turn MESA_GLSL_CACHE_DISABLE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the docs and tests, use `DISABLE=true` instead of `DISABLE=1` as it's
clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_NO_DRAWARRAYS into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:57:26 +0000 (11:57 +0100)]
glx: turn LIBGL_NO_DRAWARRAYS into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the docs, use `NO_DRAWARRAYS=true` instead of `NO_DRAWARRAYS=1` as it's
clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_PROFILE_CORE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:56:38 +0000 (11:56 +0100)]
glx: turn LIBGL_PROFILE_CORE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_DUMP_VISUALID into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:56:02 +0000 (11:56 +0100)]
glx: turn LIBGL_DUMP_VISUALID into a boolean

Instead of setting based on set/unset, allow users to use boolean values.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoegl+glx: turn LIBGL_DRI3_DISABLE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:55:14 +0000 (11:55 +0100)]
egl+glx: turn LIBGL_DRI3_DISABLE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the docs, use `DISABLE=true` instead of `DISABLE=1` as it's clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_ALWAYS_INDIRECT into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:53:47 +0000 (11:53 +0100)]
glx: turn LIBGL_ALWAYS_INDIRECT into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the docs, use `ALWAYS=true` instead of `ALWAYS=1` as it's clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_ALLOW_SOFTWARE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:46:25 +0000 (11:46 +0100)]
glx: turn LIBGL_ALLOW_SOFTWARE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the help string, use `ALLOW=true` instead of `ALLOW=1` as it's clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoegl+glx: turn LIBGL_ALWAYS_SOFTWARE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:52:01 +0000 (11:52 +0100)]
egl+glx: turn LIBGL_ALWAYS_SOFTWARE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.
In the docs, use `ALWAYS=true` instead of `ALWAYS=1` as it's clearer IMO.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoglx: turn LIBGL_DIAGNOSTIC into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:45:23 +0000 (11:45 +0100)]
glx: turn LIBGL_DIAGNOSTIC into a boolean

Instead of setting based on set/unset, allow users to use boolean values.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agogbm: turn GBM_ALWAYS_SOFTWARE into a boolean
Eric Engestrom [Fri, 8 Sep 2017 10:39:43 +0000 (11:39 +0100)]
gbm: turn GBM_ALWAYS_SOFTWARE into a boolean

Instead of setting based on set/unset, allow users to use boolean values.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoanv: fix build issues on release build
Tapani Pälli [Tue, 12 Sep 2017 10:09:37 +0000 (13:09 +0300)]
anv: fix build issues on release build

Fixes: d083bc1c4b ("anv: wire up vk_errorf macro to do debug reporting")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
7 years agoglsl: Disallow unsized array of atomic_uint
Iago Toral Quiroga [Mon, 11 Sep 2017 12:19:41 +0000 (14:19 +0200)]
glsl: Disallow unsized array of atomic_uint

This was a bugfix to the spec addressed in OpenGL 4.5 (revision
7 of the spec) and there is a CTS test to check this.

Fixes:
KHR-GL45.shader_atomic_counters.negative-unsized-array

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
7 years agoanv: remove extra 'debug:' from anv_debug_ignored_stype
Tapani Pälli [Tue, 29 Aug 2017 05:44:55 +0000 (08:44 +0300)]
anv: remove extra 'debug:' from anv_debug_ignored_stype

anv_debug adds 'debug:' already, this is to clean following:
   debug: debug: anv_CreateDebugReportCallbackEXT: ignored VkStructureType 1000011000

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoanv: move brw_process_intel_debug_variable to happen early
Tapani Pälli [Tue, 29 Aug 2017 05:44:54 +0000 (08:44 +0300)]
anv: move brw_process_intel_debug_variable to happen early

Currently anv_perf_warn call in anv_compute_heap_size does not ever
report a perf warning. Move debug variable read as the first thing
in case there will be other perf_warn calls added.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoanv: wire up vk_errorf macro to do debug reporting
Tapani Pälli [Fri, 25 Aug 2017 06:55:39 +0000 (09:55 +0300)]
anv: wire up vk_errorf macro to do debug reporting

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoanv: wire up anv_perf_warn macro to do debug reporting
Tapani Pälli [Fri, 25 Aug 2017 06:50:11 +0000 (09:50 +0300)]
anv: wire up anv_perf_warn macro to do debug reporting

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoanv: implementation of VK_EXT_debug_report extension
Tapani Pälli [Wed, 23 Aug 2017 08:25:57 +0000 (11:25 +0300)]
anv: implementation of VK_EXT_debug_report extension

Patch adds required functionality for extension to manage a list of
application provided callbacks and handle debug reporting from driver
and application side.

v2: remove useless helper anv_debug_report_call
    add locking around callbacks list
    use vk_alloc2, vk_free2
    refactor CreateDebugReportCallbackEXT
    fix bugs found with crucible testing

v3: provide ANV_FROM_HANDLE and use it
    misc fixes for issues Jason found
    use vk_find_struct_const for finding ctor_cb

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: do not fallback to linear tiling for stencil surfaces
Iago Toral Quiroga [Thu, 7 Sep 2017 10:56:27 +0000 (12:56 +0200)]
i965: do not fallback to linear tiling for stencil surfaces

We were skipping this fallback for depth, but not for stencil
which the hardware always requires to be W-tiled.

Also, make the checks for whether we need to apply retiling
strategies based on usage instead of tiling flags, which is
safer and more explicit.

This fixes a regression in a CTS test introduced with commit
4ea63fab77f0 that started applying re-tiling stencil surfaces
in certain scenarios.

v2: discard retiling based on usage fields instead of tiling
    flags. This is safer and more explicit.

v3: Add a comment indicating that texturing of stencil in gen7
    requires an Y-tiled copy (Topi).

Fixes:
KHR-GL45.direct_state_access.renderbuffers_storage

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
7 years agonir/spirv: handle if's with same label in both branches
Juan A. Suarez Romero [Thu, 24 Aug 2017 15:16:04 +0000 (17:16 +0200)]
nir/spirv: handle if's with same label in both branches

When a conditional branch has the same labels in the "if" part and in the
"else" part, then we have the same cfg block, and it must be handled
once.

v2: handle it the same way as OpBranch (Jason).

Fixes:
dEQP-VK.spirv_assembly.instruction.compute.conditional_branch.same_labels*
dEQP-VK.spirv_assembly.instruction.graphics.conditional_branch.same_labels*

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agomesa/st: Include builddir/src/compiler/glsl to fix make check
Aaron Watry [Sun, 10 Sep 2017 18:05:35 +0000 (13:05 -0500)]
mesa/st: Include builddir/src/compiler/glsl to fix make check

Otherwise, when doing an out-of-tree build you can expect the following:

make[6]: Entering directory \
         '${MESA_SRC}/build/src/mesa/state_tracker/tests'
  CXX      test_glsl_to_tgsi_lifetime.o
In file included from \
    ${MESA_SRC}/src/mesa/src/mesa/state_tracker/st_glsl_to_tgsi_private.h:31:0,
  from \
    ${MESA_SRC}/src/mesa/src/mesa/state_tracker/st_glsl_to_tgsi_temprename.h:27,
  from \
    ${MESA_SRC}/src/mesa/src/mesa/state_tracker/tests/test_glsl_to_tgsi_lifetime.cpp:24:
  ${MESA_SRC}/src/compiler/glsl/ir.h:1502:37: \
    fatal error: ir_expression_operation.h: No such file or directory
 #include "ir_expression_operation.h"

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Gert Wollny <gw.fossdev@gmail.com>
7 years agoradv: work out a base ia_multi_vgt_param.
Dave Airlie [Mon, 11 Sep 2017 06:44:19 +0000 (07:44 +0100)]
radv: work out a base ia_multi_vgt_param.

This just reduces the calculations a bit further.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: calculate non-draw related ia_multi_vgt_param bits in pipeline
Dave Airlie [Mon, 11 Sep 2017 06:14:05 +0000 (07:14 +0100)]
radv: calculate non-draw related ia_multi_vgt_param bits in pipeline

This moves a bunch of non-draw dependent calcs into the pipeline code,
to reduce CPU overheads in the draw path.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: move calculating primgroup_size to pipeline.
Dave Airlie [Mon, 11 Sep 2017 06:05:27 +0000 (07:05 +0100)]
radv: move calculating primgroup_size to pipeline.

This moves this out of the draw paths.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: only calculate num_prims when required.
Dave Airlie [Mon, 11 Sep 2017 05:55:17 +0000 (06:55 +0100)]
radv: only calculate num_prims when required.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: use upload_data to upload push descriptors.
Dave Airlie [Mon, 11 Sep 2017 05:02:53 +0000 (06:02 +0100)]
radv: use upload_data to upload push descriptors.

This is just a reusing code.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: realign vgt flush on hawaii workaround with radeonsi.
Dave Airlie [Mon, 11 Sep 2017 07:21:56 +0000 (08:21 +0100)]
radv: realign vgt flush on hawaii workaround with radeonsi.

This realigns this code with the radeonsi version and fixes
the indirect case to work properly.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: return an error code when resetting a command buffer
Samuel Pitoiset [Mon, 11 Sep 2017 15:52:26 +0000 (17:52 +0200)]
radv: return an error code when resetting a command buffer

If the upload BO allocation failed.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: remove unnecessary goto in radv_create_cmd_buffer()
Samuel Pitoiset [Mon, 11 Sep 2017 15:52:25 +0000 (17:52 +0200)]
radv: remove unnecessary goto in radv_create_cmd_buffer()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: do not pass a pipeline object to radv_emit_graphics_pipeline()
Samuel Pitoiset [Mon, 11 Sep 2017 15:52:24 +0000 (17:52 +0200)]
radv: do not pass a pipeline object to radv_emit_graphics_pipeline()

To be consistent with radv_emit_compute_pipeline().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: add debug flags to zero vram allocations.
Dave Airlie [Wed, 15 Feb 2017 01:17:02 +0000 (01:17 +0000)]
radv: add debug flags to zero vram allocations.

We are seeing apps that sometimes rely on Windows behaviour, add
a flag to rule out vram zeroing.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradeonsi: optimize TCS epilog when invocation 0 writes tess factors
Marek Olšák [Tue, 5 Sep 2017 11:40:59 +0000 (13:40 +0200)]
radeonsi: optimize TCS epilog when invocation 0 writes tess factors

This removes the barrier and LDS stores and loads for tess factors
when it's possible. The removal of the barrier seems more important
to me though.

In one shader, it removes 17 * 4 bytes from the shader binary.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agotgsi/scan: add a new pass that analyzes tess factor writes (v2)
Marek Olšák [Tue, 5 Sep 2017 01:52:48 +0000 (03:52 +0200)]
tgsi/scan: add a new pass that analyzes tess factor writes (v2)

The pass tries to deduce whether tess factors are always written by
all shader invocations.

The implication for radeonsi is that it doesn't have to use a barrier
near the end of TCS, and doesn't have to use LDS for passing the tess
factors to the epilog.

v2: Handle barriers and do the analysis pass for each code segment
    surrounded by barriers separately, and AND results from all
    such segments writing tess factors. The change is trivial in the main
    switch statement.

    Also, the result is renamed to "tessfactors_are_def_in_all_invocs"
    to make the name accurate.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agointel: Remove unused Kabylake pci id
Anuj Phogat [Wed, 6 Sep 2017 18:36:25 +0000 (11:36 -0700)]
intel: Remove unused Kabylake pci id

I missed this one in Mesa commit ebc5ccf.

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agoAndroid: Add LLVM support for Android P
Rob Herring [Thu, 7 Sep 2017 20:31:26 +0000 (15:31 -0500)]
Android: Add LLVM support for Android P

The Android version in AOSP master has changed now to P, so we need to add
LLVM flags for it. Duplicating the lines because I expect the version will
get bumped at some point and diverge from O.

Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Signed-off-by: Rob Herring <robh@kernel.org>
7 years agoAndroid: fix undeclared identifier 'gfx9d_reg_table'
Chih-Wei Huang [Sat, 9 Sep 2017 17:17:25 +0000 (01:17 +0800)]
Android: fix undeclared identifier 'gfx9d_reg_table'

Since commit 552aaa11 the compiler complains:

external/mesa/src/amd/common/ac_debug.c:124:51: error: use of undeclared identifier 'gfx9d_reg_table'; did you mean 'sid_reg_table'?
                reg = find_register(gfx9d_reg_table, ARRAY_SIZE(gfx9d_reg_table), offset);
                                                                ^~~~~~~~~~~~~~~
                                                                sid_reg_table

It's because the commit ef97cc0c ("radeonsi/gfx9: add IB parser support")
add gfx9d.h as a recipe of sid_tables.h. But the corresponding Android.mk
was not updated. However, it's not spotted since gfx9d_reg_table is not
really used until commit 552aaa11 was landed.

Fixes: 552aaa11 (ac/debug: take ASIC generation into account when printing registers)

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Signed-off-by: Rob Herring <robh@kernel.org>
7 years agowinsys/amdgpu: use the new raw CS API
Marek Olšák [Tue, 5 Sep 2017 22:50:45 +0000 (00:50 +0200)]
winsys/amdgpu: use the new raw CS API

This also cleans things up.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoradeonsi: implement pipe_context::fence_server_sync
Marek Olšák [Fri, 1 Sep 2017 22:31:58 +0000 (00:31 +0200)]
radeonsi: implement pipe_context::fence_server_sync

This will be more useful once we have sync_file support.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agowinsys/amdgpu: factor out some fence dependency code into separate functions
Marek Olšák [Fri, 1 Sep 2017 22:22:35 +0000 (00:22 +0200)]
winsys/amdgpu: factor out some fence dependency code into separate functions

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agowinsys/amdgpu: rename fence_dependency functions
Marek Olšák [Fri, 1 Sep 2017 21:59:13 +0000 (23:59 +0200)]
winsys/amdgpu: rename fence_dependency functions

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agogallium/radeon: add a proper fail path for calloc in r600_flush_from_st
Marek Olšák [Fri, 1 Sep 2017 21:26:59 +0000 (23:26 +0200)]
gallium/radeon: add a proper fail path for calloc in r600_flush_from_st

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agowinsys/amdgpu: don't allow interprocess resource sharing for IBs
Marek Olšák [Wed, 6 Sep 2017 01:21:29 +0000 (03:21 +0200)]
winsys/amdgpu: don't allow interprocess resource sharing for IBs

Now we should get IB submissions with bo_list == NULL when DRI buffers
aren't referenced.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoradeonsi/gfx9: fix interprocess resource sharing on Raven
Marek Olšák [Wed, 6 Sep 2017 00:53:20 +0000 (02:53 +0200)]
radeonsi/gfx9: fix interprocess resource sharing on Raven

This kinda fragiile, but it at least unbreaks the driver.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/glsl_to_tgsi: only the first (inner-most) array reference can be a 2D index
Nicolai Hähnle [Thu, 7 Sep 2017 16:43:42 +0000 (18:43 +0200)]
st/glsl_to_tgsi: only the first (inner-most) array reference can be a 2D index

Don't get distracted by record dereferences between array references.

Fixes dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex_block.*

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agonir/spirv: fix chain access with different index bit sizes
Samuel Iglesias Gonsálvez [Tue, 29 Aug 2017 04:56:26 +0000 (06:56 +0200)]
nir/spirv: fix chain access with different index bit sizes

Currently we support 32-bit indexes/offsets all over the driver, so we
convert them to that bit size.

Fixes dEQP-VK.spirv_assembly.instruction.*.indexing.*

v2: Use u2u32 instead (Jason).

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agor600: handle the non-TXF_LZ support path.
Dave Airlie [Mon, 21 Aug 2017 01:05:31 +0000 (11:05 +1000)]
r600: handle the non-TXF_LZ support path.

it appears that texcoord.z/w will be 0 in all cases already,
so just put them into the vbo always.

Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agogallium/u_blitter: use UTIL_BLITTER_ATTRIB_NONE (0) instead of 0 directly
Marek Olšák [Thu, 17 Aug 2017 13:48:10 +0000 (15:48 +0200)]
gallium/u_blitter: use UTIL_BLITTER_ATTRIB_NONE (0) instead of 0 directly

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Brian Paul <brianp@vmware.com>
7 years agogallium/u_blitter: don't pass GENERIC in VS if it's not needed
Marek Olšák [Thu, 17 Aug 2017 13:17:58 +0000 (15:17 +0200)]
gallium/u_blitter: don't pass GENERIC in VS if it's not needed

Now, depth-only clears and custom passes don't read memory in VS.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Brian Paul <brianp@vmware.com>