platform/upstream/mesa.git
3 years agogallium/tools: improve option handling in dump_state.py
Matti Hamalainen [Tue, 20 Apr 2021 12:15:59 +0000 (15:15 +0300)]
gallium/tools: improve option handling in dump_state.py

Previously we inherited some options from parse.py, but
that made no sense for some of the options that are not
needed for dump_state.py (such as --plain, as we output
only JSON format text.)

So, remove the inherit and implement filename argument
here independantly.

Signed-off-by: Matti Hamalainen <ccr@tnsp.org>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648>

3 years agogallium/tools: clean up tracediff.sh a bit
Matti Hamalainen [Tue, 20 Apr 2021 12:10:48 +0000 (15:10 +0300)]
gallium/tools: clean up tracediff.sh a bit

Clean up tracediff.sh shellscript slightly, partially in preparation
for upcoming changes. Also add a signal handler for removing the
created temporary directory and files if we are interrupted.

Also, use the new --plain option of dump.py to suppress output
of ANSI color/formatting codes, so we do not have to post-filter
them later.

Signed-off-by: Matti Hamalainen <ccr@tnsp.org>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10648>

3 years agopps: Documentation
Antonio Caggiano [Mon, 22 Mar 2021 15:37:27 +0000 (16:37 +0100)]
pps: Documentation

Add documentation for Perfetto and Gfx-pps, together with some perfetto
config files to use as a starting point.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: John Bates <jbates@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652>

3 years agopps: Gfx-pps config tool
Antonio Caggiano [Tue, 30 Mar 2021 16:03:33 +0000 (18:03 +0200)]
pps: Gfx-pps config tool

Add helpful tool to query pps capabilites such as supported devices,
counters and counter groups, and to dump counter values to stdout.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: John Bates <jbates@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652>

3 years agopps: Gfx-pps v0.3.0
Antonio Caggiano [Thu, 18 Mar 2021 17:30:45 +0000 (18:30 +0100)]
pps: Gfx-pps v0.3.0

Add the gfx-pps backbone in `src/pps`.

v2: Simplify supported drivers creation.
v3: No default getter is provided for counters.
v4: Open DRM device in read/write mode.
v5: Wait for datasource to be started.
v6: Set FIFO scheduler while sampling counters.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: John Bates <jbates@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652>

3 years agoutil: Perfetto SDK v15.0
Antonio Caggiano [Mon, 15 Mar 2021 15:07:39 +0000 (16:07 +0100)]
util: Perfetto SDK v15.0

Add Perfetto SDK v15.0 as a dependency using a meson wrap.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: John Bates <jbates@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9652>

3 years agoutil/hash_table: _mesa_hash_table_create_u32_keys()
Mike Blumenkrantz [Sat, 1 May 2021 19:08:31 +0000 (15:08 -0400)]
util/hash_table: _mesa_hash_table_create_u32_keys()

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10673>

3 years agov3d: re-enable GLSL loop unrolling
Iago Toral Quiroga [Fri, 7 May 2021 10:32:40 +0000 (12:32 +0200)]
v3d: re-enable GLSL loop unrolling

Disabling it that made us start to fail register allocation for a
few tests. Re-enable it until we figure out what is causing that.

Fixes: ca9e0871fb294 ('v3d: enable NIR loop unrolling')

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10684>

3 years agor600/sfn: lower to scalar with filter applied
Gert Wollny [Wed, 31 Mar 2021 08:55:57 +0000 (10:55 +0200)]
r600/sfn: lower to scalar with filter applied

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943>

3 years agogallium: pass lower_to_scalar_filter to lower_to_scalar pass
Gert Wollny [Wed, 31 Mar 2021 08:55:18 +0000 (10:55 +0200)]
gallium: pass lower_to_scalar_filter to lower_to_scalar pass

v2: Fix the callback name

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943>

3 years agonir: Add filter callback for lower_to_scalar to the options
Gert Wollny [Wed, 31 Mar 2021 08:54:47 +0000 (10:54 +0200)]
nir: Add filter callback for lower_to_scalar to the options

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943>

3 years agogallivm: handle texture arrays in non-fragment shaders with lod.
Dave Airlie [Fri, 7 May 2021 01:26:35 +0000 (11:26 +1000)]
gallivm: handle texture arrays in non-fragment shaders with lod.

We have to unwind the lod into the scalar path correctly.

Fixes a crash with renderdoc demo

Fixes: e168d148d76d ("gallivm/nir: handle non-uniform texture offsets")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10676>

3 years agozink: start using dynamic front face state
Mike Blumenkrantz [Tue, 2 Mar 2021 16:21:58 +0000 (11:21 -0500)]
zink: start using dynamic front face state

this doesn't actually do anything other than test the codepath since
the hashed pipeline state will still change on every frontface change,
but it's a start

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

3 years agozink: hook up dynamic dsa states
Mike Blumenkrantz [Tue, 2 Mar 2021 16:20:39 +0000 (11:20 -0500)]
zink: hook up dynamic dsa states

this is pretty straightforward, just adding some extra calls

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

3 years agozink: return current pipeline object if state hasn't changed
Mike Blumenkrantz [Tue, 19 Jan 2021 16:43:03 +0000 (11:43 -0500)]
zink: return current pipeline object if state hasn't changed

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

3 years agozink: flag pipeline for change more often when vbos change without dynamic state
Mike Blumenkrantz [Thu, 1 Apr 2021 20:36:01 +0000 (16:36 -0400)]
zink: flag pipeline for change more often when vbos change without dynamic state

this is always going to be bad for perf, but we still need to force updates anytime
we know for sure they'll be needed

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

3 years agozink: split vertex state pipeline hashing into its own value
Mike Blumenkrantz [Thu, 1 Apr 2021 20:52:27 +0000 (16:52 -0400)]
zink: split vertex state pipeline hashing into its own value

by creating a separate hash value for vertex state, changes to the vbos and
bindings requires massively less overhead as it doesn't require the rest of
the pipeline state to be rehashed

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

3 years agozink: move more vertex state stuff into the hw state
Mike Blumenkrantz [Thu, 1 Apr 2021 20:50:45 +0000 (16:50 -0400)]
zink: move more vertex state stuff into the hw state

this simplifies a lot of the hashing since only the vertex state pointer
needs to be hashed

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

3 years agozink: check descriptor layout support before creating it
Mike Blumenkrantz [Fri, 8 Jan 2021 12:59:51 +0000 (07:59 -0500)]
zink: check descriptor layout support before creating it

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

3 years agozink: use explicit types during descriptor updates
Mike Blumenkrantz [Fri, 1 Jan 2021 17:11:39 +0000 (12:11 -0500)]
zink: use explicit types during descriptor updates

less derefs

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

3 years agozink: abstract descriptor pool usage for programs
Mike Blumenkrantz [Fri, 1 Jan 2021 16:20:43 +0000 (11:20 -0500)]
zink: abstract descriptor pool usage for programs

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

3 years agozink: abstract descriptor usage for programs
Mike Blumenkrantz [Fri, 1 Jan 2021 16:06:25 +0000 (11:06 -0500)]
zink: abstract descriptor usage for programs

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

3 years agozink: abstract descriptor init
Mike Blumenkrantz [Fri, 1 Jan 2021 15:57:30 +0000 (10:57 -0500)]
zink: abstract descriptor init

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

3 years agozink: unify pipeline layout creation functions
Mike Blumenkrantz [Thu, 31 Dec 2020 15:38:09 +0000 (10:38 -0500)]
zink: unify pipeline layout creation functions

these codepaths are almost identical

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

3 years agozink: split off descriptor layout from descriptor pools
Mike Blumenkrantz [Tue, 5 Jan 2021 19:36:22 +0000 (14:36 -0500)]
zink: split off descriptor layout from descriptor pools

in theory we could have multiple pools per layout, but really it just makes
more sense to make the layouts persistent since they're more likely to be
reused

32bit compile fixes by Witold Baryluk

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

3 years agopanfrost: Enable 16-bit support on Bifrost
Alyssa Rosenzweig [Fri, 9 Apr 2021 19:44:34 +0000 (15:44 -0400)]
panfrost: Enable 16-bit support on Bifrost

Remove the PAN_MESA_DEBUG=fp16 flag that was hiding it.

Skip two buggy dEQP tests. See linked discussion. We'll need to make
sure this gets sorted out before submitting conformance, but I don't see
a test with a fix in the pipeline as valid reason to hold back valid
code.

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

3 years agopan/bi: Enable mediump BLEND lowering
Alyssa Rosenzweig [Tue, 4 May 2021 20:05:38 +0000 (16:05 -0400)]
pan/bi: Enable mediump BLEND lowering

Other lowerings will wait until we iron out various missing features.

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

3 years agopan/bi: Garbage collect bifrost_nir.h
Alyssa Rosenzweig [Tue, 4 May 2021 19:52:08 +0000 (15:52 -0400)]
pan/bi: Garbage collect bifrost_nir.h

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

3 years agopan/bi: Copyprop constants
Alyssa Rosenzweig [Tue, 13 Apr 2021 22:54:31 +0000 (18:54 -0400)]
pan/bi: Copyprop constants

Needed for constant folding to be effective. But don't copyprop into
instructions already reading from FAU, that will just end up adding more
moves!

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

3 years agopan/bi: Fix int<-->float size converts
Alyssa Rosenzweig [Tue, 13 Apr 2021 17:22:18 +0000 (13:22 -0400)]
pan/bi: Fix int<-->float size converts

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

3 years agopan/bi: Enable NIR vectorization
Alyssa Rosenzweig [Thu, 31 Dec 2020 20:00:24 +0000 (15:00 -0500)]
pan/bi: Enable NIR vectorization

We don't vectorize transcendentals, since those are scalar only in
hardware. Also don't vectorize a few places where impedance mismatches
between NIR and the hardware make handling vectors infeasible for now.

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

3 years agopan/bi: Temporarily switch back to 0/~0 bools
Alyssa Rosenzweig [Thu, 6 May 2021 22:43:00 +0000 (18:43 -0400)]
pan/bi: Temporarily switch back to 0/~0 bools

Keeps things simpler while debugging vectorization woes.

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

3 years agopan/bi: Handle make_vec with 1-bit bools
Alyssa Rosenzweig [Thu, 6 May 2021 21:57:17 +0000 (17:57 -0400)]
pan/bi: Handle make_vec with 1-bit bools

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

3 years agopan/bi: Adapt branching for 1-bit bools
Alyssa Rosenzweig [Wed, 5 May 2021 16:51:30 +0000 (12:51 -0400)]
pan/bi: Adapt branching for 1-bit bools

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

3 years agopan/bi: Change swizzled scalars to identity
Alyssa Rosenzweig [Tue, 4 May 2021 16:01:06 +0000 (12:01 -0400)]
pan/bi: Change swizzled scalars to identity

Allows packing for things like IADD.v2s16

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

3 years agopanfrost: Fix typo handling blend types
Alyssa Rosenzweig [Wed, 5 May 2021 15:27:32 +0000 (11:27 -0400)]
panfrost: Fix typo handling blend types

This was right in my head.

Fixes: 93a176b6cff ("panfrost: Key blend shaders to the input types")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9239>

3 years agopan/mdg: Model blend shader interference
Alyssa Rosenzweig [Thu, 6 May 2021 23:16:33 +0000 (19:16 -0400)]
pan/mdg: Model blend shader interference

Backport of 4439757db23 ("pan/bi: Use the interference mechanism
to describe blend shader reg use") to Midgard.

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

3 years agomesa: s/malloc/calloc/ to silence a warning
Adam Jackson [Thu, 6 May 2021 17:26:10 +0000 (13:26 -0400)]
mesa: s/malloc/calloc/ to silence a warning

gcc 11 warns:

[846/1506] Compiling C object src/mesa/libmesa_common.a.p/main_shaderapi.c.o
In function ‘shader_source’,
    inlined from ‘_mesa_ShaderSource_no_error’ at ../src/mesa/main/shaderapi.c:2137:4:
../src/mesa/main/shaderapi.c:2095:25: warning: ‘*offsets_10 + _130’ may be used uninitialized [-Wmaybe-uninitialized]
 2095 |    totalLength = offsets[count - 1] + 2;

I can't really see how it's getting to that conclusion, but allocating
`offsets` with calloc is both natural to do here and guarantees
initialization.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10671>

3 years agoformat/fxt1: Clean up fxt1_variance's argument list
Adam Jackson [Thu, 6 May 2021 16:04:33 +0000 (12:04 -0400)]
format/fxt1: Clean up fxt1_variance's argument list

gcc 11 warns:

../src/util/format/u_format_fxt1.c:940:22: warning: ‘fxt1_variance.constprop’ accessing 128 bytes in a region of size 64 [-Wstringop-overflow=]
  940 |    int32_t maxVarR = fxt1_variance(NULL, &input[N_TEXELS / 2], n_comp);

But, suspiciously, if you inline fxt1_variance the warning goes away.
What's happening is that the 2nd arg is uint8_t[N_TEXELS][MAX_COMP], so
it looks like we're passing too small of an array in since gcc knows
that `input` is also [N_TEXELS][MAX_COMP]. Fair enough. Fix the
signature to reflect what's actually going on, and remove some unused
arguments while we're at it.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10671>

3 years agoradv: advertise VK_EXT_extended_dynamic_state2
Samuel Pitoiset [Mon, 15 Mar 2021 17:56:02 +0000 (18:56 +0100)]
radv: advertise VK_EXT_extended_dynamic_state2

This only implements dynamic primitive restart enable, depth bias
enable and rasterizer discard enable. I leave logic op and patch
control points for later.

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

3 years agoradv: implement dynamic rasterizer discard enable
Samuel Pitoiset [Mon, 15 Mar 2021 18:38:50 +0000 (19:38 +0100)]
radv: implement dynamic rasterizer discard enable

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

3 years agoradv: implement dynamic primitive restart enable
Samuel Pitoiset [Mon, 15 Mar 2021 17:51:28 +0000 (18:51 +0100)]
radv: implement dynamic primitive restart enable

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

3 years agoradv: implement dynamic depth bias enable
Samuel Pitoiset [Mon, 15 Mar 2021 17:29:44 +0000 (18:29 +0100)]
radv: implement dynamic depth bias enable

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

3 years agoradv: declare new dynamic states for VK_EXT_extended_dynamic_state2
Samuel Pitoiset [Mon, 15 Mar 2021 16:42:46 +0000 (17:42 +0100)]
radv: declare new dynamic states for VK_EXT_extended_dynamic_state2

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

3 years agoradv: declare VK_EXT_extended_dynamic_state2 but leave it disabled
Samuel Pitoiset [Mon, 15 Mar 2021 17:10:54 +0000 (18:10 +0100)]
radv: declare VK_EXT_extended_dynamic_state2 but leave it disabled

To declare new prototypes.

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

3 years agoci/freedreno: Add another daily dose of a530 flakes.
Emma Anholt [Wed, 5 May 2021 21:01:06 +0000 (14:01 -0700)]
ci/freedreno: Add another daily dose of a530 flakes.

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

3 years agopanfrost/blend: Inline blend constants
Alyssa Rosenzweig [Thu, 22 Apr 2021 19:31:16 +0000 (15:31 -0400)]
panfrost/blend: Inline blend constants

If we're going to key them in NIR, we might as well get the benefit of
constant folding them too.

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

3 years agopan/mdg: Enable nir_opt_{move, sink}
Alyssa Rosenzweig [Wed, 5 May 2021 14:34:53 +0000 (10:34 -0400)]
pan/mdg: Enable nir_opt_{move, sink}

I felt bad about the last patch regressing Midgard perf, so here's some
moar Midgard perf for you ^^

total instructions in shared programs: 97089 -> 97036 (-0.05%)
instructions in affected programs: 5230 -> 5177 (-1.01%)
helped: 53
HURT: 31
helped stats (abs) min: 1 max: 17 x̄: 4.40 x̃: 6
helped stats (rel) min: 0.61% max: 12.24% x̄: 7.74% x̃: 11.54%
HURT stats (abs)   min: 1 max: 8 x̄: 5.81 x̃: 8
HURT stats (rel)   min: 1.08% max: 13.79% x̄: 9.69% x̃: 11.11%
95% mean confidence interval for instructions value: -1.89 0.63
95% mean confidence interval for instructions %-change: -3.41% 0.80%
Inconclusive result (value mean confidence interval includes 0).

total bundles in shared programs: 45612 -> 45507 (-0.23%)
bundles in affected programs: 17331 -> 17226 (-0.61%)
helped: 139
HURT: 166
helped stats (abs) min: 1 max: 21 x̄: 3.76 x̃: 2
helped stats (rel) min: 0.85% max: 18.37% x̄: 6.38% x̃: 4.55%
HURT stats (abs)   min: 1 max: 10 x̄: 2.51 x̃: 1
HURT stats (rel)   min: 0.79% max: 31.25% x̄: 7.54% x̃: 4.55%
95% mean confidence interval for bundles value: -0.90 0.21
95% mean confidence interval for bundles %-change: 0.05% 2.34%
Inconclusive result (value mean confidence interval includes 0).

total quadwords in shared programs: 77275 -> 76952 (-0.42%)
quadwords in affected programs: 32314 -> 31991 (-1.00%)
helped: 142
HURT: 179
helped stats (abs) min: 1 max: 28 x̄: 4.38 x̃: 2
helped stats (rel) min: 0.34% max: 13.79% x̄: 4.29% x̃: 2.78%
HURT stats (abs)   min: 1 max: 6 x̄: 1.67 x̃: 2
HURT stats (rel)   min: 0.44% max: 16.67% x̄: 2.93% x̃: 2.63%
95% mean confidence interval for quadwords value: -1.56 -0.45
95% mean confidence interval for quadwords %-change: -0.78% 0.25%
Inconclusive result (%-change mean confidence interval includes 0).

total registers in shared programs: 7081 -> 6771 (-4.38%)
registers in affected programs: 2217 -> 1907 (-13.98%)
helped: 193
HURT: 75
helped stats (abs) min: 1 max: 6 x̄: 2.04 x̃: 1
helped stats (rel) min: 6.25% max: 62.50% x̄: 24.32% x̃: 20.00%
HURT stats (abs)   min: 1 max: 3 x̄: 1.11 x̃: 1
HURT stats (rel)   min: 7.14% max: 50.00% x̄: 17.17% x̃: 14.29%
95% mean confidence interval for registers value: -1.37 -0.94
95% mean confidence interval for registers %-change: -15.53% -9.89%
Registers are helped.

total threads in shared programs: 5036 -> 5152 (2.30%)
threads in affected programs: 185 -> 301 (62.70%)
helped: 93
HURT: 19
helped stats (abs) min: 1 max: 2 x̄: 1.49 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs)   min: 1 max: 2 x̄: 1.21 x̃: 1
HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: 0.82 1.25
95% mean confidence interval for threads %-change: 63.96% 85.14%
Threads are helped.

total loops in shared programs: 19 -> 19 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 2 -> 0
spills in affected programs: 2 -> 0
helped: 1
HURT: 0

total fills in shared programs: 15 -> 0
fills in affected programs: 15 -> 0
helped: 1
HURT: 0

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

3 years agopan/mdg: Remove midgard_opt_copy_prop_reg
Alyssa Rosenzweig [Wed, 5 May 2021 14:28:44 +0000 (10:28 -0400)]
pan/mdg: Remove midgard_opt_copy_prop_reg

This is known broken code, and the fix is highly nontrivial. It isn't
doing terribly much for perf, so just rip off the band-aid. Prevents a
dEQP regression, and likely fixes bugs in real apps too.

total instructions in shared programs: 96640 -> 97089 (0.46%)
instructions in affected programs: 27831 -> 28280 (1.61%)
helped: 33
HURT: 301
helped stats (abs) min: 1 max: 6 x̄: 3.64 x̃: 5
helped stats (rel) min: 1.96% max: 10.00% x̄: 6.48% x̃: 7.94%
HURT stats (abs)   min: 1 max: 18 x̄: 1.89 x̃: 1
HURT stats (rel)   min: 0.46% max: 15.00% x̄: 3.17% x̃: 2.38%
95% mean confidence interval for instructions value: 1.09 1.59
95% mean confidence interval for instructions %-change: 1.80% 2.63%
Instructions are HURT.

total bundles in shared programs: 45615 -> 45612 (<.01%)
bundles in affected programs: 11257 -> 11254 (-0.03%)
helped: 121
HURT: 146
helped stats (abs) min: 1 max: 7 x̄: 2.34 x̃: 1
helped stats (rel) min: 1.22% max: 23.33% x̄: 7.85% x̃: 5.26%
HURT stats (abs)   min: 1 max: 17 x̄: 1.92 x̃: 2
HURT stats (rel)   min: 0.42% max: 25.00% x̄: 5.17% x̃: 3.85%
95% mean confidence interval for bundles value: -0.34 0.31
95% mean confidence interval for bundles %-change: -1.69% 0.23%
Inconclusive result (value mean confidence interval includes 0).

total quadwords in shared programs: 76662 -> 77275 (0.80%)
quadwords in affected programs: 20148 -> 20761 (3.04%)
helped: 28
HURT: 275
helped stats (abs) min: 1 max: 4 x̄: 1.54 x̃: 1
helped stats (rel) min: 0.43% max: 25.00% x̄: 4.89% x̃: 2.50%
HURT stats (abs)   min: 1 max: 12 x̄: 2.39 x̃: 2
HURT stats (rel)   min: 0.51% max: 28.57% x̄: 5.18% x̃: 4.26%
95% mean confidence interval for quadwords value: 1.80 2.25
95% mean confidence interval for quadwords %-change: 3.64% 4.86%
Quadwords are HURT.

total registers in shared programs: 7078 -> 7081 (0.04%)
registers in affected programs: 1028 -> 1031 (0.29%)
helped: 62
HURT: 70
helped stats (abs) min: 1 max: 2 x̄: 1.11 x̃: 1
helped stats (rel) min: 8.33% max: 50.00% x̄: 15.03% x̃: 12.50%
HURT stats (abs)   min: 1 max: 2 x̄: 1.03 x̃: 1
HURT stats (rel)   min: 8.33% max: 66.67% x̄: 20.13% x̃: 11.25%
95% mean confidence interval for registers value: -0.17 0.21
95% mean confidence interval for registers %-change: -0.14% 7.38%
Inconclusive result (value mean confidence interval includes 0).

total threads in shared programs: 5032 -> 5036 (0.08%)
threads in affected programs: 31 -> 35 (12.90%)
helped: 12
HURT: 6
helped stats (abs) min: 1 max: 2 x̄: 1.08 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs)   min: 1 max: 2 x̄: 1.50 x̃: 1
HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: -0.43 0.87
95% mean confidence interval for threads %-change: 13.82% 86.18%
Inconclusive result (value mean confidence interval includes 0).

total loops in shared programs: 19 -> 19 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 0 -> 2
spills in affected programs: 0 -> 2
helped: 0
HURT: 1

total fills in shared programs: 0 -> 15
fills in affected programs: 0 -> 15
helped: 0
HURT: 1

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

3 years agopan/mdg: Use _output_ type for outmod printing
Alyssa Rosenzweig [Wed, 5 May 2021 14:13:36 +0000 (10:13 -0400)]
pan/mdg: Use _output_ type for outmod printing

Fixes incorrect outmods printed for conversions.

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

3 years agodocs: mark off VK_KHR_vulkan_memory_model for turnip
Danylo Piliaiev [Thu, 6 May 2021 13:54:44 +0000 (16:54 +0300)]
docs: mark off VK_KHR_vulkan_memory_model for turnip

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10669>

3 years agolavapipe: don't access pipeline blend state when it should be ignored
Mike Blumenkrantz [Wed, 5 May 2021 13:29:41 +0000 (09:29 -0400)]
lavapipe: don't access pipeline blend state when it should be ignored

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

3 years agolavapipe: don't access pipeline dsa state when it should be ignored
Mike Blumenkrantz [Wed, 5 May 2021 13:29:25 +0000 (09:29 -0400)]
lavapipe: don't access pipeline dsa state when it should be ignored

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

3 years agolavapipe: don't access pipeline viewport state when it should be ignored
Mike Blumenkrantz [Wed, 5 May 2021 13:28:41 +0000 (09:28 -0400)]
lavapipe: don't access pipeline viewport state when it should be ignored

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

3 years agolavapipe: ignore tess pipeline info if no tess shaders in pipeline
Mike Blumenkrantz [Sat, 24 Apr 2021 17:17:34 +0000 (13:17 -0400)]
lavapipe: ignore tess pipeline info if no tess shaders in pipeline

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

3 years agolavapipe: don't unnecessarily flag dsa states for updating
Mike Blumenkrantz [Wed, 5 May 2021 13:26:57 +0000 (09:26 -0400)]
lavapipe: don't unnecessarily flag dsa states for updating

these force a new dsa state to be created and bound, which isn't necessary
if the same value is being reset

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

3 years agolavapipe: zero out the blend state info and flag for updating on null blend state
Mike Blumenkrantz [Wed, 5 May 2021 13:25:50 +0000 (09:25 -0400)]
lavapipe: zero out the blend state info and flag for updating on null blend state

this still needs to be updated if there's no pipeline info available

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

3 years agolavapipe: zero out the dsa state info and flag for updating on null dsa state
Mike Blumenkrantz [Wed, 5 May 2021 13:25:50 +0000 (09:25 -0400)]
lavapipe: zero out the dsa state info and flag for updating on null dsa state

this still needs to be updated if there's no pipeline info available

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

3 years agolavapipe: update more states on null multisample pipeline info
Mike Blumenkrantz [Wed, 5 May 2021 13:25:01 +0000 (09:25 -0400)]
lavapipe: update more states on null multisample pipeline info

these all need to be unset to ensure expected functionality

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

3 years agolavapipe: flag renderpasses as having color/zs attachments
Mike Blumenkrantz [Tue, 4 May 2021 15:58:43 +0000 (11:58 -0400)]
lavapipe: flag renderpasses as having color/zs attachments

it's useful to track this info for reuse

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

3 years agolavapipe: set events to the unsignalled state on creation
Mike Blumenkrantz [Tue, 4 May 2021 15:58:09 +0000 (11:58 -0400)]
lavapipe: set events to the unsignalled state on creation

this is otherwise uninitialized and not compliant with spec

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

3 years agolavapipe: do not read sampler descriptor info during update if layout has immutables
Mike Blumenkrantz [Tue, 4 May 2021 15:57:41 +0000 (11:57 -0400)]
lavapipe: do not read sampler descriptor info during update if layout has immutables

this is illegal

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

3 years agolavapipe: handle buffer sizes better in CmdBindTransformFeedbackBuffersEXT
Mike Blumenkrantz [Tue, 4 May 2021 15:56:24 +0000 (11:56 -0400)]
lavapipe: handle buffer sizes better in CmdBindTransformFeedbackBuffersEXT

according to spec, the pSizes array member is only used if the array is non-null
and the value is not VK_WHOLE_SIZE, otherwise this value is calculated based
on the buffer size - the offset

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

3 years agopan/bi: Add two tuples to a clause when needed with NOSCHED
Icecream95 [Wed, 5 May 2021 21:02:02 +0000 (09:02 +1200)]
pan/bi: Add two tuples to a clause when needed with NOSCHED

Fixes SuperTuxKart with BIFROST_MESA_DEBUG=nosched.

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

3 years agopanfrost: Always write reloaded tiles when making CRC data valid
Icecream95 [Sat, 1 May 2021 10:45:11 +0000 (22:45 +1200)]
panfrost: Always write reloaded tiles when making CRC data valid

If CRC data is currently invalid and the current batch will make it
valid, write even clean tiles to make sure CRC data is updated.

Fixes: 8ba2f9f6985 ("panfrost: Create a blitter library to replace the existing preload helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10566>

3 years agopanfrost: Make pan_select_crc_rt a non-static function
Icecream95 [Sat, 1 May 2021 10:44:45 +0000 (22:44 +1200)]
panfrost: Make pan_select_crc_rt a non-static function

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

3 years agonir: add nir_isub_imm
Mike Blumenkrantz [Wed, 5 May 2021 18:14:13 +0000 (14:14 -0400)]
nir: add nir_isub_imm

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10654>

3 years agogallium/inlines: remove atomic set from pipe_reference_init()
Mike Blumenkrantz [Wed, 5 May 2021 13:43:46 +0000 (09:43 -0400)]
gallium/inlines: remove atomic set from pipe_reference_init()

when an object is initialized with this, it should not be visible to any
other threads or contexts, so there should be no need to use an atomic set here

at the time of this commit, there are only two callers in the tree which pass
values != 1:
* zink uses a calculated number for framebuffer refcount on init (this is fine)
* aux/pb passes 0 on init (this is fine)

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

3 years agoRevert "gallium/util: Fix depth/stencil blit shaders"
Boris Brezillon [Tue, 4 May 2021 06:31:38 +0000 (08:31 +0200)]
Revert "gallium/util: Fix depth/stencil blit shaders"

This reverts commit 7ca72f172678116d29d254b786a9422b864aef3d.
Unlike what's stated in this commit, the depth or stencil components
have to be replicated on all channels, as specified in the
"Texture Sampling and Texture Formats" section of the TGSI doc
(docs/gallium/tgsi.rst).

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10649>

3 years agozink: clamp zs samplers to XXXX swizzle for all non-zero/one swizzles
Mike Blumenkrantz [Wed, 5 May 2021 13:40:51 +0000 (09:40 -0400)]
zink: clamp zs samplers to XXXX swizzle for all non-zero/one swizzles

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10649>

3 years agozink: do not ask glsl-compiler to unroll
Erik Faye-Lund [Fri, 9 Apr 2021 05:29:09 +0000 (07:29 +0200)]
zink: do not ask glsl-compiler to unroll

We don't really need loops unrolled, so let's just disable this. This is
generally recommended for NIR drivers, but we can do even better; not
even unroll in NIR. And since we don't set
nir_shader_compiler_options::max_unroll_iterations, we're already there.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10487>

3 years agolavapipe: emit correct textures_used for texture-arrays
Erik Faye-Lund [Mon, 3 May 2021 11:21:01 +0000 (13:21 +0200)]
lavapipe: emit correct textures_used for texture-arrays

When we lower a texture-lookup with a dynamic index, we need to mark the
entire array as used, because we don't know better.

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

3 years agov3d: enable NIR loop unrolling
Iago Toral Quiroga [Mon, 3 May 2021 09:12:43 +0000 (11:12 +0200)]
v3d: enable NIR loop unrolling

The GL driver was getting loop unrolling from the GLSL compiler frontend,
but NIR unrolling is more sophisticated, so prefer that.

The only caveat is that loop unrolling is implemented in the Mesa state
tracker, so our backend won't have a chance to undo the optimization if
it causes us to lower thread count or spill, so we choose to be a bit more
conservative with the configuration than what we were doing with GLSL.

Shader-db results follow. Increase in instruction counts is expected due
to additional unrolling. We lose threads in very few shaders, but we
make up for this with the additional unrolling and reduced spilling. We
also managed to get 3 more shaders to compile successfully.

total instructions in shared programs: 13416427 -> 13461431 (0.34%)
instructions in affected programs: 96936 -> 141940 (46.43%)
helped: 58
HURT: 216
Instructions are HURT.

total threads in shared programs: 410626 -> 410598 (<.01%)
threads in affected programs: 56 -> 28 (-50.00%)
helped: 0
HURT: 14
Threads are HURT.

total loops in shared programs: 2121 -> 1708 (-19.47%)
loops in affected programs: 468 -> 55 (-88.25%)
helped: 446
HURT: 47
Loops are helped.

total uniforms in shared programs: 3676567 -> 3691185 (0.40%)
uniforms in affected programs: 25304 -> 39922 (57.77%)
helped: 23
HURT: 199
Uniforms are HURT.

total spills in shared programs: 5902 -> 5727 (-2.97%)
spills in affected programs: 285 -> 110 (-61.40%)
helped: 19
HURT: 0

total fills in shared programs: 13308 -> 13121 (-1.41%)
fills in affected programs: 301 -> 114 (-62.13%)
helped: 19
HURT: 0

total sfu-stalls in shared programs: 31860 -> 32856 (3.13%)
sfu-stalls in affected programs: 1692 -> 2688 (58.87%)
helped: 25
HURT: 196
Sfu-stalls are HURT.

total inst-and-stalls in shared programs: 13448287 -> 13494287 (0.34%)
inst-and-stalls in affected programs: 98404 -> 144404 (46.75%)
helped: 57
HURT: 217
Inst-and-stalls are HURT.

total nops in shared programs: 329276 -> 329551 (0.08%)
nops in affected programs: 2189 -> 2464 (12.56%)
helped: 58
HURT: 181
Nops are HURT.

LOST:   0
GAINED: 3

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

3 years agobroadcom/compiler: specify maximum thread count in compile strategies
Iago Toral Quiroga [Wed, 5 May 2021 09:26:13 +0000 (11:26 +0200)]
broadcom/compiler: specify maximum thread count in compile strategies

Once we have exhausted compile strategies at 4 threads and we start
enabling lower thread counts, there is no point in starting compiles
with 4 threads for them, we know these will fail, so let's start at
2 in these cases.

This also has another nice implication: if the driver compiles at 4
threads and fails to register allocate, we were allowing it to try
with 2 threads, but this would only retry the register allocation
process and would not really recompile the shader with 2 threads. This
is not optimal, because at 2 threads we have more TMU fifo space for
each thread and we can do more TMU pipelining, so we were missing that
opportunity.

This improves performance in Sponza by ~1.5% and also seems to help
UE4 slightly.

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

3 years agobroadcom/compiler: refactor compile strategies
Iago Toral Quiroga [Mon, 3 May 2021 08:30:31 +0000 (10:30 +0200)]
broadcom/compiler: refactor compile strategies

Until now, if we can't compile at 4 threads we would lower thread count
with optimizations disabled, however, lowering thread count doubles the
amount of registers available per thread, so that alone is already a big
relief for register pressure so it makes sense to enable optimizations
when we do that, and progressively disable them until we enable spilling
as a last resort.

This can slightly improve performance for some applications. Sponza,
for example, gets a ~1.5% boost. I see several UE4 shaders that also get
compiled to better code at 2 threads with this, but it is more difficult
to assess how much this improves performance in practice due to the large
variance in frame times that we observe with UE4 demos.

Also, if a compiler strategy disables an optimization that did not make
any progress in the previous compile attempt, we would end up re-compiling
the exact same shader code and failing again. This, patch keeps track of
which strategies won't make progress and skips them in that case to save
some CPU time during shader compiles.

Care should be taken to ensure that we try to compile with the default
NIR scheduler at minimum thread count at least once though, so a specific
strategy for this is added, to prevent the scenario where no optimizations
are used and we skip directly to the fallback scheduler if the default
strategy fails at 4 threads.

Similarly, we now also explicitly specify which strategies are allowed to do
TMU spills and make sure we take this into account when deciding to skip
strategies. This prevents the case where no optimizations are used in a
shader and we skip directly to the fallback scheduler after failing
compilation at 2 threads with the default NIR scheduler but without trying
to spill first.

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

3 years agobroadcom/compiler: add a compiler strategy to disable loop unrolling
Iago Toral Quiroga [Mon, 3 May 2021 08:14:12 +0000 (10:14 +0200)]
broadcom/compiler: add a compiler strategy to disable loop unrolling

Loop unrolling can increase register pressure significantly, leading to
lower thread counts and spilling.

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

3 years agov3d: move NIR compiler options to GL driver
Iago Toral Quiroga [Mon, 3 May 2021 06:31:13 +0000 (08:31 +0200)]
v3d: move NIR compiler options to GL driver

The Vulkan driver was already creating and using its own set of options, so
the ones defined in the compiler are only used with GL, which is confusing.
Move them to the GL driver.

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

3 years agov3dv: setup loop unrolling
Iago Toral Quiroga [Mon, 3 May 2021 11:35:40 +0000 (13:35 +0200)]
v3dv: setup loop unrolling

We set the maximum at 16 iterations (the GL compiler chooses 32
iterations for the GLSL front-end loop unrolling pass) because we
have observed a bunch of shaders from Sascha Willems that spill
significantly with 32, leading to massive performance degradation,
while 16 avoids spilling and doesn't seem to cause visible
performance degradation compared to cases that unroll 32 without
spilling.

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

3 years agobroadcom/compiler: add a loop unrolling pass
Iago Toral Quiroga [Mon, 3 May 2021 09:33:46 +0000 (11:33 +0200)]
broadcom/compiler: add a loop unrolling pass

Right now this is useful for Vulkan onnly, because GL gets loop
unrolling from the GLSL compiler and/or mesa state tracker
NIR front-ends.

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

3 years agoRevert "CI: Disable Panfrost and radeonsi"
Tomeu Vizoso [Thu, 6 May 2021 08:31:45 +0000 (10:31 +0200)]
Revert "CI: Disable Panfrost and radeonsi"

Lab is up and running again.

This reverts commit de1a20f4bec789c690e5eeba728073ca9c9cfc08.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10663>

3 years agoradv: fix missing ITERATE_256 for D/S MSAA images that are TC-compat HTILE
Samuel Pitoiset [Mon, 3 May 2021 15:56:27 +0000 (17:56 +0200)]
radv: fix missing ITERATE_256 for D/S MSAA images that are TC-compat HTILE

To make them readable by shaders, only needed on GFX10+.

This also fixes corruption with Control and MSAA.

Cc: 21.1 mesa-stable
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/10610>

3 years agoi965: support only color formats with memory objects
Tapani Pälli [Wed, 5 May 2021 06:57:01 +0000 (09:57 +0300)]
i965: support only color formats with memory objects

There are issues with depth support and lack of support for
combined depth+stencil, let's support only color formats for now.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4712
Fixes: f73aeca0ce3 ("i965: Initial implementation for EXT_memory_object_*")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10646>

3 years agoturnip: Move the extension tables to tu_device.c
Emma Anholt [Tue, 4 May 2021 20:32:53 +0000 (13:32 -0700)]
turnip: Move the extension tables to tu_device.c

Following intel's lead in 27d49670.  In the dEQP-VK.info.* tests, this
bumps apiVersion from 1.1.128 to 1.1.177.

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

3 years agoturnip: Switch to the shared vulkan ICD generator.
Emma Anholt [Tue, 4 May 2021 20:38:49 +0000 (13:38 -0700)]
turnip: Switch to the shared vulkan ICD generator.

One less python script to maintain.

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

3 years agogallium/tgsi_exec: Simplify bounds checks on the const file.
Eric Anholt [Thu, 3 Dec 2020 23:18:45 +0000 (15:18 -0800)]
gallium/tgsi_exec: Simplify bounds checks on the const file.

We were doing two < 0 checks, when we can just treat the value as unsigned
and check against our unsigned size limit.  Cuts 2k of text from the
various inlined copies of this function.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605>

3 years agotgsi_exec: Mark the store file default case as unreachable.
Eric Anholt [Tue, 4 May 2021 04:19:38 +0000 (21:19 -0700)]
tgsi_exec: Mark the store file default case as unreachable.

It isn't reached, and shouldn't be, and it's not like returning NULL
(instead of the &null case for TGSI_FILE_NULL) will do anything good.

Shaves another tiny bit of dead code off of release builds.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605>

3 years agotgsi_exec: Drop unused destination dimension support.
Eric Anholt [Tue, 4 May 2021 04:07:53 +0000 (21:07 -0700)]
tgsi_exec: Drop unused destination dimension support.

As you can see, nothing used the index2d value we computed.  Turns out
this does remove some unused code from release builds.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605>

3 years agogallium/tgsi_exec: Drop the unused dst_datatypes from dest stores.
Eric Anholt [Wed, 6 Jan 2021 21:06:55 +0000 (13:06 -0800)]
gallium/tgsi_exec: Drop the unused dst_datatypes from dest stores.

It was just for the disabled check_inf_or_nan debugging, and if you want
to do that then you should do it with an assert at the end of
exec_instruction using tgsi_opcode_infer_type().

Despite the fact that this operand was dead, it actually reduces generated
code in release builds.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10605>

3 years agozink: remove incorrect border-swizzle assumption
Erik Faye-Lund [Mon, 19 Apr 2021 12:19:53 +0000 (14:19 +0200)]
zink: remove incorrect border-swizzle assumption

According to the Khronos issue[1], it seems like RADV and NVIDIA is in
the wrong, so let's turn the logic around here.

This makes us do the right thing for Lavapipe, and we should probablt
remove RADV from this list once !9731 lands.

[1]: https://github.com/KhronosGroup/Vulkan-Docs/issues/1421

Fixes: cdb9a4775bf ("zink: set PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10321>

3 years agovtn: Use relaxed 24bit opcodes for CL 24bit math
Jesse Natalie [Fri, 30 Apr 2021 18:47:15 +0000 (11:47 -0700)]
vtn: Use relaxed 24bit opcodes for CL 24bit math

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549>

3 years agonir: Add relaxed 24bit opcodes
Jesse Natalie [Fri, 30 Apr 2021 18:46:09 +0000 (11:46 -0700)]
nir: Add relaxed 24bit opcodes

These are equivalent to the 32bit opcodes if there are no more efficient
24bit opcodes available, but inputs are guaranteed to already be 24bit,
so the 24bit opcodes can be used instead if they exist and are efficient.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549>

3 years agollvmpipe: Fix optimization loop to actually loop
Jesse Natalie [Fri, 30 Apr 2021 22:42:38 +0000 (15:42 -0700)]
llvmpipe: Fix optimization loop to actually loop

Reviewed-by: Dave Airlie <airlied@redhat.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10549>

3 years agofreedreno/a5xx: Fix up border color pointers.
Eric Anholt [Mon, 29 Mar 2021 21:11:28 +0000 (14:11 -0700)]
freedreno/a5xx: Fix up border color pointers.

We were forgetting to increment in the loop, but also it looks from blob
dumps on Pixel 2 like all the pointers it emitted were shifted up by 3
compared to our xml, and that's the same shift that a6xx uses for its
pointers.  None of the tests seem to use more than one
border-color-requiring texture, so it's hard to tell.

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

3 years agoCI: Disable Panfrost and radeonsi
Daniel Stone [Wed, 5 May 2021 20:47:58 +0000 (21:47 +0100)]
CI: Disable Panfrost and radeonsi

The Cambridge office is having connection difficulty; disable the jobs
until it comes back.

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

3 years agofreedreno/tools: Fix async flush vs fdperf/computerator
Rob Clark [Tue, 4 May 2021 16:03:43 +0000 (09:03 -0700)]
freedreno/tools: Fix async flush vs fdperf/computerator

They need to wait on the ready fence to ensure the submit has been
flushed to the kernel.

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

3 years agomesa: NOTE! Default branch is now main
Jordan Justen [Mon, 26 Apr 2021 18:54:39 +0000 (11:54 -0700)]
mesa: NOTE! Default branch is now main

To update your local repository to use the new default branch, these
commands may help:

$ git fetch origin
$ git checkout master
$ git branch -m main
$ git branch --set-upstream-to=origin/main
$ git remote set-head origin --auto

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
3 years agodocs: Rename master branch to main
Jordan Justen [Mon, 26 Apr 2021 20:51:33 +0000 (13:51 -0700)]
docs: Rename master branch to main

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
3 years agodocs/releasing.rst: Rename master branch to main
Jordan Justen [Mon, 26 Apr 2021 20:48:30 +0000 (13:48 -0700)]
docs/releasing.rst: Rename master branch to main

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
3 years agoissue_templates/Bug Report: Rename master branch to main
Jordan Justen [Mon, 26 Apr 2021 20:17:49 +0000 (13:17 -0700)]
issue_templates/Bug Report: Rename master branch to main

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
3 years ago.gitlab-ci.yml: Use main branch for gitlab ci
Jordan Justen [Mon, 26 Apr 2021 20:16:55 +0000 (13:16 -0700)]
.gitlab-ci.yml: Use main branch for gitlab ci

Reworks:
 * Fix mesa/mesamaster typo to mesa/mesa main (anholt)
 * Use $CI_DEFAULT_BRANCH (eric_engestrom)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>