mesa.git
3 years agointel/perf: emit counter units in generated code
Lionel Landwerlin [Wed, 3 Oct 2018 10:51:24 +0000 (11:51 +0100)]
intel/perf: emit counter units in generated code

We'll use this coming extension.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/perf: compute number of passes for a set of counters
Lionel Landwerlin [Tue, 2 Oct 2018 16:48:24 +0000 (17:48 +0100)]
intel/perf: compute number of passes for a set of counters

We want to compute the number of passes required to gather performance
data about a set of counters.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/perf: create a unique list of counters
Lionel Landwerlin [Tue, 2 Oct 2018 16:09:41 +0000 (17:09 +0100)]
intel/perf: create a unique list of counters

For a future extension we want to be able to list the counters. Our
existing sets counters might contain the same counters multiple times.
This is a side effect of the fixed OA counters in the HW. We track
thoses with a mask so that we know when a counter is available from
multiple metrics.

v2: Use BITFIELD64_BIT() (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/perf: update generated code to ralloc all data
Lionel Landwerlin [Thu, 2 Apr 2020 13:29:30 +0000 (16:29 +0300)]
intel/perf: update generated code to ralloc all data

Previously counter descriptions as well register values were written
in global static variables. This isn't really thread safe so instead
ralloc all the data back under the gen_perf_config object.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/perf: store the appropriate OA formats in queries
Lionel Landwerlin [Wed, 4 Sep 2019 11:58:24 +0000 (14:58 +0300)]
intel/perf: store the appropriate OA formats in queries

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/perf: make pipeline statistic query loading optional
Lionel Landwerlin [Wed, 4 Sep 2019 14:05:47 +0000 (17:05 +0300)]
intel/perf: make pipeline statistic query loading optional

On Vulkan most of those are already covered by standard queries so
add the ability to skip them.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/genxml: add PIPE_CONTROL command cache invalidate bit
Lionel Landwerlin [Sun, 2 Feb 2020 13:25:16 +0000 (14:25 +0100)]
intel/genxml: add PIPE_CONTROL command cache invalidate bit

This new bit invalidates the cache/prefetch of commands in the command
streamer. This will be useful for self modifying batches.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agoanv: add a new execution mode for secondary command buffers
Lionel Landwerlin [Sat, 4 Apr 2020 10:22:24 +0000 (13:22 +0300)]
anv: add a new execution mode for secondary command buffers

This change adds a call/return execution mode for secondary command
buffer rather than the existing copy into the primary batch mode.

v2: Rework convention to avoid burning an ALU register (Jason)

v3: Use anv_address_add() (Jason)

v4: Move command emissions to anv_batch_chain.c (Jason)

v5: Also move last MI_BBS emission in secondary command buffer to
    anv_batch_chain.c (Jason)

v6: Fix end secondary command buffer end (Jason)

v7: Refactor anv_batch_address() to remove additional emit functions

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agoanv: don't reserve a particular register for draw count
Lionel Landwerlin [Wed, 5 Feb 2020 07:50:16 +0000 (09:50 +0200)]
anv: don't reserve a particular register for draw count

By using the same mi_builder throughout the draw call, we can just
allocate a register from the mi_builder and unref it when we're done.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/mi-builder: add framework for self modifying batches
Lionel Landwerlin [Sun, 2 Feb 2020 13:25:16 +0000 (14:25 +0100)]
intel/mi-builder: add framework for self modifying batches

v2: Use Jason's idea to store addresses to modify

v3: Add ALU flushes (Jason)

v4: Remove ALU flush from gen_mi_self_mod_barrier() (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v2)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agointel/genxml: fix bits generation for MI_LOAD_REGISTER_IMM
Lionel Landwerlin [Sat, 4 Apr 2020 14:57:11 +0000 (17:57 +0300)]
intel/genxml: fix bits generation for MI_LOAD_REGISTER_IMM

This instruction has a group with the same name than another field above :

  <field name="Data DWord" start="64" end="95" type="uint"/>
  <group count="0" start="96" size="64">
    <field name="Register Offset" start="2" end="22" type="offset"/>
    <field name="Data DWord" start="32" end="63" type="uint"/>
  </group>

The script was replacing the offset of the field first with the second
one in the group.

This change ignore anything a group within an instruction.

v2: Drop unused variable (Rafael)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>

3 years agogitlab: Ask about reproduction rate in the issue template
Denys [Fri, 15 May 2020 12:49:32 +0000 (15:49 +0300)]
gitlab: Ask about reproduction rate in the issue template

Reviewed-by: <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5055>

3 years agonir: Add const to nir_intrinsic_src_components
Jason Ekstrand [Wed, 21 Aug 2019 04:43:56 +0000 (23:43 -0500)]
nir: Add const to nir_intrinsic_src_components

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5108>

3 years agopan/mdg: Apply outmods
Alyssa Rosenzweig [Mon, 4 May 2020 21:33:52 +0000 (17:33 -0400)]
pan/mdg: Apply outmods

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Use helpers for branch/discard inversion
Alyssa Rosenzweig [Thu, 30 Apr 2020 18:17:06 +0000 (14:17 -0400)]
pan/mdg: Use helpers for branch/discard inversion

Doesn't come up on glmark but would covered by the old passes.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Remove invert optimizations
Alyssa Rosenzweig [Thu, 30 Apr 2020 17:51:46 +0000 (13:51 -0400)]
pan/mdg: Remove invert optimizations

Unused since last commit.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Treat inot as a modifier
Alyssa Rosenzweig [Thu, 30 Apr 2020 17:46:35 +0000 (13:46 -0400)]
pan/mdg: Treat inot as a modifier

With this, we may remove all invert passes and simply look at the src
modifier on NIR->MIR and fixup at pack time. No shader-db changes.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Apply abs/neg modifiers
Alyssa Rosenzweig [Wed, 29 Apr 2020 22:10:43 +0000 (18:10 -0400)]
pan/mdg: Apply abs/neg modifiers

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Ingest fsat_signed/fclamp_pos
Alyssa Rosenzweig [Mon, 4 May 2020 20:12:41 +0000 (16:12 -0400)]
pan/mdg: Ingest fsat_signed/fclamp_pos

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Prepare for modifier helpers
Alyssa Rosenzweig [Wed, 29 Apr 2020 22:08:26 +0000 (18:08 -0400)]
pan/mdg: Prepare for modifier helpers

We have to restructure to ensure NIR->MIR does not mutate the NIR and to
allow passing around dest/outmods for the new helpers. If NIR->MIR were
better designed this would be easier. Sigh.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Drop nir_lower_to_source_mods
Alyssa Rosenzweig [Wed, 29 Apr 2020 22:07:16 +0000 (18:07 -0400)]
pan/mdg: Drop nir_lower_to_source_mods

shader-db regressions fixed shortly.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopan/mdg: Remove .pos propagation pass
Alyssa Rosenzweig [Wed, 29 Apr 2020 22:02:47 +0000 (18:02 -0400)]
pan/mdg: Remove .pos propagation pass

Will be replaced later in the series. shader-db regressions but those
fixed momentarily.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agopanfrost: Add modifier detection helpers
Alyssa Rosenzweig [Wed, 29 Apr 2020 21:51:03 +0000 (17:51 -0400)]
panfrost: Add modifier detection helpers

With the goal of removing modifiers from NIR, these helpers let us
detect modifier patterns without mutating the underlying NIR. These were
intended for upstream, but due to various issues are being (temporarily)
vendored.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agonir: Add fclamp_pos opcode
Alyssa Rosenzweig [Fri, 1 May 2020 16:15:10 +0000 (12:15 -0400)]
nir: Add fclamp_pos opcode

Corresponds to the .pos modifier on all Mali GPUs (lima and panfrost).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agonir: Add fsat_signed opcode
Alyssa Rosenzweig [Thu, 30 Apr 2020 18:31:47 +0000 (14:31 -0400)]
nir: Add fsat_signed opcode

Exists on later Mali. Equivalent to clamp(x, -1.0, 1.0)

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5102>

3 years agotu: Support VK_FORMAT_FEATURE_BLIT_SRC_BIT for texture-only formats
Connor Abbott [Mon, 18 May 2020 17:16:48 +0000 (19:16 +0200)]
tu: Support VK_FORMAT_FEATURE_BLIT_SRC_BIT for texture-only formats

It turns out this is required for compressed formats, and we might as
well enable it for the one other texture-only format too.

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

3 years agotu: Fix buffer compressed pitch calculation with unaligned sizes
Connor Abbott [Tue, 19 May 2020 11:30:37 +0000 (13:30 +0200)]
tu: Fix buffer compressed pitch calculation with unaligned sizes

We can just set the extent and not bufferRowLength/bufferImageHeight,
and the extent may not be a multiple of the block size if it covers the
entire image. In this case we have to first divide to get the
width/height in terms of blocks, and then multiply by the block size to
get the buffer's pitch and layer size. Multiplying and dividing instead
won't get the correct result when the extent covers the entire image and
isn't a multiple of the block size. This also makes the code easier to
follow because we don't calculate a pitch in non-sensical units (bytes
times the block width) as an intermediate step.

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

3 years agotu: Fall back to 3d blit path for BC1_RGB_* formats
Connor Abbott [Tue, 19 May 2020 13:39:18 +0000 (15:39 +0200)]
tu: Fall back to 3d blit path for BC1_RGB_* formats

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

3 years agotu: Always initialize image_view fields for blit sources
Connor Abbott [Mon, 18 May 2020 17:11:30 +0000 (19:11 +0200)]
tu: Always initialize image_view fields for blit sources

Previously we only supported BLIT_SRC_BIT and BLIT_DEST_BIT together, so
we didn't have to worry about initializing blit-related fields for
texture-only formats, but it turns out that 2d blits work out just fine
with these formats and we'll need to enable BLIT_SRC_BIT for
texture-only formats due to a Vulkan requirement on compressed formats.

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

3 years agonir: Add a store_reg helper and use the builder in phis_to_regs
Jason Ekstrand [Mon, 18 May 2020 23:40:58 +0000 (18:40 -0500)]
nir: Add a store_reg helper and use the builder in phis_to_regs

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5094>

3 years agonir: Add a new helper for iterating phi sources leaving a block
Jason Ekstrand [Mon, 18 May 2020 21:49:29 +0000 (16:49 -0500)]
nir: Add a new helper for iterating phi sources leaving a block

This takes the same callback as nir_foreach_src except it walks all phi
sources which leave a given block.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5094>

3 years agonir/clone: Re-use clone_alu for nir_alu_instr_clone
Jason Ekstrand [Mon, 18 May 2020 20:37:30 +0000 (15:37 -0500)]
nir/clone: Re-use clone_alu for nir_alu_instr_clone

All it takes are a couple small tweaks to the clone infrastructure to
allow us to use it without any remap table at all.  This reduces code
duplication and the chances for bugs that come with it.  In particular,
the hand-rolled nir_alu_instr_clone didn't preserve no_[un]signed_wrap,
or source/destination modifiers.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5094>

3 years agoradv/winsys: Finish mapping for sparse residency.
Bas Nieuwenhuizen [Sun, 17 May 2020 21:01:37 +0000 (23:01 +0200)]
radv/winsys: Finish mapping for sparse residency.

This adds the part that disables pagefaults when unbacked sparse
textures get accessed.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5079>

3 years agointel/drm-shim: Return correct values for I915_PARAM_HAS_ALIASING_PPGTT
Ian Romanick [Thu, 14 May 2020 23:46:32 +0000 (16:46 -0700)]
intel/drm-shim: Return correct values for I915_PARAM_HAS_ALIASING_PPGTT

It sure looks like it should be a Boolean value, but it's not.  The
values that we really want for later platforms are either 2 or 3.  The
old intel_stub.c in shader-db just always returns 3
(I915_GEM_PPGTT_FULL).  This returns the same set of values per platform
that kernel 5.6.13 would.

When using the shim for ICL with i965 driver, this fixes:

    i965 requires softpin (Kernel 4.5) on Gen10+.

Fixes: 0f4f1d70bfe ("intel: add stub_gpu tool")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5061>

3 years agointel/drm-shim: Add noop ioctl handler for set_tiling
Ian Romanick [Thu, 14 May 2020 23:43:56 +0000 (16:43 -0700)]
intel/drm-shim: Add noop ioctl handler for set_tiling

When using the shim for HSW and earlier, this fixes:

    DRM_SHIM: unhandled driver DRM ioctl 33 (0xc0106461)

Fixes: 0f4f1d70bfe ("intel: add stub_gpu tool")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5061>

3 years agoradv: Expose VK_EXT_pipeline_creation_cache_control.
Bas Nieuwenhuizen [Sun, 17 May 2020 00:56:04 +0000 (02:56 +0200)]
radv: Expose VK_EXT_pipeline_creation_cache_control.

Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2972
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5072>

3 years agoradv: Support VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT.
Bas Nieuwenhuizen [Sun, 17 May 2020 00:44:13 +0000 (02:44 +0200)]
radv: Support VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5072>

3 years agoradv: Support VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT.
Bas Nieuwenhuizen [Sun, 17 May 2020 00:36:44 +0000 (02:36 +0200)]
radv: Support VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5072>

3 years agoradv: Support VK_PIPELINE_COMPILE_REQUIRED_EXT.
Bas Nieuwenhuizen [Sat, 16 May 2020 23:49:43 +0000 (01:49 +0200)]
radv: Support VK_PIPELINE_COMPILE_REQUIRED_EXT.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5072>

3 years agopanfrost: Enable AFBC for Z24X8
Alyssa Rosenzweig [Fri, 15 May 2020 23:21:52 +0000 (19:21 -0400)]
panfrost: Enable AFBC for Z24X8

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5069>

3 years agopanfrost: Fix Z24 vs Z32 mixup
Alyssa Rosenzweig [Fri, 15 May 2020 23:16:56 +0000 (19:16 -0400)]
panfrost: Fix Z24 vs Z32 mixup

We don't actually support Z32_UNORM; the format we've been using as such
is in fact Z24X8 / Z24S8. Fix that and drop Z32_UNORM.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5069>

3 years agopanfrost: Switch formats to table
Alyssa Rosenzweig [Fri, 15 May 2020 22:43:41 +0000 (18:43 -0400)]
panfrost: Switch formats to table

Rather than heuristically guessing what PIPE formats correspond to what
in the hardware, hardcode a table. This is more verbose, but a lot more
obvious -- the previous format support code was a source of endless
silent bugs.

v2: Don't report RGB233 (icecream95). Allow RGB5 for texturing
(icecream95).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5069>

3 years agopan/mfbd: Add format codes for PIPE_FORMAT_B5G5R5A1_UNORM
Alyssa Rosenzweig [Sat, 16 May 2020 00:33:06 +0000 (20:33 -0400)]
pan/mfbd: Add format codes for PIPE_FORMAT_B5G5R5A1_UNORM

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5069>

3 years agonir/opt_if: use nir_src_as_bool in opt_peel_loop_initial_if helper
Rhys Perry [Mon, 27 Apr 2020 10:53:50 +0000 (11:53 +0100)]
nir/opt_if: use nir_src_as_bool in opt_peel_loop_initial_if helper

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4757>

3 years agonir/opt_if: run opt_peel_loop_initial_if after all other optimizations
Rhys Perry [Tue, 12 May 2020 10:10:18 +0000 (11:10 +0100)]
nir/opt_if: run opt_peel_loop_initial_if after all other optimizations

Fixes dEQP-VK.graphicsfuzz.loops-ifs-continues-call with RADV.

opt_if_loop_terminator can cause this optimization or
opt_if_simplification to be run on the non-SSA code.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: 52c8bc0130a ('nir: make opt_if_loop_terminator() less strict')
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2943
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4757>

3 years agonir: Add documentation for each jump instruction type
Jason Ekstrand [Mon, 18 May 2020 19:26:30 +0000 (14:26 -0500)]
nir: Add documentation for each jump instruction type

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5101>

3 years agonir: Use a switch statement in nir_handle_add_jump
Jason Ekstrand [Fri, 15 May 2020 20:31:50 +0000 (15:31 -0500)]
nir: Use a switch statement in nir_handle_add_jump

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5101>

3 years agonir: Validate jump instructions as an instruction type
Jason Ekstrand [Fri, 15 May 2020 19:57:40 +0000 (14:57 -0500)]
nir: Validate jump instructions as an instruction type

This has the downside of putting block successor validation in two
places that are a bit further apart.  However, handling them as a
special case makes the code more confusing than needed.  At least two
different people have not noticed that we don't have jump instruction
validation in the last week or two and added it.  Being able to search
for validate_jump_instr is useful.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5101>

3 years agoradv/aco: enable storageInputOutput16 on GFX9+
Samuel Pitoiset [Thu, 7 May 2020 09:41:01 +0000 (11:41 +0200)]
radv/aco: enable storageInputOutput16 on GFX9+

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

3 years agoaco: fix off-by-one error with 16-bit MTBUF opcodes on GFX10
Samuel Pitoiset [Fri, 8 May 2020 16:02:12 +0000 (18:02 +0200)]
aco: fix off-by-one error with 16-bit MTBUF opcodes on GFX10

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

3 years agoaco: implement 16-bit interp
Samuel Pitoiset [Fri, 8 May 2020 14:22:53 +0000 (16:22 +0200)]
aco: implement 16-bit interp

For 16-bit bank LDS (ie. Kabini/Stoney) we need a slightly different
path. It's completely untested though because I don't have these
chips but according to vkpipeline-db the generated assembly seems fine.

Note that 16-bit I/O is currently only exposed on GFX9+ for both
compiler backends.

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

3 years agoaco: emit v_interp_*_f16 instructions as VOP3 instead of VINTRP
Samuel Pitoiset [Fri, 8 May 2020 14:21:07 +0000 (16:21 +0200)]
aco: emit v_interp_*_f16 instructions as VOP3 instead of VINTRP

This adds a separate emission path in the assembly for the 16-bit
interp instructions.

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

3 years agoaco: validate v_interp_*_f16 as VOP3 instructions instead of VINTRP
Samuel Pitoiset [Fri, 8 May 2020 14:18:55 +0000 (16:18 +0200)]
aco: validate v_interp_*_f16 as VOP3 instructions instead of VINTRP

16-bit interp instructions are considered VINTRP by the compiler
but they are emitted as VOP3 by the assembler.

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

3 years agoaco: implement 16-bit vertex fetches with tbuffer_load_format_d16_*
Samuel Pitoiset [Fri, 8 May 2020 07:25:18 +0000 (09:25 +0200)]
aco: implement 16-bit vertex fetches with tbuffer_load_format_d16_*

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

3 years agoaco: implement 8-bit/16-bit mov's with p_create_vector
Samuel Pitoiset [Thu, 7 May 2020 18:51:02 +0000 (20:51 +0200)]
aco: implement 8-bit/16-bit mov's with p_create_vector

ACO doesn't lower 8-bit/16-bit mov's in NIR.

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

3 years agoaco: allow to load/store 16-bit values in VMEM for tess and geom
Samuel Pitoiset [Thu, 7 May 2020 16:57:04 +0000 (18:57 +0200)]
aco: allow to load/store 16-bit values in VMEM for tess and geom

We only have to adjust some assertions to allow storing/loading
16-bit values.

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

3 years agoaco: convert 16-bit values before exporting MRTs
Samuel Pitoiset [Fri, 8 May 2020 07:31:03 +0000 (09:31 +0200)]
aco: convert 16-bit values before exporting MRTs

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

3 years agoaco: store 16-bit temporary outputs as v2b
Samuel Pitoiset [Fri, 8 May 2020 07:30:33 +0000 (09:30 +0200)]
aco: store 16-bit temporary outputs as v2b

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

3 years agoExpose EGL_KHR_platform_* when EXT is supported
Emmanuel Gil Peyrot [Fri, 8 May 2020 17:23:03 +0000 (19:23 +0200)]
Expose EGL_KHR_platform_* when EXT is supported

On EGL 1.4, one had to check for the existence of EGL_EXT_platform_base
before querying the eglGetPlatformDisplayEXT() and
eglCreatePlatformWindowSurfaceEXT() symbols, to then use them if the
EGL_EXT_platform_* extension for the given platform was exposed.

Since EGL 1.5, the platform functionality was made core, which means we
can obtain the symbols unconditionally, but we can't know the EGL
version before having created a display, at which point we've already
done a platform selection by passing an EGLNativeDisplay.  The
EGL_KHR_platform_* extensions thus are used by clients to know whether
it's safe or not to dlsym() the EGL 1.5 symbols.

This commit adds those extensions when the given platform is enabled.

Acked-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5052>

3 years agopan/decode: Fix min/max_tile_coord mixup
Alyssa Rosenzweig [Mon, 11 May 2020 22:54:05 +0000 (18:54 -0400)]
pan/decode: Fix min/max_tile_coord mixup

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5099>

3 years agopan/decode: Use a page table for tracking mmaps
Alyssa Rosenzweig [Fri, 15 May 2020 16:57:38 +0000 (12:57 -0400)]
pan/decode: Use a page table for tracking mmaps

We create a hash table mapping GPU va's to mmap structures, such that
searching for a mapped address is effectively O(1) rather than O(N) to
the number of mapped entries as with the previous linked list approach.
This is a memory-time tradeoff, but the speed-up is tracing is notable.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5099>

3 years agofreedreno/ir3/validate: add checking for types and opcodes
Rob Clark [Sat, 16 May 2020 20:32:14 +0000 (13:32 -0700)]
freedreno/ir3/validate: add checking for types and opcodes

For cases where instructions have a src and/or dst type, validate that
it matches the src/dst register types.  And for cases where there are
different opcodes for half vs full, validate that the opcode matches.

Now that we maintain this properly throughout the stages of the ir, we
can drop the fixups from the RA pass.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: add helpers to deal with src/dst types
Rob Clark [Sat, 16 May 2020 21:24:45 +0000 (14:24 -0700)]
freedreno/ir3: add helpers to deal with src/dst types

Add some helpers to properly maintain src/dst types, and in the cases
where opcode depends on src or dst type, maintain that as well.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: add simple validate pass
Rob Clark [Fri, 15 May 2020 23:14:47 +0000 (16:14 -0700)]
freedreno/ir3: add simple validate pass

We can add to this as we notice other things that are worth validating
between ir3 passes.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: fix mismatched wrmask for overlapping VS inputs
Rob Clark [Sun, 17 May 2020 17:28:52 +0000 (10:28 -0700)]
freedreno/ir3: fix mismatched wrmask for overlapping VS inputs

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/cp: fix cmps folding
Rob Clark [Sun, 17 May 2020 01:03:25 +0000 (18:03 -0700)]
freedreno/ir3/cp: fix cmps folding

When we start doing cp iteratively, we hit the case that we've already
`cmps.s.*` into a `cmps.s.ne p0.x, ...`..  when we try to do that again
we can invert the logic condition.  So check specifically the condition
to prevent this.

TODO we could maybe be more clever about this to combine conditions.
But why isn't that happening in nir?  For example, see
dEQP-GLES31.functional.ssbo.layout.single_basic_array.packed.bool

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/print: print cat2 condition
Rob Clark [Sun, 17 May 2020 00:47:49 +0000 (17:47 -0700)]
freedreno/ir3/print: print cat2 condition

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: fix immed type in create_addr0()
Rob Clark [Sat, 16 May 2020 22:58:04 +0000 (15:58 -0700)]
freedreno/ir3: fix immed type in create_addr0()

We can also remove a bunch of manual src/dst flag munging, since the
instruction builders handle this automatically now.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/cf: handle multiple cov's properly
Rob Clark [Sat, 16 May 2020 00:12:25 +0000 (17:12 -0700)]
freedreno/ir3/cf: handle multiple cov's properly

There can be multiple (for ex.) f32f16's from a single source, in
particular appearing in different blocks.  We need to update all uses
of the src which had conversion folded in, not all the uses of the
individual cov.  Also, to avoid invalidating the ssa use info that was
gathered at the beginning of the pass, don't actually eliminate the
cov, but instead change it to a simple mov that the cp pass can gobble
up.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: fix mismatched flags on split
Rob Clark [Fri, 15 May 2020 23:44:29 +0000 (16:44 -0700)]
freedreno/ir3: fix mismatched flags on split

We have to fixup the meta:split half flag, because `ir3_split_dest()` is
called before we fixup the dest type.  But we should fixup both the
split src and dest, as well as the thing it is splitting.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/group: fix for half-regs
Rob Clark [Fri, 15 May 2020 22:48:06 +0000 (15:48 -0700)]
freedreno/ir3/group: fix for half-regs

If we're inserting a mov to resolve a conflict between meta:collect's
(ie. for .zyx type swizzles, etc), we should use the correct precision.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: make input/output iterators declare cursor ptr
Rob Clark [Sat, 16 May 2020 19:15:23 +0000 (12:15 -0700)]
freedreno/ir3: make input/output iterators declare cursor ptr

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: make foreach_ssa_src declar cursor ptr
Rob Clark [Sat, 16 May 2020 19:08:26 +0000 (12:08 -0700)]
freedreno/ir3: make foreach_ssa_src declar cursor ptr

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: make foreach_src declare cursor ptr
Rob Clark [Sat, 16 May 2020 19:01:08 +0000 (12:01 -0700)]
freedreno/ir3: make foreach_src declare cursor ptr

To match how the newer iterators work.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: be iterative
Rob Clark [Thu, 14 May 2020 19:09:35 +0000 (12:09 -0700)]
freedreno/ir3: be iterative

It does pick up a few more cf/cp opportunities, according to sharder-db.
But don't think it will be measurable.

But this will allow some future simplification to cp by pulling out it's
internal iteration.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: move where we preserve binning pass inputs
Rob Clark [Thu, 14 May 2020 21:28:52 +0000 (14:28 -0700)]
freedreno/ir3: move where we preserve binning pass inputs

For a6xx, since we use same VBO state for binning and VS, we need to
preserve potentially unused inputs.  This needs to be done before DCE.
So move it before we add earlier DCE passes.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: add IR3_PASS() macro
Rob Clark [Thu, 14 May 2020 19:02:54 +0000 (12:02 -0700)]
freedreno/ir3: add IR3_PASS() macro

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/postsched: report progress
Rob Clark [Thu, 14 May 2020 23:09:07 +0000 (16:09 -0700)]
freedreno/ir3/postsched: report progress

Or do the easy thing and claim we always changed something.  It is kinda
hard and not worth the effort to determine for real.

Also rip out unused error handling.  This pass should never fail.  And
we weren't even actually checking the return.

And while we're at it, switch over to taking the 'struct ir3 ir*`
instead of ctx, to standardize with the other passes.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/legalize: report progress
Rob Clark [Thu, 14 May 2020 23:02:55 +0000 (16:02 -0700)]
freedreno/ir3/legalize: report progress

It always does something.  Just return true for IR3_PASS()

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/group: report progress
Rob Clark [Thu, 14 May 2020 23:01:29 +0000 (16:01 -0700)]
freedreno/ir3/group: report progress

Not iterative, but this will let IR3_PASS() macro know if there are any
changes to print.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/deps: report progress
Rob Clark [Thu, 14 May 2020 22:43:31 +0000 (15:43 -0700)]
freedreno/ir3/deps: report progress

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/cp: report progress
Rob Clark [Thu, 14 May 2020 18:52:02 +0000 (11:52 -0700)]
freedreno/ir3/cp: report progress

Later when we do this pass iteratively, we can drop some of the internal
iteration and just rely on this pass getting run until there is no more
progress.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/cf: report progress
Rob Clark [Thu, 14 May 2020 18:42:11 +0000 (11:42 -0700)]
freedreno/cf: report progress

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3/dce: report progress
Rob Clark [Thu, 14 May 2020 18:39:14 +0000 (11:39 -0700)]
freedreno/ir3/dce: report progress

Eventually we'll pull the iteration out of the pass itself, but the
first step is to just report progress.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: juggle around ir3_debug_print()
Rob Clark [Thu, 14 May 2020 18:36:05 +0000 (11:36 -0700)]
freedreno/ir3: juggle around ir3_debug_print()

In a later patch, this will get folded into an IR3_PASS() macro, at
least for most passes.  But to do that, it is better to standardize
on printing the ir3 after the pass.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agofreedreno/ir3: remove Sethi-Ullman numbering pass
Rob Clark [Thu, 14 May 2020 22:35:28 +0000 (15:35 -0700)]
freedreno/ir3: remove Sethi-Ullman numbering pass

We haven't used this for a while.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>

3 years agoradv: fix missing break in radv_GetPhysicalDeviceProperties2()
Samuel Pitoiset [Tue, 19 May 2020 09:53:13 +0000 (11:53 +0200)]
radv: fix missing break in radv_GetPhysicalDeviceProperties2()

Fixes: 57e796a12a8 ("radv: Implement VK_EXT_custom_border_color")
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/5097>

3 years agoaco: fix disassembly with LLVM 11
Rhys Perry [Fri, 15 May 2020 20:31:35 +0000 (21:31 +0100)]
aco: fix disassembly with LLVM 11

SymbolInfoTy was modified in LLVM 11. It is also in MCDisassembler.h now
and we don't have to duplicate it anymore.

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/5060>

3 years agor600/sfn: Fix printing ALU op without dest
Gert Wollny [Mon, 18 May 2020 18:34:06 +0000 (20:34 +0200)]
r600/sfn: Fix printing ALU op without dest

e.g. GROUP_BARRIER doesn't have a dest.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Don't reorder outputs by location
Gert Wollny [Wed, 6 May 2020 22:01:11 +0000 (00:01 +0200)]
r600/sfn: Don't reorder outputs by location

This was wrong, if anything it should be sorted by device_location, and NIR usually
provides this.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Fix splitting constants that come from different kcache banks.
Gert Wollny [Sat, 16 May 2020 18:39:45 +0000 (20:39 +0200)]
r600/sfn: Fix splitting constants that come from different kcache banks.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Fix clip vertex output as possible stream variable
Gert Wollny [Sat, 16 May 2020 14:44:27 +0000 (16:44 +0200)]
r600/sfn: Fix clip vertex output as possible stream variable

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: SSBO: Fix query of dest components
Gert Wollny [Sun, 10 May 2020 18:19:25 +0000 (20:19 +0200)]
r600/sfn: SSBO: Fix query of dest components

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: use the per shader atomic base
Gert Wollny [Sat, 9 May 2020 17:39:40 +0000 (19:39 +0200)]
r600/sfn: use the per shader atomic base

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Add support for texture_samples
Gert Wollny [Sat, 9 May 2020 13:21:01 +0000 (15:21 +0200)]
r600/sfn: Add support for texture_samples

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: support indirect sampler buffer reads.
Gert Wollny [Sat, 9 May 2020 08:40:58 +0000 (10:40 +0200)]
r600/sfn: support indirect sampler buffer reads.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: assert when alu dest is missing
Gert Wollny [Fri, 8 May 2020 15:46:49 +0000 (17:46 +0200)]
r600/sfn: assert when alu dest is missing

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: remove pointless check
Gert Wollny [Fri, 8 May 2020 14:24:37 +0000 (16:24 +0200)]
r600/sfn: remove pointless check

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Don't reject VARYING_SLOT_PCNT
Gert Wollny [Thu, 7 May 2020 17:19:32 +0000 (19:19 +0200)]
r600/sfn: Don't reject VARYING_SLOT_PCNT

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>

3 years agor600/sfn: Add FS output sample_mask
Gert Wollny [Wed, 6 May 2020 22:09:02 +0000 (00:09 +0200)]
r600/sfn: Add FS output sample_mask

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>