mesa.git
4 years agoaco: be more careful about using SMEM for load_global
Rhys Perry [Mon, 6 Apr 2020 19:15:36 +0000 (20:15 +0100)]
aco: be more careful about using SMEM for load_global

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639>

4 years agoradv: allocate larger shader memory slabs if needed
Rhys Perry [Tue, 14 Apr 2020 19:15:46 +0000 (20:15 +0100)]
radv: allocate larger shader memory slabs if needed

Fixes dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13 hang with ACO
(features needed for the test are implemented in a later commit)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639>

4 years agoradv: align buffer descriptor sizes to dword
Rhys Perry [Fri, 10 Apr 2020 13:25:46 +0000 (14:25 +0100)]
radv: align buffer descriptor sizes to dword

This is needed to prevent bounds checking issues when load 8/16-bit values
with dword loads.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4639>

4 years agoaco: Move s_setprio to correct place after the gs_alloc_req.
Timur Kristóf [Thu, 23 Apr 2020 13:53:09 +0000 (15:53 +0200)]
aco: Move s_setprio to correct place after the gs_alloc_req.

Previously the setprio was inside the branch, so it would only reset
the priority on the first wave, but not the others.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Use 24-bit multiplication for NGG wave id and thread id.
Timur Kristóf [Thu, 23 Apr 2020 13:50:56 +0000 (15:50 +0200)]
aco: Use 24-bit multiplication for NGG wave id and thread id.

Both of them should always fit 24 bits anyway.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Use 24-bit multiplication in TCS I/O
Timur Kristóf [Thu, 23 Apr 2020 13:39:56 +0000 (15:39 +0200)]
aco: Use 24-bit multiplication in TCS I/O

The TCS inputs and outputs must always fit into the LDS,
which implies that their addresses also always fit 24 bits.

On AMD GPUs, 24-bit multiplication is much faster than 32-bit
multiplication, so we can take the opportunity to use that
for TCS I/O instead.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Const correctness for aco_print_ir.
Timur Kristóf [Thu, 23 Apr 2020 13:24:47 +0000 (15:24 +0200)]
aco: Const correctness for aco_print_ir.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Const correctness for get_barrier_interaction.
Timur Kristóf [Wed, 18 Mar 2020 09:40:06 +0000 (10:40 +0100)]
aco: Const correctness for get_barrier_interaction.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Abort when RA can't find a register.
Timur Kristóf [Mon, 10 Feb 2020 15:34:56 +0000 (16:34 +0100)]
aco: Abort when RA can't find a register.

Previously, it was just unreachable, which means it will generate
invalid shaders when it encounters a situation when it can't allocate
registers for eg. a large load.

This commit makes it slightly easier to notice such problems without
triggering a GPU hang.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Increase barrier_count to 7 to include barrier_barrier.
Timur Kristóf [Thu, 23 Apr 2020 13:17:11 +0000 (15:17 +0200)]
aco: Increase barrier_count to 7 to include barrier_barrier.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoaco: Only store TCS outputs to VMEM when they are read by TES.
Timur Kristóf [Mon, 13 Apr 2020 17:03:55 +0000 (19:03 +0200)]
aco: Only store TCS outputs to VMEM when they are read by TES.

Totals from affected shaders (GFX10):
Code Size: 10832 -> 10736 (-0.89 %) bytes

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoradv: Add inputs read by TES to radv_shader_info.
Timur Kristóf [Mon, 13 Apr 2020 16:35:57 +0000 (18:35 +0200)]
radv: Add inputs read by TES to radv_shader_info.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4536>

4 years agoturnip: add adreno 650
Jonathan Marek [Wed, 22 Jan 2020 02:12:57 +0000 (21:12 -0500)]
turnip: add adreno 650

Tile alignment is 96, with gmem alignment of 0x6000

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4608>

4 years agoturnip: use RESOLVE_TS event
Jonathan Marek [Fri, 17 Apr 2020 16:41:14 +0000 (12:41 -0400)]
turnip: use RESOLVE_TS event

This is required on a650 to flush the GMEM store.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4608>

4 years agoturnip: remove unused RB_UNKNOWN_8E04_blit
Jonathan Marek [Fri, 17 Apr 2020 16:35:53 +0000 (12:35 -0400)]
turnip: remove unused RB_UNKNOWN_8E04_blit

New blit code doesn't change this value, and different values seem to be
related to the driver version and not the GPU version.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4608>

4 years agozink: set UBO alignments in nir_intrinsic_load_uniform lowering
Mike Blumenkrantz [Thu, 23 Apr 2020 18:21:05 +0000 (14:21 -0400)]
zink: set UBO alignments in nir_intrinsic_load_uniform lowering

resolves this error
  error: nir_intrinsic_align_offset(instr) < nir_intrinsic_align_mul(instr) (../src/compiler/nir/nir_validate.c:582)
in ext_packed_depth_stencil-readdrawpixels piglit test

port of f5b14d983e5afa1b8f75e6f3692830a1ee46d1df

Fixes: fb64954d9dd ("nir: Validate that memory load/store ops work on whole bytes")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4711>

4 years agofreedreno: allow FMT6_8_UNORM as a UBWC format
Fritz Koenig [Fri, 24 Apr 2020 03:32:17 +0000 (20:32 -0700)]
freedreno: allow FMT6_8_UNORM as a UBWC format

FMT6_8_UNORM is necessary for NV12 textures.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4722>

4 years agospirv: Rewrite CFG construction
Jason Ekstrand [Thu, 13 Feb 2020 05:30:58 +0000 (23:30 -0600)]
spirv: Rewrite CFG construction

This commit completely rewrites the way we extract a structured CFG from
SPIR-V.  The new approach is different in a few ways:

 1. It does a breadth-first search instead of depth-first.  This means
    that we've visited the merge node for a construct before we visit
    any of the nodes inside the construct.  This makes it easier to
    validate things like loop and switch nesting.

 2. We record more information in the CFG.  Earlier commits added a
    parent pointer to vtn_cf_node but we now record all of the merge and
    other special blocks for each CFG node.  This lets us validate
    things more precisely.

 3. It makes heavy use of merge blocks for walking the CFG.  Previously,
    we sort of used them as hints for trying to guess the CFG structure
    but things got dicey whenever a merge was missing.  We had some
    heuristics for how to handle short-circuiting if statements but it
    was a bunch of special cases.

    Now, we make them a fundamental part of walking the CFG.  When we
    encounter a control-flow construct, we add the body components of
    the construct to the BFS work list and then jump to the merge block
    if one exists to continue scanning the current CFG nesting level.
    If no merge block exists, we assume that means that control-flow
    never re-converges in a normal way and that the only way to get back
    to normality is with a direct jump such as a loop break or continue.
    This should make things far more robust when trying to deal with the
    more creative placement (or lack thereof) of merge instructions.

Reviewed-by: Alan Baker <alanbaker@google.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3820>
Closes: #2760
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4446>

4 years agoanv: Add support for HiZ+CCS
Jason Ekstrand [Fri, 6 Mar 2020 22:11:00 +0000 (16:11 -0600)]
anv: Add support for HiZ+CCS

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agointel/isl: Refactor isl_surf_get_ccs_surf
Jason Ekstrand [Fri, 6 Mar 2020 22:49:39 +0000 (16:49 -0600)]
intel/isl: Refactor isl_surf_get_ccs_surf

This refactor breaks out a new isl_surf_supports_ccs function which does
most of the validity checking.  The isl_surf_get_ccs_surf function calls
this function and then dives right into constructing the CCS aux_surf.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agointel/isl: Delete a misleading comment
Jason Ekstrand [Fri, 6 Mar 2020 22:43:10 +0000 (16:43 -0600)]
intel/isl: Delete a misleading comment

Untyped messages are only use on Gen9+ for UBOs and SSBOs.  They will
never be used on anything using an isl_surf.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv/cmd_buffer: Move anv_image_init_aux_tt higher
Jason Ekstrand [Fri, 6 Mar 2020 22:10:11 +0000 (16:10 -0600)]
anv/cmd_buffer: Move anv_image_init_aux_tt higher

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Simplify a case in layout_to_aux_usage
Jason Ekstrand [Sat, 7 Mar 2020 01:22:57 +0000 (19:22 -0600)]
anv: Simplify a case in layout_to_aux_usage

If it's depth, the only possible value of planes[plane].aux_usage is
ISL_AUX_USAGE_HIZ at least right now.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agointel/blorp: Allow more HiZ usages in hiz_clear_depth_stencil
Jason Ekstrand [Sat, 7 Mar 2020 02:15:08 +0000 (20:15 -0600)]
intel/blorp: Allow more HiZ usages in hiz_clear_depth_stencil

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Generalize some aux usage checks
Jason Ekstrand [Fri, 6 Mar 2020 22:21:55 +0000 (16:21 -0600)]
anv: Generalize some aux usage checks

For the checks dealing with fast-clear values, we change them to check
for the depth aspect because the distinction there really is between
color and depth more than between HiZ and CCS.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv/blorp: Do less hard-coding of aux usages
Jason Ekstrand [Fri, 6 Mar 2020 22:21:30 +0000 (16:21 -0600)]
anv/blorp: Do less hard-coding of aux usages

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Rework anv_layout_to_aux_state
Jason Ekstrand [Fri, 6 Mar 2020 23:14:04 +0000 (17:14 -0600)]
anv: Rework anv_layout_to_aux_state

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Be more conservative about image view usage
Jason Ekstrand [Fri, 6 Mar 2020 23:31:37 +0000 (17:31 -0600)]
anv: Be more conservative about image view usage

We were ORing together the image and stencil usage rather than actually
following the formula in the spec.  This can lead to assertions in other
parts of the driver if we're not careful.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Move vk_image_layout_is_read_only higher
Jason Ekstrand [Fri, 6 Mar 2020 17:56:59 +0000 (11:56 -0600)]
anv: Move vk_image_layout_is_read_only higher

While we're at it, we drop some _KHR suffixes

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Add a vk_image_layout_to_usage_flags helper
Jason Ekstrand [Fri, 6 Mar 2020 17:56:27 +0000 (11:56 -0600)]
anv: Add a vk_image_layout_to_usage_flags helper

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4100>

4 years agoanv: Enable HiZ on multi-layer depth buffers.
Rafael Antognolli [Thu, 16 Apr 2020 18:47:37 +0000 (11:47 -0700)]
anv: Enable HiZ on multi-layer depth buffers.

Improves The Witcher 3 fps by 2-10% on ICL (depending on the configs and
system).

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4661>

4 years agoetnaviv: support for using generic blit path
Christian Gmeiner [Sun, 11 Aug 2019 12:03:13 +0000 (14:03 +0200)]
etnaviv: support for using generic blit path

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1641>

4 years agoetnaviv: call util_blitter_save_fragment_constant_buffer_slot(..)
Christian Gmeiner [Sun, 11 Aug 2019 11:48:43 +0000 (13:48 +0200)]
etnaviv: call util_blitter_save_fragment_constant_buffer_slot(..)

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1641>

4 years agoetnaviv: drop default state for FE_HALTI5_ID_CONFIG
Christian Gmeiner [Fri, 24 Apr 2020 10:47:04 +0000 (12:47 +0200)]
etnaviv: drop default state for FE_HALTI5_ID_CONFIG

It gets emitted when needed - see emit_halti5_only_state(..).

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4729>

4 years agodocs/features: mark GL_ARB_texture_filter_anisotropic as done for etnaviv
Christian Gmeiner [Fri, 24 Apr 2020 07:02:48 +0000 (09:02 +0200)]
docs/features: mark GL_ARB_texture_filter_anisotropic as done for etnaviv

Needs GPUs with HALT0.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4725>

4 years agofreedreno/ir3: fix incorrect conversion folding
Jonathan Marek [Thu, 23 Apr 2020 16:31:15 +0000 (12:31 -0400)]
freedreno/ir3: fix incorrect conversion folding

Fixes dEQP-VK.glsl.builtin.function.pack_unpack.unpackhalf2x16_compute

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4708>

4 years agofreedreno/ir3: set even bit for f2f16_rtne
Jonathan Marek [Thu, 23 Apr 2020 03:21:20 +0000 (23:21 -0400)]
freedreno/ir3: set even bit for f2f16_rtne

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4708>

4 years agofreedreno/ir3: fix 16-bit ssbo access
Jonathan Marek [Thu, 23 Apr 2020 03:20:26 +0000 (23:20 -0400)]
freedreno/ir3: fix 16-bit ssbo access

Update cat6 instruction type, and shift 1 in lower_offset_for_ssbo.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4708>

4 years agoaco: fix outdated label_vec from p_create_vector labelling
Rhys Perry [Fri, 24 Apr 2020 10:58:17 +0000 (11:58 +0100)]
aco: fix outdated label_vec from p_create_vector labelling

Fixes random dEQP-VK.transform_feedback.fuzz.* crashes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 2dc550202e82c5da198ad0a416a5d24dd89addd8
    ('aco: copy-propagate p_create_vector copies of vectors')

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4730>

4 years agonir/lower_subgroups: Mask off unused bits in ballot ops
Jason Ekstrand [Thu, 23 Apr 2020 02:35:48 +0000 (21:35 -0500)]
nir/lower_subgroups: Mask off unused bits in ballot ops

Thanks to VK_EXT_subgroup_size_control, we can end up with
gl_SubgroupSize being as low as 8 on Intel.

Fixes: d10de253097 "anv: Implement VK_EXT_subgroup_size_control"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4694>

4 years agoanv: Drop an assert
Jason Ekstrand [Thu, 23 Apr 2020 02:18:03 +0000 (21:18 -0500)]
anv: Drop an assert

Ever since Vulkan 1.2, this feature has been in core so enabling the
extension is no longer required.

Fixes: 4ef3f7e3d37e "anv: Enable Vulkan 1.2 support"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4694>

4 years agoradeonsi: use pipe_blend_state::max_rt to update fewer blend registers
Marek Olšák [Thu, 23 Apr 2020 05:37:51 +0000 (01:37 -0400)]
radeonsi: use pipe_blend_state::max_rt to update fewer blend registers

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4698>

4 years agoac,radeonsi: simplify checking for Navi1x chips
Marek Olšák [Fri, 27 Mar 2020 01:48:48 +0000 (21:48 -0400)]
ac,radeonsi: simplify checking for Navi1x chips

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4698>

4 years agoac: out-of-order rasterization is not supported on gfx10
Marek Olšák [Thu, 16 Apr 2020 17:32:27 +0000 (13:32 -0400)]
ac: out-of-order rasterization is not supported on gfx10

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4698>

4 years agoturnip: divide cube map depth by 6
Jonathan Marek [Thu, 23 Apr 2020 16:10:07 +0000 (12:10 -0400)]
turnip: divide cube map depth by 6

This matches the GL driver and fixes these tests:

dEQP-VK.glsl.texture_functions.query.texturesize.samplercubearray*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4709>

4 years agospirv: Fix passing combined image/samplers through function calls
Jason Ekstrand [Wed, 22 Apr 2020 20:49:25 +0000 (15:49 -0500)]
spirv: Fix passing combined image/samplers through function calls

Fixes dEQP-VK.spirv_assembly.instruction.function_params.sampler_param

cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4684>

4 years agonir/opt_deref: Remove certain sampler type casts
Jason Ekstrand [Wed, 22 Apr 2020 20:47:28 +0000 (15:47 -0500)]
nir/opt_deref: Remove certain sampler type casts

The SPIR-V parser sometimes generates casts from specific sampler types
like sampler2D to the bare sampler type.  This results in a cast which
causes heartburn for drivers but is harmless to remove.

cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4684>

4 years agospirv: Use nir_const_value for spec constants
Jason Ekstrand [Wed, 22 Apr 2020 19:05:13 +0000 (14:05 -0500)]
spirv: Use nir_const_value for spec constants

When we originally wrote spirv_to_nir we didn't have a good scalar value
union to handily use so we rolled our own thing for spec constants.  Now
that we have nir_const_value, we can use that and simplify a bunch of
the spec constant logic.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4675>

4 years agoturnip: Properly handle all sizes of specialization constants
Jason Ekstrand [Wed, 22 Apr 2020 18:43:51 +0000 (13:43 -0500)]
turnip: Properly handle all sizes of specialization constants

cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4675>

4 years agoradv: Properly handle all sizes of specialization constants
Jason Ekstrand [Wed, 22 Apr 2020 18:42:12 +0000 (13:42 -0500)]
radv: Properly handle all sizes of specialization constants

cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4675>

4 years agoanv: Properly handle all sizes of specialization constants
Jason Ekstrand [Wed, 22 Apr 2020 18:41:14 +0000 (13:41 -0500)]
anv: Properly handle all sizes of specialization constants

Closes: #2812
cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4675>

4 years agospirv: Allow constants and NULLs in SpvOpConvertUToPtr
Jason Ekstrand [Wed, 22 Apr 2020 07:50:30 +0000 (02:50 -0500)]
spirv: Allow constants and NULLs in SpvOpConvertUToPtr

We were accidentally asserting that the value had to be a vtn_ssa_value
which isn't true if it, for instance, comes from a spec constant.

Fixes: fb282a68bc46 "spirv: Implement OpConvertPtrToU and OpConvertUToPtr"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4675>

4 years agoanv/radv: Resolving 'GetInstanceProcAddr' should not require a valid instance
Eduardo Lima Mitev [Sat, 21 Mar 2020 19:18:56 +0000 (20:18 +0100)]
anv/radv: Resolving 'GetInstanceProcAddr' should not require a valid instance

Since vk_icdGetInstanceProcAddr() is wired through
vkGetInstanceProcAddr() in both drivers, we lost the ability for
'GetInstanceProcAddr' to resolve itself prior to having a valid
instance.

An upcoming spec change will fix that and allow
vkGetInstanceProcAddr() to resolve itself passing NULL as
instance. See https://gitlab.khronos.org/vulkan/vulkan/issues/2057
for details.

This patch implements the change in both radv and anvil.

CTS changes have already landed:
https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2278

vulkan-loader changes have also landed:
https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2278

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4273>

4 years agoaco: fix v_or(s_lshl) and v_add(s_lshl) optimizations
Rhys Perry [Thu, 23 Apr 2020 23:21:46 +0000 (00:21 +0100)]
aco: fix v_or(s_lshl) and v_add(s_lshl) optimizations

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: d1621834f367d41500b7c1a819c046eb429fb8a6
    ('aco: combine VALU and SALU into various VOP3 instructions')

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2822
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4717>

4 years agoglsl: remove some duplicate code from the nir uniform linker
Timothy Arceri [Thu, 23 Apr 2020 06:18:59 +0000 (16:18 +1000)]
glsl: remove some duplicate code from the nir uniform linker

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4721>

4 years agoglsl: some nir uniform linker fixes
Timothy Arceri [Thu, 23 Apr 2020 05:55:14 +0000 (15:55 +1000)]
glsl: some nir uniform linker fixes

This fixes find_and_update_named_uniform_storage() for subroutines
and also updates num_shader_uniform_components for non opaque
uniforms.

The following patch will ensure this type of bug won't happen again.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4721>

4 years agodrm-shim: stub syncobj wait ioctl
Lionel Landwerlin [Tue, 3 Mar 2020 12:29:39 +0000 (14:29 +0200)]
drm-shim: stub syncobj wait ioctl

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4726>

4 years agodrm-shim: provide a valid fake syncobj handle at creation
Lionel Landwerlin [Thu, 16 Apr 2020 14:55:30 +0000 (17:55 +0300)]
drm-shim: provide a valid fake syncobj handle at creation

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4726>

4 years agomeson: Use dependency.partial_dependency()
Quentin Glidic [Thu, 23 Apr 2020 08:47:05 +0000 (10:47 +0200)]
meson: Use dependency.partial_dependency()

It avoids calling pkg-config which was searched for in a wrong way, thus
breaking setup where unprefixed pkg-config was banned (e.g. on Exherbo).

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Fixes: 53f9131205a63fa8b282ab2a7e96c48209447da0
       ("meson: fix getting cflags from pkg-config")

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4701>

4 years agoetnaviv: add anisotropic filter support
Christian Gmeiner [Fri, 17 Apr 2020 16:22:33 +0000 (18:22 +0200)]
etnaviv: add anisotropic filter support

I have not seen any usage of TEXTURE_FILTER_ANISOTROPIC in the cmd streams
from the binary blob. Maybe it gets used on some model/rev combinations.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2888>

4 years agoetnaviv: update headers from rnndb
Christian Gmeiner [Fri, 17 Apr 2020 17:32:22 +0000 (19:32 +0200)]
etnaviv: update headers from rnndb

Update to etna_viv commit b40ec2a.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2888>

4 years agoetnaviv: anisotropic filtering is supported starting with HALTI0
Christian Gmeiner [Fri, 22 Nov 2019 06:59:30 +0000 (07:59 +0100)]
etnaviv: anisotropic filtering is supported starting with HALTI0

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2888>

4 years agospirv: Update the headers from latest Khronos master
Caio Marcelo de Oliveira Filho [Wed, 22 Apr 2020 04:45:53 +0000 (21:45 -0700)]
spirv: Update the headers from latest Khronos master

This corresponds to 2ad0492fb00919d99500f1da74abf5ad3c870e4e ("Discuss
generator magic number reservations.")  in
https://github.com/KhronosGroup/SPIRV-Headers.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4682>

4 years agospirv: Handle instruction aliases in vtn_gather_types
Caio Marcelo de Oliveira Filho [Wed, 22 Apr 2020 04:54:56 +0000 (21:54 -0700)]
spirv: Handle instruction aliases in vtn_gather_types

Same solution as done in spirv_info generation.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4682>

4 years agogitlab-ci: Test Virgl with traces
Tomeu Vizoso [Tue, 21 Apr 2020 13:44:03 +0000 (15:44 +0200)]
gitlab-ci: Test Virgl with traces

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4659>

4 years agogitlab-ci: Test OpenGL ES 3.1 on virgl
Tomeu Vizoso [Tue, 21 Apr 2020 12:51:59 +0000 (14:51 +0200)]
gitlab-ci: Test OpenGL ES 3.1 on virgl

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4659>

4 years agogitlab-ci: Allow test jobs to add options to the dEQP invocation
Tomeu Vizoso [Mon, 20 Apr 2020 12:57:55 +0000 (14:57 +0200)]
gitlab-ci: Allow test jobs to add options to the dEQP invocation

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4659>

4 years agogitlab-ci: Update virglrenderer in the x86_test-gl image
Tomeu Vizoso [Tue, 21 Apr 2020 12:49:19 +0000 (14:49 +0200)]
gitlab-ci: Update virglrenderer in the x86_test-gl image

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4659>

4 years agopanfrost: The texture descriptor has a pointer to a trampoline
Alyssa Rosenzweig [Tue, 21 Apr 2020 20:08:07 +0000 (16:08 -0400)]
panfrost: The texture descriptor has a pointer to a trampoline

Not to the texture itself, and can have a stride right after for linear
textures.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Identify texture layout field
Alyssa Rosenzweig [Tue, 21 Apr 2020 20:20:55 +0000 (16:20 -0400)]
panfrost: Identify texture layout field

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopan/decode: Remove is_zs weirdness
Alyssa Rosenzweig [Mon, 20 Apr 2020 21:59:54 +0000 (17:59 -0400)]
pan/decode: Remove is_zs weirdness

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Emit texture descriptor on bifrost
Tomeu Vizoso [Fri, 17 Apr 2020 12:23:49 +0000 (14:23 +0200)]
panfrost: Emit texture descriptor on bifrost

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Emit sampler descriptor on bifrost
Tomeu Vizoso [Fri, 17 Apr 2020 12:23:39 +0000 (14:23 +0200)]
panfrost: Emit sampler descriptor on bifrost

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: decode textures and samplers on bifrost
Alyssa Rosenzweig [Mon, 9 Mar 2020 17:51:39 +0000 (13:51 -0400)]
panfrost: decode textures and samplers on bifrost

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Add tentative bifrost_texture_descriptor
Alyssa Rosenzweig [Mon, 9 Mar 2020 13:45:52 +0000 (09:45 -0400)]
panfrost: Add tentative bifrost_texture_descriptor

It looks very similar to the Midgard texture descriptor, just with a
bunch of fields moved around and the whole descriptor flattened (so
basically just memory access optimizations, from what I can tell).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Set clear_color_[12] in the extra fb desc
Alyssa Rosenzweig [Mon, 6 Apr 2020 23:45:30 +0000 (19:45 -0400)]
panfrost: Set clear_color_[12] in the extra fb desc

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agopanfrost: Clean up a bit the tiler structs for Bifrost
Tomeu Vizoso [Thu, 9 Apr 2020 07:39:17 +0000 (09:39 +0200)]
panfrost: Clean up a bit the tiler structs for Bifrost

And set a fixed hierarchy mask for now that seems to generally work.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4680>

4 years agovc4: Use NIR shader's num_outputs for generating our new output.
Eric Anholt [Tue, 21 Apr 2020 23:15:03 +0000 (16:15 -0700)]
vc4: Use NIR shader's num_outputs for generating our new output.

Simplifies the code (we don't have struct or matrix varyings that would
have previously made this code break), and makes sure we keep
s->num_outputs accurate.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agofreedreno/ir3: Fix sizing of the inputs/outputs array.
Eric Anholt [Tue, 21 Apr 2020 22:43:03 +0000 (15:43 -0700)]
freedreno/ir3: Fix sizing of the inputs/outputs array.

If you have a struct, the var's base driver location is not the last
driver location that will be accessed in that var.  We have a shader
struct member with this number for us, already.  Fixes overflows in:

dEQP-GLES31.functional.program_interface_query.program_output.type.interface_blocks.out.named_block_explicit_location.struct.mat3x2

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agofreedreno/ir3: Fix driver_location of the added vertex_flags varying.
Eric Anholt [Wed, 22 Apr 2020 20:27:20 +0000 (13:27 -0700)]
freedreno/ir3: Fix driver_location of the added vertex_flags varying.

It was ignoring the sizes of the output variables and assuming
single-slot, and failing to update num_outputs.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agogallium: Fix setup of pstipple frag coord var.
Eric Anholt [Tue, 21 Apr 2020 23:18:42 +0000 (16:18 -0700)]
gallium: Fix setup of pstipple frag coord var.

If the last input was a struct or matrix, we would have overlapped driver
locations for our new position var.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agonir/lower_clip: Fix picking of unused driver locations.
Eric Anholt [Tue, 21 Apr 2020 23:11:05 +0000 (16:11 -0700)]
nir/lower_clip: Fix picking of unused driver locations.

This fixes things when the last input/output is a struct or matrix.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agonir/lower_two_sided_color: Fix picking of new driver location.
Eric Anholt [Tue, 21 Apr 2020 23:07:55 +0000 (16:07 -0700)]
nir/lower_two_sided_color: Fix picking of new driver location.

We have shader->num_inputs for "last used input + 1" already, which
respects struct/matrix varyings.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4670>

4 years agonir: Add umad24 and umul24 opcodes
Gert Wollny [Sun, 12 Apr 2020 14:36:20 +0000 (16:36 +0200)]
nir: Add umad24 and umul24 opcodes

So far only the singed versions are defined.

v2: Make umad24 and umul24 non-driver specific (Eric Anholt)

v3: Take care of nir_builder and automatic lowering of the
    opcodes if they are not supported by the backend.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4610>

4 years agonir: Add r600 specific intrinsics for tesselation shader IO
Gert Wollny [Sun, 12 Apr 2020 14:35:42 +0000 (16:35 +0200)]
nir: Add r600 specific intrinsics for tesselation shader IO

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4610>

4 years agodrm-shim: Let the driver choose to overwrite the first render node.
Eric Anholt [Tue, 21 Apr 2020 16:21:52 +0000 (09:21 -0700)]
drm-shim: Let the driver choose to overwrite the first render node.

When I was writing drm-shim, I was focused on the v3d kmsro case -- use my
intel device as the kmsro display device and add on a simulator-based v3d
device that we could render with.  But for the noop backends we use for
shader-db, it's a lot more useful to just overwrite the first render node
in the system so that you don't have to pass a -d <how many render nodes I
already have in my system> argument.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4664>

4 years agofreedreno: Make the slice pitch be bytes, not pixels.
Eric Anholt [Tue, 14 Apr 2020 18:14:31 +0000 (11:14 -0700)]
freedreno: Make the slice pitch be bytes, not pixels.

Back in a2xx, HW pitches were in pixels, so storing that was reasonable.
Ever since then, the HW wants pitches in bytes, and we have only one
instance of using pitch in pixels in the code (a3xx sysmem path).

Flip things around so that only a2xx has to worry about the cpp for
looking at pitches.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4558>

4 years agofreedreno: Introduce a "cpp_shift" value for cpp divs/muls.
Eric Anholt [Tue, 14 Apr 2020 21:35:05 +0000 (14:35 -0700)]
freedreno: Introduce a "cpp_shift" value for cpp divs/muls.

This only converts part of the driver to use it, leaving the rest to the
following commit (which inspired this one).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4558>

4 years agoradv: adjust the supported subgroup stages
Samuel Pitoiset [Wed, 22 Apr 2020 13:26:17 +0000 (15:26 +0200)]
radv: adjust the supported subgroup stages

VK_SHADER_STAGE_ALL now includes all ray-tracing related stages.
Noticed while comparing vulkaninfo with some other drivers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4679>

4 years agoanv: force whole EU array to be powered for perf queries
Lionel Landwerlin [Mon, 2 Mar 2020 12:44:55 +0000 (14:44 +0200)]
anv: force whole EU array to be powered for perf queries

Because of functional requirements for Gen11, when perf is enabled we
only power half the EU array.

This change forces it to enable everything.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

4 years agointel/perf: specify sseu configuration when supported
Lionel Landwerlin [Mon, 2 Mar 2020 12:43:30 +0000 (14:43 +0200)]
intel/perf: specify sseu configuration when supported

Because of functional requirements for Gen11, when perf is enabled we
only power half the EU array.

This change forces it to enable everything.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

4 years agointel/perf: store default sseu configuration
Lionel Landwerlin [Mon, 2 Mar 2020 12:42:22 +0000 (14:42 +0200)]
intel/perf: store default sseu configuration

This is the powergating configuration of the EU array. The default is
everything powered.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

4 years agoinclude/drm-uapi: bump headers
Lionel Landwerlin [Mon, 2 Mar 2020 12:04:36 +0000 (14:04 +0200)]
include/drm-uapi: bump headers

From drm-next at the following commit :

  commit 1aa63ddf726ea049279989b93b69b57ce6efd75b
  Merge: 774f1eeb18b0 14d0066b8477
  Author: Dave Airlie <airlied@redhat.com>
  Date:   Wed Apr 22 10:40:34 2020 +1000

      Merge tag 'drm-misc-next-2020-04-14' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>

4 years agoradv: simplify checking for Navi1x chips
Samuel Pitoiset [Thu, 23 Apr 2020 10:36:21 +0000 (12:36 +0200)]
radv: simplify checking for Navi1x chips

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4702>

4 years agoaco: improve code for 32-bit isign
Rhys Perry [Tue, 21 Apr 2020 18:37:25 +0000 (19:37 +0100)]
aco: improve code for 32-bit isign

No shader-db changes on Navi.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

4 years agoaco: combine VALU and SALU into various VOP3 instructions
Rhys Perry [Mon, 20 Apr 2020 18:16:48 +0000 (19:16 +0100)]
aco: combine VALU and SALU into various VOP3 instructions

shader-db (Navi):
Totals from 2916 (2.28% of 127638) affected shaders:
SGPRs: 184427 -> 184283 (-0.08%); split: -0.10%, +0.02%
VGPRs: 143520 -> 143640 (+0.08%); split: -0.00%, +0.09%
CodeSize: 14913548 -> 14913288 (-0.00%); split: -0.00%, +0.00%
MaxWaves: 26034 -> 26012 (-0.08%)
Instrs: 2935435 -> 2930960 (-0.15%); split: -0.15%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

4 years agoaco: move call to store_output_to_temps in store_ls_or_es_output earlier
Rhys Perry [Tue, 21 Apr 2020 16:09:47 +0000 (17:09 +0100)]
aco: move call to store_output_to_temps in store_ls_or_es_output earlier

Skips get_intrinsic_io_basic_offset()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

4 years agoaco: remove copy in load_input_from_temps()
Rhys Perry [Tue, 21 Apr 2020 16:09:00 +0000 (17:09 +0100)]
aco: remove copy in load_input_from_temps()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

4 years agoaco: copy-propagate p_create_vector copies of vectors
Rhys Perry [Tue, 21 Apr 2020 16:37:44 +0000 (17:37 +0100)]
aco: copy-propagate p_create_vector copies of vectors

Instead of copying the operands of the other p_create_vector and labelling
the definition with label_vec, copy the operands and label it with
label_temp so that it can be copy-propagated.

This was found while removing a redundant copy in load_input_from_temps()
which removed duplicate p_create_vector instructions.

shader-db (Navi):
Totals from 139 (0.11% of 127638) affected shaders:
VGPRs: 8472 -> 7948 (-6.19%)
CodeSize: 514592 -> 512368 (-0.43%)
MaxWaves: 1089 -> 1195 (+9.73%)
Instrs: 100214 -> 99658 (-0.55%)
Cycles: 400856 -> 398632 (-0.55%)
VMEM: 15545 -> 15338 (-1.33%)
Copies: 5140 -> 4584 (-10.82%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4667>

4 years agoaco: decrease the uses of other copy operations after splitting/removing
Rhys Perry [Wed, 22 Apr 2020 20:56:02 +0000 (21:56 +0100)]
aco: decrease the uses of other copy operations after splitting/removing

For copies like v[7:8] = v[8:9], what currently happens is:
- do_copy() will skip the second dword
- the uses of the second dword will be reduced to 0
- the copy operation will be removed from the map
and v8 will never be set to v9.

So just decrease the uses of other operations after splitting or removing
the current operation, so: "v8 = v9" will be split off, it's uses reduced
and then the new copy will be done in the next iteration.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4686>