Konstantin Seurer
3a69424e09
radv/nir: Add radv_nir_lower_hit_attrib_derefs
...
Move out the pass so it can be unit tested.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24271 >
2023-11-02 15:48:36 +00:00
Konstantin Seurer
b7c582e5c7
radv: Add RADV_MAX_HIT_ATTRIB_DWORDS
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24271 >
2023-11-02 15:48:36 +00:00
duncan.hopkins
4ef573735e
glx: fix automatic zink fallback loading between hw and sw drivers on MacOS
...
The combination of defines used when compile the code on MacOS is hiding variables.
Patch allows basic MacOS build to compile and run.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992 >
2023-11-02 15:08:17 +00:00
duncan.hopkins
c8b64452c0
dri: added build dependencies for systems using non-standard prefixed X11 libs.
...
To get MacOS to build, some extra dependencies need to be added to a couple of build targets.
This mainly shows up when not installing the dependencies in the default prefix locations.
On MacOS, this happens when using a custom build of brew to install the dependencies to 'odd' locations.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992 >
2023-11-02 15:08:17 +00:00
duncan.hopkins
96d55d784c
util: Update util/libdrm.h stubs to allow loader.c to compile on MacOS.
...
MacOS does not have the libdrm libraries so is missing xf86drm.h.
util/libdrm.h already has a collection of stubs for systems that do not support the libraries.
A compile on MacOS will fail with the source that uses newer drm functions and structures.
Update adds in missing items that MacOS code needs to compile and run.
New code is copied from the public repository: https://gitlab.freedesktop.org/mesa/drm/-/blob/main/xf86drm.h
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992 >
2023-11-02 15:08:17 +00:00
Rob Clark
ceeab44fd1
tu/virtio: Fix timeline semaphore support
...
Fixes: f17c5297d7 ("tu: Add virtgpu support")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25981 >
2023-11-02 14:32:36 +00:00
Rob Clark
79b907f941
tu/msm: Fix timeline semaphore support
...
Fixes: daefc6e2a4 ("turnip: prep work for timeline semaphore support")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25981 >
2023-11-02 14:32:36 +00:00
Corentin Noël
685fef1876
virgl/texture: Align destination box to block depth
...
In the case of a 3D texture, make sure to align to the block depth.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26005 >
2023-11-02 13:07:24 +00:00
Corentin Noël
b280ea863d
virgl: fill the array_size value when using PIPE_TEXTURE_CUBE
...
The cube texture type also requires array sizes.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26005 >
2023-11-02 13:07:24 +00:00
Rhys Perry
0a418561da
radv: skip radv_remove_varyings for mesh shaders
...
Fixes compilation of a Talos Principle 2 shader.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Fixes: 9fa9782c17 ("radv: stop compiling a noop FS when the application doesn't provide a FS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25659 >
2023-11-02 12:44:43 +00:00
Rhys Perry
ed12be533e
radv: call lower_array_deref_of_vec before lower_io_arrays_to_elements
...
nir_lower_io_arrays_to_elements does not support array derefs of vectors,
even when nir_deref_instr_is_known_out_of_bounds is fixed.
They can occur with mesh shaders.
Found by inspection.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25659 >
2023-11-02 12:44:43 +00:00
Alyssa Rosenzweig
570ed11303
asahi: Remove placeholder shader
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
2c54372760
agx: Use CL for texture lowerings
...
To demonstrate everything working, and the value of this approach.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
8ef7eec246
asahi: Add software-defined field to texture desc
...
We use this for buffer textures.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
eecd8390d0
asahi,agx: Plumb libagx
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
0be124b77e
asahi: Deserialize libagx when opening device
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
75fe90dab0
asahi: Pass valid memctx to open_device
...
Currently the argument is unused but that's about to change.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
cde7ca1683
asahi: Add asahi_clc infrastructure
...
Based on intel_clc, tuned for libraries. Targets serialized NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
a02e463484
asahi: Add folder for internal shaders
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
103e300e7f
asahi: Reexpress genxml pack macro
...
To let NIR unroll it. Workaround NIR bug.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
ed1b2f40fc
asahi: Unpack at 32-bit granularity
...
The way we already do for packs. This is more efficient.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
0df82f76c4
asahi: Make GenXML compatible with OpenCL
...
Adapt gen_pack.py to generate an OpenCL compatible header, capable of both
packing and unpacking but not printing (due to no known use case and no fprintf
in CL). This is useful as a building block for manipulating descriptors from
shader code, for example in texture lowering or device-generated commands.
To accomplish this, we need to inline in some CL-compatible variants of mesa
util functions (no doubles, etc), avoid FILE * use in the CL path, and use
__constant pointers where applicable for performance. Otherwise, there are
surprisingly few changes required, thanks mainly to CL 2.0 generic pointers.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:47 +00:00
Alyssa Rosenzweig
59499d8dbc
asahi: Fix agx_pack unrolling
...
The loop is supposed to execute exactly once, but the previous logic
inadvertently executes 0 or 1 times depending on whether dst is NULL (it never
is). Reexpress the loop to execute exactly once, eliminating the unnecessary
branch in this hot path. Noticed when reading the NIR of generated pack code.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
7193849f30
agx: Fuse ubitfield_extract
...
Similarly, let's get the win everywhere.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
5500e02a61
agx: Fuse (unmasked) extr_agx
...
This will clean up genxml unpack code and is needed for parity with the assembly
we write by hand. This way we get the win for all shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
0cde7b794c
agx: Vectorize load/stores
...
This helps CL shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
7f27f2e314
agx: Fix lower regular texture metadata
...
for buffer textures, we insert new blocks which invalidates dominance and
block index info... leads to end-to-end fails when shuffling pass order.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
a6afa48e86
clc: Add missing idep_vtn
...
From the libclc linking code. This should probably be split out but that seems
like potentially a task for another day. Avoids a linker error in the next
commit the easy way.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
f164edfe71
vtn: Add spirv_library_to_nir_builder feature
...
This new entrypoint takes in a SPIR-V blob and generates a header containing
a static inline nir_builder-family function for each function in the SPIR-V
library. The generated function will look for the function in the shader and, if
not found, insert a new nir_function with the appropriate signature -- to be
linked with the library later. Then, it will call the function, with the
appropriate gymnastics to handle return values as necessary.
This makes it super convenient to wrap CL libraries for use in a NIR pass.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
b192f3c458
nir/builder: Add nir_call helper
...
This adds an idiomatic way to insert NIR function calls with the builder. Since
functions have variable numbers of arguments, this is a variadic function.
v2: Define with a variadic macro instead, for safety with the argument count.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
23bea25207
nir: Add nir_remove_non_exported
...
For libraries.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alyssa Rosenzweig
6014f745d5
nir,vtn: Add exported bool to nir_function
...
For optimizing libraries.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25498 >
2023-11-02 11:37:46 +00:00
Alejandro Piñeiro
87a673cac4
broadcom/cle: rename xml files
...
This has been confusing for some time, as from a xml file with the
suffix v33 (so suggesting just one version) we were generating the
headers for v33, v40, v41 and v71.
So now there is a header for the vc4 driver, and one header for the
v3d/v3dv (so v3d "platform") drivers.
FWIW, this means that now the name of the original xml and the header
files generated doesn't maintain a so similar pattern, but again the
equivalence were not there anyway.
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851 >
2023-11-02 11:59:08 +01:00
Alejandro Piñeiro
9c4829473a
broadcom/cle: remove v33 and v41 from xml definition
...
For the case of v41 is mostly update to v42.
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851 >
2023-11-02 11:59:08 +01:00
Alejandro Piñeiro
e9fa6c0bc6
broadcom/compiler: set properly lod query
...
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851 >
2023-11-02 11:59:08 +01:00
Alejandro Piñeiro
85f26828fe
broadcom: only support v42 and v71
...
Acked-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851 >
2023-11-02 11:59:08 +01:00
Mark Janes
a1e6879021
anv: make shader cache content deterministic
...
Pointer values in shader cache data generate binary differences for
functionally identical shader content.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25923 >
2023-11-02 02:53:41 +00:00
Mark Janes
f0f0bce314
iris: make shader cache content deterministic
...
Pointer values in shader cache data generate binary differences for
functionally identical shader content.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25923 >
2023-11-02 02:53:41 +00:00
Felix DeGrood
aa23120e4f
anv: remove CS_FLUSH from query regression
...
Fixes performance regression introduced by prior refactoring of
pipe control code that unnecessarily added CS_FLUSH to query start
and end. Issue was diagnosed by Ben L (thank you!)
Confirmed this restores performance on:
* Borderlands3 +2%
* Payday +3%
* Factorio +3%
* HogwartsLegacy +4%
* Ghostrunner +7%
Fixes: 6dc95685 (convert genX_query pipe controls to use pc helper)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25983 >
2023-11-02 02:28:02 +00:00
David Heidelberg
ab6ef87720
ci/zink: restore full premerge testing on Adreno 618
...
Partial revert of: 68e8e40163 ("ci/zink: reduce premerge testing on a618 to ~ 12 minutes")
Weston is kept, and reduction to the 2 devices, because we have only 9
at maximum capacity available (with 3 parallel jobs we would need at least 10).
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25982 >
2023-11-02 00:32:49 +00:00
Faith Ekstrand
6388896985
nir: add deref follower builder for casts.
...
This fixes intel_clc builds with llvm 17 on gfx125_bvh_build_DFS_DFS
where it dies in the lower indirect derefs pass.
Co-authored-by: Dave Airlie <airlied@redhat.com >
Fixes: 4a4e175738 ("nir: Support deref instructions in lower_var_copies")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25536 >
2023-11-01 22:35:23 +00:00
Jesse Natalie
8f9888fd75
dzn: Implement VK_MSFT_layered_driver
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25993 >
2023-11-01 22:17:16 +00:00
Max R
75f7910850
virgl: Implement clear_render_target and clear_depth_stencil
...
This functions are required by d3d10umd frontend.
To implement both clear_render_target and clear_depth_stencil
common virgl command VIRGL_CCMD_CLEAR_SURFACE is introduced.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25947 >
2023-11-01 20:33:01 +00:00
Chia-I Wu
796cba9bda
radv: fix vkCmdCopyImage2 for emulated etc2/astc
...
When the image copy is between size-compatible formats with different
block sizes, we need to fix up the extent.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25984 >
2023-11-01 20:02:14 +00:00
Rhys Perry
b18f0dec41
aco: collect Pre-Sched SGPRs/VGPRs before spilling
...
The usage after spilling is usually either the same as before or the
maximum.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25559 >
2023-11-01 19:41:30 +00:00
Rhys Perry
d200916ca2
aco: add VALU/SALU/VMEM/SMEM statistics
...
This lets us measure optimizations without interference of waitcnt
instructions.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25559 >
2023-11-01 19:41:30 +00:00
Jesse Natalie
0756324ca4
d3d12: Only set draw params root parameter index for actual draw params
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25980 >
2023-11-01 17:25:25 +00:00
Gert Wollny
3ab51c7ebd
r600: Add callbacks for get_driver_uuid and get_device_uuid
...
v2: Evaluate driver ID dynamically (Adam Jackson)
v3: Align the stars (Triang3l)
v4: include "r600" in driver ID for UUID evaluation (Triang3l)
v5: remove unused local variable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10040
CC: mesa-stable
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25895 >
2023-11-01 16:36:42 +00:00
Rhys Perry
7de34ad3ef
radv: use NIR_LOOP_PASS helpers
...
A somewhat random collection of fossils:
N Min Max Median Avg Stddev
x 6 16.59 16.61 16.605 16.603333 0.0081649658
+ 6 15.99 16 16 15.998333 0.0040824829
Difference at 95.0% confidence
-0.605 +/- 0.00830327
-3.64385% +/- 0.0485573%
(Student's t, pooled s = 0.00645497)
I'm not sure if nir_opt_if and nir_opt_loop_unroll are actually idempotent
or not.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24197 >
2023-11-01 14:16:37 +00:00
Rhys Perry
debddca134
nir: add helpers to skip idempotent passes
...
For example, in the loop:
while (more_late_algebraic) {
more_late_algebraic = false;
NIR_PASS(more_late_algebraic, nir, nir_opt_algebraic_late);
NIR_PASS(_, nir, nir_opt_constant_folding);
NIR_PASS(_, nir, nir_copy_prop);
NIR_PASS(_, nir, nir_opt_dce);
NIR_PASS(_, nir, nir_opt_cse);
}
if nir_opt_algebraic_late makes no progress, later passes might be
skippable depending on which ones made progress in the previous iteration.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24197 >
2023-11-01 14:16:37 +00:00