Commit graph

164633 commits

Author SHA1 Message Date
Samuel Pitoiset
c04b10155e radv: disable unsupported hw shader stages for RGP on GFX11+
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25171>
2023-09-14 06:29:10 +00:00
Samuel Pitoiset
4f5dd54713 radv: set THREAD_TRACE_TOKEN_MASK.BOP_EVENTS_TOKEN_INCLUDE on GFX10.3+
PAL does that.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25171>
2023-09-14 06:29:10 +00:00
Tapani Pälli
3ec953ed75 iris: modify Wa_14014414195 to use intel_needs_workaround
Only applies to DG2, this was fixed in MTL.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25197>
2023-09-14 04:25:48 +00:00
Dave Airlie
3740b6f599 radv/video: take db alignment into account when allocating images.
Make sure to take the db alignment into account when sizing the underlying
images.

Fixes a 360p sample from Lynne.

Cc: mesa-stable
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25168>
2023-09-14 01:48:49 +00:00
Mark Collins
ce124328a0 freedreno+meson: Add lua+libarchive+libxml from Meson WrapDB
These dependencies are required for building freedreno tools but on
platforms such as Android, these aren't included and would need to
be built from source. The easiest way to do this was using the
Meson WrapDB. Additionally, warnings were added when these deps are
missing as the decode tools will silently not be built otherwise.

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Mark Collins
b91f9f68f0 freedreno/decode: Support building replay for multiple KMDs
As `freedreno_kmds` can contain both `msm` and `kgsl`, this case
would just produce a build with just KGSL due to the precedence of
the check which is inconsistent behavior. Now `replay` is built for
all active KMDs with a suffix for the KMD (eg: replay-kgsl/replay-msm).

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Mark Collins
f8ac568955 freedreno: Only add drm/computerator when system_has_kms_drm
These are both MSM-DRM specific subprojects which depend on it and
cannot be built without, this change is required to allow for KGSL
freedreno tool builds to compile successfully.

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Mark Collins
a0cca5f6eb freedreno/rnn: Remove %n usage in fprintf
fprintf was utilized with %n to count the amount of characters it
outputted but this was redundant since it was at the end of the
statement and fprintf itself returns the amount of characters it
writes out.

It should be noted that %n is a compatibility hazard on Android as
it isn't supported on Android due to security reasons.

Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Danylo Piliaiev
73d0286eb5 freedreno/replay: Add "gpu_print" function for command streams
Allows to dump GPU memory, e.g.
 gpu_print(&ctx, cs, 0x4000086080, 4);

would print 4 dowrds from 0x4000086080:
 CP Log [0]:
         20002000 47340000 20012001 47340001

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Danylo Piliaiev
cad065cd00 freedreno/replay: Add "print" instr to ir3 asm to be used in replay
Could be used in shader assembly from rddecompiler when overriding
the cmdstream.

Usage:
 print r1.x, r3.z

 First arguments is three consecutive registers used for internal print
 needs.
 Second arg is register to print.

Output:
 Shader Log Entries: 36
 [0] 00000004 0.0000
 [1] 00000000 0.0000
 [2] 00000000 0.0000
 [3] 00000000 0.0000
 [4] beadc429 -0.3394
 [5] beadc429 -0.3394

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Danylo Piliaiev
c22f894bd1 freedreno/rddecompiler: Update to handle a7xx
Also make rdcompiler compilable for Android.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
Danylo Piliaiev
e3bbd1688b freedreno/replay: Add limited support for KGSL
KGSL doesn't support IOVAs being set form userspace, so as a workaround
we pre-allocate a single buffer and hope that it always starts from the
same address.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25005>
2023-09-13 22:20:13 +00:00
José Roberto de Souza
e2648d4255 anv: Remove i915_drm.h include from common code
With the previous commit we are now able to build Anv without
including i915_drm.h from common code.

This is important as avoids that i915 specific code is included in
common code by mistake.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25044>
2023-09-13 13:10:59 -07:00
José Roberto de Souza
5d3c5a7921 anv: Move i915 handling of imported bos bo_flags
Imported bos already imported need special handling in i915.
That handling was moved to
anv_i915_gem_import_bo_alloc_flags_to_bo_flags() as the number of
imported bos is low.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25044>
2023-09-13 13:10:59 -07:00
José Roberto de Souza
e1f846f790 anv: Move bo_alloc_flags_to_bo_flags() to backend
The bo_flags are i915 specific and should not be handled in common
code, so here adding it to backend as it is in the hot-path.

There still i915 bo_flags handling in anv_device_import_bo() that
will be handled in the next patch.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25044>
2023-09-13 13:10:59 -07:00
José Roberto de Souza
8b672c7b2c anv: Move i915 specific code from common anv_gem.c
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25212>
2023-09-13 19:31:45 +00:00
José Roberto de Souza
fc0acf6d90 anv: Move i915 specific gem_set_caching to backend
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25212>
2023-09-13 19:31:45 +00:00
Mike Blumenkrantz
b8a9c72561 vk/enum2str: add more max enum vendors
Acked-by: Iván Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25210>
2023-09-13 18:57:42 +00:00
Sviatoslav Peleshko
d09aac5e64 zink: Change zink_vertex_elements_hw_state::b.strides to VkDeviceSize
Currently zink_vertex_elements_hw_state::b.strides is an array of 32-bit
unsigned values, while CmdBindVertexBuffers2EXT expects an array of
VkDeviceSize (64-bit unsigned). Instead of converting them for a call,
just change the type of the array itself.

Fixes: 76725452 ("gallium: move vertex stride to CSO")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9765
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25208>
2023-09-13 18:26:57 +00:00
Mike Blumenkrantz
9399165bd4 aux/tc: fix renderpass tracking fb state clobber scenario
in a stream like:
* set fb state (A)
* flush
* set fb state (B)
* draw -> driver query
* flush

the "driver query" should return the tc info corresponding to the most
recent fb state (B). previously this would increment to C because
the flag for incrementing at the start of a batch was set

Fixes: 07017aa137 ("util/tc: implement renderpass tracking")

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25206>
2023-09-13 17:50:58 +00:00
José Roberto de Souza
79ba431d4a intel: Sync xe_drm.h
Sync xe_drm.h with commit e51e857ffad4 ("drm/xe/uapi: Remove useless max_page_size").
Most relevant changes are the removal of max_page_size from
drm_xe_query_mem_region and the typo fix in XE_QUERY_CONFIG_MIN_ALIGNMENT.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25162>
2023-09-13 16:38:15 +00:00
Daniel Stone
69e3af2037 ci/zink: Add another conversion fail on a618
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25207>
2023-09-13 16:01:24 +00:00
Daniel Stone
99ec13742b ci/radeonsi: Skip more really slow tests
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25207>
2023-09-13 16:01:24 +00:00
Konrad Dybcio
6067aba9e6 freedreno: Include speedbin fallback in 740 chipid to fix probing
The kernel exposes CHIP_ID, which consists of:

[63:48] const 0 / reserved
[47:32] speedbin (default 0xffff)
[31:0 ] actual gpu chip ID

Fix the 740 chip id to make it probe correctly.
Keep the existing entry for the downstream KGSL driver.

Fixes: cd3719be7d ("freedreno: Fully define a730 and a740 device properties")
Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25204>
2023-09-13 15:27:17 +00:00
Sil Vilerino
d48f2469be aux/tc: Add ASSERTED to unreferenced release build variable
Fixes MSVC build error src/gallium/auxiliary/util/u_threaded_context.c(3184): error C4189: 'size': local variable is initialized but not referenced

Fixes: 51ad269198 ("aux/tc: handle stride mismatch during rp-optimized subdata")

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25203>
2023-09-13 13:13:51 +00:00
Vlad Schiller
ca9734c223 pvr: Use correct index when writing query availability data
The availability data would be written to a different location in
the user provided buffer depending on whether the query for a given
index was available. Fix this by using fixed indicies when writing
the query and availability data.

Fixes conformance failures seen in the
dEQP-VK.query_pool.occlusion_query.get_reset_* test group when
implementing VK_EXT_host_query_reset.

Fixes: 279c7c6d5a ("pvr: Implement vkGetQueryPoolResults API.")
Signed-off-by: Vlad Schiller <vlad-radu.schiller@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25116>
2023-09-13 12:47:09 +00:00
Erik Faye-Lund
210f1e14d5 panfrost: delete stale editorconfig file
We no longer use 8-space indent in panfrost, so let's remove the
needless .editorconfig, and instead inherit the 3-space indent from the
toplevel .editorconfig.

Fixes: 0afd691f29 ("panfrost: clang-format the tree")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25147>
2023-09-13 11:11:21 +00:00
Mike Blumenkrantz
2978b85789 zink: don't warn about missing scalarBlockLayout on v3dv
technically v3dv doesn't support the "full" feature, but it does support
enough of it to run zink without any issues

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25201>
2023-09-13 10:30:05 +00:00
Eric Engestrom
ced3ee7898 ci/windows: drop build rules from test jobs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25183>
2023-09-13 09:40:18 +00:00
Eric Engestrom
87281e7dd4 ci/windows: centralize definition of windows runners tags
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25183>
2023-09-13 09:40:18 +00:00
Samuel Pitoiset
6a0fb8244a zink/ci: update list of expected failures for POLARIS10/NAVI10
Fixed since piglit has been updated to
f7db20b03de6896d013826c0a731bc4417c1a5a0.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25199>
2023-09-13 09:02:44 +00:00
Roman Stratiienko
907b96f1e7 v3dv: Enable VK API v1.2 for Android
Now as all features are in place, we can enable it.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Roman Stratiienko
733909a637 v3dv/android: Add AHardwareBuffer support
The patch allows enabling Vulkan-based UI (SKIA, HWUI) on Android.
To enable - add 'TARGET_USES_VULKAN := true' into your device.mk file.

Passes:
 - dEQP-VK.api.external.memory.android_hardware_buffer.*
 - android.graphics.cts.BasicVulkanGpuTest
 - android.graphics.cts.MediaVulkanGpuTest

Camera preview window works.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Roman Stratiienko
def20cbb07 v3dv: Split v3dv_image_init to use layout setting logic separately
In AHB importing flow, the format is known at vkCreateImage step,
but buffer layout itself is not yet known. Buffer layout and modifier
must be updated later in vkBindImageMemory.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Roman Stratiienko
1fc460b203 v3dv: Use format stored in vk_image and vk_image_view after init
Both vk_image_init and vk_image_view_init are smarter about format
settings and respect AHB extension needs.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Roman Stratiienko
02fc0c7e6a v3dv/android: Rework Android native buffer importing logic
Rework it to use the existing VkImageDrmFormatModifierExplicitCreateInfoEXT
logic to set the image's explicit layout.

The code turned out to be generic enough so it could be integrated into
vk_image.c in the future and removed from the v3dv code.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Roman Stratiienko
179dc4a106 v3dv/android: Add a helper function to support explicit layouts
The function extracts buffer information from the gralloc and fills
the VkImageDrmFormatModifierExplicitCreateInfoEXT structure.

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14195>
2023-09-13 07:27:21 +00:00
Caio Oliveira
bc9277d81c compiler/types: Move builtin type initialization to C
While both clang and gcc can handle designated initializers in C++,
MSVC only does with the C++20 support enabled.  So move the initialization
of builtins to a C file.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:59 +00:00
Caio Oliveira
13d3efb2d1 compiler/types: Add workaround to use builtin_type_macros.h in C
In most versions of C, bool is defined as _Bool, so the macro for bool
gets generated with the wrong name.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
a67d4bde2c compiler/types: Make struct glsl_type visible to C code
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
69ade9a344 compiler/types: Use a linear (arena) allocator for glsl_types
They are only deallocated in bulk all at once, which is exactly
the use case for the linear allocator.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
5d804e833c compiler/types: Store builtin types directly as data
Remove constructors from glsl_type so it can be used as a
POD ("plain old data") struct, allowing the builtins to be
initialized directly in memory.

For other types, we now allocate them from glsl_type_cache's mem_ctx,
instead of using the global allocator.

As a side-effect of how the new helpers work, we can completely
create the mock key types for struct/interface lookup without
allocating any memory.

Note there's no `make_sampler_type` since all the sampler types
are created through direct initialization.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
492644dbef compiler/types: Move static asserts about glsl_type to a central place
Take it out of the way to reduce noise when reworking (and eventually
removing) the constructor code.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
7815f3cd3e compiler/types: Simplify clearing the glsl_type_cache
Since now all the data referenced by it is allocated with the cache's
mem_ctx, it is sufficient to just free it, and then reset the cache
state to be ready for a next initialization if it happens.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
8a62b669f2 compiler/types: Don't store a mem_ctx per type
These are used only by types created at runtime.  Since those will follow
the lifetime of the glsl_type_cache, we can use its mem_ctx for all the types.

Without a mem_ctx, there's nothing to be done in the destructor, so remove it.

Note some keys are calculated by building a mock type, so we need to create
a tmp_ctx in some cases.  We'll get rid of them in a later commit.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
4f1473ef97 compiler/types: Use type cache mem_ctx for hash tables
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
450c753f8d compiler/types: Add a mem_ctx for the glsl_type_cache
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
74d85abf00 compiler/types: Move local cache details to implementation file
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
6bf0654f4a compiler/types: Use designated initializer syntax to specify builtins
For now we use a temporary glsl_type_params struct, we will be able to
use the glsl_type directly once we make it a POD ("plain old data")
struct by getting rid of its constructors and destructors.

Note that since the name is statically allocated, there's no need to
strdup() it, deallocate it and also no need to have a mem_ctx.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00
Caio Oliveira
3a3318364b compiler/types: Add extra level of macro to builtin_macros
This will make easier to transition from the macro calling a constructor
to the macro using designated initializers for a struct.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
2023-09-13 05:16:58 +00:00