platform/upstream/mesa.git
3 years agoutil/disk_cache: move cache tests to the util directory
Timothy Arceri [Mon, 1 Mar 2021 04:26:36 +0000 (15:26 +1100)]
util/disk_cache: move cache tests to the util directory

The cache has been detangled from glsl and used outside it (with Vulkan drivers)
for years now.

This also cleans up the dependancies in the build file. The test doesn't
depend on the glsl lib but rather the util lib.

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

3 years agolavapipe: VK_EXT_extended_dynamic_state support
Dave Airlie [Mon, 1 Mar 2021 05:52:07 +0000 (15:52 +1000)]
lavapipe: VK_EXT_extended_dynamic_state support

zink can use this in some paths, and it's not a crazy thing to support
for lavapipe.

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

3 years agoradeonsi: don't index si_context::shaders with enum gl_shader_stage
Marek Olšák [Fri, 26 Feb 2021 23:01:19 +0000 (18:01 -0500)]
radeonsi: don't index si_context::shaders with enum gl_shader_stage

Fixes: a8373b3d387 "radeonsi: store si_context::xxx_shader members in union"

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9313>

3 years agolavapipe: Define supported extensions in C
Dave Airlie [Tue, 16 Feb 2021 04:17:20 +0000 (14:17 +1000)]
lavapipe: Define supported extensions in C

One less python generator, like anv/radv

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9075>

3 years agolavapipe: expose a 1.0 vulkan API for now.
Dave Airlie [Mon, 1 Mar 2021 03:08:46 +0000 (13:08 +1000)]
lavapipe: expose a 1.0 vulkan API for now.

lavapipe doesn't have all 1.1 features yet, just return
the baseline 1.0 API always.

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

3 years agozink/instance: work with vulkan 1.0 and later loader.
Dave Airlie [Mon, 1 Mar 2021 03:07:10 +0000 (13:07 +1000)]
zink/instance: work with vulkan 1.0 and later loader.

If zink is meant to work against Vulkan 1.0 API then it
should expose the 1.0 API as create time as well as always
ask for all the vulkan 1.0 extensions.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9075>

3 years agomesa/st: even better no-oping for clears
Mike Blumenkrantz [Mon, 1 Mar 2021 21:57:35 +0000 (16:57 -0500)]
mesa/st: even better no-oping for clears

<imirkin> zmike: re 6a8c51dc5a4 -- couldn't minx be > maxx after the clamping? in nouveau i did >= for the bail condition

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9350>

3 years agozink: ci updates
Mike Blumenkrantz [Mon, 1 Mar 2021 22:11:15 +0000 (17:11 -0500)]
zink: ci updates

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

3 years agozink: handle GLSL_SAMPLER_DIM_EXTERNAL in ntv
Mike Blumenkrantz [Fri, 9 Oct 2020 21:32:59 +0000 (17:32 -0400)]
zink: handle GLSL_SAMPLER_DIM_EXTERNAL in ntv

this fixes most of the tests that use it

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

3 years agotnl: Call _mesa_matrix_analyse to make sure the inverse MVP is updated
Kenneth Graunke [Mon, 1 Mar 2021 19:55:42 +0000 (11:55 -0800)]
tnl: Call _mesa_matrix_analyse to make sure the inverse MVP is updated

A recent commit stopped updating the inverse MVP matrix, because usually
only GLSL built-ins need it.  However, TNL also needs it.  So make sure
it's correct when needed.

Fixes: 10371c520c1 ("mesa: don't compute the ModelView * Projection matrix if not used")
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9346>

3 years agoandroid: driconf: Generate a static table when no xmlconfig
Mauro Rossi [Thu, 25 Feb 2021 20:54:00 +0000 (21:54 +0100)]
android: driconf: Generate a static table when no xmlconfig

Fixes the following building error:

FAILED: out/target/product/x86_64/obj_x86/STATIC_LIBRARIES/libmesa_util_intermediates/xmlconfig.o
...
external/mesa/src/util/xmlconfig.c:1030:12: fatal error: 'driconf_static.h' file not found
           ^~~~~~~~~~~~~~~~~~
1 error generated.

Fixes: a6b0ceb ("driconf: Generate a static table when no xmlconfig")
Acked-by: Rob Clark <robclark@freedesktop.org>
Tested-by: Marijn Suijten <marijn.suijten@somainline.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9294>

3 years agodriconf: avoid Non-ASCII character error in driconf_static.py
Mauro Rossi [Thu, 25 Feb 2021 20:55:31 +0000 (21:55 +0100)]
driconf: avoid Non-ASCII character error in driconf_static.py

MR to move to python3 in Android build gen rules is still pending

The change is to avoid following building error:

FAILED: out/target/product/x86_64/gen/STATIC_LIBRARIES/libmesa_util_intermediates/driconf_static.h
/bin/bash -c "/usr/bin/python external/mesa/src/util/driconf_static.py external/mesa/src/util/00-mesa-defaults.conf > out/target/product/x86_64/gen/STATIC_LIBRARIES/libmesa_util_intermediates/driconf_static.h"
  File "external/mesa/src/util/driconf_static.py", line 2
SyntaxError: Non-ASCII character '\xc2' in file external/mesa/src/util/driconf_static.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Fixes: a6b0ceb ("driconf: Generate a static table when no xmlconfig")
Acked-by: Rob Clark <robclark@freedesktop.org>
Tested-by: Marijn Suijten <marijn.suijten@somainline.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9294>

3 years agod3d12: Handle null constant buffers
Jesse Natalie [Mon, 1 Mar 2021 17:37:57 +0000 (09:37 -0800)]
d3d12: Handle null constant buffers

RuneScape ends up hitting this path, and it's easy enough to get
some well-defined behavior instead of a crash.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9342>

3 years agomesa/st: no-op scissored clear calls with size zero
Mike Blumenkrantz [Mon, 1 Mar 2021 19:53:50 +0000 (14:53 -0500)]
mesa/st: no-op scissored clear calls with size zero

Wx0 and 0xH should result in no-ops in the driver, so they can just
become no-ops before they reach the driver to save some validation later

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

3 years agomesa/st: clamp scissored clear regions to fb size
Mike Blumenkrantz [Mon, 1 Mar 2021 19:52:25 +0000 (14:52 -0500)]
mesa/st: clamp scissored clear regions to fb size

these should never be larger than the fb and drivers shouldn't have to
care about it

Fixes: 1c8bcad81a7 ("gallium: add pipe cap for scissored clears and pass scissor state to clear() hook")

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

3 years agofreedreno/a6xx: Fix uncompressed resource vs stale CSO
Rob Clark [Sun, 28 Feb 2021 19:06:13 +0000 (11:06 -0800)]
freedreno/a6xx: Fix uncompressed resource vs stale CSO

A sequence like:

1) create sampler view CSO with UBWC resource
2) later create another sampler view or image view with the same
   resource, but a format that triggers demoting the resource to
   uncompressed
3) bind CSO created in step #1

would not work correctly, because the CSO created in step #1 is still
setup for UBWC, despite the fact that the resource had been demoted to
uncompressed.

Fortunately this is easy enough to detect, as the resource's seqno would
have been updated.

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

3 years agofreedreno/a6xx: Always pass ctx to fd6_emit_textures()
Rob Clark [Sun, 28 Feb 2021 19:04:42 +0000 (11:04 -0800)]
freedreno/a6xx: Always pass ctx to fd6_emit_textures()

Prep for next patch.

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

3 years agozink: force batch flush if batches are using more than 1/10 total system memory
Mike Blumenkrantz [Mon, 28 Sep 2020 14:51:57 +0000 (10:51 -0400)]
zink: force batch flush if batches are using more than 1/10 total system memory

this is only tracking memory used by resources referenced in the batch, but it
can be adjusted a bit if we see that we're flushing too often

fixes spec@!opengl 1.1@streaming-texture-leak hogging all system memory and ooming

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

3 years agozink: track resource mem usage per batch
Mike Blumenkrantz [Mon, 28 Sep 2020 14:51:06 +0000 (10:51 -0400)]
zink: track resource mem usage per batch

we want to be able to track this so we can check whether a given batch is
going wild with memory usage for resources that might be pending free once
the batch finishes

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

3 years agozink: store total memory size on zink_screen
Mike Blumenkrantz [Mon, 28 Sep 2020 14:50:23 +0000 (10:50 -0400)]
zink: store total memory size on zink_screen

need this for oom handling

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

3 years agoci/broadcom: retry always when serial log timeout
Juan A. Suarez Romero [Mon, 1 Mar 2021 12:44:52 +0000 (13:44 +0100)]
ci/broadcom: retry always when serial log timeout

So far we were retrying the testing (through device rebooting) if we did
not detect the boot sequence.

But found a couple of times that the serial log can also be "lost"
during the testing process. In all those times a manual retry of the job
was enough to complete the test.

Thus, let's apply the retry once automatically in this case.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9335>

3 years agoci/baremetal: highlight message errors
Juan A. Suarez Romero [Mon, 1 Mar 2021 12:20:03 +0000 (13:20 +0100)]
ci/baremetal: highlight message errors

Highlight in red errors from the baremetal run, so user is more aware of
what happened.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9335>

3 years agoradv: remove useless decompression of the DS resolve attachment
Samuel Pitoiset [Wed, 24 Feb 2021 17:59:38 +0000 (18:59 +0100)]
radv: remove useless decompression of the DS resolve attachment

The DS resolve attachment is the destination attachment, it doesn't
need to be decompressed before resolving the depth/stencil attachment.

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

3 years agonir/copy_prop: use nir_{instr,if}_rewrite_{src,condition}_ssa
Rhys Perry [Fri, 29 Jan 2021 17:42:36 +0000 (17:42 +0000)]
nir/copy_prop: use nir_{instr,if}_rewrite_{src,condition}_ssa

Compile-time (nir_copy_prop):
Difference at 95.0% confidence
-2470.88 +/- 19.8762
-35.7461% +/- 0.247259%
(Student's t, pooled s = 23.4747)

Compile-time (overall):
Difference at 95.0% confidence
-2175.72 +/- 178.786
-1.73627% +/- 0.140826%
(Student's t, pooled s = 211.155)

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

3 years agonir/copy_prop: visit copies instead of sources
Rhys Perry [Fri, 29 Jan 2021 17:29:32 +0000 (17:29 +0000)]
nir/copy_prop: visit copies instead of sources

There are less copy instructions than sources, so instead of visiting each
source and rewriting it if it's uses a copy instruction, visit each copy
instruction and rewrite it's users.

Besides improving compile time, this also has a side effect of fixing a
rare situation where copy-propagation does not happen:
loop {
   a = phi ..., b
   c = vec ...
   b = mov c.y
}
It might have been the case that a phi source could not be rewritten until
the copy was visited later.

Compile-time (nir_copy_prop):
Difference at 95.0% confidence
-2613.13 +/- 15.2094
-27.4333% +/- 0.150247%
(Student's t, pooled s = 17.963)

Comple-time (overall):
Difference at 95.0% confidence
-2627.89 +/- 201.557
-2.05404% +/- 0.156221%
(Student's t, pooled s = 238.048)

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

3 years agonir/copy_prop: remove unused copies
Rhys Perry [Fri, 29 Jan 2021 14:32:50 +0000 (14:32 +0000)]
nir/copy_prop: remove unused copies

These were hurting performance of other passes.

Compile-time (overall):
Difference at 95.0% confidence
-5496.3 +/- 219.752
-4.11912% +/- 0.160285%
(Student's t, pooled s = 259.538)

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

3 years agonir: add nir_ssa_def_is_unused()
Rhys Perry [Tue, 2 Feb 2021 16:00:53 +0000 (16:00 +0000)]
nir: add nir_ssa_def_is_unused()

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

3 years agopan/mdg: prevent csel_v from being scheduled alongside writeout
Italo Nicola [Fri, 26 Feb 2021 10:52:55 +0000 (10:52 +0000)]
pan/mdg: prevent csel_v from being scheduled alongside writeout

Midgard writeout arguments need to be written to in the same bundle the
writeout happens.  Both csel, csel_v and their float variants also
require their conditional to be performed on the same bundle.

This patch prevents scheduling csel the same bundle as a writeout,
fixing the scheduling issue.

But... there's still room for optimizations since in some cases it might
be possible to fit all these instructions in the same bundle.

No shader-db changes.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9340>

3 years agopanfrost/lcra: Fix constraint counting
Alyssa Rosenzweig [Mon, 1 Mar 2021 16:01:22 +0000 (16:01 +0000)]
panfrost/lcra: Fix constraint counting

We need to iterate the whole row, we can't be clever and only look at
one side, the symmetry doesn't work like that. See the original paper.

total instructions in shared programs: 69392 -> 69322 (-0.10%)
instructions in affected programs: 9002 -> 8932 (-0.78%)
helped: 82
HURT: 28
Instructions are helped.

total bundles in shared programs: 32225 -> 32155 (-0.22%)
bundles in affected programs: 4286 -> 4216 (-1.63%)
helped: 82
HURT: 28
Bundles are helped.

total quadwords in shared programs: 56102 -> 56102 (0.00%)
quadwords in affected programs: 0 -> 0
helped: 0
HURT: 0

total registers in shared programs: 4552 -> 4572 (0.44%)
registers in affected programs: 298 -> 318 (6.71%)
helped: 18
HURT: 38
Registers are HURT.

total threads in shared programs: 3772 -> 3775 (0.08%)
threads in affected programs: 84 -> 87 (3.57%)
helped: 15
HURT: 14
Inconclusive result (value mean confidence interval includes 0).

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

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

Fixes: 66ad64d73d2 ("pan/midgard: Implement linearly-constrained register allocation")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9338>

3 years agozink: track all framebuffers per batch
Mike Blumenkrantz [Thu, 25 Feb 2021 21:30:34 +0000 (16:30 -0500)]
zink: track all framebuffers per batch

now that 1 batch != 1 renderpass, this needs to be a set

Fixes: 1cb3015a31c ("zink: just end the current renderpass in zink_batch_no_rp()")

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

3 years agozink: handle null src for fb refs
Mike Blumenkrantz [Mon, 1 Mar 2021 15:40:05 +0000 (10:40 -0500)]
zink: handle null src for fb refs

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

3 years agozink: add more usage bits for buffer resource creation
Mike Blumenkrantz [Wed, 19 Aug 2020 14:10:30 +0000 (10:10 -0400)]
zink: add more usage bits for buffer resource creation

gallium doesn't give us enough info here, so yolo

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

3 years agozink: don't start renderpasses during descriptor update
Mike Blumenkrantz [Thu, 25 Feb 2021 15:32:41 +0000 (10:32 -0500)]
zink: don't start renderpasses during descriptor update

this is unnecessary

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

3 years agoradv: Add nodisplaydcc option.
Bas Nieuwenhuizen [Sun, 28 Feb 2021 01:59:25 +0000 (02:59 +0100)]
radv: Add nodisplaydcc option.

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

3 years agoradv: Add sam option.
Bas Nieuwenhuizen [Sat, 27 Feb 2021 19:16:21 +0000 (20:16 +0100)]
radv: Add sam option.

So that people without large BAR can try this out.

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

3 years agov3dv: fix branching to large secondaries with more than one BCL buffer.
Iago Toral Quiroga [Mon, 1 Mar 2021 09:42:42 +0000 (10:42 +0100)]
v3dv: fix branching to large secondaries with more than one BCL buffer.

Fixes:
dEQP-VK.api.command_buffers.record_many_draws_secondary_*

Tested-by: Juan A. Suarez <jasuarez@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9333>

3 years agoradv: Enable linear sampling for depth textures.
Bas Nieuwenhuizen [Sun, 28 Feb 2021 02:09:48 +0000 (03:09 +0100)]
radv: Enable linear sampling for depth textures.

Turns out there are CTS tests.

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

3 years agoradeonsi,radv: do not overallocate the SQTT buffer size
Samuel Pitoiset [Fri, 26 Feb 2021 14:19:25 +0000 (15:19 +0100)]
radeonsi,radv: do not overallocate the SQTT buffer size

The number of shader engines isn't always 4.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9307>

3 years agoRevert "radv: do not overallocate the SQTT buffer"
Samuel Pitoiset [Fri, 26 Feb 2021 14:23:33 +0000 (15:23 +0100)]
Revert "radv: do not overallocate the SQTT buffer"

This fixes computing the thread trace data offset.

This reverts commit c7e6f4ff3da39f36fdda8f0ec6eea4925cd3afdc.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9307>

3 years agoradv: exclude perf counters for SQTT also on GFX10.3
Samuel Pitoiset [Fri, 26 Feb 2021 15:36:39 +0000 (16:36 +0100)]
radv: exclude perf counters for SQTT also on GFX10.3

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

3 years agoradv: fix exporting SQTT pipelines with LLVM
Samuel Pitoiset [Fri, 26 Feb 2021 07:53:57 +0000 (08:53 +0100)]
radv: fix exporting SQTT pipelines with LLVM

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

3 years agoradv: always select the first active CU when profiling with SQTT
Samuel Pitoiset [Fri, 26 Feb 2021 07:43:48 +0000 (08:43 +0100)]
radv: always select the first active CU when profiling with SQTT

This probably fixes instruction tracing on many chips.

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

3 years agoradv: remove duplicate REG_INCLUDE_CONTEXT setting for SQTT
Samuel Pitoiset [Fri, 26 Feb 2021 07:27:16 +0000 (08:27 +0100)]
radv: remove duplicate REG_INCLUDE_CONTEXT setting for SQTT

It was set twice.

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

3 years agov3dv: Output a message if file open fails in physical_device_init
Andreas Bergmeier [Sat, 27 Feb 2021 22:28:19 +0000 (22:28 +0000)]
v3dv: Output a message if file open fails in physical_device_init

In the caller, this error simply gets mapped to VK_ERROR_INIT[...].
Especially for users it is very valuable to know what the driver
tried and what kind of failure occured. Thus just straight out log
to stderr.

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

3 years agogitlab-ci: bump piglit commit for windows
Tapani Pälli [Mon, 1 Mar 2021 06:39:16 +0000 (08:39 +0200)]
gitlab-ci: bump piglit commit for windows

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8520>

3 years agomesa: add check that non base level attachment is mipmap complete
Tapani Pälli [Tue, 19 Jan 2021 05:43:41 +0000 (07:43 +0200)]
mesa: add check that non base level attachment is mipmap complete

Patch adds a check for mipmap completeness of framebuffer object texture
attachments. Since a glTexImage call might have updated miplevels
meanwhile, we test the completeness before setting framebuffer object
incomplete.

Fixes some upcoming framebuffer completeness CTS tests that explicitly
test case where we have mipmap incomplete non base level texture which
should make also framebuffer object incomplete. After update to the
texture it should make framebuffer object complete again.

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

3 years agoi965: Call util_cpu_detect() early in screen creation
Jordan Justen [Sun, 28 Feb 2021 21:23:07 +0000 (13:23 -0800)]
i965: Call util_cpu_detect() early in screen creation

This helps to avoid this assertion in debug builds:

src/util/u_cpu_detect.h:116: util_get_cpu_caps: Assertion `util_cpu_caps.nr_cpus >= 1' failed.

Fixes: a9618e7c421 ("util: Add accessor for util_cpu_caps")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9325>

3 years agomeson: Add missing lavapipe dep
Greg V [Sat, 14 Nov 2020 14:53:28 +0000 (17:53 +0300)]
meson: Add missing lavapipe dep

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

3 years agofrontends/va: Use correct size for secondary planes.
Bas Nieuwenhuizen [Tue, 23 Feb 2021 23:00:58 +0000 (00:00 +0100)]
frontends/va: Use correct size for secondary planes.

And initialize the whandle format while at it.

Fixes: f7a4051b836 ("radeonsi: Check pitch and offset for validity.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4126
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9236>

3 years agoradeonsi/uvd: make format modifiers-aware
Simon Ser [Fri, 26 Feb 2021 15:49:17 +0000 (16:49 +0100)]
radeonsi/uvd: make format modifiers-aware

When format modifiers are supported, use
resource_create_with_modifiers instead of resource_create. This
allows radeonsi to set the modifier field, and allows VA-API
clients to have a proper modifier instead of
DRM_FORMAT_MOD_INVALID.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9308>

3 years agodocs/features: Add OpenCL status
Pierre Moreau [Thu, 7 May 2020 11:45:11 +0000 (13:45 +0200)]
docs/features: Add OpenCL status

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/142

Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4979>

3 years agoci: add libdrm to the x86_test-vk container
Andres Gomez [Wed, 17 Feb 2021 16:23:30 +0000 (18:23 +0200)]
ci: add libdrm to the x86_test-vk container

Fixes: 5d0ba8b1834 (ci: Split building of libdrm to its own script)
Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9102>

3 years agomesa: ensure parameter list capacity before associating uniform storage
Andrii Simiklit [Thu, 25 Feb 2021 12:28:24 +0000 (14:28 +0200)]
mesa: ensure parameter list capacity before associating uniform storage

We have to reserve at lease 16 program parameters in storage to
avoid its reallocation.

v2: move allocation to `st_deserialise_ir_program` and add helper for that
                     ( Eric Anholt <eric@anholt.net> )

v3 amend comments a bit

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4352
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9282>

3 years agoanv: group as many command buffers into a single execbuf
Lionel Landwerlin [Wed, 9 Dec 2020 11:23:16 +0000 (13:23 +0200)]
anv: group as many command buffers into a single execbuf

When semaphores are not involved, try to batch things up as much as
possible across VkSubmitInfo and also batch command buffers within a
VkSubmitInfo.

v2: Reuse anv_cmd_buffer_is_chainable()

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>

3 years agoanv: allow multiple command buffers in anv_queue_submit
Lionel Landwerlin [Wed, 9 Dec 2020 11:22:45 +0000 (13:22 +0200)]
anv: allow multiple command buffers in anv_queue_submit

v2: Fixup crash spotted by Mark about missing alloc vfuncs

v3: Fixup double iteration over device->memory_objects (that ought to
    be expensive...) (Ken)

v4: Add more asserts for non-softpin cases (Ken)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>

3 years agoanv: end command buffer with a potential jump
Lionel Landwerlin [Wed, 9 Dec 2020 11:19:30 +0000 (13:19 +0200)]
anv: end command buffer with a potential jump

We would like to chain multiple primary command buffer to be submitted
together to i915. For prepare this, add end the command buffers with a
MI_BATCH_BUFFER_START and at submit time, replace it with
MI_BATHC_BUFFER_END if needed.

v2: Don't even consider non softpin platforms

v3: Fix inverted condition

v4: Limit is_chainable() to checking device->use_softpin (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>

3 years agoanv: track the end of the command buffers
Lionel Landwerlin [Wed, 9 Dec 2020 09:56:31 +0000 (11:56 +0200)]
anv: track the end of the command buffers

Where MI_BATCH_BUFFER_END is recorded.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>

3 years agoanv: make use of new helper function directly in anv_QueueSubmit()
Lionel Landwerlin [Sun, 6 Dec 2020 21:38:03 +0000 (23:38 +0200)]
anv: make use of new helper function directly in anv_QueueSubmit()

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2371>

3 years agoradv: Expose robustBufferAccessUpdateAfterBind correctly.
Bas Nieuwenhuizen [Thu, 25 Feb 2021 12:29:09 +0000 (13:29 +0100)]
radv: Expose robustBufferAccessUpdateAfterBind correctly.

We do support it.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4351
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9281>

3 years agomesa: skip a subset of _mesa_update_state if no relevant flags are set
Marek Olšák [Wed, 3 Feb 2021 07:40:59 +0000 (02:40 -0500)]
mesa: skip a subset of _mesa_update_state if no relevant flags are set

We only need to check 12 out of 32 flags.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update tnl spaces on irrelevant _NEW_POINT/TEXTURE_STATE changes
Marek Olšák [Wed, 3 Feb 2021 19:02:39 +0000 (14:02 -0500)]
mesa: don't update tnl spaces on irrelevant _NEW_POINT/TEXTURE_STATE changes

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update the fixed-func frag prog on irrelevant _NEW_COLOR changes
Marek Olšák [Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)]
mesa: don't update the fixed-func frag prog on irrelevant _NEW_COLOR changes

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update fixed-func programs on irrelevant _NEW_RENDER_MODE changes
Marek Olšák [Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)]
mesa: don't update fixed-func programs on irrelevant _NEW_RENDER_MODE changes

The fixed-func vertex program uses it too, which was ignored. This commit
fixes it.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update fixed-func programs on irrelevant _NEW_FOG changes
Marek Olšák [Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)]
mesa: don't update fixed-func programs on irrelevant _NEW_FOG changes

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update fixed-func programs on irrelevant _NEW_POINT changes
Marek Olšák [Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)]
mesa: don't update fixed-func programs on irrelevant _NEW_POINT changes

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't update fixed-func vert prog on irrelevant _NEW_TRANSFORM changes
Marek Olšák [Wed, 3 Feb 2021 18:13:51 +0000 (13:13 -0500)]
mesa: don't update fixed-func vert prog on irrelevant _NEW_TRANSFORM changes

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: only update fixed-func programs on texture matrix enablement changes
Marek Olšák [Wed, 3 Feb 2021 18:03:24 +0000 (13:03 -0500)]
mesa: only update fixed-func programs on texture matrix enablement changes

This should reduce fixed-func program key recomputations.

I also update the fixed-func fragment program, which was incorrectly
ignored because it's clearly used there.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: move _mesa_update_pixel out of _mesa_update_state
Marek Olšák [Wed, 3 Feb 2021 17:56:52 +0000 (12:56 -0500)]
mesa: move _mesa_update_pixel out of _mesa_update_state

This only has to be called in a few places and not in normal draw calls.

egl_image_target_texture doesn't call  _mesa_update_pixel because it only
assigns an EGL image to a texture object.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: be precise about when to set _NEW_CURRENT_ATTRIB and _NEW_MATERIAL
Marek Olšák [Wed, 3 Feb 2021 17:41:18 +0000 (12:41 -0500)]
mesa: be precise about when to set _NEW_CURRENT_ATTRIB and _NEW_MATERIAL

This commit fixes _mesa_update_color_material, which allows cleaning up
the unnecessary state flagging.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agovbo: don't call update_color_material in copy_to_current if it's a no-op
Marek Olšák [Wed, 3 Feb 2021 16:58:49 +0000 (11:58 -0500)]
vbo: don't call update_color_material in copy_to_current if it's a no-op

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agovbo: optimize copy_to_current functions
Marek Olšák [Tue, 2 Feb 2021 01:01:13 +0000 (20:01 -0500)]
vbo: optimize copy_to_current functions

- execute vbo_set_vertex_format in a separate skipable conditional block
- replace dmul with dmul_shift
- don't check <= VBO_ATTRIB_MAT_BACK_INDEXES because there is no attrib
  above that

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: merge STATE_LIGHT_ATTENUATION and STATE_LIGHT_POSITION_* parameters
Marek Olšák [Sun, 13 Dec 2020 04:04:56 +0000 (23:04 -0500)]
mesa: merge STATE_LIGHT_ATTENUATION and STATE_LIGHT_POSITION_* parameters

This decreases the CPU time spent in fetch_state.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: merge STATE_LIGHTPROD parameters
Marek Olšák [Sat, 5 Dec 2020 21:00:14 +0000 (16:00 -0500)]
mesa: merge STATE_LIGHTPROD parameters

This decreases the CPU time spent in fetch_state.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: sort state parameters for ffvp to enable better parameter merging
Marek Olšák [Mon, 1 Feb 2021 23:55:42 +0000 (18:55 -0500)]
mesa: sort state parameters for ffvp to enable better parameter merging

_mesa_optimize_state_parameters will benefit from this.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: remove the fixed-func vert prog dependency on all texture states
Marek Olšák [Mon, 1 Feb 2021 21:57:12 +0000 (16:57 -0500)]
mesa: remove the fixed-func vert prog dependency on all texture states

Just flag _NEW_FF_VERT_PROGRAM where needed. There are only a few places
that must do it.

Also do the same with _NEW_FF_FRAG_PROGRAM, but this is not sufficient
for the ff frag prog to ignore texture states.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: don't push/pop ctx->Texture._* derived states
Marek Olšák [Wed, 3 Feb 2021 18:54:34 +0000 (13:54 -0500)]
mesa: don't push/pop ctx->Texture._* derived states

They are always recomputed by _mesa_update_state, which will need the old
values, so that it can update other dependent states if needed.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: remove _NEW_LIGHT_FF_PROGRAM in favor of _NEW_FF_(VERT|FRAG)_PROGRAM
Marek Olšák [Mon, 1 Feb 2021 21:09:04 +0000 (16:09 -0500)]
mesa: remove _NEW_LIGHT_FF_PROGRAM in favor of _NEW_FF_(VERT|FRAG)_PROGRAM

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

3 years agomesa: remove _NEW_VARYING_VP_INPUTS in favor of _NEW_FF_(VERT|FRAG)_PROGRAM
Marek Olšák [Mon, 1 Feb 2021 21:09:04 +0000 (16:09 -0500)]
mesa: remove _NEW_VARYING_VP_INPUTS in favor of _NEW_FF_(VERT|FRAG)_PROGRAM

This adds _NEW_FF_FRAG_PROGRAM.

_mesa_set_varying_vp_inputs flags both fixed-func programs because both use
the state.

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

3 years agomesa: don't update derived material values in _mesa_update_state and elsewhere
Marek Olšák [Mon, 1 Feb 2021 20:46:25 +0000 (15:46 -0500)]
mesa: don't update derived material values in _mesa_update_state and elsewhere

To my great surprise, many drivers don't use these values at all.
Move the update to the places where they are used.

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

3 years agomesa: add _NEW_MATERIAL to reduce the weight of _NEW_LIGHT_CONSTANTS
Marek Olšák [Mon, 1 Feb 2021 20:07:31 +0000 (15:07 -0500)]
mesa: add _NEW_MATERIAL to reduce the weight of _NEW_LIGHT_CONSTANTS

This reduces no-op compute_light_positions in _mesa_update_state.

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

3 years agomesa: don't compute the ModelView * Projection matrix if not used
Marek Olšák [Mon, 1 Feb 2021 19:21:29 +0000 (14:21 -0500)]
mesa: don't compute the ModelView * Projection matrix if not used

Only GLSL built-in uniforms use it.

This further reduces the time spent in _mesa_update_state.

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

3 years agomesa: don't compute the inverted projection matrix if not used
Marek Olšák [Mon, 1 Feb 2021 19:03:46 +0000 (14:03 -0500)]
mesa: don't compute the inverted projection matrix if not used

Only clip planes and GLSL built-in uniforms use it.

update_projection (called by _mesa_update_state) removes
the _math_matrix_analyse call, reducing the time spent
in _mesa_update_state.

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

3 years agomesa: rework _MESA_NEW_NEED_EYE_COORDS to reduce fixed-func program updates
Marek Olšák [Mon, 1 Feb 2021 18:17:13 +0000 (13:17 -0500)]
mesa: rework _MESA_NEW_NEED_EYE_COORDS to reduce fixed-func program updates

This eliminates a lot of the remaining no-op fixed-func program key
recomputations in _mesa_update_state.

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

3 years agomesa: split _NEW_LIGHT into 3 flags: _NEW_LIGHT_(FF_PROGRAM|CONSTANTS|STATE)
Marek Olšák [Mon, 1 Feb 2021 09:07:18 +0000 (04:07 -0500)]
mesa: split _NEW_LIGHT into 3 flags: _NEW_LIGHT_(FF_PROGRAM|CONSTANTS|STATE)

_NEW_LIGHT_CONSTANTS: state parameters
_NEW_LIGHT_FF_PROGRAM: keys for fixed-func programs
_NEW_LIGHT_STATE: gallium rasterizer state

This reduces:
- the number of no-op fixed-func program key recomputations
  in _mesa_update_state
- the number of no-op rasterizer state updates in st/mesa

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8850>

3 years agomesa: move fixed-func-related _mesa_update_state code closer together
Marek Olšák [Mon, 1 Feb 2021 05:48:03 +0000 (00:48 -0500)]
mesa: move fixed-func-related _mesa_update_state code closer together

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

3 years agomesa: remove unnecessary NewState flagging for glPopAttrib(GL_ENABLE_BIT)
Marek Olšák [Mon, 1 Feb 2021 04:10:26 +0000 (23:10 -0500)]
mesa: remove unnecessary NewState flagging for glPopAttrib(GL_ENABLE_BIT)

pop_enable_group calls _mesa_set_enable for every state it changes,
so we don't need do anything else.

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

3 years agoac/rgp: Only report double the prims per clock on GFX10.
Bas Nieuwenhuizen [Fri, 26 Feb 2021 22:59:52 +0000 (23:59 +0100)]
ac/rgp: Only report double the prims per clock on GFX10.

Misinterpreted review comment.

Fixes: 4ded99f99dd ("ac/rgp: report the number of primitives per clock")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9312>

3 years agonir: fix build at -O1
Rhys Perry [Fri, 26 Feb 2021 09:08:56 +0000 (09:08 +0000)]
nir: fix build at -O1

At -O1 with GCC 10.2.1, _nir_visit_dest_indirect (declared ALWAYS_INLINE)
will fail to inline if it's caller (nir_foreach_dest) is not inlined,
because _nir_visit_dest_indirect is passed as a function pointer. This
results in a compilation error.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
Fixes: 336bcbacd05 ("nir: inline nir_foreach_{src,dest}")
Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4353
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9301>

3 years agogallium: call util_cpu_detect()
Christian Gmeiner [Fri, 26 Feb 2021 21:05:42 +0000 (22:05 +0100)]
gallium: call util_cpu_detect()

Fix undefined behavior from using util_cpu_caps.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9311>

3 years agoturnip/ir3: check for bindless IBOs in atomic dests fixup
Danylo Piliaiev [Fri, 26 Feb 2021 20:24:37 +0000 (22:24 +0200)]
turnip/ir3: check for bindless IBOs in atomic dests fixup

Otherwise destinations may remain unfixed because ir3_shader_nibo
doesn't count bindless IBOs.

Fixes tests:
 dEQP-VK.image.atomic_operations.*intermediate_values

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

3 years agoutil: add mesa_glthread for Valheim in OpenGL mode.
Tamara Schmitz [Thu, 25 Feb 2021 21:30:18 +0000 (21:30 +0000)]
util: add mesa_glthread for Valheim in OpenGL mode.

Drastically reduces hitching when traversing the landscape.

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

3 years agoetnaviv: extend lower ubo tests
Christian Gmeiner [Fri, 26 Feb 2021 08:05:57 +0000 (09:05 +0100)]
etnaviv: extend lower ubo tests

Test a full transformation path (load_uniform -> load_ubo -> load_uniform)
and validate the load_uniform offset.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9305>

3 years agoetnaviv: fix etna_nir_lower_ubo_to_uniform pass
Christian Gmeiner [Thu, 25 Feb 2021 13:01:28 +0000 (14:01 +0100)]
etnaviv: fix etna_nir_lower_ubo_to_uniform pass

The restoring of the acutal uniform offset was wrong.

Fixes: 1837135f7ca ("etnaviv: nir: add ubo lowering pass")
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9305>

3 years agodocs: Document GL_EXT_depth_bounds_test
Adam Jackson [Thu, 25 Feb 2021 18:58:37 +0000 (13:58 -0500)]
docs: Document GL_EXT_depth_bounds_test

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

3 years agosoftpipe: Implement GL_EXT_depth_bounds_test
Adam Jackson [Thu, 25 Feb 2021 00:20:20 +0000 (19:20 -0500)]
softpipe: Implement GL_EXT_depth_bounds_test

This is a little bit contorted because the Z storage for the tile is
either float or int depending on the Z format, so we have to be careful
about types when comparing.

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

3 years agosoftpipe: Fix depth comparison with float Z formats
Adam Jackson [Wed, 24 Feb 2021 22:31:53 +0000 (17:31 -0500)]
softpipe: Fix depth comparison with float Z formats

We just stuff the Z bits into [bq]zzzz literally for floats, but
comparing those like they're integers only works for == and !=.

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

3 years agomesa: Store depth bounds test bounds as GLclampd
Adam Jackson [Thu, 25 Feb 2021 00:57:50 +0000 (19:57 -0500)]
mesa: Store depth bounds test bounds as GLclampd

... instead of truncating to GLfloat. This seems somewhat silly since
the "clamp" part means only values [0.0, 1.0] are defined, but if the
depth buffer is Z32_UNORM then storing as GLfloat means you lose 8 bits
of depth bounds precision. This happens not to matter, yet, since swrast
classic doesn't support Z32_UNORM for depth, and the software gallium
drivers don't support EXT_depth_bounds_test. But the latter part is
about to change.

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

3 years agoutil: Add accessor for util_cpu_caps
Rob Clark [Thu, 25 Feb 2021 18:04:50 +0000 (10:04 -0800)]
util: Add accessor for util_cpu_caps

In release builds, there should be no change, but in debug builds the
assert will help us catch undefined behavior resulting from using
util_cpu_caps before it is initialized.

With fix for u_half_test for MSVC from Jesse Natalie squashed in.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9266>

3 years agoutil/u_queue: Ensure num_cpu_mask_bits is valid
Rob Clark [Wed, 24 Feb 2021 21:59:15 +0000 (13:59 -0800)]
util/u_queue: Ensure num_cpu_mask_bits is valid

I noticed that we were hitting this before st_create_context() called
util_cpu_detect() and so num_cpu_mask_bits was zero.  But there is no
harm in calling util_cpu_detect(), so lets just call it here to be safe.

Fixes: d877451b48a ("util/u_queue: add UTIL_QUEUE_INIT_SET_FULL_THREAD_AFFINITY")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9266>

3 years agoac/rgp: report the number of primitives per clock
Samuel Pitoiset [Fri, 26 Feb 2021 13:07:56 +0000 (14:07 +0100)]
ac/rgp: report the number of primitives per clock

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9303>