Caio Oliveira
cc1fac52da
compiler/types: Spell struct and enum in type names
...
This is a preparation for moving compiler/types from C++ to C.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Caio Oliveira
95465b813f
compiler/types: Use C compatible cast syntax
...
This is a preparation for moving compiler/types from C++ to C.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Caio Oliveira
0158057bd0
compiler/types: Remove use of auto
...
This is a preparation for moving compiler/types from C++ to C.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Caio Oliveira
4a8918f7e1
compiler/types: Remove use of references
...
This is a preparation for moving compiler/types from C++ to C.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Caio Oliveira
57819effc1
compiler/types: Remove use of new/delete
...
This is a preparation for moving compiler/types from C++ to C.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Caio Oliveira
dac4901c8a
compiler/types: Remove private related declarations
...
Now there's no private data in glsl_type anymore, so we can remove
the friend declaration and move the private functions into file local
statics.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25445 >
2023-09-28 22:43:45 +00:00
Karol Herbst
5316623d20
rusticl/mesa: create COMPUTE_ONLY contexts
...
This allows drivers to skip initializing unnecessary bits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25466 >
2023-09-28 23:02:24 +02:00
Sagar Ghuge
3d993e63bb
anv: Enable barrier handling on video engines
...
v1: (Lionel)
- Don't check for the layout transition
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9776
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25131 >
2023-09-28 18:22:37 +00:00
Marek Olšák
8e97d291a8
ac/llvm: replace removed amdgcn.ldexp for LLVM 18
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25393 >
2023-09-28 16:51:33 +00:00
Emma Anholt
d638c60628
ci/etnaviv: Drop some gc2k flakes that I think are resolved.
...
All these basic GLSL tests should be stable now that other processes
aren't hanging the GPU on us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25442 >
2023-09-28 16:34:51 +00:00
Emma Anholt
990dc58995
ci/etnaviv: Skip some tests that hang the GPU and knock out other tests.
...
Just a few tests were causing GPU hangs that seem to cause spurious
failures in other tests. With those skipped, the results mostly
stabilize.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25442 >
2023-09-28 16:34:51 +00:00
Marek Olšák
b8ce0dcef5
radeonsi: fix compute-only contexts
...
We can't skip redundant register updates on compute queues, at least
not all of them.
Fixes: 315231b5a5 - radeonsi: eliminate redundant compute SH register changes
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25390 >
2023-09-28 15:49:34 +00:00
Faith Ekstrand
286cd18681
nvk: Init pipelineCacheUUID
...
Fixes: 968cefbff1 ("nvk: Cache NIR shaders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25458 >
2023-09-28 15:31:21 +00:00
Martin Roukala (né Peres)
0e7b1e2fca
radv/ci: add a manual job for vkd3d-proton on navi31
...
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25266 >
2023-09-28 14:51:12 +00:00
Martin Roukala (né Peres)
5e47f4f008
radv/ci: add a manual job to run vkcts on navi31
...
We currently only have a single navi31, but we'll get more in the
next month or so.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25266 >
2023-09-28 14:51:12 +00:00
Martin Roukala (né Peres)
d7aad24b5e
radv/ci: update the vkcts gfx1100 flake/fail lists
...
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25266 >
2023-09-28 14:51:12 +00:00
Timothy Arceri
2e7514cfa8
glsl: remove now unused varying linker code
...
All of this varying linking code has now been ported to the NIR linker.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
36e49c162c
glsl: switch to nir linkers cross_validate_outputs_to_inputs()
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
7d1948e9b5
glsl: implement cross_validate_outputs_to_inputs() in nir linker
...
This is mostly a direct port of the GLSL IR code there are only
2 real functional changes.
1. The direct use of mesa symbol_table instead of glsl_symbol_table.
However since none of the extra functionality offered by
glsl_symbol_table was ever used here this can be seen as an
improvement.
2. Because interface blocks are lowered before this new nir linker
sees them we must explicitly skip them (they are validated
elsewhere) to avoid errors.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
f2e87c5c28
nir: add used field to nir variables
...
Will be use in a following path by the glsl nir based linker.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
0bfae24640
glsl: move is_gl_identifier() to linker_util
...
This had started to multiply around the NIR linker. Here we move it to a
common helper shared by GLSL IR and NIR.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
78b9f1053f
glsl: move interpolation_string() to linker_util
...
Moving it here allows us to use in in the NIR linker too.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Timothy Arceri
337c32cb3a
nir: copy explicit_invariant flag to nir vars
...
This will be used in the following patch.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25371 >
2023-09-28 13:55:16 +00:00
Samuel Pitoiset
af2a96bb37
radv: stop skip emitting CB states when there is no color attachment
...
This is actually wrong. For example, if there is a DCC decompress
draw followed by a draw without any color attachments,
CB_COLOR_CONTROL.MODE is still CB_DCC_DECOMPRESS but it should be
CB_DISABLED. For some reasons, this hangs on RDNA3 (VM faults are also
reported through dmesg).
This fixes GPU hangs with Resident Evil 6, Star Wars The Old Republic
and probably more games on RDNA3.
Strictly speaking, I don't think this dynamic state optimization is
worth a try, even for other states, and I think it would be safer to
remove it completely.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9335
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8327
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9878
Fixes: c08082e861 ("radv: ignore all CB dynamic states when there is no color attachments")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25402 >
2023-09-28 13:32:35 +00:00
Mike Blumenkrantz
441e57048b
glx: XFree visual info
...
cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25441 >
2023-09-28 12:17:49 +00:00
Cong Liu
02150ca017
r300: Fix out-of-bounds access in ntr_emit_store_output()
...
This patch resolves the problem by modifying the for loop condition
to ensure that it stays within the bounds of the array (i.e., i < 4)
Signed-off-by: Cong Liu <liucong2@kylinos.cn >
Reviewed-by: Pavel Ondračka <pavel.ondracka@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25419 >
2023-09-28 09:51:38 +00:00
Eric Engestrom
9bc1fd25a4
ci/zink+radv: document flake
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25427 >
2023-09-28 09:06:59 +00:00
Christian Gmeiner
435699de77
isaspec: python does not need ';'
...
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25437 >
2023-09-28 08:15:50 +00:00
Ian Romanick
03c1e67b6c
spirv: Track when a shader has a cooperative matrix
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
b98f87612b
spirv: Implement SPV_KHR_cooperative_matrix
...
Includes a modified version of using extract/insert for OpLoad/OpStore
from Ian.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com > (earlier version)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl > (earlier version)
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
b17a2c35bc
spirv: Let vtn_ssa_value hold references to variables
...
In certain cases, we have complex opaque objects that are loaded
into (SPIR-V) SSA values. To represent these, we now can store a
reference to a variable in vtn_ssa_value.
Also implements a few operations we know will have to be supported,
like Select and Copy.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
3d7e5ec758
spirv: Expose some memory related functions in vtn_private.h
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
af3eb80afa
nir: Handle cooperative matrix in various passes
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
3105d516d0
nir: Add new intrinsics for Cooperative Matrix
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Caio Oliveira
2d0f4f2c17
compiler/types: Add support for Cooperative Matrix types
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23825 >
2023-09-28 07:35:02 +00:00
Paulo Zanoni
b75da97a1d
anv: enable sparse resources by default
...
This of course only applies to xe.ko. There is no reason to keep it
disabled by default.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Paulo Zanoni
7e2d8cced3
anv/sparse: add INTEL_DEBUG=sparse
...
This pollutes stderr a lot, but I've used it countless times while
developing this code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Paulo Zanoni
2bdd01187d
anv/sparse: get ready to issue a single vm_bind ioctl per non-opaque bind
...
Game testing shows it's common for this operation to result in
multiple bind regions, so try to use a single ioctl when we can.
Actual testing reveals 136 shader-related tests fail when we actually
do this, so for now keep doing a single bind per ioctl while leaving a
very easy way to the desired behavior when we figure this out.
It should also be possible to go even higher-level and do this at the
anv_queue_submit_sparse_bind_locked() layer, but that should happen in
future commits.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Paulo Zanoni
6368c1445f
anv/sparse: add the initial code for Sparse Resources
...
This giant patch implements a huge chunk of the Vulkan Sparse
Resources API. I previously had this as a nice series of many smaller
patches that evolved as the xe.ko added more features, but once I was
asked to squash some of the major reworks I realized I wouldn't be
able easily rewrite history, so I just squased basically the whole
series into a giant patch. I may end up splitting this again later if
I find a way to properly do it.
If we want to support the DX12 API through vkd3d we need to support
part of the the Sparse Resources API. If we don't, a bunch of Steam
games won't work.
For now we only support the xe.ko backend, but the vast majority of
the code is KMD-independent and so an i915.ko implementation would use
most of what's here, just extending the part that binds and unbinds
memory.
v2+: There's no way to sanely track the version history of this patch
in this commit message. Please refer to Gitlab.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Paulo Zanoni
e4598f0eea
intel/isl: simplify the check for maximum surface size
...
The only thing that changes between these 3 checks is the size.
This entire patch was suggested by Kenneth Graunke, I just converted
his gitlab comment to a git commit.
Credits-to: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Paulo Zanoni
0de5d142e8
intel/isl: add ISL_SURF_USAGE_SPARSE_BIT
...
Vulkan Sparse resources have their own set of rules, so here we try to
make ISL aware of them through ISL_SURF_USAGE_SPARSE_BIT.
The big deal here is when some image ends up not using Tile64 nor
TileYs. Previously Ys was not supported on TGL at all, and Tile64 did
not have support for 3D. Now we still have some formats that end up
not being used with either Tile64 and Ys, but need to support Sparse
on them (e.g., YUV on Tile64). In the future we may have new tiling
formats or hardware restrictions that would force this case to happen
again.
So here we do some adjustments so we can make sparse work with other
tiling formats, although with limited functionality (e.g., those
formats may be restricted to opaque binds, and certainly don't support
the standard block shapes).
v2: before we had Ys support, we had defined TGL's block size as 4k.
v3: move the size_B chunk to before nte notify_failure() checks (Ken).
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23045 >
2023-09-28 06:16:40 +00:00
Faith Ekstrand
968cefbff1
nvk: Cache NIR shaders
...
We can't cache shader binaries just yet but this at least lets us cache
the output of spirv_to_nir and the initial optimize.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25443 >
2023-09-28 03:55:53 +00:00
Faith Ekstrand
cdbd86c176
nvk: Add a default pipeline cache
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25443 >
2023-09-28 03:55:53 +00:00
Faith Ekstrand
abe52a6d03
nvk: Re-structure early shader compilation a bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25443 >
2023-09-28 03:55:53 +00:00
Faith Ekstrand
a4f8fd9dd5
nvk: Hook up the disk cache
...
This won't actually do much yet because we don't have pipeline caches
yet but it turns on the infrastructure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25443 >
2023-09-28 03:55:53 +00:00
Faith Ekstrand
d08df319ca
nvk: Store a 20-bit driver_build_sha in nvk_instance
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25443 >
2023-09-28 03:55:53 +00:00
Timothy Arceri
1780102923
nir: fix typo in comment
...
The variable is unused or dead, not used.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25414 >
2023-09-28 01:54:43 +00:00
antonino
76d150674b
vulkan: Handle vkSetDebugUtilsObjectNameEXT on WSI objects
...
Some WSI objects don't extend `vk_object_base` therefore they need
special handling.
Fixes: 3c87618d35 ("vulkan: Handle vkGet/SetPrivateDataEXT on Android swapchains")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24752 >
2023-09-28 01:23:55 +00:00
antonino
5fe289d741
vulkan: Extend vkGet/SetPrivateDataEXT handling to VkSurface
...
VkSurface is handled by WSI and it doesn't extend `vk_object_base` so it
needs special handling.
Fixes: 3c87618d35 ("vulkan: Handle vkGet/SetPrivateDataEXT on Android swapchains")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24752 >
2023-09-28 01:23:55 +00:00
antonino
710d478066
vulkan: Extend vkGet/SetPrivateDataEXT handling to all platforms
...
Non-android platforms use mesa WSI, however some WSI object still don't
extend `vk_object_base` so they still need special handling.
Fixes: 3c87618d35 ("vulkan: Handle vkGet/SetPrivateDataEXT on Android swapchains")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24752 >
2023-09-28 01:23:55 +00:00