platform/upstream/mesa.git
4 years agointel/isl: Support ISL_AUX_USAGE_MC in surface states
Nanley Chery [Mon, 9 Sep 2019 23:11:13 +0000 (16:11 -0700)]
intel/isl: Support ISL_AUX_USAGE_MC in surface states

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6486>

4 years agointel/isl: Describe I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS
Nanley Chery [Tue, 19 Mar 2019 21:11:34 +0000 (14:11 -0700)]
intel/isl: Describe I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6486>

4 years agogallium/dri2: Support I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS import
Nanley Chery [Wed, 15 Apr 2020 23:30:24 +0000 (16:30 -0700)]
gallium/dri2: Support I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS import

Add support for up to four planes being imported via the
I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS modifier. In the four plane
scenario, two planes are used for the compressed surface and two planes
are used for the compression metadata.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6486>

4 years agogallium/dri2: Report I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS num_planes
Nanley Chery [Wed, 11 Sep 2019 22:34:46 +0000 (15:34 -0700)]
gallium/dri2: Report I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS num_planes

Return the expected number of planes in a DMA buffer that has the
I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS modifier.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6486>

4 years agonir_dominance: Use uint32_t instead of int16_t for dominance counters
Jesse Natalie [Wed, 9 Sep 2020 00:50:23 +0000 (17:50 -0700)]
nir_dominance: Use uint32_t instead of int16_t for dominance counters

We're seeing OpenCL kernels that can hit this INT16_MAX block count.

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

4 years agost/nir: Call st_glsl_to_nir_post_opts before interface unification
Danylo Piliaiev [Tue, 8 Sep 2020 10:22:12 +0000 (13:22 +0300)]
st/nir: Call st_glsl_to_nir_post_opts before interface unification

Since 95415a54c007a909f0fb9d1b2567beecbd73d403 st_finalize_nir_before_variants
calls to nir_shader_gather_info, so finalization should be moved
before interface unification.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3482
Fixes: 95415a54c007a909f0fb9d1b2567beecbd73d403
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6647>

4 years agomesa: Generate more errors from GetSamplerParameter
Adam Jackson [Thu, 14 Nov 2019 18:09:32 +0000 (13:09 -0500)]
mesa: Generate more errors from GetSamplerParameter

Not all of the corresponding extensions are enabled unconditionally, and
we should throw INVALID_ENUM in those cases.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6653>

4 years agomesa: Fix GL_CLAMP handling in glSamplerParameter
Adam Jackson [Thu, 14 Nov 2019 16:10:05 +0000 (11:10 -0500)]
mesa: Fix GL_CLAMP handling in glSamplerParameter

GL_CLAMP is only a thing in compat contexts.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6653>

4 years agoci/bare-metal: Allow wget of the kernel/dtb for kernel development.
Eric Anholt [Fri, 1 May 2020 16:35:16 +0000 (09:35 -0700)]
ci/bare-metal: Allow wget of the kernel/dtb for kernel development.

It's useful for kernel dev to be able throw all of our testing
infrastructure at a risky kernel change, but it's expensive (time and
bandwidth) to roll new containers every time your rev your kernel.  Make
it so you can just point the env vars to your personal build you've
uploaded.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>

4 years agoci/bare-metal: Update the kernel to msm-next-pgtables
Eric Anholt [Wed, 2 Sep 2020 17:49:44 +0000 (10:49 -0700)]
ci/bare-metal: Update the kernel to msm-next-pgtables

I'd like to see this new non-UAPI feature bake in CI.  More importantly,
it may prevent some classes of flakes on cheza by isolating the processes
on the GPU so that a fault in one doesn't stomp over memory in another.
I've also pulled in a fix that etnaviv needed for their upcoming CI.

We add a few more kernel options while uprevving:

- More interconnect drivers for getting good GPU perf
- PRNG so that we don't get late-in-boot complaints about randomness.
- db820c's power domains and ethernet so hopefully we can switch to this
  upstream kernel

This seems to slightly change the flakes happening in bypass mode, so add
them to the list.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>

4 years agoturnip: Fix truncation of iovas to 32 bits in queries.
Eric Anholt [Thu, 3 Sep 2020 18:56:45 +0000 (11:56 -0700)]
turnip: Fix truncation of iovas to 32 bits in queries.

Fixes regression when switching to msm-next-pgtables.

Fixes: e34b0d65f971 ("turnip: Implement and enable VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>

4 years agoturnip: Fix truncation of CS shader iovas to 32 bits.
Eric Anholt [Thu, 3 Sep 2020 17:30:31 +0000 (10:30 -0700)]
turnip: Fix truncation of CS shader iovas to 32 bits.

This was invalid, and makes VK break consistently with the
msm-next-pgtbables branch.

Fixes: 13525a9c706b ("turnip: pipeline program state refactor")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>

4 years agofreedreno: Make the pack struct have a .qword for wide addresses.
Eric Anholt [Thu, 3 Sep 2020 21:46:24 +0000 (14:46 -0700)]
freedreno: Make the pack struct have a .qword for wide addresses.

Storing a precomputed iova in reg packing wasn't possible because you'd
truncate to 32 bits.  Making it be .qword makes it possible.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6592>

4 years agoturnip: Fix a compiler warning in release builds of the query code.
Eric Anholt [Thu, 3 Sep 2020 20:42:17 +0000 (13:42 -0700)]
turnip: Fix a compiler warning in release builds of the query code.

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

4 years agoturnip: remove some unnecessary regs init
Jonathan Marek [Thu, 30 Jul 2020 12:58:16 +0000 (08:58 -0400)]
turnip: remove some unnecessary regs init

The removed registers are all set elsewhere when they are relevant, so
there is no need to initialize them in init_hw().

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

4 years agoturnip: delete unused "tu_cmd_buffer_upload"
Jonathan Marek [Wed, 9 Sep 2020 13:50:47 +0000 (09:50 -0400)]
turnip: delete unused "tu_cmd_buffer_upload"

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

4 years agoturnip: fix the type of tu_shader_module code field, delete unused sha1
Jonathan Marek [Wed, 9 Sep 2020 13:49:22 +0000 (09:49 -0400)]
turnip: fix the type of tu_shader_module code field, delete unused sha1

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

4 years agoturnip: delete unused tu_image fields
Jonathan Marek [Wed, 9 Sep 2020 13:45:28 +0000 (09:45 -0400)]
turnip: delete unused tu_image fields

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

4 years agoturnip: delete tu_physical_device path field
Jonathan Marek [Thu, 13 Aug 2020 17:50:46 +0000 (13:50 -0400)]
turnip: delete tu_physical_device path field

Resolves a "strncpy specified bound 20 equals destination size" warning.

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

4 years agoaco: fix validation of sub-dword parallel-copies
Rhys Perry [Mon, 7 Sep 2020 19:45:25 +0000 (20:45 +0100)]
aco: fix validation of sub-dword parallel-copies

Only the operands with a sub-dword definition need to be checked.

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

4 years agoaco: fix value numbering of reductions
Rhys Perry [Mon, 7 Sep 2020 19:44:54 +0000 (20:44 +0100)]
aco: fix value numbering of reductions

Non-ssa definitions caused an assertion in value numbering.

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

4 years agoaco: don't apply constant to SDWA on GFX8
Rhys Perry [Mon, 7 Sep 2020 19:21:37 +0000 (20:21 +0100)]
aco: don't apply constant to SDWA on GFX8

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

4 years agoaco: workaround disassembler bug of v_writelane_b32 with literal
Rhys Perry [Mon, 7 Sep 2020 19:20:50 +0000 (20:20 +0100)]
aco: workaround disassembler bug of v_writelane_b32 with literal

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

4 years agoaco: fix v_writelane_b32 with two sgprs
Rhys Perry [Mon, 7 Sep 2020 19:20:34 +0000 (20:20 +0100)]
aco: fix v_writelane_b32 with two sgprs

v_writelane_b32 can take two sgprs but only if one is m0.

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

4 years agonir/opt_loop_unroll: fix is_access_out_of_bounds with vectors
Rhys Perry [Mon, 17 Aug 2020 12:19:43 +0000 (13:19 +0100)]
nir/opt_loop_unroll: fix is_access_out_of_bounds with vectors

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsquueze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6347>

4 years agopanfrost: AFBC to linear layout conversion
Icecream95 [Fri, 4 Sep 2020 22:21:40 +0000 (10:21 +1200)]
panfrost: AFBC to linear layout conversion

Similar to the conversion that is already done for tiled to linear.

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

4 years agopanfrost: Move tiled-linear conversion checking to a new function
Icecream95 [Fri, 4 Sep 2020 22:18:33 +0000 (10:18 +1200)]
panfrost: Move tiled-linear conversion checking to a new function

AFBC-linear conversion will also use this function.

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

4 years agopanfrost: Seperate resource setup and bo creation
Icecream95 [Fri, 4 Sep 2020 22:16:04 +0000 (10:16 +1200)]
panfrost: Seperate resource setup and bo creation

This will make it easier to convert between modifiers without
unnecessarily creating a new bo.

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

4 years agopanfrost: Correctly set modifier_constant
Icecream95 [Fri, 4 Sep 2020 22:11:41 +0000 (10:11 +1200)]
panfrost: Correctly set modifier_constant

This fixes the tiled-linear conversion optimisation.

Fixes: 56f9cc99487 ("panfrost: Account for modifiers when creating BO")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6608>

4 years agopanfrost: Remove old comment on broken depth reload
Icecream95 [Mon, 7 Sep 2020 05:32:15 +0000 (17:32 +1200)]
panfrost: Remove old comment on broken depth reload

Depth reload works now, so now the optimisation is just for
performance and isn't a workaround any more.

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

4 years agopanfrost: Cleanup panfrost_get_param
Icecream95 [Sat, 5 Sep 2020 00:02:10 +0000 (12:02 +1200)]
panfrost: Cleanup panfrost_get_param

Move DEPTH_CLIP_DISABLE_SEPARATE back next to DEPTH_CLIP_DISABLE, and
remove a dead return statement.

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

4 years agodocs/features: Add missing Panfrost extensions
Icecream95 [Sat, 5 Sep 2020 00:00:40 +0000 (12:00 +1200)]
docs/features: Add missing Panfrost extensions

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

4 years agoradv,gallium: Add driconf option to reduce advertised VRAM size.
Bas Nieuwenhuizen [Tue, 8 Sep 2020 00:02:09 +0000 (02:02 +0200)]
radv,gallium: Add driconf option to reduce advertised VRAM size.

To help debugging games that actually do active memory budget
management.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6641>

4 years agoiris: Add missing range_base/range to our nir_load_ubos.
Eric Anholt [Tue, 8 Sep 2020 22:35:19 +0000 (15:35 -0700)]
iris: Add missing range_base/range to our nir_load_ubos.

Fixes: f3b33a5a35e6 ("nir: Add a range_base+range to nir_intrinsic_load_ubo().")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Clayton Craft <clayton.a.craft@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6654>

4 years agollvmpipe: include gallivm perf flags in shader cache.
Dave Airlie [Mon, 7 Sep 2020 06:30:15 +0000 (16:30 +1000)]
llvmpipe: include gallivm perf flags in shader cache.

Otherwise if you set perf flags, then don't set them,
they won't take affect.

Fixes: 6c0c61cb48e8 ("llvmpipe: add infrastructure for disk cache support")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6630>

4 years agoaco/isel: Compile all helper functions with static linkage
Tony Wasserka [Thu, 3 Sep 2020 12:29:58 +0000 (14:29 +0200)]
aco/isel: Compile all helper functions with static linkage

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Move add_startpgm to aco_instruction_selection.cpp
Tony Wasserka [Thu, 3 Sep 2020 12:28:56 +0000 (14:28 +0200)]
aco/isel: Move add_startpgm to aco_instruction_selection.cpp

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Move context initialization code to a dedicated file
Tony Wasserka [Thu, 3 Sep 2020 10:36:58 +0000 (12:36 +0200)]
aco/isel: Move context initialization code to a dedicated file

aco_instruction_selection_setup.cpp (previously used as a header) has
been split into a header and an implementation file. The latter "only"
implements init_context and setup_isel_context, but since these files
carry a long trail of helper functions, this cleans up the isel header
a lot.

Reduces library size by 3.1% due to more functions being compiled with
static linkage. Makes aco_instruction_selection.cpp compile 3% faster.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Remove unused definitions
Tony Wasserka [Sat, 29 Aug 2020 13:39:33 +0000 (15:39 +0200)]
aco/isel: Remove unused definitions

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Consistently use references for input parameters in emit_load
Tony Wasserka [Sat, 29 Aug 2020 13:51:07 +0000 (15:51 +0200)]
aco/isel: Consistently use references for input parameters in emit_load

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Simplify nested branching code
Tony Wasserka [Sat, 29 Aug 2020 11:14:23 +0000 (13:14 +0200)]
aco/isel: Simplify nested branching code

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agoaco/isel: Turn the function template emit_load into a proper function
Tony Wasserka [Mon, 17 Aug 2020 15:07:53 +0000 (17:07 +0200)]
aco/isel: Turn the function template emit_load into a proper function

Statically known values were encoded using template parameters previously,
causing specializations for each of the 5 sets of template arguments to be
generated. Since emit_load is not performance critical (the inner loop
never runs more often than twice), it's better for build time to use
runtime arguments everywhere.

Reduces build time of this file by 9% (17.3s -> 15.7s on my machine) and
reduces libaco's size by 2.6%.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6504>

4 years agointel/nir: Call validate_ssa_dominance at both ends of the NIR compile
Jason Ekstrand [Mon, 1 Jun 2020 20:43:53 +0000 (15:43 -0500)]
intel/nir: Call validate_ssa_dominance at both ends of the NIR compile

This invokes it before we go into the optimization/lowering pass and
then right before we go out of SSA.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5288>

4 years agospirv: Run repair_ssa if there are discard instructions
Jason Ekstrand [Mon, 1 Jun 2020 23:01:05 +0000 (18:01 -0500)]
spirv: Run repair_ssa if there are discard instructions

SPIR-V's OpKill is a control-flow instruction but NIR's discard is not.
Therefore, it can be valid SPIR-V to have

    if (...) {
        foo = /* something */
    } else {
        discard;
    }
    use(foo);

without any phi between the definition of foo and its use.  This is not
true in NIR, however, because NIR's discard isn't considered
control-flow.  Arguably, this is a NIR bug but making discard control-
flow is a very deep change that can have serious ans subtle
side-effects.   The easier thing to do is just fix up the SSA in case we
have an OpKill which might have gotten us into the above case.

Fixes dEQP-VK.graphicsfuzz.vectors-and-discard-in-function with the new
NIR dominance validation pass enabled.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5288>

4 years agonir: Add a dominance validation pass
Jason Ekstrand [Mon, 1 Jun 2020 20:39:31 +0000 (15:39 -0500)]
nir: Add a dominance validation pass

We don't do full dominance validation of SSA values in nir_validate
because it requires generating valid dominance information and, while
that's not extremely expensive, it's probably more than we want to do on
every pass.  Also, dominance information is generated through the
metadata system so if we ran it by default in nir_validate, we would get
different beavior of the metadata system based on whether or not you
have a debug build and metadata bugs would be very hard to find.

However, having a pass for it that can be run occasionally, should help
detect and expose bugs.  For ease of use, we add a NIR_VALIDATE_SSA_DOMINANCE
environment variable which can be set to manually enable dominance
validation as a standard part of nir_validate.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5288>

4 years agonir/opt_if: fix opt_if_merge when destination branch has a jump
Rhys Perry [Mon, 7 Sep 2020 10:33:44 +0000 (11:33 +0100)]
nir/opt_if: fix opt_if_merge when destination branch has a jump

Fixes a case where opt_if_merge created code like:
if (...) {
   break;
   loop {
      ...
   }
}
which caused opt_peel_loop_initial_if to complain that the loop pre-header
wasn't a predecessor of the loop header. This patch prevents this
(invalid, I think) unreachable code from being created.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3496
Fixes: 4d3f6cb9739 ('nir: merge some basic consecutive ifs')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6633>

4 years agonir: Use explicit deref information to provide real UBO ranges.
Eric Anholt [Fri, 4 Sep 2020 20:25:05 +0000 (13:25 -0700)]
nir: Use explicit deref information to provide real UBO ranges.

freedreno results (note that cat6 is loads from memory as opposed to
pushed constants from the constant file):

total instructions in shared programs: 8044344 -> 8022085 (-0.28%)
total constlen in shared programs: 1411384 -> 1461964 (3.58%)
total cat6 in shared programs: 89983 -> 87065 (-3.24%)

Over the last 3 commits, we increased Manhattan31 performance by ~10%

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6359>

4 years agofreedreno/ir3: Apply the max upload limit to initial range setup
Eric Anholt [Fri, 4 Sep 2020 17:59:37 +0000 (10:59 -0700)]
freedreno/ir3: Apply the max upload limit to initial range setup

There's no sense in planning out an upload that we won't be able to
actually upload due to the limit.  This means that we can keep making
other loads pushable, even after we find one that wouldn't be, and we
don't fill the const file with UBO data for a load we couldn't promote.

total instructions in shared programs: 8096655 -> 8044344 (-0.65%)
total constlen in shared programs: 1447824 -> 1411384 (-2.52%)
total cat6 in shared programs: 97824 -> 89983 (-8.02%)

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

4 years agofreedreno/ir3: Use the new NIR UBO ranges in UBO analysis.
Eric Anholt [Fri, 14 Aug 2020 23:11:06 +0000 (16:11 -0700)]
freedreno/ir3: Use the new NIR UBO ranges in UBO analysis.

Now that NIR doesn't lose the original base/range on the
nir_lower_uniforms_to_ubo() path, we get a lot more indirect arrays
uploaded in shader-db.

total instructions in shared programs: 8125988 -> 8103788 (-0.27%)
total constlen in shared programs: 1313096 -> 1448864 (10.34%)
total cat6 in shared programs: 104089 -> 97824 (-6.02%)

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

4 years agonir: Add a range_base+range to nir_intrinsic_load_ubo().
Eric Anholt [Fri, 14 Aug 2020 20:10:02 +0000 (13:10 -0700)]
nir: Add a range_base+range to nir_intrinsic_load_ubo().

For UBO accesses to be the same performance as classic GL default uniform
block uniforms, we need to be able to push them through the same path.  On
freedreno, we haven't been uploading UBOs as push constants when they're
used for indirect array access, because we don't know what range of the
UBO is needed for an access.

I believe we won't be able to calculate the range in general in spirv
given casts that can happen, so we define a [0, ~0] range to be "We don't
know anything".  We use that at the moment for all UBO loads except for
nir_lower_uniforms_to_ubo, where we now avoid losing the range information
that default uniform block loads come with.

In a departure from other NIR intrinsics with a "base", I didn't make the
base an be something you have to add to the src[1] offset.  This keeps us
from needing to modify all drivers (particularly since the base+offset
thing can mean needing to do addition in the backend), makes backend
tracking of ranges easy, and makes the range calculations in
load_store_vectorizer reasonable.  However, this could definitely cause
some confusion for people used to the normal NIR base.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6359>

4 years agonir: Update the comment about nir_lower_uniforms_to_ubo()'s multiplier.
Eric Anholt [Fri, 14 Aug 2020 20:22:27 +0000 (13:22 -0700)]
nir: Update the comment about nir_lower_uniforms_to_ubo()'s multiplier.

I remembered doing this analysis and was arguing in another MR that this
pass didn't have any driver dependency, but it actually does based on
PIPE_CAP_PACKED_UNIFORMS.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6359>

4 years agoradeonsi: inline trivial PS functions
Marek Olšák [Sun, 6 Sep 2020 14:54:53 +0000 (10:54 -0400)]
radeonsi: inline trivial PS functions

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

4 years agoac,radeonsi: lower 64-bit IO to 32 bits and remove all dead code
Marek Olšák [Tue, 1 Sep 2020 21:02:52 +0000 (17:02 -0400)]
ac,radeonsi: lower 64-bit IO to 32 bits and remove all dead code

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

4 years agoradeonsi: remove swizzle == ~0 dead code in si_llvm_load_input_gs
Marek Olšák [Tue, 1 Sep 2020 21:04:24 +0000 (17:04 -0400)]
radeonsi: remove swizzle == ~0 dead code in si_llvm_load_input_gs

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

4 years agoradeonsi: eliminate unused shader outputs for separate NGG geometry shaders
Marek Olšák [Mon, 7 Sep 2020 10:29:45 +0000 (06:29 -0400)]
radeonsi: eliminate unused shader outputs for separate NGG geometry shaders

This just works because the same output export code is used for VS too.

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

4 years agoradeonsi: set outputs_written_before_ps for geometry shaders too
Marek Olšák [Mon, 7 Sep 2020 10:23:33 +0000 (06:23 -0400)]
radeonsi: set outputs_written_before_ps for geometry shaders too

it will be used in following commit

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

4 years agoaco/isel: refactor emit_vop3a_instruction() to handle 2 operand instructions
Daniel Schürmann [Fri, 4 Sep 2020 23:47:30 +0000 (00:47 +0100)]
aco/isel: refactor emit_vop3a_instruction() to handle 2 operand instructions

Only AC:O has been affected.

Totals from 4 (0.00% of 136546) affected shaders (RAVEN):
CodeSize: 16428 -> 16420 (-0.05%)
Instrs: 3294 -> 3292 (-0.06%)
Cycles: 14208 -> 14200 (-0.06%)
VMEM: 936 -> 978 (+4.49%)
VClause: 80 -> 77 (-3.75%)
Copies: 211 -> 209 (-0.95%)
PreVGPRs: 127 -> 126 (-0.79%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6635>

4 years agoaco/isel: refactor code and remove unnecessary v_mov
Daniel Schürmann [Fri, 4 Sep 2020 21:01:26 +0000 (22:01 +0100)]
aco/isel: refactor code and remove unnecessary v_mov

Changes mainly due to avoided v_movs for fmin/fmax/fadd/fmul.

Totals from 12783 (9.36% of 136546) affected shaders (RAVEN):
SGPRs: 1097752 -> 1098264 (+0.05%); split: -0.09%, +0.14%
VGPRs: 856920 -> 850800 (-0.71%); split: -0.82%, +0.11%
SpillSGPRs: 49494 -> 49496 (+0.00%); split: -0.00%, +0.01%
CodeSize: 99997916 -> 99989948 (-0.01%); split: -0.04%, +0.03%
MaxWaves: 53895 -> 54448 (+1.03%)
Instrs: 19634960 -> 19632626 (-0.01%); split: -0.05%, +0.04%
Cycles: 1620601696 -> 1620900712 (+0.02%); split: -0.02%, +0.04%
VMEM: 3334181 -> 3299626 (-1.04%); split: +1.62%, -2.66%
SMEM: 865573 -> 865876 (+0.04%); split: +0.84%, -0.81%
VClause: 337100 -> 335224 (-0.56%); split: -0.88%, +0.32%
SClause: 696813 -> 697267 (+0.07%); split: -0.14%, +0.21%
Copies: 1549897 -> 1548023 (-0.12%); split: -0.52%, +0.40%
Branches: 682118 -> 682108 (-0.00%); split: -0.01%, +0.00%
PreSGPRs: 893524 -> 895129 (+0.18%); split: -0.00%, +0.18%
PreVGPRs: 790180 -> 783036 (-0.90%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6635>

4 years agoswr: Use ElemenCount constructor for LLVM 11
jzielins [Mon, 7 Sep 2020 14:49:35 +0000 (16:49 +0200)]
swr: Use ElemenCount constructor for LLVM 11

In LLVM 12 ElementCount constructor is private
and instead of using it explicitly, ::get function
should be used, but in LLVM 11, the constructor
is still the way to go.

Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski@intel.com>
Closes: #3490
Fixes: 639605e5ba947bb947313a6584ef7fbb8619e9c2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6648>

4 years agoaco: improve fsign selection
Rhys Perry [Thu, 3 Sep 2020 13:56:26 +0000 (14:56 +0100)]
aco: improve fsign selection

Idea from https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6284

fossil-db (Navi):
Totals from 4053 (2.95% of 137413) affected shaders:
SGPRs: 305810 -> 305906 (+0.03%); split: -0.01%, +0.04%
VGPRs: 249000 -> 249144 (+0.06%); split: -0.01%, +0.07%
CodeSize: 29967092 -> 29885768 (-0.27%); split: -0.27%, +0.00%
Instrs: 5749494 -> 5737971 (-0.20%); split: -0.20%, +0.00%
Cycles: 255028584 -> 254955444 (-0.03%); split: -0.04%, +0.01%

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

4 years agoaco: fix one-off error in Operand(uint16_t)
Rhys Perry [Thu, 3 Sep 2020 14:41:32 +0000 (15:41 +0100)]
aco: fix one-off error in Operand(uint16_t)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 3d6f67950d9 ('aco: improve 8/16-bit constants')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6583>

4 years agogitlab-ci: Enable unit test report for arm64_a630_traces
Alexandros Frantzis [Fri, 4 Sep 2020 11:20:39 +0000 (14:20 +0300)]
gitlab-ci: Enable unit test report for arm64_a630_traces

Inform gitlab about the JUnit XML file that tracie produces, so that the
pipeline page can present more detailed information about tracie test
results.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6598>

4 years agogitlab-ci: Enable unit test reports for lava traces jobs
Alexandros Frantzis [Fri, 4 Sep 2020 10:53:41 +0000 (13:53 +0300)]
gitlab-ci: Enable unit test reports for lava traces jobs

Download from minio the JUnit XML file that tracie produces and inform
gitlab about it, so that the pipeline page can present more detailed
information about tracie test results.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6598>

4 years agogitlab-ci: Enable unit test reports for normal runner traces jobs
Alexandros Frantzis [Fri, 4 Sep 2020 09:44:53 +0000 (12:44 +0300)]
gitlab-ci: Enable unit test reports for normal runner traces jobs

Inform gitlab about the JUnit XML file that tracie produces, so that the
pipeline page can present more detailed information about tracie test
results.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6598>

4 years agotracie: Produce JUnit XML results
Alexandros Frantzis [Thu, 3 Sep 2020 13:29:05 +0000 (16:29 +0300)]
tracie: Produce JUnit XML results

Write tracie results to the 'results/junit.xml' file using the JUnit XML
format. Among other uses, this file can be picked up by gitlab to
display more useful information to the user.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6598>

4 years agotracie: Make tests independent of environment
Alexandros Frantzis [Thu, 3 Sep 2020 11:22:40 +0000 (14:22 +0300)]
tracie: Make tests independent of environment

Provide some sensible values for required environment variables to allow
tests to run properly in any environment.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6598>

4 years agomesa/st: enable EXT_color_buffer_half_float when formats supported
Tapani Pälli [Tue, 1 Sep 2020 11:21:03 +0000 (14:21 +0300)]
mesa/st: enable EXT_color_buffer_half_float when formats supported

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6491>

4 years agomesa: add EXT_color_buffer_half_float plumbing
Tapani Pälli [Tue, 1 Sep 2020 11:20:27 +0000 (14:20 +0300)]
mesa: add EXT_color_buffer_half_float plumbing

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6491>

4 years agomesa: refactor floating point texture fbo completeness check on gles
Tapani Pälli [Fri, 28 Aug 2020 10:04:21 +0000 (13:04 +0300)]
mesa: refactor floating point texture fbo completeness check on gles

Patch introduces a helper function for checking the completeness and
fixes some of the existing checking in is_format_color_renderable. This
is done as preparation for EXT_color_buffer_half_float support.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6491>

4 years agoegl/android: HAVE_DRM_GRALLOC path fixes (v2)
Mauro Rossi [Mon, 7 Sep 2020 20:02:08 +0000 (22:02 +0200)]
egl/android: HAVE_DRM_GRALLOC path fixes (v2)

Fixes the following building errors:

external/mesa/src/egl/drivers/dri2/platform_android.c:1001:9: error: use of undeclared identifier 'dri2_img'
                                           dri2_img);
                                           ^
external/mesa/src/egl/drivers/dri2/platform_android.c:1059:17: error: incompatible pointer types assigning to '__DRIimage *' (aka 'struct __DRIimageRec *') from '_EGLImage *' (aka 'struct _egl_image *') [-Werror,-Wincompatible-pointer-types]
      dri_image = droid_create_image_from_name(disp, buf);
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.

(v2) Changelog:
- Pass NULL instead of dri_image as argument of createImageFromName()
- Delete the unused dri_image variable

Fixes: 5c8b67ed ("egl/android: Simplify droid_create_image_from_name() path")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6626>

4 years agoandroid: freedreno/common: add libmesa_git_sha1 static dependency
Mauro Rossi [Sat, 5 Sep 2020 21:31:28 +0000 (23:31 +0200)]
android: freedreno/common: add libmesa_git_sha1 static dependency

Fixes the following building error:

external/mesa/src/freedreno/common/freedreno_uuid.c:30:10: fatal error: 'git_sha1.h' file not found
         ^~~~~~~~~~~~
1 error generated.

Fixes: e7458f19e ("freedreno/uuid: Generate meaningful device and driver UUID")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6625>

4 years agoandroid: freedreno: Implement pipe screen's get_device/driver_uuid()
Mauro Rossi [Sat, 5 Sep 2020 21:23:14 +0000 (23:23 +0200)]
android: freedreno: Implement pipe screen's get_device/driver_uuid()

libfreedreno_common static dependency is need for gallium_dri target

Fixes the following building error:

ld.lld: error: undefined symbol: fd_get_device_uuid
>>> referenced by freedreno_screen.c:836 (external/mesa/src/gallium/drivers/freedreno/freedreno_screen.c:836)
>>>               freedreno_screen.o:(fd_screen_get_device_uuid) in archive out/target/product/x86_64/obj/STATIC_LIBRARIES/libmesa_pipe_freedreno_intermediates/libmesa_pipe_freedreno.a

ld.lld: error: undefined symbol: fd_get_driver_uuid
>>> referenced by freedreno_screen.c:842 (external/mesa/src/gallium/drivers/freedreno/freedreno_screen.c:842)
>>>               freedreno_screen.o:(fd_screen_get_driver_uuid) in archive out/target/product/x86_64/obj/STATIC_LIBRARIES/libmesa_pipe_freedreno_intermediates/libmesa_pipe_freedreno.a

Fixes: e3c39e505 "freedreno: Implement pipe screen's get_device/driver_uuid()"
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6625>

4 years agoradeonsi: Work around Wasteland 2 bug.
Bas Nieuwenhuizen [Mon, 7 Sep 2020 19:06:52 +0000 (21:06 +0200)]
radeonsi: Work around Wasteland 2 bug.

Confirmed by an user on AMD HW that this driconf flag works
around the issue.

Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1535
CC: mesa-stable
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6637>

4 years agonir/opt_shrink_vectors: shrink image stores using the format
Rhys Perry [Mon, 24 Aug 2020 12:58:49 +0000 (13:58 +0100)]
nir/opt_shrink_vectors: shrink image stores using the format

fossil-db (Navi):
Totals from 657 (0.48% of 135946) affected shaders:
VGPRs: 26076 -> 25520 (-2.13%); split: -2.15%, +0.02%
CodeSize: 3033016 -> 3014472 (-0.61%); split: -0.64%, +0.03%
MaxWaves: 9386 -> 9420 (+0.36%)
Instrs: 590109 -> 585502 (-0.78%); split: -0.82%, +0.04%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5772>

4 years agonir/lower_io: Fix the unknown-array-index case in get_deref_align
Jason Ekstrand [Mon, 7 Sep 2020 01:09:01 +0000 (20:09 -0500)]
nir/lower_io: Fix the unknown-array-index case in get_deref_align

The current align_mul calculation in the unknown-array-index
calculation is

    align_mul = MIN3(parent_mul,
                     min_pow2_divisor(parent_offset),
                     min_pow2_divisor(stride))

which is certainly correct if parent_offset > 0.  However, when
parent_offset = 0, min_pow2_divisor(parent_offset) isn't well-defined
and our calculation for it is 1 << -1 which isn't well-defined.  That
said.... it's not actually needed.

The offset to the base of the array is

    array_base = parent_mul * k + parent_offset

for some integer k.  When we throw in an unknown array index i, we get

    elem = parent_mul * k + parent_offset + stride * i.

If we set new_align = MIN2(parent_mul, min_pow2_divisor(stride)), then
both parent_mul and stride are divisible by new_align and

    elem = (parent_mul / new_alig) * new_align * k +
           (stride / new_align) * new_align * i + parent_offset

         = new_align * ((parent_mul / new_alig) * k +
                        (stride / new_align) * i) + parent_offset

so elem = new_align * j + parent_offset where

    j = (parent_mul / new_alig) * k + (stride / new_align) * i.

That's a very long-winded way of saying that we can delete one parameter
from the align_mul calculation and it's still fine. :-)

Fixes: 480329cf8b31 "nir: Add a helper for getting the alignment of a deref"
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Tested-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6628>

4 years agoci: Remove any existing results directory before running piglit
Michel Dänzer [Fri, 4 Sep 2020 15:31:00 +0000 (17:31 +0200)]
ci: Remove any existing results directory before running piglit

A pre-existing results directory (from a previous job) could cause a
spurious failure, see e.g.
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/4410206

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

4 years agospirv2nir: Rework argument handling
Jason Ekstrand [Fri, 4 Sep 2020 22:14:39 +0000 (17:14 -0500)]
spirv2nir: Rework argument handling

The argument handling of this little tool was pretty rubbish.  It had no
help and it required the filename to come first which is just strange.
This reworks it and makes things much nicer.  It's still rubbish but at
least there's a chance people can figure out how to use it now.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6607>

4 years agospirv: Improve the "Entry point not found" error message
Jason Ekstrand [Fri, 4 Sep 2020 21:50:09 +0000 (16:50 -0500)]
spirv: Improve the "Entry point not found" error message

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6607>

4 years agoswr: fix build with mingw
Michel Zou [Tue, 1 Sep 2020 07:22:27 +0000 (09:22 +0200)]
swr: fix build with mingw

Reviewed-by: Jan Zielinski <jan.zielinski@intel.com>
Tested-by: Prodea Alexandru-Liviu <liviuprodea@yahoo.com>
Cc: mesa-stable
closes #3454

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

4 years agoradeonsi: kill point size VS output if it's not used by the rasterizer
Marek Olšák [Sun, 6 Sep 2020 05:22:01 +0000 (01:22 -0400)]
radeonsi: kill point size VS output if it's not used by the rasterizer

Fixed-func shaders can contain the output, because their generator
doesn't consider the current primitive type into account.

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

4 years agoradeonsi: deduplicate setting key.mono.u.vs_export_prim_id
Marek Olšák [Sun, 6 Sep 2020 04:55:57 +0000 (00:55 -0400)]
radeonsi: deduplicate setting key.mono.u.vs_export_prim_id

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

4 years agoradeonsi: use shader_info::cs::local_size_variable to clean up some code
Marek Olšák [Sun, 6 Sep 2020 15:38:53 +0000 (11:38 -0400)]
radeonsi: use shader_info::cs::local_size_variable to clean up some code

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

4 years agoradeonsi: remove redundant si_shader_info::uses_derivatives
Marek Olšák [Sun, 6 Sep 2020 15:31:18 +0000 (11:31 -0400)]
radeonsi: remove redundant si_shader_info::uses_derivatives

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

4 years agoradeonsi: remove redundant si_shader_selector::max_gs_stream
Marek Olšák [Sun, 6 Sep 2020 15:26:16 +0000 (11:26 -0400)]
radeonsi: remove redundant si_shader_selector::max_gs_stream

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

4 years agoradeonsi: remove redundant GS variables in si_shader_selector
Marek Olšák [Sun, 6 Sep 2020 15:23:13 +0000 (11:23 -0400)]
radeonsi: remove redundant GS variables in si_shader_selector

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

4 years agoradeonsi: remove redundant si_shader_info::writes_memory
Marek Olšák [Sun, 6 Sep 2020 15:19:58 +0000 (11:19 -0400)]
radeonsi: remove redundant si_shader_info::writes_memory

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

4 years agoradeonsi: rename num_memory_instructions -> num_memory_stores
Marek Olšák [Sun, 6 Sep 2020 15:18:39 +0000 (11:18 -0400)]
radeonsi: rename num_memory_instructions -> num_memory_stores

it only counts stores

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

4 years agoradeonsi: reduce type sizes in si_shader_selector
Marek Olšák [Sun, 6 Sep 2020 06:50:44 +0000 (02:50 -0400)]
radeonsi: reduce type sizes in si_shader_selector

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

4 years agoradeonsi: remove redundant si_shader_info::uses_kill
Marek Olšák [Sun, 6 Sep 2020 06:40:58 +0000 (02:40 -0400)]
radeonsi: remove redundant si_shader_info::uses_kill

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

4 years agoradeonsi: merge uses_persp_opcode_interp_sample/uses_linear_opcode_interp_sample
Marek Olšák [Sun, 6 Sep 2020 06:38:09 +0000 (02:38 -0400)]
radeonsi: merge uses_persp_opcode_interp_sample/uses_linear_opcode_interp_sample

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

4 years agoradeonsi: remove unused si_shader_info::uses_(vertexid|basevertex)
Marek Olšák [Sun, 6 Sep 2020 06:36:34 +0000 (02:36 -0400)]
radeonsi: remove unused si_shader_info::uses_(vertexid|basevertex)

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

4 years agoradeonsi: remove redundant si_shader_info:*(clip|cull)* fields
Marek Olšák [Sun, 6 Sep 2020 06:30:54 +0000 (02:30 -0400)]
radeonsi: remove redundant si_shader_info:*(clip|cull)* fields

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

4 years agoradeonsi: remove redundant si_shader_info::const_buffers_declared
Marek Olšák [Sun, 6 Sep 2020 06:15:51 +0000 (02:15 -0400)]
radeonsi: remove redundant si_shader_info::const_buffers_declared

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

4 years agoradeonsi: remove redundant si_shader_info::images_declared
Marek Olšák [Sun, 6 Sep 2020 06:15:51 +0000 (02:15 -0400)]
radeonsi: remove redundant si_shader_info::images_declared

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

4 years agoradeonsi: remove redundant si_shader_info::shader_buffers_declared
Marek Olšák [Sun, 6 Sep 2020 06:15:51 +0000 (02:15 -0400)]
radeonsi: remove redundant si_shader_info::shader_buffers_declared

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

4 years agoradeonsi: remove info::samplers_declared, image_buffers, msaa_images_declared
Marek Olšák [Sun, 6 Sep 2020 06:10:33 +0000 (02:10 -0400)]
radeonsi: remove info::samplers_declared, image_buffers, msaa_images_declared

They are redundant with shader_info.

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

4 years agoradeonsi: stop using TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS
Marek Olšák [Tue, 1 Sep 2020 22:41:36 +0000 (18:41 -0400)]
radeonsi: stop using TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS

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

4 years agoradeonsi: stop using TGSI_PROPERTY_CS_LOCAL_SIZE
Marek Olšák [Tue, 1 Sep 2020 22:38:37 +0000 (18:38 -0400)]
radeonsi: stop using TGSI_PROPERTY_CS_LOCAL_SIZE

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

4 years agoradeonsi: stop using TGSI_PROPERTY_FS_DEPTH_LAYOUT
Marek Olšák [Tue, 1 Sep 2020 22:27:11 +0000 (18:27 -0400)]
radeonsi: stop using TGSI_PROPERTY_FS_DEPTH_LAYOUT

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

4 years agoradeonsi: stop using TGSI_PROPERTY_FS_COORD_PIXEL_CENTER
Marek Olšák [Tue, 1 Sep 2020 22:22:24 +0000 (18:22 -0400)]
radeonsi: stop using TGSI_PROPERTY_FS_COORD_PIXEL_CENTER

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