platform/upstream/mesa.git
19 months agoradv: move emitting the strmout buffer in CmdDrawIndirectByteCountEXT()
Samuel Pitoiset [Mon, 12 Dec 2022 15:56:42 +0000 (16:56 +0100)]
radv: move emitting the strmout buffer in CmdDrawIndirectByteCountEXT()

This doesn't need to be in the generic draw path because only one
draw command uses it.

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

19 months agoradv: flush DFSM on CB_TARGET_MASK changes when it's emitted
Samuel Pitoiset [Mon, 12 Dec 2022 15:37:21 +0000 (16:37 +0100)]
radv: flush DFSM on CB_TARGET_MASK changes when it's emitted

To avoid performing the same check twice and to emit it at the right
place.

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

19 months agofrontends/va: Update state var frame_num disregarding cap check
Sil Vilerino [Tue, 3 Jan 2023 15:16:29 +0000 (10:16 -0500)]
frontends/va: Update state var frame_num disregarding cap check

The frame_num variable must be updated for encode entrypoint disregarding
the outcome of the PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME cap check

fixes: 229c6f79a660e5c7999ffc94e1fb514692df3b6a ("frontends/va: Implement vaSyncBuffer")

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20490>

19 months agoradeonsi,radv/llvm: fix amdgpu-color/depth-export with epilogs
Rhys Perry [Mon, 2 Jan 2023 18:05:14 +0000 (18:05 +0000)]
radeonsi,radv/llvm: fix amdgpu-color/depth-export with epilogs

The main shader wouldn't use ac_build_export(), and the discard exit would
have no export.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 1174ab6d56e ("ac/llvm: use amdgpu-color-export/amdgpu-depth-export")
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7991
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20482>

19 months agopostprocess: move the definition of pp_filters into **/pp_init.c
David Heidelberg [Mon, 2 Jan 2023 23:25:52 +0000 (00:25 +0100)]
postprocess: move the definition of pp_filters into **/pp_init.c

An LTO-friendly move.

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7881

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20374>

19 months agoci: build test LTO
David Heidelberg [Sat, 17 Dec 2022 23:30:49 +0000 (00:30 +0100)]
ci: build test LTO

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20374>

19 months agozink: use EXT_descriptor_buffer with ZINK_DESCRIPTORS=db
Mike Blumenkrantz [Wed, 26 Oct 2022 16:08:08 +0000 (12:08 -0400)]
zink: use EXT_descriptor_buffer with ZINK_DESCRIPTORS=db

this should be bug-free, as it passes cts/piglit/gaming on multiple drivers,
but since it's new, it stays behind an env var for at least one release

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

19 months agozink: move some descriptor data into a substruct
Mike Blumenkrantz [Mon, 24 Oct 2022 20:40:32 +0000 (16:40 -0400)]
zink: move some descriptor data into a substruct

no functional changes

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

19 months agoRevert "zink: remove descriptor-mode selection infrastructure"
Mike Blumenkrantz [Mon, 2 Jan 2023 14:31:20 +0000 (09:31 -0500)]
Revert "zink: remove descriptor-mode selection infrastructure"

this would've been in-use, but khronos changes while I was on vacation
blocked a merge

This reverts commit 3f371d4e940509c73fa19c4e50ae319e75636eb0.

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

19 months agoanv: implement Wa_14015814527 for task shaders
Tapani Pälli [Thu, 29 Dec 2022 07:52:36 +0000 (09:52 +0200)]
anv: implement Wa_14015814527 for task shaders

After using task shader, we need to emit a zero URB state and a
nullprim (empty pipe control) before rendering with primitives.

After this, a normal URB state needs to be returned, this will
happen when pipeline batch is emitted during pipeline switch.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20334>

19 months agonir: basic tests for nir_opt_shrink_vectors
Pavel Ondračka [Sat, 31 Dec 2022 13:45:22 +0000 (14:45 +0100)]
nir: basic tests for nir_opt_shrink_vectors

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20213>

19 months agonir: fix shrinking of load_const for large vectors
Pavel Ondračka [Sat, 31 Dec 2022 11:04:28 +0000 (12:04 +0100)]
nir: fix shrinking of load_const for large vectors

Specifically when shrinking load_const with number of components
> 5, if the final number of components is not allowed (for example 8->6)
it would report false for progress even if we actually did some
reshuffling and also it would skip on the rewrite of the readers.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20213>

19 months agonir: remove duplicate alu channels in nir_opt_shrink_vectors
Pavel Ondračka [Sun, 4 Dec 2022 16:34:37 +0000 (17:34 +0100)]
nir: remove duplicate alu channels in nir_opt_shrink_vectors

This will clean code like:
   vec3 32 ssa_8 = frcp ssa_7.www
   vec3 32 ssa_9 = fmul ssa_7.xyz, ssa_8
into
   vec1 32 ssa_8 = frcp ssa_7.w
   vec3 32 ssa_9 = fmul ssa_7.xyz, ssa_8.xxx

This helps r300 driver because we can only do single channel for math
ops at a time, so the first version would result in three frcp
instructions. The nir_opt_shrink_vectors comments even claim the pass
should be doing this, however it actually does it only for nir_op_vecx
instructions, so extend this for generic alu instructions.

RV530 shader-db:
total instructions in shared programs: 135032 -> 133707 (-0.98%)
instructions in affected programs: 46121 -> 44796 (-2.87%)
helped: 452
HURT: 26
total temps in shared programs: 17051 -> 17033 (-0.11%)
temps in affected programs: 1509 -> 1491 (-1.19%)
helped: 91
HURT: 30

12.02->12.08 (+0.5%) fps gain in Unigine Sanctuary (n=5) with RV530

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7051
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reiewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20213>

19 months agopan/bi: Move Bifrost specific C code to src/compiler/bifrost
Alyssa Rosenzweig [Thu, 29 Dec 2022 19:26:26 +0000 (14:26 -0500)]
pan/bi: Move Bifrost specific C code to src/compiler/bifrost

The goal is to make files at the root of src/compiler/ apply to both Bifrost and
Valhall, while ISA-specific code (e.g. instruction packing) code goes in
compiler/bifrost/ or compiler/valhall/. This is what Valhall is already doing,
the Bifrost specific stuff was just grandfathered in.

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

19 months agopan/bi: Remove standalone compiler
Alyssa Rosenzweig [Thu, 29 Dec 2022 19:32:12 +0000 (14:32 -0500)]
pan/bi: Remove standalone compiler

This functionality is now available on Linux with drm-shim + shader-db, and I
suspect the version bundled here is broken anyway. Strictly this drops
Windows/macOS support for the known-broken frontend to the shader compiler but I
can't say I'm terribly worried about that.

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

19 months agopan/bi: Rename panfrost/bifrost -> panfrost/compiler
Alyssa Rosenzweig [Thu, 29 Dec 2022 19:37:06 +0000 (14:37 -0500)]
pan/bi: Rename panfrost/bifrost -> panfrost/compiler

This is the compiler for both Bifrost and Valhall, and presumably future
Mali GPUs too. Give it a more generic name so we can use the bifrost/ path for
something a bit more specific.

For historical reasons the compiler's name is still "bifrost" and uses the
prefix `bi_`. I think that's ok in the same way that i915 in the kernel supports
way more than just i915.

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

19 months agohasvk: Add layer with work-around for Doom 64 texture corruption
Sviatoslav Peleshko [Thu, 3 Nov 2022 14:01:58 +0000 (16:01 +0200)]
hasvk: Add layer with work-around for Doom 64 texture corruption

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7817
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19502>

19 months agoanv: Add layer with work-around for Doom 64 texture corruption
Sviatoslav Peleshko [Wed, 2 Nov 2022 23:41:53 +0000 (01:41 +0200)]
anv: Add layer with work-around for Doom 64 texture corruption

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7817
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19502>

19 months agoradv: Add an app layer driconf and use it for Metro Exodus
Konstantin Seurer [Tue, 27 Dec 2022 15:57:36 +0000 (16:57 +0100)]
radv: Add an app layer driconf and use it for Metro Exodus

To make adding more application layers easier.

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

19 months agoradv: Clean up entrypoints generation
Konstantin Seurer [Tue, 27 Dec 2022 15:32:12 +0000 (16:32 +0100)]
radv: Clean up entrypoints generation

This should make it easier to add new tracing and application layers.

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

19 months agoradv: Use multiple dispatch tables for layers
Konstantin Seurer [Tue, 27 Dec 2022 15:25:12 +0000 (16:25 +0100)]
radv: Use multiple dispatch tables for layers

Every layer has its own dispatch table that it can use to call down the
layer stack. This allows us to use RRA and RGP tracing simultaneously.
Using application layers with tracing should work as well.

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

19 months agoradv: Move dispatch table init into a separate function
Konstantin Seurer [Tue, 27 Dec 2022 13:37:01 +0000 (14:37 +0100)]
radv: Move dispatch table init into a separate function

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

19 months agovulkan: Allow passing NULL dispatch tables to vk_device_init
Konstantin Seurer [Tue, 27 Dec 2022 13:35:23 +0000 (14:35 +0100)]
vulkan: Allow passing NULL dispatch tables to vk_device_init

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

19 months agor600: Don't merge alu groups with variable length dot using t-slot
Gert Wollny [Thu, 29 Dec 2022 11:14:23 +0000 (12:14 +0100)]
r600: Don't merge alu groups with variable length dot using t-slot

Since the variable length dot must stay in its slot configuration
do not try to merge the group with the previous group when an op may be
moved to the t slot, because this may lead to breaking the multi-slot
operation.

Fixes:  357e5fac9953b26eedc8819ab528b981be6e1b69
   r600/sfn: Use variable length DOT on Evergreen and Cayman

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600/sfn: Set minimum required registers based on array allocation
Gert Wollny [Thu, 29 Dec 2022 10:56:38 +0000 (11:56 +0100)]
r600/sfn: Set minimum required registers based on array allocation

In the rare case that after register allocation the highest directly
accessed register index is below the highest value used for an
indirectly accessed array we have to ensure that the shader allocates
enough registers to account for these indices that are not seen by the
assembler.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7966
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600: enable ARB_gl_spirv
Gert Wollny [Wed, 28 Dec 2022 16:59:07 +0000 (17:59 +0100)]
r600: enable ARB_gl_spirv

76 out of 86 piglits pass.
Some fail because SSBOs are only supported for FS and CS on r600, but
the piglits try to use SSBOs with VS, and there are piglits that try to
bind SSBO at 8, and only 0-7 is supported as binding point.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600: Fix early exit when setting SSBOs
Gert Wollny [Wed, 28 Dec 2022 16:56:41 +0000 (17:56 +0100)]
r600: Fix early exit when setting SSBOs

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600/sfn: Fix FS primid input slot
Gert Wollny [Wed, 28 Dec 2022 16:34:45 +0000 (17:34 +0100)]
r600/sfn: Fix FS primid input slot

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600/sfn: Fix warning for mixed use of enum and integer
Gert Wollny [Thu, 22 Dec 2022 12:54:36 +0000 (13:54 +0100)]
r600/sfn: Fix warning for mixed use of enum and integer

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600/sfn: pre-evaluate allowed dest mask in Alu instructions
Gert Wollny [Thu, 22 Dec 2022 12:21:03 +0000 (13:21 +0100)]
r600/sfn: pre-evaluate allowed dest mask in Alu instructions

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agor600/sfn: move handling of legacy math rules to assembler
Gert Wollny [Thu, 22 Dec 2022 12:11:19 +0000 (13:11 +0100)]
r600/sfn: move handling of legacy math rules to assembler

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20451>

19 months agost/mesa: Fix free of non-shareable shaders on context destroy
Erico Nunes [Tue, 27 Dec 2022 11:32:07 +0000 (12:32 +0100)]
st/mesa: Fix free of non-shareable shaders on context destroy

On drivers that do not set PIPE_CAP_SHAREABLE_SHADERS,
st_destroy_program_variants() may reach st_save_zombie_shader()
which accesses st->zombie_shaders.mutex.
Destroying st->zombie_shaders.mutex before destroying program variants
may result in an invalid access in a multiple context scenario for
those drivers.
Move the mutex destroy call to after program variants destroy so that
it doesn't hit a deadlock on context destroy.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20458>

19 months agoac/llvm: use amdgpu-color-export/amdgpu-depth-export
Rhys Perry [Fri, 16 Dec 2022 12:24:40 +0000 (12:24 +0000)]
ac/llvm: use amdgpu-color-export/amdgpu-depth-export

These are necessary to use the correct export target on GFX11:
https://reviews.llvm.org/D128185

Fixes artifacts on Lara in Rise of the Tomb Raider benchmark and hair in
The Witcher 3 (classic).

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20357>

19 months agoradv: Decouple radv_before_taskmesh_draw from radv_before_draw.
Timur Kristóf [Wed, 21 Dec 2022 16:32:57 +0000 (17:32 +0100)]
radv: Decouple radv_before_taskmesh_draw from radv_before_draw.

radv_before_taskmesh_draw will no longer call radv_before_draw and
instead implement the necessary functionality on its own.

radv_before_draw will no longer have to emit mesh shader descriptors.

As a result, both functions should have a lower CPU overhead now.

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

19 months agoradv: fix missing initialization of radv_resolve_barrier::dst_stage_mask
Samuel Pitoiset [Fri, 16 Dec 2022 07:12:50 +0000 (08:12 +0100)]
radv: fix missing initialization of radv_resolve_barrier::dst_stage_mask

Otherwise, this value is unitialized when read in
radv_ace_internal_barrier().

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7909
Fixes: 4c6f83006d4 ("radv: Synchronization for task shaders.")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20351>

19 months agoiris: implement PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE
Marek Olšák [Sun, 18 Dec 2022 22:02:37 +0000 (17:02 -0500)]
iris: implement PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE

required by glthread

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

19 months agoglthread,gallium: add a CAP to disable glBufferSubData optimization in glthread
Marek Olšák [Sat, 24 Dec 2022 16:04:08 +0000 (11:04 -0500)]
glthread,gallium: add a CAP to disable glBufferSubData optimization in glthread

it regresses performance on iris

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

19 months agoaco: Reassign dead definitions of p_split_vector to associated register
Daniel Schürmann [Wed, 2 Nov 2022 12:35:57 +0000 (13:35 +0100)]
aco: Reassign dead definitions of p_split_vector to associated register

Any unused split_vector definition can always use the same register
as the operand. This avoids creating unnecessary copies.

Fossil DB stats on Rembrandt (RDNA2):
Totals from 3904 (2.89% of 134906) affected shaders:
CodeSize: 18326692 -> 18271688 (-0.30%)
Instrs: 3386632 -> 3372888 (-0.41%)
Latency: 42337481 -> 42330085 (-0.02%); split: -0.02%, +0.00%
InvThroughput: 6566731 -> 6566424 (-0.00%); split: -0.01%, +0.00%
Copies: 224301 -> 210559 (-6.13%)

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

19 months agoaco: Try to reassign split vector registers post-RA.
Timur Kristóf [Tue, 26 Apr 2022 09:09:47 +0000 (11:09 +0200)]
aco: Try to reassign split vector registers post-RA.

Eliminate unnecessary copies when the operand registers of a
p_split_vector instruction are not clobbered between the p_split_vector
and the user of its definitions.

This happens when p_split_vector doesn't kill its operand and its
definitions have a shorter lifespan that the operand. It affects every
NGG culling shader among other things.

This optimization exists because it's too difficult to solve it
in RA, and should be removed after we solved this in RA.

v2 by Daniel Schürmann:
- Rearrange and simplify conditions for the new optimization
- Fix a few bugs

v3 by Daniel Schürmann:
- Check number of encoded ALU operands

Fossil DB stats on Rembrandt (RDNA2):
Totals from 64896 (48.10% of 134906) affected shaders:
CodeSize: 175693348 -> 175434944 (-0.15%)
Instrs: 33333912 -> 33269388 (-0.19%)
Latency: 183766084 -> 183763432 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 28589651 -> 28589340 (-0.00%); split: -0.00%, +0.00%
Copies: 2806550 -> 2742038 (-2.30%)

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

19 months agoaco/optimizer_postRA: Distinguish overwritten untrackable and subdword.
Timur Kristóf [Thu, 3 Nov 2022 17:30:28 +0000 (18:30 +0100)]
aco/optimizer_postRA: Distinguish overwritten untrackable and subdword.

This allows is_overwritten_since to return false when the last
writer instruction of a register can't be tracked but we know it wasn't
written in the current block.

Fossil DB stats on Rembrandt (RDNA2):
Totals from 1163 (0.86% of 134906) affected shaders:
CodeSize: 9815920 -> 9805016 (-0.11%)
Instrs: 1843688 -> 1840962 (-0.15%)
Latency: 19219153 -> 19209171 (-0.05%)
InvThroughput: 3354375 -> 3353852 (-0.02%)

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

19 months agoaco/optimizer_postRA: Initialize loop header with preheader information
Daniel Schürmann [Mon, 14 Nov 2022 17:04:23 +0000 (18:04 +0100)]
aco/optimizer_postRA: Initialize loop header with preheader information

This works because of SSA and should be safer than just setting 'not_written_yet'.

No Fossil DB changes on Rembrandt (RDNA2).

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

19 months agoaco: fix reset_block_regs() in postRA-optimizer
Daniel Schürmann [Mon, 14 Nov 2022 15:17:25 +0000 (16:17 +0100)]
aco: fix reset_block_regs() in postRA-optimizer

Accidentally, we picked the index of the predecessors instead of the predecessors.

Totals from 8496 (6.30% of 134913) affected shaders: (GFX10.3)
CodeSize: 64070724 -> 64022516 (-0.08%); split: -0.08%, +0.00%
Instrs: 11932750 -> 11920698 (-0.10%); split: -0.10%, +0.00%
Latency: 144040266 -> 144017062 (-0.02%); split: -0.02%, +0.00%
InvThroughput: 29327735 -> 29326421 (-0.00%); split: -0.00%, +0.00%

Fossil DB stats on Rembrandt (RDNA2):
Totals from 4488 (3.33% of 134906) affected shaders:
CodeSize: 42759736 -> 42735392 (-0.06%); split: -0.06%, +0.00%
Instrs: 7960522 -> 7954436 (-0.08%); split: -0.08%, +0.00%
Latency: 96192647 -> 96172571 (-0.02%); split: -0.02%, +0.00%
InvThroughput: 19313576 -> 19312575 (-0.01%); split: -0.01%, +0.00%

Fixes: 75967a4814be7988afc20e59bac4b48bafacab00 ('aco/optimizer_postRA: Speed up reset_block() with predecessors.')
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16161>

19 months agoaux/trace: Add pipe_context::set_hw_atomic_buffers
Gert Wollny [Thu, 29 Dec 2022 16:44:39 +0000 (17:44 +0100)]
aux/trace: Add pipe_context::set_hw_atomic_buffers

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20453>

19 months agoradv: Advertise rt pipelines for DOOM Eternal
Konstantin Seurer [Fri, 30 Dec 2022 15:45:13 +0000 (16:45 +0100)]
radv: Advertise rt pipelines for DOOM Eternal

The game has been fixed recently.

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

19 months agoradv: Advertise rt pipelines for Quake II RTX
Konstantin Seurer [Fri, 30 Dec 2022 15:35:37 +0000 (16:35 +0100)]
radv: Advertise rt pipelines for Quake II RTX

The game has been working for a while now.

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

19 months agoradv: Add a driconf to advertise rt pipelines
Konstantin Seurer [Fri, 30 Dec 2022 15:35:00 +0000 (16:35 +0100)]
radv: Add a driconf to advertise rt pipelines

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

19 months agoisaspec: encode: handle special fieldname properties
Christian Gmeiner [Sun, 18 Dec 2022 12:33:15 +0000 (13:33 +0100)]
isaspec: encode: handle special fieldname properties

Without this change a fieldname like '{DST::align=12}' was not used for
encoding. Change the regex to include such fieldnames and remove the fieldname
property in a later step.

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

19 months agodrm-shim: Use hide_drm_device_path() to hide other drm devices
Jordan Justen [Fri, 21 Oct 2022 22:34:06 +0000 (15:34 -0700)]
drm-shim: Use hide_drm_device_path() to hide other drm devices

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19241>

19 months agodrm-shim: Add hide_drm_device_path()
Jordan Justen [Fri, 21 Oct 2022 20:47:11 +0000 (13:47 -0700)]
drm-shim: Add hide_drm_device_path()

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19241>

19 months agodrm-shim: Convert nfasprintf and nfvasprintf to functions
Jordan Justen [Mon, 24 Oct 2022 18:56:58 +0000 (11:56 -0700)]
drm-shim: Convert nfasprintf and nfvasprintf to functions

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19241>

19 months agofreedreno/a6xx: Linewrap
Rob Clark [Thu, 29 Dec 2022 17:14:24 +0000 (09:14 -0800)]
freedreno/a6xx: Linewrap

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

19 months agofreedreno: Fix use_fence_fd typo
Rob Clark [Sun, 25 Dec 2022 17:22:21 +0000 (09:22 -0800)]
freedreno: Fix use_fence_fd typo

This was causing excessive flushes, because requesting an out-fence fd
triggers the drm layer to flush deferred submits instead of continued
merging.

Fixes: 48b5164356c ("freedreno/drm: Return fence from submit flush")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20465>

19 months agofreedreno/drm: Flush deferred submits at context teardown
Rob Clark [Fri, 30 Dec 2022 18:25:48 +0000 (10:25 -0800)]
freedreno/drm: Flush deferred submits at context teardown

If we don't flush deferred submits, we could end up waiting on a fence
that is never signaled.

Fixes: 48b5164356c ("freedreno/drm: Return fence from submit flush")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20465>

19 months agofreedreno: Add some more traces
Rob Clark [Sun, 25 Dec 2022 16:31:48 +0000 (08:31 -0800)]
freedreno: Add some more traces

Add some more traces around fence waits to better see potential stalls.

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

19 months agofreedreno: Remove some impossible NULL checks
Rob Clark [Sat, 3 Dec 2022 19:46:45 +0000 (11:46 -0800)]
freedreno: Remove some impossible NULL checks

There is only one special case (a3xx/a4xx queries) were a pipe_resource
is allocated without a backing buffer (because we don't know the needed
size until we know the # of bins).  But those will never end up as an
a6xx render target!

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

19 months agobin/gen_release_notes.py: read Closes/Fixes tags case-insensitively
Konstantin Kharlamov [Mon, 12 Dec 2022 22:50:02 +0000 (01:50 +0300)]
bin/gen_release_notes.py: read Closes/Fixes tags case-insensitively

Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>

19 months agobin/gen_release_notes.py: parse "Fixes" tags as well as "Closes"
Konstantin Kharlamov [Fri, 9 Dec 2022 16:16:22 +0000 (19:16 +0300)]
bin/gen_release_notes.py: parse "Fixes" tags as well as "Closes"

Some commits refer to bugs being fixed with "Fixes" tag. Example of one:

    e13d53e1fdb 'Revert "glx/dri: Fix DRI drawable release at MakeCurrent time"'

Parse this tag as well.

Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>

19 months agobin/gen_release_notes.py: don't fail if "Closes" refers to an MR
Konstantin Kharlamov [Thu, 8 Dec 2022 20:09:26 +0000 (23:09 +0300)]
bin/gen_release_notes.py: don't fail if "Closes" refers to an MR

Sometimes a tag "Closes:" in a commit may refer to a merge request
instead of an issue. Examples of such commits:

    34319c7d84 "ci/freedreno: disable antichambers trace"
    998122d9c2 "mesa: fix GL_INVALID_OPERATION in glEGLImageTargetTexStorageEXT"

Avoid failing on these by explicitly checking that the URL refers to an
issue

Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>

19 months agobin/gen_release_notes.py: do not fail on confidential features
Konstantin Kharlamov [Thu, 8 Dec 2022 19:53:51 +0000 (22:53 +0300)]
bin/gen_release_notes.py: do not fail on confidential features

A commit may refer to an issue marked as confidential. That will look
like a 404 page for outside users. One example of such commit is:

    369c12e5be "anv: clear descriptorsets if AllocateDescriptorSets fails"

Let's handle that case.

Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>

19 months agobin/gen_release_notes.py: do not end "features" with "None"
Konstantin Kharlamov [Thu, 8 Dec 2022 19:05:03 +0000 (22:05 +0300)]
bin/gen_release_notes.py: do not end "features" with "None"

Currently, the "New features" list unconditionally ends with a "None"
point, which makes no sense. The original author probably meant to check
whether the file is empty, so remove the else clause, and add the check
for emptiness.

Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>

19 months agodocs: update calendar for 22.3.2
Eric Engestrom [Thu, 29 Dec 2022 21:51:05 +0000 (21:51 +0000)]
docs: update calendar for 22.3.2

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

19 months agodocs: add release notes for 22.3.2
Eric Engestrom [Thu, 29 Dec 2022 19:26:41 +0000 (19:26 +0000)]
docs: add release notes for 22.3.2

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

19 months agogen_release_notes: strip second newline in new features
Eric Engestrom [Fri, 2 Dec 2022 11:58:17 +0000 (11:58 +0000)]
gen_release_notes: strip second newline in new features

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20132>

19 months agofreedreno/ir3: Allow isam for non-bindless ssbo loads
Rob Clark [Thu, 22 Dec 2022 04:17:13 +0000 (20:17 -0800)]
freedreno/ir3: Allow isam for non-bindless ssbo loads

We already had the infrastructure for this, dating back to a5xx, so this
is low hanging fruit to hit the faster isam path.

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

19 months agoci/broadcom: add rpi3 flake color_clears.multi_context.gles2.rgba8888_pbuffer
David Heidelberg [Thu, 29 Dec 2022 16:34:46 +0000 (17:34 +0100)]
ci/broadcom: add rpi3 flake color_clears.multi_context.gles2.rgba8888_pbuffer

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20452>

19 months agointel/genxml/gen12.5: Pipe_Control::Remove Global Snapshot Count Reset
José Roberto de Souza [Mon, 26 Dec 2022 19:40:39 +0000 (11:40 -0800)]
intel/genxml/gen12.5: Pipe_Control::Remove Global Snapshot Count Reset

It was not meant to be used(Iris have assert for it) and it was
removed from Pipe_Control instruction in gen12.5 and newer.

BSpec: 47112
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20444>

19 months agoanv: Add and use emit_pipeline_select()
José Roberto de Souza [Mon, 26 Dec 2022 17:34:23 +0000 (09:34 -0800)]
anv: Add and use emit_pipeline_select()

To avoid the replication of code to properly emit PIPELINE_SELECT.

init_compute_queue_state() had a different emit of PIPELINE_SELECT but
as there is no compute engine in GFX VER 11 we are safe with the
differences.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20444>

19 months agoci/iris: add iris-kbl flake
David Heidelberg [Wed, 28 Dec 2022 22:55:18 +0000 (23:55 +0100)]
ci/iris: add iris-kbl flake

Ref: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7547

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20448>

19 months agoci: Enable gl-renderer in weston for wayland testing
Erico Nunes [Sat, 17 Dec 2022 12:25:52 +0000 (13:25 +0100)]
ci: Enable gl-renderer in weston for wayland testing

The weston headless backend defaults to gl-renderer disabled, which
exposes a different set of globals and clients may fall back to software
rendering.
Enable gl-renderer so that clients use the hardware drivers.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20391>

19 months agopan/va: Fix MUX.i32 and MUX.v2i16 description. Should be:
Aleksey Komarov [Wed, 28 Dec 2022 20:55:01 +0000 (23:55 +0300)]
pan/va: Fix MUX.i32 and MUX.v2i16 description. Should be:

`(A &amp; mask) | (B &amp; ~mask)`

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

19 months agopan/va: Fix d0 description in enum "Load lane (8-bit)"
Aleksey Komarov [Tue, 27 Dec 2022 20:17:28 +0000 (23:17 +0300)]
pan/va: Fix d0 description in enum "Load lane (8-bit)"

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

19 months agopan/va: Fix description for constant 0xFAFCFDFE: -2, -3, -4, -6
Aleksey Komarov [Tue, 27 Dec 2022 19:53:10 +0000 (22:53 +0300)]
pan/va: Fix description for constant 0xFAFCFDFE: -2, -3, -4, -6

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

19 months agoci/amd: decrease number of stoney runners
David Heidelberg [Wed, 28 Dec 2022 18:29:46 +0000 (19:29 +0100)]
ci/amd: decrease number of stoney runners

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20443>

19 months agoutil/xmlconfig: fix memory leak triggered by duplicates
Patrick Lerda [Tue, 27 Dec 2022 15:55:58 +0000 (16:55 +0100)]
util/xmlconfig: fix memory leak triggered by duplicates

This change copies the string once.

Direct leak of 196 byte(s) in 14 object(s) allocated from:
    #0 0x7f71598ec7a7 in strdup (/usr/lib64/libasan.so.6+0x5c7a7)
    #1 0x7f70a56ff942 in driParseOptionInfo ../src/util/xmlconfig.c:357
    #2 0x7f70a56f0565 in pipe_loader_load_options ../src/gallium/auxiliary/pipe-loader/pipe_loader.c:126
    #3 0x7f70a56f0565 in pipe_loader_create_screen_vk ../src/gallium/auxiliary/pipe-loader/pipe_loader.c:167

Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20026>

19 months agoasahi: Clang-format the subtree
Alyssa Rosenzweig [Tue, 27 Dec 2022 22:36:08 +0000 (17:36 -0500)]
asahi: Clang-format the subtree

See 0afd691f296 ("panfrost: clang-format the tree") for why I'm doing this.
Asahi already mostly follows Mesa style so this doesn't do much. But this means
we can all stop thinking about formatting and trust the robot poets to do that
for us.

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

19 months agoasahi: Clang-format the twiddled tests
Alyssa Rosenzweig [Tue, 27 Dec 2022 22:34:58 +0000 (17:34 -0500)]
asahi: Clang-format the twiddled tests

There are no outstanding commits to these files in any branch, so they don't
need to be considered for the rebasing script. That said, they are massive and
bottleneck the rebasing script, so we'll want to split them out to keep rebasing
efficient.

(Nominally I should make the rebasing script less stupid but with these files
ignored it works pretty well.)

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

19 months agoasahi: Add missing #include's
Alyssa Rosenzweig [Mon, 26 Dec 2022 15:24:18 +0000 (10:24 -0500)]
asahi: Add missing #include's

Otherwise we won't build after clang-format shuffles headers.

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

19 months agoasahi: Add some clang-format commas
Alyssa Rosenzweig [Mon, 26 Dec 2022 14:55:19 +0000 (09:55 -0500)]
asahi: Add some clang-format commas

Otherwise clang-format will mangle this.

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

19 months agoasahi: Manually format some parts of the code
Alyssa Rosenzweig [Mon, 26 Dec 2022 14:45:48 +0000 (09:45 -0500)]
asahi: Manually format some parts of the code

clang-format will mangle these.

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

19 months agoasahi: Add .clang-format file
Alyssa Rosenzweig [Mon, 26 Dec 2022 14:43:04 +0000 (09:43 -0500)]
asahi: Add .clang-format file

Derived from the Freedreno/Panfrost file, with foreach macros updated.

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

19 months agoagx: Undo sed fail
Alyssa Rosenzweig [Sun, 11 Dec 2022 04:01:47 +0000 (23:01 -0500)]
agx: Undo sed fail

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

19 months agoanv: disable preemption for 3DPRIMITIVE during streamout
Tapani Pälli [Tue, 27 Dec 2022 13:30:23 +0000 (15:30 +0200)]
anv: disable preemption for 3DPRIMITIVE during streamout

This is required by Wa_16013994831.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20438>

19 months agointel/genxml: add disable preemption field for gen125
Tapani Pälli [Wed, 23 Nov 2022 06:40:59 +0000 (08:40 +0200)]
intel/genxml: add disable preemption field for gen125

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20438>

19 months agoanv: fix potential integer overflow
Lionel Landwerlin [Mon, 26 Dec 2022 22:32:16 +0000 (00:32 +0200)]
anv: fix potential integer overflow

The loop going from 0 to max_draw_count multiplies the value which
could potentially overflow.

Fixes Coverity CID 1517852

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3596a8ea7a ("anv: factor out some indirect draw count entry points")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20436>

19 months agoradv: Use common vkEnumerateDeviceLayerProperties
Konstantin Seurer [Thu, 22 Dec 2022 21:35:59 +0000 (22:35 +0100)]
radv: Use common vkEnumerateDeviceLayerProperties

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

19 months agoradv: Remove last_primitive_reset_en
Konstantin Seurer [Thu, 22 Dec 2022 21:19:39 +0000 (22:19 +0100)]
radv: Remove last_primitive_reset_en

last_primitive_reset_en is not used anywhere.

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

19 months agopanvk: Fix null pointer dereference on cmd_buffer->ops
nihui [Wed, 21 Dec 2022 15:41:28 +0000 (15:41 +0000)]
panvk: Fix null pointer dereference on cmd_buffer->ops

Fixes: 84cd81e10437 (panvk: Use common code for command buffer lifecycle
management)

Signed-off-by: Hui Ni <shuizhuyuanluo@126.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20406>

19 months agointel/ds: add missing generate draws perfetto glue
Lionel Landwerlin [Sat, 24 Dec 2022 10:25:50 +0000 (12:25 +0200)]
intel/ds: add missing generate draws perfetto glue

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7956
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Tested-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20433>

19 months agopanfrost: Fix race condition in BO imports
Asahi Lina [Wed, 21 Dec 2022 08:25:22 +0000 (17:25 +0900)]
panfrost: Fix race condition in BO imports

When importing a BO, if it is already imported, then the handle will
alias an existing BO instance. It is possible for the existing owner to
free the BO after the import and leave a dangling handle before we get a
chance to increase the refcount, so we need to lock the BO table mutex
before importing, to make sure nobody else goes through the free path
during that window.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20403>

19 months agovc4: Fix race condition in BO imports
Asahi Lina [Wed, 21 Dec 2022 08:25:09 +0000 (17:25 +0900)]
vc4: Fix race condition in BO imports

When importing a BO, if it is already imported, then the handle will
alias an existing BO instance. It is possible for the existing owner to
free the BO after the import and leave a dangling handle before we get a
chance to increase the refcount, so we need to lock the BO table mutex
before importing, to make sure nobody else goes through the free path
during that window.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20403>

19 months agov3d: Fix race condition in BO imports
Asahi Lina [Wed, 21 Dec 2022 08:24:37 +0000 (17:24 +0900)]
v3d: Fix race condition in BO imports

When importing a BO, if it is already imported, then the handle will
alias an existing BO instance. It is possible for the existing owner to
free the BO after the import and leave a dangling handle before we get a
chance to increase the refcount, so we need to lock the BO table mutex
before importing, to make sure nobody else goes through the free path
during that window.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20403>

19 months agoRevert "ci: Windows runner is experiencing DNS issues; disable Microsoft farm"
Jordan Petridis [Fri, 23 Dec 2022 13:33:40 +0000 (15:33 +0200)]
Revert "ci: Windows runner is experiencing DNS issues; disable Microsoft farm"

Let's try this again, landed couple config changes on the runners.

This reverts commit c52b7aa732e78d2ed93ef95a42262fae270c2027.

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

19 months agokmsro: Fix renderonly_scanout BO aliasing
Asahi Lina [Tue, 20 Dec 2022 15:37:31 +0000 (00:37 +0900)]
kmsro: Fix renderonly_scanout BO aliasing

BOs can only have one handle. If renderonly_create_gpu_import_for_resource
ends up importing a BO that was already mapped for scanout, it will get
the same handle. This leaves us with two renderonly_scanout objects for
one handle, and the first one to be destroyed will free it.

Import the BO map tracking logic from asahi, to avoid aliasing
renderonly_scanout objects. Each actual BO now is only represented by a
single object instance, which is reference counted.

Fixes KWin full-screen PipeWire capture breaking scanout entirely.

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20397>

19 months agofreedreno/perfetto: Add grid information for compute jobs
Rob Clark [Sun, 4 Dec 2022 18:59:25 +0000 (10:59 -0800)]
freedreno/perfetto: Add grid information for compute jobs

Just something I noticed was missing the other day.

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

19 months agopanfrost: Clang-format pan_layout.c
Alyssa Rosenzweig [Sat, 24 Dec 2022 02:43:08 +0000 (21:43 -0500)]
panfrost: Clang-format pan_layout.c

Messed up the "clang-format off" for this file.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reported-by: Aleksey Komarov <q4arus@ya.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20431>

19 months agopanfrost: clang-format the tree
Alyssa Rosenzweig [Fri, 23 Dec 2022 21:58:38 +0000 (16:58 -0500)]
panfrost: clang-format the tree

This switches us over to Mesa's code style [1], normalizing us within the tree.
The results aren't perfect, but they bring us a hell of a lot closer to the rest
of the tree. Panfrost doesn't feel so foreign relative to Mesa with this, which
I think (in retrospect after a bunch of years of being "different") is the right
call.

I skipped PanVK because that's paused right now.

  find panfrost/ -type f -name '*.h' | grep -v vulkan | xargs clang-format -i;
  find panfrost/ -type f -name '*.c' | grep -v vulkan | xargs clang-format -i;
  clang-format -i gallium/drivers/panfrost/*.c gallium/drivers/panfrost/*.h ; find
  panfrost/ -type f -name '*.cpp' | grep -v vulkan | xargs clang-format -i

[1] https://docs.mesa3d.org/codingstyle.html

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

19 months agopanfrost: Fix up some formatting for clang-format
Alyssa Rosenzweig [Fri, 23 Dec 2022 02:22:15 +0000 (21:22 -0500)]
panfrost: Fix up some formatting for clang-format

clang-format will make a mess of these otherwise.

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

19 months agopanfrost: Add missing #includes
Alyssa Rosenzweig [Fri, 23 Dec 2022 02:11:25 +0000 (21:11 -0500)]
panfrost: Add missing #includes

Found shuffling headers with clang format.

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

19 months agopanfrost: Remove perfetto-specific .clang-format
Alyssa Rosenzweig [Fri, 23 Dec 2022 21:10:55 +0000 (16:10 -0500)]
panfrost: Remove perfetto-specific .clang-format

We'll use the one in src/panfrost/.clang-format instead, which isn't identical
but should be good enough. This way they don't conflict with each other.

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

19 months agopanfrost: Add clang-format file
Alyssa Rosenzweig [Fri, 23 Dec 2022 02:03:22 +0000 (21:03 -0500)]
panfrost: Add clang-format file

Based on freedreno settings, tweaked for panfrost's foreach macros.

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