Eric Engestrom
2fab92ed9a
docs: close the 23.2 cycle
...
There won't be any more 23.2.x releases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26988 >
2024-01-11 10:54:24 +00:00
Samuel Pitoiset
6f6905fc94
radv: move all per-device keys from radv_pipeline_key to radv_device_cache_key
...
radv_device_cache_key contains everything per-device, while
radv_pipeline_key is more like per-pipeline keys.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948 >
2024-01-11 08:37:36 +00:00
Samuel Pitoiset
4d44cea3e0
radv: introduce radv_device_cache_key for per-device cache compiler options
...
This replaces RADV_HASH_SHADER_xxx by radv_device_cache_key which is
a new struct that contains per-device compiler options. More options
will be moved there.
Blake3 is used to replace sha1.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948 >
2024-01-11 08:37:36 +00:00
Samuel Pitoiset
dc857e5c9e
radv: initialize radv_device::disable_trunc_coord earlier
...
The per-device cache key will need to be initialized before compiling
any meta shaders, so this needs to be done earlier.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948 >
2024-01-11 08:37:36 +00:00
Samuel Pitoiset
10a25f39df
radv: move RADV_HASH_SHADER_KEEP_STATISTICS to radv_pipeline_key
...
This is more like a per-pipeline option.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948 >
2024-01-11 08:37:35 +00:00
Samuel Pitoiset
4455c79299
radv: add missing disable_shrink_image_store to the pipeline key
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948 >
2024-01-11 08:37:35 +00:00
Samuel Pitoiset
3f655bc47c
radv: do not issue SQTT marker with DISPATCH_MESH_INDIRECT_MULTI
...
According to PAL, only DISPATCH_TASKMESH_GFX is supposed to emit a
SQTT marker as part of the packet, probably because there is also
a packet emitted on ACE for executing task shaders.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10401
Fixes: 312103e0ff ("radv: set THREAD_TRACE_MARKER_ENABLE for mesh/task draws")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26936 >
2024-01-11 07:59:40 +00:00
Iago Toral Quiroga
f37bb34d86
v3dv: expose VK_EXT_subgroup_size_control
...
This is trivial for us since we don't support variable subgroup sizes.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26968 >
2024-01-11 07:21:36 +00:00
Yiwei Zhang
0b0c0511b8
venus: allow to retrieve pipeline cache on TLS ring
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26838 >
2024-01-11 06:05:01 +00:00
Yiwei Zhang
bec287b2a2
venus: clean up secondary ring
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26838 >
2024-01-11 06:05:01 +00:00
Yiwei Zhang
945165acad
venus: TLS ring
...
This change adds a new venus feature: TLS ring
- co-owned by TLS and VkInstance
- initialized in TLS upon requested
- teardown happens upon thread exit or instance destroy
- teardown is split into 2 stages:
1. one owner locks and destroys the ring and mark destroyed
2. the other owner locks and frees up the tls ring storage
TLS ring supercedes the prior secondary ring and enables multi-thread
shader compilation and reduces the loading time of ROTTR from ~110s to
~21s (native is ~19s).
TLS ring is in fact a synchronous ring by design, and can be used to
redirect all exisiting synchronous submissions trivially. e.g. upon any
vn_call_*, request a TLS ring, wait for deps and then submit.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26838 >
2024-01-11 06:05:01 +00:00
Yiwei Zhang
30316246d0
venus: make tls hint specific to pipeline creation
...
This is to prepare for a new multi-ring design. A preview is as below:
- primary ring will migrate to be asynchronous only
- synchronous commands will be via thread local rings
- pipeline creations will be synchronous and dispatched to thread local
rings unless being forced to be async on primary ring
- perf option no_multi_ring is made generic to force a single ring
Pipeline cache retrieval is temporarily moved back to primary ring, but
will be moved to thread local later since it's a synchronous command.
The dependency resolving will follow the same with pipeline create with
detailed rationale later.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26838 >
2024-01-11 06:05:01 +00:00
Juston Li
813b1939f6
venus: add LRU cache eviction for image mem reqs cache
...
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26118 >
2024-01-11 01:40:06 +00:00
Juston Li
b51ff22fbe
venus: support caching image memory requirements
...
Similar idea to buffer memory requirements cache but CreateImage has
many more params that may affect the memory requirements.
Instead of a sparse array, generate a SHA1 hash of all the relevant
VkImageCreateInfo params including relevant pNext structures and use
part of the hash as a key to a hash table that stores the cache entries.
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26118 >
2024-01-11 01:40:06 +00:00
Juston Li
a32d76b545
venus: use vk_format helper for plane count
...
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26118 >
2024-01-11 01:40:06 +00:00
Juston Li
cb12a22264
venus: rename buffer cache to buffer reqs cache
...
Be more explicit in the name that it caches buffer memory requirements.
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26118 >
2024-01-11 01:40:06 +00:00
Daniel Stone
f2a593f756
ci: Re-enable Collabora farm
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26970 >
2024-01-10 22:59:06 +00:00
Roman Stratiienko
4afcd0c6d6
u_gralloc: Add support for gbm_gralloc
...
Although gbm_gralloc has not been maintained for a long time, it is still
used in android-x86, BlissOS and WayDroid. Let's add support so that
x86 drivers no longer need to request tiling flags from the kernel.
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Tested-by: HMTheBoy154 <buingoc67@gmail.com > # BlissOS 15 & Mesa 23.3.2
Tested-by: Mauro Rossi <issor.oruam@gmail.com > # android-x86 for mesa 24.0.0-devel on Skylake GT2
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25380 >
2024-01-10 22:26:18 +00:00
Eric Engestrom
b1c8ce172f
docs: update calendar for 23.3.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26986 >
2024-01-10 22:19:08 +00:00
Eric Engestrom
4895e00d26
docs: add sha256sum for 23.3.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26986 >
2024-01-10 22:19:08 +00:00
Eric Engestrom
abf500ec84
docs: add release notes for 23.3.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26986 >
2024-01-10 22:19:08 +00:00
Matt Turner
4ed0957ce7
nir/tests: Reenable tests that failed on big-endian
...
These tests were disabled due to the bug fixed in the previous commit.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26964 >
2024-01-10 21:47:30 +00:00
Matt Turner
5997cf7587
nir: Fix cast
...
We were wrongly telling `nir_const_value_as_uint()` that `iter` had
`bit_size` bits, but in one case it is explicitly i64. This works on
little endian platforms, but caused the nir_loop_unroll_test.fadd{,_rev}
tests to fail on big endian platforms.
Bug: https://bugs.gentoo.org/921297
Fixes: 268ad47c11 ("nir/loop_analyze: Handle bit sizes correctly in calculate_iterations")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26964 >
2024-01-10 21:47:30 +00:00
Yiwei Zhang
3923d43908
meson/vulkan/util: allow venus to drop compiler deps
...
Files to compile: 451 => 232
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26783 >
2024-01-10 21:06:35 +00:00
Eric Engestrom
fb93475139
ci/deqp: set default platform to default instead of glx, to also support wayland
...
In our case (because we have the libs installed),
`-D DEQP_TARGET=default` = `xlib` (what `-D DEQP_TARGET=x11_glx` enables) + `xcb` + `wayland`
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26896 >
2024-01-10 20:13:01 +00:00
Eric Engestrom
e1935daa19
ci: convert several find | xargs to find -exec
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26896 >
2024-01-10 20:13:01 +00:00
Matt Turner
0ab7ea56b2
symbols-check: Add _GLOBAL_OFFSET_TABLE_
...
This is exported on hppa/parisc.
See also: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/291
Cc: mesa-stable
Bug: https://bugs.gentoo.org/908079
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26978 >
2024-01-10 19:25:05 +00:00
Lionel Landwerlin
62c21c240e
anv: remove ANV_ENABLE_GENERATED_INDIRECT_DRAWS variable
...
We have a threshold drirc value & environment variable.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26967 >
2024-01-10 18:32:24 +00:00
Samuel Pitoiset
59c05b9cfa
Revert "radv/rt: Lower ray payloads to registers"
...
This causes GPU hangs with vkd3d-proton in CI.
This reverts commit 658ce711d5 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26983 >
2024-01-10 18:12:55 +00:00
Alessandro Astone
a077c14f15
zink: Fix resizable BAR detection logic
...
This was broken in two ways:
* When looking for the MAX biggest_ram it was actually comparing
a candidate against biggest_vis_ram
* mem_props.memoryTypes[] should be accessed with the memory type
index as found in heap_map
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10341
Cc: 23.3 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26979 >
2024-01-10 17:53:21 +00:00
Ruijing Dong
9d1e69ca45
radeonsi/vcn: update session_info from vcn3 and up.
...
session_info needs to be updated to vcn4 and up, since
it is safe to change it from vcn3 to cover all the needed
VCNs, thus this change came from VCN3.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26940 >
2024-01-10 17:36:06 +00:00
David Heidelberg
39616c13e0
ci/rootfs: add libdrm also inside the rootfs
...
Fixes: 4023301010 ("ci: enable ci-deb-repo for libdrm 2.4.119 (and others in the future)")
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26971 >
2024-01-10 16:39:20 +00:00
Eric Engestrom
0960fd5e8a
ci: split & reuse debian version identifier
...
It was set on non-debian containers, and it was missing on debian-based
rootfs containers.
Fixes: 4023301010 ("ci: enable ci-deb-repo for libdrm 2.4.119 (and others in the future)")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26971 >
2024-01-10 16:39:20 +00:00
Samuel Pitoiset
41cbd6f735
radv: rework declaring color arguments for PS epilogs
...
Rely on the actual FS outputs instead of the spi shader col format,
this is safer and it will help for future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26903 >
2024-01-10 16:10:15 +00:00
Max R
75fa621d34
d3d10umd: Fix compilation
...
Fixes: 4eb4c9bba ("d3d10umd: use cso_context to set vertex buffers and elements")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10054
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26370 >
2024-01-10 15:52:52 +00:00
Mike Blumenkrantz
0444d057ae
zink: ignore tc buffer replacement info
...
without tc tracking cross-context buffer usage, this is intensely broken
Fixes: 96cf4531e1 ("Revert "gallium/u_threaded: buffer sharedness tracking"")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26959 >
2024-01-10 15:35:12 +00:00
Mike Blumenkrantz
6e4d901a2e
zink: fix buffer rebind early-out check
...
this was accidentally inverted; the rebind attempt is over if the
number of enacted rebinds >= the expected rebinds
Fixes: c32bcb9a8c ("zink: improve handling of buffer rebinds using tc info")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26959 >
2024-01-10 15:35:12 +00:00
Alyssa Rosenzweig
8ddd89ffa5
nir,zink: Redefine flat_mask in terms of I/O locations
...
Robust against separable shaders, and still makes sense for lowered I/O drivers,
whereas just counting FS variables and expecting them to match with the VS is...
questionable.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Signed-off-by: antonino <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26888 >
2024-01-10 14:30:14 +00:00
Roman Stratiienko
efe12ae7ee
egl/android: Switch to generic buffer-info code
...
Switch to a new common buffer-info layer. After this change, the virgl
fallback logic is changed, but it should work as well.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Tested-by: Mauro Rossi <issor.oruam@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24374 >
2024-01-10 14:09:23 +00:00
Martin Roukala (né Peres)
ff82868a60
Revert "ci: disable mupuf's farm"
...
This reverts commit f5125637c085cd4b9bd6fe07813a2505aa3196cb, now that
the electricity rework is over.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26974 >
2024-01-10 13:49:07 +00:00
Alyssa Rosenzweig
bec61b72b1
agx: clang-fmt
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5948e7ec2e
agx: unit test split uniform opt
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
ab7fb3d400
asahi: don't canonicalize nans/flush denorms when copying
...
CL image copies
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5cd7416542
asahi: fallback some resource copies
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
355af1e903
agx: require min alignment for load/store vectorize
...
fixes test_basic vload_constant
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
96cd467559
agx: add unit test for pcopy lowering bug
...
hit by test_basic.local_kernel_scope
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5b50040c51
agx: fix 64-bit phis with inlined immediates
...
test_basic local_kernel_scope
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
1f0abffdaf
agx: expand agx_index
...
cl kernels can be large.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
51f8bded0e
agx: optimize split(64-bit uniform)
...
Trying to clean up CL.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
344ec42587
asahi: add missing tib alignment check
...
+ unit test replicating issue.
Fixes arb_sample_shading-builtin-gl-sample-mask-mrt-alpha-to-coverage
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
dd42bf84a3
asahi: fix passthrough GS with poly modes
...
affects wireframe xfb piglits.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
10d48979ce
asahi: make txf robust properly
...
KHR-NoContext.gl43.robust_buffer_access_behavior.texel_fetch
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
f6d5832b6c
asahi: plumb get_ubo_size
...
for robustness lowering.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
21aaba5b83
asahi: inline something silly
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
27e3e88f18
asahi: rotate xfb'd tri strips
...
spec req.
GTF-GL46.gtf30.GL3Tests.transform_feedback.transform_feedback_geometry
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
f70da4e920
asahi: factor out libagx_map_vertex_in_tri_strip
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
9d78e40735
asahi: cl-ify some xfb logic
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
76e8a68249
asahi: link libagx before lowering mem access widths
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
c688db1fd7
asahi: add missing GS line strip (+adj) handling
...
How did this pass GLES CTS?!
GTF-GL46.gtf31.GL3Tests.primitive_restart.primitive_restart_mode
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
ed05cfb674
asahi: disable fp16 cbuf cap
...
GTF-GL46.gtf21.GL2Tests.glGetUniform.glGetUniform
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
dd840eb501
asahi: divide by xfb stride for xfb draws
...
KHR-GL46.transform_feedback.draw_xfb_stream_instanced_test
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
8ce71e5b88
asahi: invert program_point_size
...
make 0 the default value.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5eae46d9ea
asahi: rm agx_vbufs wrapper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
9192d8367b
asahi: rm vbuf.count from key
...
Unused and causing piles of shader variants in STK. Yikes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
13603bedc7
asahi: rm blend->store from shader key
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
3f094e635f
asahi: rm nr_cbufs from key
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
d31d0af5c5
asahi: rm logicop enable bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
1bdf189393
asahi: rm unused blend enable bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
97f9f7ab0a
asahi: implement point sprites w/o shader key
...
we can replace varyings with point sprites, we just need to fix up .zw
appropriately. do that with some bcsels, ALU is cheap.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
ba0f28ad8b
asahi: rm layered bit from shader key
...
Just always use layered, like AGXV. This was a pointless bit of optimization
that only affects render target spilling with neglible impact.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5931862c29
asahi: rm pointless multisample key bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
78614653a6
asahi: bump vertex shader outputs
...
KHR-Single-GL46.enhanced_layouts.xfb_explicit_location
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
a20c693b7f
agx: fix xfb of invalid var
...
KHR-Single-GL44.enhanced_layouts.xfb_capture_struct
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
e0c1776187
agx: fix xfb of invalid comp
...
KHR-Single-GL44.enhanced_layouts.xfb_capture_inactive_output_component
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
4071baf1b3
agx: const fold after discard lowering
...
to avoid silly xor op with an unconditional discard.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
1006e27627
asahi: implement xfb overflow queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
c4fd1abc8b
asahi: stub qbo on the cpu
...
allowed by spec, perf will suck of course.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
6deaaaa46a
asahi: rework compute emptiness tracking
...
from debugging tess.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
33229d4ace
agx: handle imm inlining into phis
...
allows better coalescing
total instructions in shared programs: 1881875 -> 1881745 (<.01%)
instructions in affected programs: 169787 -> 169657 (-0.08%)
helped: 288
HURT: 234
Instructions are helped.
total bytes in shared programs: 12332916 -> 12323788 (-0.07%)
bytes in affected programs: 1958846 -> 1949718 (-0.47%)
helped: 778
HURT: 108
Bytes are helped.
total halfregs in shared programs: 498490 -> 498126 (-0.07%)
halfregs in affected programs: 6960 -> 6596 (-5.23%)
helped: 102
HURT: 28
Halfregs are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
efeed6a6fc
agx: prepare for immediates in phis
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
b7585851d0
agx: allow phis with 16bit imms
...
could do 32-bit too..
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
d8391860d9
agx: use mov imm for pcopies
...
allows bigger imms. no shaderdb changes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
6102c866d1
agx: use custom assert when packing
...
so it dumps out the context of what we're packing. much friendly for debug.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
b8c80c5e80
agx: mv agx_read/write_regs to validator
...
since agx_index::channels is now always correct.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
b7da198274
agx: trust in agx_index size
...
validated.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
75d911f0ee
agx: add index size helper
...
to replace the switches.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
8e938d48f5
agx: rm outdated comment
...
no more logical ends
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
a65f17bfea
agx: rm silly todo
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
7f1ec658e9
agx: validate post-RA
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
f0b8d933fc
agx: make vec widths explicit in IR
...
no functional changes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Asahi Lina
caee8a3114
agx: Add scoreboarding to stack instructions
...
These are basically device loads/stores and behave similarly.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Asahi Lina
f5ea767625
agx: Fix packing of stack map/unmap
...
We got the register indices wrong...
Signed-off-by: Asahi Lina <lina@asahilina.nt >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Alyssa Rosenzweig
5009e48748
agx: skip scoreboard bit in builder for !wait
...
it's supposed to be set late, not at build-time.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:38 -04:00
Asahi Lina
7fff5a128b
asahi: Implement BO alignment
...
The stack/scratch blocks need to be aligned to greater than the page
size in some cases. Add support for allocating BOs with a given
alignment in GPU VA space.
To avoid having to touch all callers, this adds a new function
agx_bo_create_aligned() for this purpose.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Asahi Lina
4dcb0d40d2
asahi: Add .editorconfig for CL files
...
These are formatted with 3-space indents like our C code, so tell
editors about it.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
i509VCB
d30b0adddb
agx: remove internal agx_device queue
...
The internal queue is unusued by agxv. An earlier commit changed the gallium driver to initialize it's own queue.
Signed-off-by: i509VCB <git@i509.me >
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
i509VCB
8f52e72686
asahi: create queue for screen
...
Signed-off-by: i509VCB <git@i509.me >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
43fc09a0d8
agx: implement query_levels
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
65789854c5
agx: lower votes to ballots
...
not optimal but passes the tests.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c037fa376d
agx: wire up some ballots
...
lots of possibly optimizations but that's for another day
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
93d15c2bd2
agx: optimize fcmp like fcmpsel
...
total instructions in shared programs: 1810310 -> 1807236 (-0.17%)
instructions in affected programs: 269043 -> 265969 (-1.14%)
helped: 1553
HURT: 17
Instructions are helped.
total bytes in shared programs: 11851492 -> 11834830 (-0.14%)
bytes in affected programs: 1786394 -> 1769732 (-0.93%)
helped: 1540
HURT: 37
Bytes are helped.
total halfregs in shared programs: 474698 -> 474333 (-0.08%)
halfregs in affected programs: 6239 -> 5874 (-5.85%)
helped: 146
HURT: 22
Inconclusive result (%-change mean confidence interval includes 0).
total threads in shared programs: 19012032 -> 19012096 (<.01%)
threads in affected programs: 768 -> 832 (8.33%)
helped: 1
HURT: 0
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
61944b23cf
asahi: fix max tex sizes
...
per https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
4690ecd15f
asahi: fix set_sampler_views
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
210c6931ff
agx: fix early-z + discard together
...
don't trigger tests twice.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
eab145e223
agx: use more mem->tex barriers even on g13g
...
fixes KHR-GLES31.core.texture_buffer.texture_buffer_atomic_functions
with bigger subgroups on g13g.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2aa82f7fd3
asahi: disable compute-based blitter for now
...
works great on g13g but hoses g13x. needs investigation.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
dd787b7b43
asahi: fix scissor arrays
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
6612532942
asahi: use copy region for decompression
...
for snorm correctness.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
1b849f8557
asahi: fix snorm staging blits
...
snorm doesn't roundtrip, use something compatible instead.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c3ffcc27c1
asahi: implement blit-based resource_copy_region
...
doesn't handle complex cases, but faster than hitting the cpu!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c9b2bf84e5
asahi: do not stall for writers with invalid mips
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
69e6606bf9
asahi: reduce transfer map flushing with staging blits
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
7c86e6c05c
asahi: fix data valid tracking
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
386bd7fb97
asahi: set data_valid on first draw
...
otherwise we need to flush to read it safely which is ridiculous.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
b46e8fb4fe
asahi: drop custom mipmap generate
...
mipmap gen is now significantly faster with the default :~)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2feea36b37
asahi: allow multiple compute dispatches in a batch
...
glmark2 terrain 50% faster. yes, really.
requires setting more barriers to fix flakes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
10e528a495
asahi: fix get_batch with compute batches
...
we'll be able to switch between compute and gfx queues soon, handle that instead
of assert failing.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
b8f737937f
asahi: add and use batch_is_compute helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
9063da53d8
asahi: add compute blitter
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
1c60ced65b
asahi: fix image_mask with unbind num trailing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
54ea408742
asahi: allow compressed image stores in blits
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c54502ebe0
asahi: respect last_block
...
for blit shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c1636ba56c
asahi: implement arrays as 2d for internal images
...
reduces blit shader variants.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
799f568dcc
asahi: don't format convert with staging blits
...
this is supposed to be a copy
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
c455a27f54
agx: allow bindful arrays if not clamping
...
for blit shaders mostly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
611fcfc5ca
asahi: do not use compression blits for uncompressed levels
...
pointless, it's much faster to just twiddle on the cpu. use the helpers to
detect compression per-level the right way.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
11a180c6e1
ail: add ail_is_level_twiddled_uncompressed
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
8dcdf5040b
ail: use is_level_compressed
...
to get unit testing coverage. identified several bugs!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
67d92e0bb6
ail: add is_level_compressed query
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2728995f12
asahi: fix eMRT + background load interaction
...
for when some render targets are spilled only. prevents regression in
KHR-GLES31.core.draw_buffers_indexed.color_masks
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Pavel Ondračka
0610891c7c
r300/ci: add piglit job
...
Runs the gpu tests, runtime is around 25 minutes. Contrary to dEQP which
is quite stable with the disabled HiZ, piglit flakes a lot more, but
the flakes seems mostly limited to tex-miplevel-selection.
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26931 >
2024-01-10 12:28:12 +01:00
Samuel Pitoiset
58d2a78dba
radv: move dri options to radv_instance::drirc
...
To make it clearer that such an option is a per-application option.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26946 >
2024-01-10 10:07:40 +00:00
Samuel Pitoiset
1854d03c20
radv: query drirc options in only one place
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26946 >
2024-01-10 10:07:40 +00:00
Pavel Ondračka
67ad1142cf
r300/ci: switch to b2c v0.9.11
...
New version shoudl provide more info about downloads and hopefully
help in debugging some random timeouts.
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26966 >
2024-01-10 09:50:08 +00:00
Pavel Ondračka
fc89790254
r300/ci: add missing kernel url quotes
...
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26966 >
2024-01-10 09:50:08 +00:00
Eric Engestrom
b3485664f3
egl: only accept APIs that are compiled in
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20839 >
2024-01-10 09:16:09 +00:00
Marek Olšák
68418db212
winsys/amdgpu: remove amdgpu_bo_sparse::gpu_address, use amdgpu_va_get_start_addr
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26914 >
2024-01-10 08:41:42 +00:00
Marek Olšák
d05e029ff0
winsys/amdgpu: remove amdgpu_bo_real::gpu_address, use amdgpu_va_get_start_addr
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26914 >
2024-01-10 08:41:42 +00:00
Marek Olšák
1f5f1ce29d
meson: require libdrm_amdgpu 2.4.119
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26914 >
2024-01-10 08:41:42 +00:00
Tapani Pälli
29fc135a55
anv: use workaround framework for Wa_22018402687
...
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/26925 >
2024-01-10 08:26:41 +00:00
Tapani Pälli
afc7203539
iris: use workaround framework for Wa_22018402687
...
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/26925 >
2024-01-10 08:26:41 +00:00
antonino
0fd066a1d7
egl: only check dri3 on X11
...
When mesa is built without support for X11 Zink will always refuse to
start unless `LIBGL_KOPPER_DRI2` is set.
Only perform this check on X11 where it is relevant.
Fixes: cedb534a17 ("egl/glx: don't load non-sw zink without dri3 support")
Reviewed-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26929 >
2024-01-10 08:07:11 +00:00
Tatsuyuki Ishi
71e486d1cf
radv: Add layer to skip UnmapMemory for Quantic Dream Engine
...
Detroit: Become Human has an optimization issue where the same BO is
mapped and unmapped on a per-frame basis, which leads to massive
overhead in the kernel, both creating the mapping and taking page
faults.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26942 >
2024-01-10 07:39:58 +00:00
Martin Roukala (né Peres)
dd758d9de9
ci: disable collabora's farm which appears to be down
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26965 >
2024-01-10 09:07:07 +02:00
Martin Roukala (né Peres)
b0149a22b2
ci: disable mupuf's farm
...
The room is receiving electrical work, so let's shut down the system
during the renovation which is expected to last less than a day.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26965 >
2024-01-10 09:04:49 +02:00
David Heidelberg
8467b7f44a
ci: bump Fedora and Android libdrm2 to 2.4.119
...
Reviewed-by: Eric Engestrom <eric@igalia.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/26814 >
2024-01-10 01:38:50 +00:00
David Heidelberg
7d0630d763
ci/alpine: update to latest to get libdrm 2.4.119
...
Reviewed-by: Eric Engestrom <eric@igalia.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/26814 >
2024-01-10 01:38:50 +00:00
David Heidelberg
4023301010
ci: enable ci-deb-repo for libdrm 2.4.119 (and others in the future)
...
Reviewed-by: Eric Engestrom <eric@igalia.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/26814 >
2024-01-10 01:38:49 +00:00
Roman Stratiienko
436051f8ee
u_gralloc: Add QCOM gralloc support
...
Adds support for legacy QCOM grallocs that are a part of AOSP:
hardware/qcom/display/*/libgralloc
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Tested-by: tarsin <yuanqingxiang233@163.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25410 >
2024-01-10 00:44:05 +00:00
Roman Stratiienko
3922bd5976
u_gralloc: Extract common code from fallback gralloc
...
... to reuse it later in QCOM gralloc.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Tested-by: tarsin <yuanqingxiang233@163.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25410 >
2024-01-10 00:44:05 +00:00
Konstantin Seurer
4c363acf94
vtn: Allow for OpCopyLogical with different but compatible types
...
> Result Type must not equal the type of Operand (see OpCopyObject),
> but Result Type must logically match the Operand type.
Allow for this by setting the expected type and making sure, that both
types match.
cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10163
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26252 >
2024-01-09 21:53:21 +00:00
Thomas H.P. Andersen
745d7b63eb
docs: update features.txt for nvk
...
Advertise:
VK_EXT_pipeline_creation_cache_control
VK_EXT_pipeline_creation_feedback
VK_EXT_shader_module_identifier
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
83ba2498c2
nvk: VK_EXT_shader_module_identifier
...
dEQP-VK.pipeline.monolithic.shader_module_identifier.*
Test run totals:
Passed: 530/1292 (41.0%)
Failed: 0/1292 (0.0%)
Not supported: 762/1292 (59.0%)
Warnings: 0/1292 (0.0%)
Waived: 0/1292 (0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
057133927b
nvk: VK_EXT_pipeline_creation_cache_control
...
dEQP-VK.pipeline.monolithic.creation_cache_control.*
Test run totals:
Passed: 16/18 (88.9%)
Failed: 0/18 (0.0%)
Not supported: 2/18 (11.1%)
Warnings: 0/18 (0.0%)
Waived: 0/18 (0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
74647ee45a
nvk: VK_EXT_pipeline_creation_feedback
...
dEQP-VK.*creation_feedback*
Test run totals:
Passed: 13/73 (17.8%)
Failed: 0/73 (0.0%)
Not supported: 60/73 (82.2%)
Warnings: 0/73 (0.0%)
Waived: 0/73 (0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
d6a1e29ccd
nvk: pipeline shader cache
...
dEQP-VK.pipeline.monolithic.cache.*
Test run totals:
Passed: 773/773 (100.0%)
Failed: 0/773 (0.0%)
Not supported: 0/773 (0.0%)
Warnings: 0/773 (0.0%)
Waived: 0/773 (0.0%)
Timing these test:
Before:
real 0m11,304s
user 0m9,442s
sys 0m0,477s
After:
real 0m3,470s
user 0m1,962s
sys 0m0,504s
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
ad802ae2f9
nvk: allocatable nvk_shaders
...
This will be needed later when the shader life cycle will be managed
by the pipeline cache
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Faith Ekstrand
3e4411a1d3
nvk: Free shaders created by codegen
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
3e13d0fcd9
nvk: add hashing for shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Thomas H.P. Andersen
1cb6b4f82d
nvk: loop over stages in MESA order
...
we do this to make the VkPipelineShaderStageCreateInfo available
when we want to calculate the shader hash
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25550 >
2024-01-09 20:27:27 +00:00
Friedrich Vock
0b55a3cf64
radv/rt: Acceleration structure updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26729 >
2024-01-09 18:47:45 +00:00
Friedrich Vock
62fe4f0b1b
radv/rt: Move per-geometry build info into a geometry_data struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26729 >
2024-01-09 18:47:45 +00:00
Alyssa Rosenzweig
3da2773316
vtn: fuse OpenCL mad if we can can
...
clpeak "float" case from 1112 -> 1978 GFLOPS on rusticl on m1.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26932 >
2024-01-09 18:04:19 +00:00
Simon Zeni
f6d2df5a75
egl: implement EGL_EXT_query_reset_notification_strategy
...
`EGL_EXT_query_reset_notification_strategy` complements
`EXT_create_context_robustness` and enables an application or framework to
retrieve an existing context's reset notification strategy in order to create
a compatible shared context.
Signed-off-by: Simon Zeni <simon.zeni@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25996 >
2024-01-09 17:21:44 +00:00
Simon Zeni
73603c19c5
EGL: sync files with Khronos
...
Signed-off-by: Simon Zeni <simon.zeni@collabora.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25996 >
2024-01-09 17:21:44 +00:00
Teng, Jin Chung
db5ddf1c2e
d3d12: Decode - Adding more supported resolution
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26944 >
2024-01-09 17:03:44 +00:00
Samuel Pitoiset
4c7486c9aa
radv/winsys: replace '<= GFX6' by '== GFX6'
...
GFX6 is the first AMD family supported by RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26867 >
2024-01-09 16:31:31 +00:00
Samuel Pitoiset
ae4628d3d6
radv: do not program COMPUTE_MAX_WAVE_ID (GDS register) on GFX6
...
Ported from RadeonSI c2359797 .
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26867 >
2024-01-09 16:31:30 +00:00
Mike Blumenkrantz
ec656e1984
lavapipe: maint6
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881 >
2024-01-09 15:24:12 +00:00
Mike Blumenkrantz
89a7ee7393
lavapipe: maint6 descriptor stuff
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881 >
2024-01-09 15:24:12 +00:00
Mike Blumenkrantz
6c83b9f219
vk/cmd_queue: fix up indentation a little
...
still kinda fucked
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881 >
2024-01-09 15:24:12 +00:00
Mike Blumenkrantz
e977a2368b
vk/cmd_queue: generate maint6 functions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881 >
2024-01-09 15:24:12 +00:00
Mike Blumenkrantz
2439982eac
vk/cmd_queue: stop using explicit casts
...
this just ends up being broken for complex types anyway
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26881 >
2024-01-09 15:24:12 +00:00
José Roberto de Souza
ad158b0bee
anv: Call anv_measure_submit() before anv_cmd_buffer_chain_command_buffers()
...
Otherwise the measurement instructions will be placed after the
MI_BATCH_BUFFER_START calling the next cmd_buffer.
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/26882 >
2024-01-09 14:28:19 +00:00
José Roberto de Souza
d37414d8a4
anv: Fix anv_measure_start/stop_snapshot() over copy or video engine
...
Those engines don't have PIPE_CONTROL so we can't do
ANV_TIMESTAMP_CAPTURE_AT_CS_STALL but we can support measurement
by changing the capture type to ANV_TIMESTAMP_CAPTURE_TOP/END_OF_PIPE
Right now this issue is only reproduced in Xe KMD without setting
any special parameters(other than INTEL_MEASURE) because Xe KMD allows
the usage of copy engine while i915 can't due TRTT restrictions.
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/26882 >
2024-01-09 14:28:19 +00:00
José Roberto de Souza
b8d48ebc93
anv: Add missing anv_measure_submit() calls in Xe KMD backend
...
Without this intel_measure don't work with Xe KMD.
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/26882 >
2024-01-09 14:28:19 +00:00
José Roberto de Souza
a0f7820fe8
anv: Simply companion_rcs handling
...
Here dropping is_companion_rcs_cmd_buffer parameter of a few functions
that don't need this information, it just need the right
anv_cmd_buffer for each case.
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/26882 >
2024-01-09 14:28:18 +00:00
José Roberto de Souza
428a179865
anv: Drop useless STATIC_ASSERT in anv_physical_device_init_queue_families()
...
assert(family_count <= ANV_MAX_QUEUE_FAMILIES) already takes care
of STATIC_ASSERT without need of updates.
Suggested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
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/26882 >
2024-01-09 14:28:18 +00:00
José Roberto de Souza
0997766069
anv: Increase ANV_MAX_QUEUE_FAMILIES
...
If ANV_VIDEO_DECODE, ANV_VIDEO_DECODE and INTEL_COPY_CLASS are enabled
it is possible to have 5 different queues, so here increasing
ANV_MAX_QUEUE_FAMILIES.
Fixes: 17b8b2cffd ("anv: Add support for a transfer queue on Alchemist")
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/26882 >
2024-01-09 14:28:18 +00:00
José Roberto de Souza
0c42c79edf
utils/u_debug: Fix parse of "all,<something else>
...
If debug string is something like "all,file=..." the all case would
never be executed, this can be fixed by comparing up to strlen("all").
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/26882 >
2024-01-09 14:28:18 +00:00
Erik Faye-Lund
a63f3fbdae
mesa: check for float-format support
...
Surprisingly enough, EXT_color_buffer_float doesn't make RGB32F
color-renderable, but EXT_color_buffer_half_float *does* make
RGB16F color-renderable...
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26870 >
2024-01-09 13:45:38 +00:00
Erik Faye-Lund
c75b882de4
mesa/main: require EXT_color_buffer_float for ES 3.2
...
OpenGL ES 3.2 makes FP16 and FP32 textures color-renderable, so this is
effectively a requirement.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26870 >
2024-01-09 13:45:38 +00:00
Erik Faye-Lund
782fb8966b
mesa: actually check for EXT_color_buffer_float support
...
EXT_color_buffer_float makes both 16 and 32 bit floating-point texture
formats color-renderable. We can't just unconditionally report that, we
need to check for support.
The RGB formats are a bit special under this extension, because it's not
specified as color-renderable. However, because the RGBA formats *are*
specified as color-renderable, and the state-tracker can emulate the RGB
formats with the RGBA ones, we don't need to test for that here.
While we're at it, move EXT_color_buffer_half_float to its correct
sorted position.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26870 >
2024-01-09 13:45:38 +00:00
Erik Faye-Lund
5f995f5e34
mesa/st: do not check for emulated format
...
The state-tracker can emulate this format with the alpha version, so we
don't actually need the X version in addition...
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26870 >
2024-01-09 13:45:38 +00:00
Erik Faye-Lund
ee8ac6a7a2
mesa/st: do not require render-target support for texture-only exts
...
These extensions only enable texturing support for these formats, so we
don't need to require them to be renderable.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26870 >
2024-01-09 13:45:38 +00:00
Iago Toral Quiroga
5c42d6c62f
v3dv: implement VK_EXT_shader_demote_to_helper_invocation
...
Demoting means that we don't execute any writes to memory but
otherwise the invocation continues to execute. Particularly,
subgroup operations and derivatives must work.
Our implementation of discard does exactly this by using
setmsf to prevent writes for the affected invocations, the
only difference for us is that with discard/terminate we
want to be more careful with emitting quad loads for tmu
operations, since the invocations are not supposed to be
running any more and load offsets may not be valid, but with
demote the invocations are not terminated and thus we should
emit memory reads for them to ensure quad operations and
derivatives from invocations that have not been demoted still
work.
Since we use the sample mask to implement demotes we can't tell
whether a particular helper invocation was originally such
(gl_HelperInvocation in GLSL) or was later demoted
(OpIsHelperInvocationEXT added with SPV_EXT_demote_to_helper_invocation),
so we use nir_lower_is_helper_invocation to take care of this.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26949 >
2024-01-09 13:22:37 +00:00
Konstantin Seurer
658ce711d5
radv/rt: Lower ray payloads to registers
...
This should allow for cross stage optimizations and it reduces latency
caused by scratch access.
Totals from 44 (9.69% of 454) affected shaders:
MaxWaves: 432 -> 436 (+0.93%)
Instrs: 2740662 -> 1610327 (-41.24%); split: -41.24%, +0.00%
CodeSize: 14616932 -> 8573620 (-41.34%)
VGPRs: 4880 -> 4816 (-1.31%)
SpillSGPRs: 464 -> 294 (-36.64%)
Latency: 18548886 -> 11465281 (-38.19%); split: -38.19%, +0.00%
InvThroughput: 5195964 -> 3066729 (-40.98%); split: -40.98%, +0.00%
VClause: 99672 -> 55611 (-44.21%)
SClause: 65827 -> 38697 (-41.21%)
Copies: 231231 -> 137676 (-40.46%); split: -40.47%, +0.01%
Branches: 111379 -> 65865 (-40.86%); split: -40.87%, +0.00%
PreSGPRs: 3854 -> 3812 (-1.09%); split: -1.19%, +0.10%
PreVGPRs: 4518 -> 4439 (-1.75%); split: -1.84%, +0.09%
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26431 >
2024-01-09 13:02:11 +00:00
Sviatoslav Peleshko
8e6d28f473
intel/tools/tests: Add i965_asm tests for gfx12 and gfx12.5
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
b87fc2125e
intel/tools/tests: Unbreak i965_asm tests
...
Currently it's searching for test cases in the nonexistent folders, and
because there are none, tests always pass. Point the script onto the
correct ones. And while we're at it, add a check to make sure this
situation won't repeat in the future.
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
bb2083a57c
intel/tools/tests: Fix sends indirect argument in gfx9 test
...
Currently it's in the wrong format. It was fixed in disasm in
98aab272 ("intel/disasm: Properly disassemble indirect SENDs").
This was accidentally working previously, but isn't accepted after the
changes made to implement send on gfx12.
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
98d2461424
intel/tools/i965_asm: Don't set src0 for break and while on gfx12
...
This effectively implements same changes as were done to codegen in
bafc9515 ("intel/eu/gen12: Codegen control flow instructions correctly.")
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
db4d58fe31
intel/tools/i965_asm: Add dp4a and add3 instructions
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
88fcd305be
intel/tools/i965_asm: Implement gfx12 and gfx12.5 send/sendc
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
bc46cc7807
intel/tools/i965_asm: Allow src0 and src2 of ternary instructions to be imm
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
8eaa0db13f
intel/tools/i965_asm: Don't override flag reg from cond modifier
...
Both predication and conditional modifier use the same flag, but in
assembly it's specified only once. If the instruction already has a
flag from predication we should not override it with zeroes.
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
f96e08f34d
intel/tools/i965_asm: Allow neg and abs modifiers on accumulator register
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
98665e024f
intel/tools/i965_asm: Handle sync instruction
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
9dd3a6f86f
intel/tools/i965_asm: Handle HF immediates
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
0c41a8f5d6
intel/tools/i965_asm: Add SWSB handling
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
cfb34dc695
intel/eu/validate: Validate that the ExecSize is a factor of chosen ChanOff
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
dbf6f0291a
intel/fs: Set group 0 for Wa_14010017096 MOV instruction
...
We always set exec size to 16 for this MOV, but the execution group remains
from the previous emitted instruction. This can cause emitting a group
which violates PRM restriction for ChanOff: "The execution size (ExecSize)
must be a factor of the chosen offset."
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
173a991405
intel/disasm: Print src1_len correctly depending on ExDesc type
...
There are two "Src1.Length" with different formats in "send" description
in the PRMs. One is part of ExMsgDesc, is relevant for LSC SFIDs, and
exists if [ExDesc.IsReg]==false. The other is just a 5-bit immediate,
is relevant for other SFIDs too, and exists if ([ExDesc.IsReg]==true)
AND ([ExBSO]==true).
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
b5c0b90402
intel/compiler: Set flag reg to 0 when disabling predication
...
Having the reg set with predication disabled shouldn't cause any problems
during the execution. But when decompiling such instruction the flag won't
be shown in the output, so the recompiling will cause
functionally-identical but binary-different code. Fixing this makes
disasm/asm testing easier.
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
a129e136de
intel/disasm: Print half-float values instead of placeholder
...
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:52 +00:00
Sviatoslav Peleshko
4f41c44df2
intel/compiler: Add variable to dump binaries of all compiled shaders
...
This can be useful for testing i965_disasm and i965_asm by comparing
bin -> asm -> bin results.
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25657 >
2024-01-09 11:35:51 +00:00
Alejandro Piñeiro
54e2e44f99
broadcom/compiler: remove one superfluous call to nir_opt_undef
...
v3d_optimize_nir is calling nir_opt_undef twice. As it is inside the
usual "do {..} while (progress);" loop, is not needed to call it
twice.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26928 >
2024-01-09 12:02:36 +01:00
Italo Nicola
a60c52e5f8
panfrost: expose support for EXT_copy_image
...
This was held back by the issue fixed in the previous patch. Let's
enable it again!
There's a bunch of failures due to a bug in Piglit, where undefined
behavior gets invoked. Let's just mark them as expected failures for now
and move on.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942 >
2024-01-09 09:21:29 +00:00
Italo Nicola
17a62ff993
panfrost: legalize afbc before blitting
...
If we legalize AFBC late, we end up in a situation while we might need
to do a blit while inside a previous blit operation, but u_blitter
state isn't saved recursively, and that leads to crashes.
This patch solves this issue by splitting panfrost_blit into two
functions and legalizing AFBC early.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942 >
2024-01-09 09:21:29 +00:00
Italo Nicola
5027b5aa28
gallium: stop calling resource_copy_region for multisampled copy_image
...
The hook explicitly says it's not supposed to be called for nr_samples > 1.
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942 >
2024-01-09 09:21:29 +00:00
Italo Nicola
c6a7d0ead2
panfrost: fix untracked dependency when converting resource modifier
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942 >
2024-01-09 09:21:29 +00:00
Erik Faye-Lund
3e1708ea40
panfrost: document ci failure
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24942 >
2024-01-09 09:21:29 +00:00
Konstantin Seurer
2e4951d3fb
radv: Remove the BVH depth heuristics
...
It only helps Quake II RTX and hurts everything else.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26481 >
2024-01-09 09:00:24 +00:00
Konstantin Seurer
719619c477
radv: Use PLOC for TLAS builds
...
Improves control performance by about 1%.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26481 >
2024-01-09 09:00:24 +00:00
Dave Airlie
71bd479a7f
radv: don't emit cp dma packets on video rings.
...
Only emit this on the gfx/ace rings.
Fixes hangs with CTS on video decode with navi3x.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26945 >
2024-01-09 07:39:52 +00:00
Sergi Blanch Torne
5cee5578f7
Revert "ci: disable Collabora's LAVA lab for maintance"
...
This reverts commit 11b707de0e
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26900 >
2024-01-09 07:54:30 +01:00
Caio Oliveira
dc2170f32b
ci: Add Werror=misleading-indentation to debian-clang
...
Due to some issues with GCC and this warning in very long files, we
disabled it when compiling NIR. Unfortunately by design Meson doesn't
allow us to set flags per source file.
The warning is still enabled in clang. but it is less commonly
used during development. To avoid missing catching those warnings,
add -Werror=misleading-indentation to the GitLab CI debian-clang build.
See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25315 for
more context. This patch is a transcription of what Eric Engestrom
suggested, except only targetting C flags (since we only disable them
for C in NIR build).
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26938 >
2024-01-09 05:56:16 +00:00
Karol Herbst
6024bbed3c
rusticl/llvm: do not include spirv-tools/linker.hpp
...
This was left by mistake as we do not cache the linked output.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10404
Fixes: 299f949775 ("rusticl/meson: generate bindings for LLVM")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26943 >
2024-01-09 05:12:53 +00:00
Sergi Blanch Torne
ab6f7170e0
Revert "ac/nir: Export clip distances according to clip_cull_mask"
...
This reverts commit b38c776690 .
This commit seems to offend radeonsi-raven-piglit and radeonsi-stoney-gl.
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26941 >
2024-01-09 02:36:19 +00:00
Caio Oliveira
e0eea5ea4e
nir: Disable -Wmisleading-indentation when compiling with GCC
...
When a file is too large, -Wmisleading-indentantion will give the warning
below, that we can't prevent from a #pragma:
```
src/compiler/nir/nir_opt_algebraic.c: In function ‘nir_opt_algebraic’:
src/compiler/nir/nir_opt_algebraic.c:1469069: note: ‘-Wmisleading-indentation’ is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers
1469069 | nir_foreach_function_impl(impl, shader) {
|
src/compiler/nir/nir_opt_algebraic.c:1469069: note: adding ‘-flarge-source-files’ will allow for more column-tracking support, at the expense of compilation time and memory
```
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89549 for details.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25315 >
2024-01-09 01:40:22 +00:00
Caio Oliveira
ef88a20d96
intel/compiler: Use INTEL_DEBUG=cs to ask for brw_compiler output
...
This removes output like
```
CS SIMD16 shader: 2790 inst, 0 loops, 24804 cycles, 166:106 spills:fills, 35 sends,
scheduled with mode top-down, Promoted 1 constants, compacted 44640 to 41424 bytes.
```
from the default builds. Like other debug output in intel_clc, they can
re-enabled with INTEL_DEBUG=cs.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26939 >
2024-01-09 01:26:41 +00:00
Caio Oliveira
c21213b438
anv: Don't print warnings for GRL kernel compilations
...
Make the build less chatty. The current warnings are about certain
capabilities not being fully supported, which we don't care for these
particular kernels.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26939 >
2024-01-09 01:26:41 +00:00
Marek Olšák
f09384f4c3
gallium/u_threaded: keep it enabled even if the CPU count is 1
...
radeonsi without TC fails tests.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584 >
2024-01-08 22:56:41 +00:00
Marek Olšák
b448fb8b8f
gallium/u_threaded: remove unused param from tc_bind_buffer/add_to_buffer_list
...
the tc parameter is unused
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584 >
2024-01-08 22:56:41 +00:00
Marek Olšák
6327302ec2
gallium/u_threaded: use a dummy end call to indicate the end of the batch
...
instead of using the last pointer. This is simpler.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584 >
2024-01-08 22:56:41 +00:00
Marek Olšák
a3a6f6855e
mesa,u_threaded_context: add a fast path for glDrawElements calling TC directly
...
mesa/main/draw.c calls threaded_context to add a draw call, but the caller
fills it manually.
This way we don't have to fill pipe_draw_info in a local variable and later
copy it to tc_batch. tc_batch is filled from draw.c directly.
It also eliminates a few conditional jumps thanks to assumptions we can make
in DrawElements but not tc_draw_vbo.
This decreases the overhead of the GL frontend thread by 1.1%, which has
CPU usage of 26%, so it decreases the overhead for that thread by 4.2%.
(1.1 / 26)
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584 >
2024-01-08 22:56:41 +00:00
Marek Olšák
e04055b90e
gallium/u_threaded_context: use function table to jump to different draw impls
...
Instead of a series of if-else statements, use a function table containing
all the draw variants, which is indexed by:
[is_indirect * 8 + index_size_and_has_user_indices * 4 +
is_multi_draw * 2 + non_zero_draw_id]
This decreases the overhead of tc_draw_vbo by 0.7% (from 4% to 3.3%)
for the GL frontend thread in VP2020/Catia1, which has CPU usage of 26%,
so it decreases the overhead for that thread by 2.7%. (0.7 / 26)
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26584 >
2024-01-08 22:56:41 +00:00
Mike Blumenkrantz
03f049f497
zink: always force flushes when originating from api frontend
...
flags=0 is used for e.g., glFenceSync, which apps use to insert sync points
to determine when all prior work has completed. eliding these flushes into no-ops
is fine for all scenarios except when the last op was a present, in which
case the no-op (previous) fence will not sync as expected for the present and
graphical artifacts will result
in the future, this may be changed back to the previous behavior if/when presentation
gains timeline semaphore capabilities by providing the last timeline id
as a fence instead of the last batch
fixes #10386
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26935 >
2024-01-08 22:37:10 +00:00
Marek Olšák
4ee32ced41
glthread: add proper helpers for call fences
...
These wait for a GL call to be processed by the consumer thread.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26916 >
2024-01-08 22:04:10 +00:00
Marek Olšák
56b4d199a0
glthread: don't unroll draws using user VBOs with GLES
...
The unrolling uses glBegin, which is unsupported by GLES and the GL
dispatch fails.
Fixes: 50d791ca73 - glthread: add a vertex upload path that unrolls indices for glDrawElements
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26916 >
2024-01-08 22:04:10 +00:00
Sil Vilerino
311d653df9
d3d12: Fix AV1 Encode - log2 rounding for tile_info section
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26853 >
2024-01-08 19:47:52 +00:00
Konstantin Seurer
da647e7e42
radv/rt/rmv: Log pipeline library creation
...
Pipeline libraries own shaders which take up GPU memory.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26668 >
2024-01-08 19:29:13 +00:00
Konstantin Seurer
84cc494e51
radv/rmv: Fix tracing ray tracing pipelines
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26668 >
2024-01-08 19:29:13 +00:00
Konstantin Seurer
8050b89819
vtn: Handle DepthReplacing correctly
...
The meaning of DepthReplacing was clarified in
https://gitlab.khronos.org/spirv/SPIR-V/-/issues/342 .
TLDR: It just means that the shader can write to FragDepth.
We should therefore only overwrite depth_layout if it is equal to NONE,
since NONE means "not written" and all other modes mean "written" plus
some additional information.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10344
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26876 >
2024-01-08 18:52:50 +00:00
Corentin Noël
0541a57517
virgl: Assert build_id_note before dereferencing it
...
Fix defect reported by Coverity Scan.
Dereference null return value
If the function actually returns a null value, a null pointer dereference will occur.
CID: 1492763
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26924 >
2024-01-08 17:44:42 +00:00
Lionel Landwerlin
4b30b46ffd
intel/fs: fix depth compute state for unchanged depth layout
...
There is no VK CTS exercising this case. If there was we would run
into hangs as noticed in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26876
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26923 >
2024-01-08 17:28:12 +00:00
Leo Liu
9eac06521a
gallium/vl: match YUYV/UYVY swizzle with change of color channels
...
Update the sampler views with the color channels, that fixes the issue
caused by: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20815
It fixes the case:
`gst-launch-1.0 -v -v filesrc location=file.jpg ! jpegparse ! vaapijpegdec ! imagefreeze ! vaapisink`
Fixes: dc2119bf3f ("util/format: Fix wrong colors when importing YUYV and UYVY")
Cc: mesa-stable
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Sathishkumar S <sathishkumar.sundararaju@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26911 >
2024-01-08 17:05:57 +00:00
Pavel Ondračka
8b5cdc5fa5
ci: add r300 RV530 dEQP gles2 CI job
...
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26823 >
2024-01-08 16:19:20 +00:00
Pavel Ondračka
6fd41f5416
ci: uprev mesa-trigger container
...
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26823 >
2024-01-08 16:19:20 +00:00
Pavel Ondračka
000a8cbb65
r300: fix memory leaks in compiler tests
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26823 >
2024-01-08 16:19:20 +00:00
Timur Kristóf
55e5c4e089
radv: Expose transfer queues, hidden behind a perftest flag.
...
This is highly experimental and only recommended
for users who know what they are doing.
To fully support the spec we are going to need
gang submissions which are going to be implemented later.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26913 >
2024-01-08 16:00:19 +01:00
Timur Kristóf
bd3f2567cc
radv: Implement T2T scanline copy workaround.
...
The built-in tiled-to-tiled copy packet doesn't support copying
between images that don't meet certain criteria such as alignment,
micro tile format, compression state etc.
To work around this, we copy the image piece by piece to a
temporary buffer that we know is supported,
and then copy it to the intended destination.
The implementation assumes that at least one pixel row of the
image fits into the temporary buffer, and will try to copy as
many rows as fit.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26913 >
2024-01-08 16:00:15 +01:00
Timur Kristóf
a4b4c9b723
radv: Implement image copies on transfer queues.
...
When either of the images is linear then the implementation can
use the same packets as used by the buffer/image copies.
However, tiled to tiled image copies use a separate packet.
Several variations of tiled to tiled copies are not supported
by the built-in packet and need a scanline copy as a workaround,
this will be implemented by an upcoming commit.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26913 >
2024-01-08 16:00:10 +01:00
Timur Kristóf
1405f9b68b
radv: Correct binding index for transfer buffer-image copies.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26913 >
2024-01-08 15:58:37 +01:00
Florian Weimer
0319789331
meson: C type error in strtod_l/strtof_l probe
...
Future compilers will fail compilation due to the C type error:
…/testfile.c: In function 'main':
…/testfile.c:12:30: error: passing argument 2 of 'strtod_l' from incompatible pointer type
12 | double d = strtod_l(s, end, loc);
| ^~~
| |
| char *
/usr/include/stdlib.h:416:43: note: expected 'char ** restrict' but argument is of type 'char *'
416 | char **__restrict __endptr, locale_t __loc)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
…/testfile.c:13:29: error: passing argument 2 of 'strtof_l' from incompatible pointer type
13 | float f = strtof_l(s, end, loc);
| ^~~
| |
| char *
/usr/include/stdlib.h:420:42: note: expected 'char ** restrict' but argument is of type 'char *'
420 | char **__restrict __endptr, locale_t __loc)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
This means that the probe no longer tests is objective and always
fails.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26927 >
2024-01-08 13:46:42 +00:00
Georg Lehmann
fddd866b27
aco: apply fneg/fabs to VOP3P
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26919 >
2024-01-08 13:26:19 +00:00
Georg Lehmann
72ac6a5251
aco: clean up fneg/fabs combining
...
This technically fixes some bugs with fneg(fneg(a)) and fabs(fneg(a)), but
those shouldn't be present in the input NIR.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26919 >
2024-01-08 13:26:19 +00:00
Georg Lehmann
a90d154f62
aco: fix applying input modifiers to DPP8
...
Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26919 >
2024-01-08 13:26:19 +00:00
Georg Lehmann
1d61770dd5
aco: apply packed fneg commutatively
...
If only one component is negated, isel does not ensure that the constant
operand is in src1 because then the negate was a fmul, not a fneg.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26919 >
2024-01-08 13:26:19 +00:00
Helen Koike
2c9fdaa830
ci: fix python-test dependency error on merge requests
...
Pipeline is unable to run due to the following error:
'python-test' job needs 'debian/x86_64_build' job, but 'debian/x86_64_build' is not in any previous stage
python-test job has the following rule:
- changes:
- bin/ci/**/*
so add it as well to debian/x86_64_build
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26802 >
2024-01-08 12:19:29 +00:00
Daniel Schürmann
c1ef6037fd
nir/gather_info: fix enumeration of wide subgroup intrinsics
...
nir_intrinsic_ballot_* are no subgroup operations.
nir_intrinsic_rotate was missing.
nir_intrinsic_mbcnt_amd is not a subgroup operation.
nir_intrinsic_writelane_amd only affects a single invocation.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18249 >
2024-01-08 10:01:47 +00:00
Daniel Schürmann
d434a127f9
nir/opt_move_discards_to_top: don't schedule discard/demote across subgroup operations
...
Fixes: b447f5049b ('nir: Add a discard optimization pass')
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18249 >
2024-01-08 10:01:47 +00:00
Daniel Schürmann
dce695b24f
aco: refactor and speed-up dead code analysis
...
Assuming that no loop header phis are dead code,
we can perform the dead code analysis in a single iteration.
Totals from 25 (0.03% of 79330) affected shaders: (GFX11)
MaxWaves: 664 -> 662 (-0.30%)
Instrs: 487618 -> 488822 (+0.25%)
CodeSize: 2451548 -> 2459756 (+0.33%)
VGPRs: 1296 -> 1332 (+2.78%)
Latency: 2337256 -> 2338098 (+0.04%); split: -0.00%, +0.04%
InvThroughput: 560682 -> 576158 (+2.76%)
VClause: 15782 -> 15790 (+0.05%)
Copies: 37905 -> 38731 (+2.18%)
PreVGPRs: 1124 -> 1156 (+2.85%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26901 >
2024-01-08 09:43:53 +00:00
Yonggang Luo
a37f43e422
etnaviv/drm: Remove redundant ALIGN macro by #include "util/u_math.h"
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26865 >
2024-01-08 08:53:31 +00:00
Konstantin Seurer
b38c776690
ac/nir: Export clip distances according to clip_cull_mask
...
Avoids a mismatch between PA_CL_VS_OUT_CNTL and what the shader exports.
Outputs that are not written export zero.
Fixes: f823581 ("ac/nir: add ac_nir_export_position")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9187
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26812 >
2024-01-08 08:35:35 +00:00
Lionel Landwerlin
f12ffc6b04
isl: implement Wa_22015614752
...
This workaround requires 64Kb alignment for compression with multiple
engine accesses.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8614
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26890 >
2024-01-08 08:21:14 +00:00
Lionel Landwerlin
32450d0901
isl: further restrict alignment constraints
...
We can limit the AUX-TT requirements to formats supporting CCS.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26890 >
2024-01-08 08:21:14 +00:00
Samuel Pitoiset
907afddf97
radv: stop disabling DCC for mutable with 0 formats on GFX11
...
On GFX11, all formats are DCC compatible, so we can completely ignore
MUTABLE with a missing formats list.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25664 >
2024-01-08 08:02:58 +00:00
Samuel Pitoiset
fbe4e16db2
Revert "radv: disable DCC with signedness reinterpretation on GFX11"
...
This was affecting Cyberpunk and A Plague Tale Requiem but both issues
should be fixed now. The issue with A Plague Tale Requiem was because
of a game bug and vkd3d-proton now has a workaround.
This reverts commit e6735409ee .
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25664 >
2024-01-08 08:02:58 +00:00
Sergi Blanch Torne
11b707de0e
ci: disable Collabora's LAVA lab for maintance
...
This is to inform you of some planned downtime in the LAVA lab as follows:
* Start: 2024-01-08 08:00 UTC
* End: 2024-01-08 14:00 UTC
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26899 >
2024-01-08 07:42:31 +00:00
Christian Gmeiner
1c042537e6
pan/mdg: Use nir_builder for load_sampler_lod_parameters_pan
...
Found by code inspection as I need something similar for etnaviv.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26879 >
2024-01-08 07:23:40 +00:00
Konstantin Seurer
4d02543853
vtn: Remove transpose(m0)*m1 fast path
...
This is broken for games that rely on invariant geometry since the usage
of matrices can affect how gl_Position is computed. The fdot fastpath
relied on if and how fdot is lowered for correctness.
Totals from 6578 (7.73% of 85071) affected shaders:
MaxWaves: 147190 -> 147170 (-0.01%)
Instrs: 4451406 -> 4438140 (-0.30%); split: -0.31%, +0.01%
CodeSize: 23553020 -> 23541772 (-0.05%); split: -0.07%, +0.03%
VGPRs: 302304 -> 302328 (+0.01%)
SpillSGPRs: 1309 -> 1329 (+1.53%)
Latency: 22509985 -> 22177164 (-1.48%); split: -1.48%, +0.00%
InvThroughput: 4862795 -> 4842951 (-0.41%); split: -0.41%, +0.01%
VClause: 85035 -> 84998 (-0.04%); split: -0.06%, +0.02%
SClause: 131008 -> 131055 (+0.04%); split: -0.02%, +0.05%
Copies: 298935 -> 298060 (-0.29%); split: -0.71%, +0.41%
PreSGPRs: 266833 -> 267292 (+0.17%); split: -0.85%, +1.03%
PreVGPRs: 249511 -> 249601 (+0.04%)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9562
cc: mesa-stable
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26821 >
2024-01-07 22:14:36 +00:00
Konstantin Seurer
ba7b08e324
radv/rt: Repurpose radv_ray_tracing_stage_is_compiled
...
Replace it with radv_ray_tracing_stage_is_always_inlined and use it inside
radv_rt_compile_shaders.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:32 +01:00
Konstantin Seurer
73cc952870
radv/sqtt: Avoid duplicate stage check
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:26 +01:00
Konstantin Seurer
77b9a6f9e2
radv/rt: Use radv_shader for compiled shaders
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:19 +01:00
Konstantin Seurer
59d490b8aa
radv/rt: Remove useless assert
...
If it's NULL, the code will segfault anyways.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:11 +01:00
Konstantin Seurer
8198805e1f
radv: Skip compiling chit and miss shaders
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:06 +01:00
Konstantin Seurer
0f87d406b5
radv/rt: Skip compiling a traversal shader
...
If we don't need one, we don't compile one.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:28:02 +01:00
Konstantin Seurer
aaa64217ca
radv: Add more ray tracing data to the cache
...
This makes the cache more flexible when it comes to missing stages. This
will be used to skip compiling unused ray tracing stages.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:27:56 +01:00
Konstantin Seurer
a784477269
radv: Don't store library stack sizes
...
They are already imported in radv_rt_fill_stage_info.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:27:53 +01:00
Konstantin Seurer
92a951db6a
radv: Make pipeline cache object data generic
...
Pipeline cache objects can hold some generic data. Anything concerning
that should not be handled in "common" code paths.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25224 >
2024-01-07 21:27:27 +01:00
Marek Olšák
a84729d368
radeonsi/ci: add gfx11 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
205646cd77
winsys/amdgpu: simplify code using amdgpu_cs_context::chunk_ib
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
44df9517cd
winsys/amdgpu: don't use amdgpu_fence::ctx for fence dependencies
...
The only remaining use of ctx is amdgpu_fence_is_syncobj.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
7ccdcae4b5
winsys/amdgpu: use pipe_reference for amdgpu_ctx refcounting
...
this is the standard utility for refcounting
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
33980355d4
winsys/amdgpu: implement explicit fence dependencies as sequence numbers
...
This eliminates redundant fence dependencies if BOs add the same ones.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
6d7a76595d
winsys/amdgpu: remove dependency_flags parameter from cs_add_fence_dependency
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
6ac0b4ef05
winsys/amdgpu: rename amdgpu_bo_real::lock to map_lock
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
1e2c02d76b
winsys/amdgpu: rename amdgpu_bo_sparse::lock -> commit_lock
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
e1261c77b5
winsys/amdgpu: rename amdgpu_winsys_bo::bo -> bo_handle
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
4d486888ee
winsys/amdgpu: rewrite BO fence tracking by adding a new queue fence system
...
This decreases the time spent in amdgpu_cs_submit_ib from 15.4% to 8.3%
in VP2020/Catia1, which is a decrease of CPU load for that thread by 46%.
Overall, it increases performance by a small number in CPU-bound benchmarks.
The biggest improvement I have seen is VP2020/Catia2, where it increases
FPS by 12%.
It no longer stores pipe_fence_handle references inside amdgpu_winsys_bo.
The idea is to have a global fixed list of queues (only 1 queue per IP
for now) where each queue generates its own sequence numbers (generated
by the winsys, not the kernel). Each queue also has a ring of fences.
The sequence numbers are used as indices into the ring of fences, which
is how sequence numbers are converted to fences.
With that, each BO only has to keep a list of sequence numbers, 1 for each
queue. The maximum number of queues is set to 6. Since the system can
handle integer wraparounds of sequence numbers correctly, we only need
16-bit sequence numbers in BOs to have accurate busyness tracking. Thus,
each BO uses only 12 bytes to represent all its fences for all queues.
There is also a 1-byte bitmask saying which sequence numbers are
initialized.
amdgpu_winsys.h contains the complete description. It has several
limitations that exist to minimize the memory footprint and updating of
BO fences.
Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
b976f8fc1e
winsys/amdgpu: compute bo->unique_id at pb_slab_alloc, not at memory allocation
...
We would compute the unique IDs for 1000 slab entries and then only use
a few, wasting the IDs. Assign the IDs only when we actually need to
return a new buffer.
This decreases the number of collisions we get in amdgpu_lookup_buffer,
and thus the number of times we have to search in the BO list.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
32dae84d43
winsys/amdgpu: allocate 1 amdgpu_bo_slab_entry per cache line
...
The structure size is exactly 64 bytes, so every entry occupies exactly
1 cache line.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
6d913a2bcc
r300,r600,radeonsi: switch to pb_buffer_lean
...
to remove pb_buffer::vtbl from all buffer structures
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
d2c76c4d77
winsys/radeon: stop using pb_buffer::vtbl
...
Only the destroy function used it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
6c4ab02674
gallium/pb_cache: remove pb_cache_entry::buffer
...
The buffer pointer is always at a constant offset from pb_cache_entry,
so just pass the "offsetof" value to pb_cache and use that to get
the pointer.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
20bf2a06fb
gallium/pb_cache: remove pb_cache_entry::mgr
...
We can just pass it via functions.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
d7de372358
gallium/pb_cache: switch to pb_buffer_lean
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
39c1311766
gallium/pb_buffer: define pb_buffer_lean without vtbl, inherit it by pb_buffer
...
amdgpu doesn't need vtbl.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
eb19f0daa3
winsys/amdgpu: don't use gpu_address to compute slab entry offset in bo_map
...
use the code we have in amdgpu_bo_get_va
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
a8e98882ea
winsys/amdgpu: remove va (gpu_address) from amdgpu_bo_slab_entry
...
Keep it only in amdgpu_bo_real and amdgpu_bo_sparse. Slab entries can
compute it from the slab BO and adding their entry index.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
3cc2562ac0
winsys/amdgpu: remove now-redundant amdgpu_bo_slab_entry::real
...
The pb_slab pointer can be used to get the BO pointer because pb_slab is
inside the BO structure now.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
49bf2545fe
winsys/amdgpu: add amdgpu_bo_real_reusable slab for the backing buffer
...
Add contents of amdgpu_bo_slab into it. This will allow removing the "real"
pointer from amdgpu_bo_slab_entry because "(char*)entry.slab" is now
pointing next to it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
cf2dc2d512
winsys/amdgpu: don't layer slabs, use only 1 level of slabs, it improves perf
...
This increases FPS in VP2020/Catia1 by 10-18%!!!!!!!!!!!!!!!!!!!!!!!
I have no rational explanation for this.
In the most extreme case, 8192 256B slab BOs (smallest size) are now
allocated from a single 2MB slab.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
4a078e693e
r300,r600,radeon/winsys: always pass the winsys to radeon_bo_reference
...
This will allow the removal of pb_cache_entry::mgr.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
643f390de5
radeon_winsys: add struct radeon_winsys* parameter into fence_reference
...
Since the radeon winsys implements fences as buffers, we need radeon_winsys*
to destroy them. This will enable the removal of pb_cache_entry::mgr.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:30 +00:00
Marek Olšák
e847c6e301
gallium/pb_cache: switch time variables to milliseconds and 32-bit type
...
to decrease pb_cache_entry by 8 bytes.
Add msecs_base_time to offset time == 0 to the creation of pb_cache.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
896c8b67cb
gallium/pb_cache: remove pb_cache_entry::end to save space
...
just compute it at each use
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
523a4f71f2
winsys/amdgpu: stop using pb_buffer::vtbl
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
7752579202
winsys/amdgpu: rename to amdgpu_bo_slab to amdgpu_bo_slab_entry
...
It's a slab entry. "Slab" is the whole buffer, which is AMDGPU_BO_REAL
if we want to be precise.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
b3c64638b4
iris,zink,winsys/amdgpu: remove unused/redundant slab->entry_size
...
slab->base has the same field.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
9431c33899
gallium/pb_slab: move group_index and entry_size from pb_slab_entry to pb_slab
...
This removes 8 bytes from every slab entry, and thus amdgpu_bo_slab.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Marek Olšák
5a3bacc376
winsys/amdgpu: reduce wasted memory due to the size tolerance in pb_cache
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26643 >
2024-01-06 20:55:29 +00:00
Daniel Schürmann
023e78b4d7
aco: add new post-RA scheduler for ILP
...
Totals from 77247 (97.37% of 79330) affected shaders: (GFX11)
Instrs: 44371374 -> 43215723 (-2.60%); split: -2.64%, +0.03%
CodeSize: 227819532 -> 223188224 (-2.03%); split: -2.06%, +0.03%
Latency: 301016823 -> 290147626 (-3.61%); split: -3.70%, +0.09%
InvThroughput: 48551749 -> 47646212 (-1.87%); split: -1.88%, +0.01%
VClause: 870581 -> 834655 (-4.13%); split: -4.13%, +0.00%
SClause: 1487061 -> 1340851 (-9.83%); split: -9.83%, +0.00%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25676 >
2024-01-06 11:30:42 +00:00
Daniel Schürmann
72a5c659d4
aco: form clauses for LDS instructions
...
No fossil-db changes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25676 >
2024-01-06 11:30:42 +00:00
Daniel Schürmann
8f16745821
aco: fix should_form_clause() for memory instructions without operands
...
In particular, this applies to s_memtime and s_memrealtime.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25676 >
2024-01-06 11:30:41 +00:00
Vinson Lee
568f61787a
ac/rgp: Fix single-bit-bitfield-constant-conversion warning
...
../src/amd/common/ac_rgp.c:119:48: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
119 | header->flags.is_semaphore_queue_timing_etw = 1;
| ^ ~
Fixes: ed0c852243 ("radv: add initial SQTT files generation support")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26839 >
2024-01-05 22:42:58 -08:00
Karol Herbst
1e5bc00715
rusticl/program: add LLVM functions to cache timestamp
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24386 >
2024-01-06 03:09:48 +00:00
Karol Herbst
299f949775
rusticl/meson: generate bindings for LLVM
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24386 >
2024-01-06 03:09:48 +00:00
Karol Herbst
d72544eea6
ci,rusticl: bump meson req to 1.3.1
...
See https://github.com/mesonbuild/meson/pull/12620
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24386 >
2024-01-06 03:09:48 +00:00
Michael Tretter
d9fd4d7c0d
egl/wayland: fix formatting and add trailing comma
...
Commit 659bace01a ("egl: add a few trailing commas") added a few
trailing commas to the last item in a struct to avoid that commit
e85983d772 ("egl: re-format using clang-format") moves the closing
brace into the previous line.
The wl_callback_listener was missing the comma and the brace was moved
to the previous line, which makes it harder to read the code.
Add the comma and fix the formatting.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26902 >
2024-01-06 02:19:02 +00:00
Yonggang Luo
08b6f786ac
nouveau: Use align64 instead of ALIGN for 64 bit value parameter
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26868 >
2024-01-06 02:05:09 +00:00
Yonggang Luo
06163884b2
nvk: Avoid use align as variable, replace it with alignment
...
align is a function and when we want use it, the align variable will shadow it
So replace it with alignment
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26868 >
2024-01-06 02:05:09 +00:00
Michael Catanzaro
481e737fe0
util: create parents of disk cache directory if needed
...
Currently the shader cache is broken when running under flatpak-spawn
because the shader cache's parent directory will not exist. For example,
the shader cache directory might be:
/home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/cache
If /home/mcatanzaro/.var/app/org.gnome.Epiphany.Devel/ does not already
exist, we fail. Let's create the directories recursively, as if by
'mkdir -p', rather than just fail.
Fixes #8294
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25925 >
2024-01-06 01:19:29 +00:00
Eric Engestrom
a0fab95bc0
lvp: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26494 >
2024-01-06 00:49:53 +00:00
Mark Janes
2236dc3481
intel/dev: update workaround definitions to latest defect status
...
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26898 >
2024-01-05 22:51:46 +00:00
Mark Janes
590fe58ef6
intel: remove MTL a0 workarounds
...
Meteorlake shipped with the b0 stepping. Remove fixes for hardware
bugs that were corrected prior to the platform release.
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26898 >
2024-01-05 22:51:46 +00:00
Mark Janes
a6a95591aa
intel/dev: poison macros for workarounds fixed at a stepping
...
INTEL_NEEDS_WA macros are valid when a workaround applies to all
platforms which have the GFX_VERx10 versions for the workaround.
Some workarounds were fixed at a stepping after the platform release.
If a workaround applies partially to any platform, then GFX_VERx10
cannot be used to correctly apply the workaround.
This change invalidates INTEL_NEEDS_WA_16014538804 and
INTEL_NEEDS_WA_22014412737, which were fixed for MTL platforms at
stepping b0. The run-time checks were already present for all uses of
these macros. Updating the poisoned macros to INTEL_WA_{num}_GFX_VER
compiles out the run-time checks on platforms where they cannot apply.
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26898 >
2024-01-05 22:51:45 +00:00
Mark Janes
7354d3a947
intel/dev: improve descriptions of workaround macros.
...
Instructions for INTEL_WA_{num}_GFX_VER macros were confusing and
contradicted itself.
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26898 >
2024-01-05 22:51:45 +00:00
Yonggang Luo
d6c258d9ee
util: Add align_uintptr and use it treewide to replace ALIGN that works on size_t and uintptr_t
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26866 >
2024-01-05 21:54:35 +00:00
Yonggang Luo
aa8ea0f1b9
glsl: Fixes glcpp/tests with mingw/gcc
...
glcpp mingw failing in the following way:
```
49/56 mesa:compiler+glcpp / glcpp test (unix) FAIL 3.39s exit status 1
50/56 mesa:compiler+glcpp / glcpp test (oldmac) FAIL 3.41s exit status 1
51/56 mesa:compiler+glcpp / glcpp test (bizarro) FAIL 3.42s exit status 1
52/56 mesa:compiler+glcpp / glcpp test (windows) FAIL 3.45s exit status 1
```
The test failed because on mingw, the stderr will comes after stdout,
but all the expect files, the stderr is coming first,
so we flush(stderr) first to makesure stderr out before stdout
The failing example:
039-func-arg-obj-macro-with-comma: FAIL
---
+++
@@ -1,3 +1,5 @@
+0:12(21): preprocessor error: Error: macro foo invoked with 2 arguments (expected 1)
+
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26778 >
2024-01-05 21:15:58 +00:00
Rhys Perry
ae54cbeb3f
nir: remove sad_u8x4
...
All uses of this can be replaced with msad_4x8.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Rhys Perry
5fd747a502
radv: enable msad_4x8
...
This helps some FSR3 shaders.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Rhys Perry
a339699b5c
ac/llvm: implement msad_4x8
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Rhys Perry
1410735a62
aco: implement msad_4x8
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Rhys Perry
e86ab8173b
nir/algebraic: optimize vkd3d-proton's MSAD
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Rhys Perry
0477421f7d
nir: add msad_4x8
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26907 >
2024-01-05 18:55:22 +00:00
Konstantin Seurer
c511b8968a
radv: Implement VK_KHR_ray_tracing_position_fetch
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26895 >
2024-01-05 18:20:20 +00:00
Rhys Perry
24ef827f71
radv: remove radv_shader_info's cs.subgroup_size
...
This is the same as wave_size.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26894 >
2024-01-05 17:35:48 +00:00
Rhys Perry
59dbe633e3
radv: use CS wave selection for task shaders
...
This uses wave32 for small workgroups and wave64 when certain subgroup
operations are used.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26894 >
2024-01-05 17:35:48 +00:00
Rhys Perry
3009dcd102
aco: correctly set min/max_subgroup_size for wave32-as-wave64
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26894 >
2024-01-05 17:35:48 +00:00
Friedrich Vock
1e3541728b
radv,aco: Convert 1D ray launches to 2D
...
Because we use unaligned dispatches, 1D launches only use 8 threads per
wave. Converting to 2D and fixing up launch IDs in the prolog
significantly increases occupancy.
Gives ~30% uplift in Ghostwire Tokyo.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26105 >
2024-01-05 17:08:05 +00:00
Juan A. Suarez Romero
12563a527f
ci/v3d: add support for rpi5
...
Add full Vulkan CTS testing for the new V3D 7.1 driver, used in the
Raspberry Pi 5.
So far we add it to run nightly; in future will be added to pre-merge
CI.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26705 >
2024-01-05 16:10:50 +00:00
Mary Guillemard
b6d828576e
zink: Always fill external_only in zink_query_dmabuf_modifiers
...
Fix piglit.spec@ext_image_dma_buf_import@ext_image_dma_buf_import-modifiers
randomly skipping some tests as external_only content was never initialized.
Cc: mesa-stable
Reviewed-by: default avatarMike Blumenkrantz <michael.blumenkrantz@gmail.com >
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26305 >
2024-01-05 13:30:45 +00:00
Mary Guillemard
db0f177edd
zink: Initialize pQueueFamilyIndices for image query / create
...
Fixes: d922850e36 ("zink: break out image/buffer create info structs into helper funcs")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26303 >
2024-01-05 13:59:49 +01:00
Georg Lehmann
71edf4de5e
aco/gfx12: implement broadcast dmask shrink behavior
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26897 >
2024-01-05 12:03:54 +00:00
Georg Lehmann
4a6ee2c483
aco: shrink buffer stores with undef/zero components
...
Buffer stores store 0 like image stores for unspecified components.
Foz-DB Navi21:
Totals from 91 (0.11% of 79330) affected shaders:
Instrs: 63327 -> 63121 (-0.33%)
CodeSize: 315312 -> 314440 (-0.28%); split: -0.28%, +0.00%
VGPRs: 3144 -> 3120 (-0.76%)
Latency: 441424 -> 441300 (-0.03%); split: -0.03%, +0.00%
InvThroughput: 65501 -> 65130 (-0.57%)
Copies: 6197 -> 5999 (-3.20%)
PreVGPRs: 2197 -> 2182 (-0.68%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26897 >
2024-01-05 12:03:54 +00:00
Connor Abbott
862df28f6b
ir3/legalize: Fix helper propagation with b.any/b.all/getone
...
We need to set uses_helpers_beginning in order to propagate it to
predecessor blocks.
Fixes: aa322a37fc ("ir3: Implement helper invocation optimization")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26564 >
2024-01-05 11:37:09 +00:00
Yonggang Luo
91ec3cc7e2
panfrost: Avoid use align as variable, replace it with other names
...
align is a function and when we want use it, the align variable will shadow it
So replace it with other names
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26885 >
2024-01-05 02:42:05 +00:00
Yonggang Luo
b389bccccd
util,compiler: Avoid use align as variable, replace it with other names
...
align is a function and when we want use it, the align variable will shadow it
So replace it with other names
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26885 >
2024-01-05 02:42:05 +00:00
Karol Herbst
5ff33f9905
rusticl: use real buffer for cb0 for drivers prefering
...
At the moment it's radeonsi and zink.
Consequentially this also fixes data races in zink due to driver internal
reasons.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25946 >
2024-01-05 01:26:44 +01:00
Karol Herbst
900ce1f4f4
rusticl/queue: release bound constant buffer
...
This fixes memory leaks in drivers.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25946 >
2024-01-05 01:26:44 +01:00
Karol Herbst
5f97ef3d03
rusticl: add QueueContext to track GPU state
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25946 >
2024-01-05 01:26:44 +01:00
Karol Herbst
a4f47ba52c
rusticl: specify buffer bindings explicitly
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25946 >
2024-01-05 01:26:44 +01:00
Caio Oliveira
77f4f3112d
intel/fs: Use linear allocator in fs_live_variables
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25670 >
2024-01-04 23:06:07 +00:00
Caio Oliveira
b5cd91501d
intel/fs: Use linear allocator in opt_copy_propagation
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25670 >
2024-01-04 23:06:07 +00:00
Caio Oliveira
6d2503e935
intel/fs: Only allocate acp_entry if we are adding one
...
In practice it seems we are always entering here, haven't looked
in detail whether at this point we could just assert. But for now
only allocate a new acp_entry if we are going to add it.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25670 >
2024-01-04 23:06:07 +00:00
Sagar Ghuge
96e0d979a7
intel/fs: Check fs_visitor instance before using it
...
On Xe2+, we don't build the SIMD8 shader so this check makes sure we
don't execute the uninitialized invocations.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26886 >
2024-01-04 22:24:07 +00:00
Dave Airlie
56a72e014f
intel/compiler: reemit boolean resolve for inverted if on gen5
...
Gen5 adds some boolean conversion instructions after nir emits,
but that nir srcs don't line up with them, so reemit the boolean
conversion if we reemit the inot.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 31b5f5a51f ("nir/opt_if: Simplify if's with general conditions")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26782 >
2024-01-04 21:27:23 +00:00
Karol Herbst
b06f6e00fb
zink: fix heap-use-after-free on batch_state with sub-allocated pipe_resources
...
zink_bo_create can run into a heap-use-after-free when the bo is still
referencing an batch_state from an older destroyed context. In order to
fix this, every context gives back their batch_states to the zink, where
they can be reused from for new contexts.
Cc: mesa-stable
Suggested-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26889 >
2024-01-04 20:56:09 +00:00
Juan A. Suarez Romero
e2a7c877ad
ci/vc4/v3d: remove some flakes
...
Remove some flakes not seen in the last 7 months.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26893 >
2024-01-04 15:51:30 +00:00
Friedrich Vock
34cc765172
radv/rt: Free traversal NIR after compilation
...
Could lead to OOM in games that compile RTPSOs often,
like Ghostwire Tokyo.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26892 >
2024-01-04 14:48:28 +00:00
Corentin Noël
b8e06fa48a
virgl: Only send the same amount of data than declared in pipe_sampler_state
...
Adjust the masks to only send the data that we are sure to actually use.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26856 >
2024-01-04 11:00:12 +00:00
Samuel Pitoiset
395dee0d89
radv: drop si_ prefix from all functions
...
Most of these functions were copied from RadeonSI but they should be
prefixed with radv_ instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26854 >
2024-01-04 08:40:37 +00:00
Samuel Pitoiset
89947eb151
radv: remove radv_write_scissors()
...
This function is useless.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26854 >
2024-01-04 08:40:36 +00:00
Samuel Pitoiset
dd64293104
radv: rename si_make_texture_descriptor() to gfx6_make_texture_descriptor()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26854 >
2024-01-04 08:40:36 +00:00
Samuel Pitoiset
887ac765bb
radv: remove duplicated si_tile_mode_index() function
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26854 >
2024-01-04 08:40:36 +00:00
Samuel Pitoiset
aa1eb54b3b
radv: constify a variable in radv_emit_depth_control()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26847 >
2024-01-04 07:54:41 +00:00
Samuel Pitoiset
8b7b5be98b
radv: disable stencil test without a stencil attachment
...
Implementations are supposed to do that per the Vulkan spec.
This fixes the following new VKCTS tests
dEQP-VK.pipeline.*.stencil.no_stencil_att.*
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26847 >
2024-01-04 07:54:40 +00:00
Pavel Ondračka
cc7ce6c01f
r300: mark load_ubo_vec4 with ACCESS_CAN_SPECULATE
...
This is safe to do in all circumstances due to the age of the hardware.
(we don't have UBOs, just constant registers with automatic OOB checks)
R500 hardware doesn't have standard adress register in fragment shaders
and while we have the loop register which we in theory can use for indirect
access, this is currently not possible to wire through NIR. So anytime
there is an indirect uniform array access in a loop, we end with a if
ladder with size depending on the size of the uniform array. The two worst
behaving apps here are glamor and some GTK shaders, both of which are
sometimes ending over the 512 instructions limit. Flattening the if
ladders helps a LOT, so we can get into the instruction limit in most
cases (all glamor shaders are OK now). So just enable the flattening by
setting all load_ubo_vec4 with ACCESS_CAN_SPECULATE.
Shader-db RV530:
total instructions in shared programs: 128762 -> 128440 (-0.25%)
instructions in affected programs: 540 -> 218 (-59.63%)
helped: 3
HURT: 0
total temps in shared programs: 17543 -> 17550 (0.04%)
temps in affected programs: 11 -> 18 (63.64%)
helped: 0
HURT: 3
total cycles in shared programs: 196984 -> 196657 (-0.17%)
cycles in affected programs: 592 -> 265 (-55.24%)
helped: 3
HURT: 0
LOST: 0
GAINED: 7
No changes for R300/R400 because there we don't have control flow
anyway.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6366
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26877 >
2024-01-04 08:27:42 +01:00
Pavel Ondračka
f8a5cba3b4
r300: remove backend LRP lowering
...
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:01 +01:00
Pavel Ondračka
f62a128274
r300: remove backend CMP lowering
...
Leave assert in place for now though.
No changes in shader-db.
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:01 +01:00
Pavel Ondračka
e6e1da8124
r300: lower ftrunc in NIR
...
and remove the backend TRUNC lowering.
Shader-db RV370:
total instructions in shared programs: 82155 -> 82154 (<.01%)
instructions in affected programs: 38 -> 37 (-2.63%)
helped: 1
HURT: 0
total consts in shared programs: 80719 -> 80733 (0.02%)
consts in affected programs: 2775 -> 2789 (0.50%)
helped: 0
HURT: 14
Shader-db RV530:
total presub in shared programs: 7676 -> 7702 (0.34%)
presub in affected programs: 81 -> 107 (32.10%)
helped: 0
HURT: 26
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:01 +01:00
Pavel Ondračka
77f429e1a5
r300: fcsel_ge lowering from lowered ftrunc
...
The fcsel lowering for R3xx happens already in the main loop, here we
only do it for the fcsel_ge that comes from the frunc.
No change in shader-db
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:01 +01:00
Pavel Ondračka
6167f6e096
r300: lower flrp in NIR
...
Shader-db RV370:
total instructions in shared programs: 82071 -> 82155 (0.10%)
instructions in affected programs: 792 -> 876 (10.61%)
helped: 0
HURT: 12
total temps in shared programs: 12775 -> 12778 (0.02%)
temps in affected programs: 27 -> 30 (11.11%)
helped: 0
HURT: 3
total cycles in shared programs: 128403 -> 128499 (0.07%)
cycles in affected programs: 864 -> 960 (11.11%)
helped: 0
HURT: 12
The same regression for the few GTK shaders that happens with the R500
nir fcsel lowering also happens here due to the
nir_move_vec_src_uses_to_dest.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6126
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:00 +01:00
Pavel Ondračka
ddcf29202d
r300: add some more early bool lowering
...
We can't call nir_lower_bool_to_float too early, because some other
passes like nir_opt_peephole_select will blow up, but we can still do
some selected parts to enable some optimiazions at a later point
(like fcsel(a,b,0) into fmul), etc.
No change in shader-db with RV370 or RV530 at this point.
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:00 +01:00
Pavel Ondračka
024491f60f
r300: nir fcsel/CMP lowering pass for R500
...
Right now this is done in the backend so move it up to NIR. Doing this
in the backend is easier, as at that time we can have a better idea
about when we hit the hardware limits of three different TMP sources,
however moving this to NIR allows for some optimizations. Specifically,
at this time if we decide we actually have to lower we still have the
info if we have plain fcsel for which we can save the comparison and
emit flrp only. During translation to TGSI all of fcsel, fcsel_gt, and
fcsel_ge translate to CMP so at that point the comparison is always needed.
Shader-db RV530:
total instructions in shared programs: 126057 -> 125823 (-0.19%)
instructions in affected programs: 11359 -> 11125 (-2.06%)
helped: 68
HURT: 12
total temps in shared programs: 17043 -> 17023 (-0.12%)
temps in affected programs: 459 -> 439 (-4.36%)
helped: 32
HURT: 12
total cycles in shared programs: 191604 -> 191294 (-0.16%)
cycles in affected programs: 11834 -> 11524 (-2.62%)
helped: 68
HURT: 12
The hurt shaders are some GTK shaders where there is some bad
interaction with nir_move_vec_src_uses_to_dest. This is known and might
be improved later by thweking the pass more.
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:00 +01:00
Pavel Ondračka
75e7790ee5
r300: small adress register load optimization
...
We do ffloor by default for adress register load so no need to do it
explicitly. This needs to happen after int lowering, otherwise we get
ftrunc by default as a bonus. This is mostly for wined3d.
Shader-db RV370:
total instructions in shared programs: 82147 -> 82071 (-0.09%)
instructions in affected programs: 2772 -> 2696 (-2.74%)
helped: 32
HURT: 0
total cycles in shared programs: 128479 -> 128403 (-0.06%)
cycles in affected programs: 2813 -> 2737 (-2.70%)
helped: 32
HURT: 0
Shader-db RV530:
total instructions in shared programs: 126141 -> 126057 (-0.07%)
instructions in affected programs: 3170 -> 3086 (-2.65%)
helped: 36
HURT: 0
total cycles in shared programs: 191688 -> 191604 (-0.04%)
cycles in affected programs: 3222 -> 3138 (-2.61%)
helped: 36
HURT: 0
Reviewed-by: Filip Gawin <filip.gawin@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26816 >
2024-01-04 08:02:00 +01:00
Dave Airlie
af3cca98a2
lavapipe: bump .maxResourceDescriptorBufferRange
...
Fail (maxResourceDescriptorBufferRange is less than (((1u << 20) - (1u << 15)) * maxResourceDescriptorSize) at vktBindingDescriptorBufferTests.cpp:5127)
bump this to pass the test now.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
da53d0b6e5
gallivm/lp: move sampler index around to reduce struct
...
I'm not sure this is 100% correct, but it does reduce the
struct size to 256 which is conformant
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
839045bcc8
gallivm/lp: merge sample info into normal info
...
multisample textures don't have mipmaps, so store sample_stride
into mipmap offset 15 and store num_samples into last_level
We can't use mipmap_offset0 as arrays might still store some values
into it.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
344fa0895e
gallivm/lp: reduce image descriptor size.
...
Reduce the image descriptor size alongside the texture one.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
749a4fff86
gallivm/lp: reduce size of lp_jit_texture.
...
This is step one in a size reduction plan, this reduces lp_jit_texture
by making all the fields smaller in the struct and upsizing on the llvm
size. It goes from 280->264.
This isn't sufficient to get conformance, but it's a good step one.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
1c68381ead
gallivm/sample: make the load_mip helper useful outside this file.
...
Need this later for some size reduction patches.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
bdde30c131
gallivm/sample: add some num_samples vs level zero only support
...
This just checks the level zero only is set for multisample stuff.
I tried using asserts, but there are paths due to precompilation
that won't get hit, but do get compiled.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dave Airlie
7d4453b586
gallivm/sample: refactor first/last level handling and use level_zero_only.
...
This will help later esp for multisample textures which only ever have level 0
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25398 >
2024-01-04 03:58:23 +00:00
Dmitry Baryshkov
c8c8c5a3cf
freedreno/drm: don't crash in heap allocator when run under valgrind
...
If Mesa is executed under valgrind, fd_bo_init_common() calls
fd_bo_map() internally. For the heap (sub-block) allocator this causes a
segfault in fd_bo_map(), when this function tries to call the offset()
callback.
To prevent this from happening, preallocate fb->map before calling into
fd_bo_init_common(), stop calling VG_BO_ALLOC() if the memory map is
already initialised and disable the VG_BO_FREE call for the heap
allocator.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26277 >
2024-01-04 03:17:46 +00:00
Dmitry Baryshkov
fd6b3bf267
freedreno/drm: notify valgrind about FD_BO_NOMAP maps
...
If the shader memory has been allocated with the FD_BO_NOMAP and got
later allocated a memory chunk during fd_bo_upload(), this can result in
the valgrind splat when it tries to release the free and/or cache the
BO. To fix this issue, notify valgrind about newly mmaped shader memory.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26277 >
2024-01-04 03:17:46 +00:00
Dmitry Baryshkov
60686d4146
ir3/a6xx: fix ldg/stg of ulong2 and ulong4 data
...
Partially revert the commit f4c9e9329c ("ir3/a6xx: Fix immediate
offset stg/ldg path").
There is no need to multiply the immediate offsets by 4. Doing so
results in loading and/or storing the data at wrong locations.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26817 >
2024-01-04 02:28:09 +00:00
Dmitry Baryshkov
3f25a73f17
ir3: fix shift amount for 8-bit shifts
...
Follow the 16-bit approach and convert shift amount to 8b for 8b shift
instructions.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26817 >
2024-01-04 02:28:09 +00:00
Alyssa Rosenzweig
e7f3112eb9
asahi: Implement lod queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26861 >
2024-01-04 01:51:07 +00:00
Alyssa Rosenzweig
d32daa3fb2
nir/validate: allow bias on nir_texop_lod
...
AGX seems to support it, and it's very convenient for implementing sampler LOD
bias together with a clamped LOD query.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26861 >
2024-01-04 01:51:07 +00:00
VladimirTechMan
407fd1e1d7
venus/android: Switch to using u_gralloc
...
That enables testing and development of the Venus-based Vulkan HAL
on a wider range of Android systems - flavors of "Cuttlefish" are
of particular practical interest. At this point, only two gralloc
variants are supported: CrOS and IMapper v4. The fallback gralloc
and any gralloc adapter modules relying on it (GBM, QCOM) are out
of scope for Android Vulkan HAL now.
Signed-off-by: VladimirTechMan <VladimirTechMan@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26858 >
2024-01-04 01:35:13 +00:00
Dave Airlie
c2f79d7fb1
llvmpipe: fix caching for texture shaders.
...
caching only works if you check the size and store the result,
later the size is always set.
Fixes: f675e4ee82 ("llvmpipe: Pre compile sample functions")
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25648 >
2024-01-04 01:13:48 +00:00
Dave Airlie
8f73cc802c
intel/compiler: revert part of "Move earlier scheduler code that is not mode-specific"
...
This removed a bunch of calls from the vec4 code that aren't called anywhere else.
Bring back the bits that were removed.
Fixes glxgears on gen5
Fixes: 81594d0db1 ("intel/compiler: Move earlier scheduler code that is not mode-specific")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26862 >
2024-01-04 00:38:38 +00:00
Dave Airlie
37366fef68
intel/compiler: fix release build unused variable.
...
This is only used in an assert.
Fixes: 158ac265df ("intel/fs: Make helpers for saving/restoring instruction order")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26863 >
2024-01-03 23:52:11 +00:00
Dave Airlie
b3cfec2fd8
gallivm: handle llvm 16 atexit ordering problems.
...
This is ported from amd ac_llvm_helper.cpp, thanks to Marek for the pointer.
This is needed to avoid crashes due to atexit ordering between some piglit
tests and mesa internals.
Cc: mesa-stable
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26883 >
2024-01-03 22:57:17 +00:00
Rob Clark
2c078bfd18
freedreno/drm/virtio: Fix typo
...
Fixes: b90244776a ("virtio/drm: Split out common virtgpu drm structs")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26884 >
2024-01-03 22:28:41 +00:00
Yonggang Luo
19fca131b1
amd: Use align64 instead of ALIGN for 64 bit value parameter
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26869 >
2024-01-03 22:02:17 +00:00
Mike Blumenkrantz
49378bc3cd
zink: enforce maxTexelBufferElements for texel buffer sizing
...
according to spec, creating larger texel buffers is legal for apps
but the resulting texel buffer must be clamped to device limits
fixes #10068
backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26873 >
2024-01-03 21:39:59 +00:00
Daniel Schürmann
bf43af984a
nir/opt_loop_cf: generalize removal of "trivial" continues
...
So that is also handles break statements and works in
arbitrarily nested control flow.
Totals from 905 (1.18% of 76636) affected shaders: (RADV, GFX11)
Instrs: 605164 -> 605548 (+0.06%); split: -0.01%, +0.08%
CodeSize: 3162036 -> 3163472 (+0.05%); split: -0.01%, +0.06%
Latency: 2045559 -> 1387622 (-32.16%)
InvThroughput: 352344 -> 231676 (-34.25%)
SClause: 16092 -> 16088 (-0.02%); split: -0.04%, +0.02%
Copies: 41286 -> 41297 (+0.03%); split: -0.02%, +0.05%
Branches: 19949 -> 19929 (-0.10%)
PreSGPRs: 33413 -> 33385 (-0.08%)
PreVGPRs: 19177 -> 19135 (-0.22%)
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:05 +00:00
Daniel Schürmann
bdbf873b0f
nir: remove redundant passes from nir_opt_if()
...
These are now covered by nir_opt_loop():
- opt_if_loop_last_continue()
- opt_merge_breaks()
- opt_if_loop_terminator()
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:05 +00:00
Daniel Schürmann
5b1b5cd794
nir: remove nir_opt_trivial_continues()
...
This pass is superseded by nir_opt_loop()
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:04 +00:00
Daniel Schürmann
a3ed36da1a
treewide: replace calls to nir_opt_trivial_continues() with nir_opt_loop()
...
Totals from 850 (1.11% of 76636) affected shaders: (RADV, GFX11)
MaxWaves: 18134 -> 18130 (-0.02%)
Instrs: 3011298 -> 3008585 (-0.09%); split: -0.17%, +0.08%
CodeSize: 15836804 -> 15841972 (+0.03%); split: -0.09%, +0.12%
VGPRs: 63580 -> 63604 (+0.04%)
SpillSGPRs: 966 -> 1148 (+18.84%); split: -0.83%, +19.67%
Latency: 36102291 -> 30186144 (-16.39%); split: -16.41%, +0.02%
InvThroughput: 9058100 -> 7011821 (-22.59%); split: -22.61%, +0.02%
VClause: 65369 -> 65364 (-0.01%); split: -0.03%, +0.02%
SClause: 100309 -> 100305 (-0.00%); split: -0.04%, +0.04%
Copies: 335658 -> 336472 (+0.24%); split: -0.70%, +0.94%
Branches: 110806 -> 108945 (-1.68%); split: -1.94%, +0.26%
PreSGPRs: 73476 -> 73934 (+0.62%); split: -0.25%, +0.87%
PreVGPRs: 58809 -> 58840 (+0.05%); split: -0.01%, +0.06%
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:04 +00:00
Daniel Schürmann
9808ef0349
nir/opt_loop: move loop control-flow optimizations into separate pass
...
This new pass aims to simplify loop control-flow by reducing the number
of break and continue statements. It also supersedes nir_opt_trivial_continues().
For this purpose, it implements 3 optimizations:
- opt_loop_terminator(), as previously
- opt_loop_merge_break_continue(), similar to opt_merge_breaks() incl. continues
- opt_loop_last_block(), a generalization of opt_if_loop_last_continue()
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:04 +00:00
Christian Gmeiner
0158075b22
nir/opt_peephole_select: handle speculative ubo loads
...
Some platforms may be able to speculate ubo loads safely.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8299 >
2024-01-03 20:02:25 +00:00
Ruijing Dong
6c758000fb
frontends/va: remove some TODOs in hevc encoding
...
Remove some TODOs in va hevc encoding sps parsing.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26770 >
2024-01-03 19:23:08 +00:00
Karol Herbst
3ee6339206
clc: remove code supporting pre llvm-10
...
we require llvm-10+ already anyway, see meson.build:1726
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26871 >
2024-01-03 18:30:32 +00:00
Danylo Piliaiev
99c69e624b
freedreno: Disable UBWC for D/S images on A690
...
Mirrors workaround done for Turnip.
A690 seem to have broken UBWC for depth/stencil, it requires
depth flushing where we cannot realistically place it, like between
ordinary draw calls writing read/depth. WSL blob seem to use ubwc
sometimes for depth/stencil.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26226 >
2024-01-03 17:35:07 +00:00
Danylo Piliaiev
fbfc1dc09d
turnip: Disable UBWC for D/S images on A690
...
A690 seem to have broken UBWC for depth/stencil, it requires
depth flushing where we cannot realistically place it, like between
ordinary draw calls writing read/depth. WSL blob seem to use ubwc
sometimes for depth/stencil.
Some tests that this fixes:
dEQP-VK.pipeline.monolithic.stencil.format.d24_unorm_s8_uint.states.fail_repl.pass_decw.dfail_inv.comp_never
dEQP-VK.api.image_clearing.core.partial_clear_depth_stencil_attachment.single_layer.d32_sfloat_s8_uint_separate_layouts_depth_64x11
dEQP-VK.api.image_clearing.dedicated_allocation.partial_clear_depth_stencil_attachment.single_layer.d16_unorm_33x128
dEQP-VK.glsl.builtin_var.fragdepth.point_list_d32_sfloat_s8_uint_no_depth_clamp
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26226 >
2024-01-03 17:35:07 +00:00
Danylo Piliaiev
9fcddb761b
freedreno/devices: Update a690 magic regs from WSL blob
...
They don't seem to fix anything, but now that's values from driver
running on actual HW.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26226 >
2024-01-03 17:35:07 +00:00
Sil Vilerino
e11605321a
Revert "d3d12: Fix screen->winsys leak in d3d12_screen"
...
This reverts commit 81c8e89ff8 .
Fixes: 81c8e89ff8 ("d3d12: Fix screen->winsys leak in d3d12_screen")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26872 >
2024-01-03 17:17:30 +00:00
Sil Vilerino
97cc7ea5a5
Revert "d3d12: Only destroy the winsys during screen destruction, not reset"
...
This reverts commit 325fb6e26b .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10371
Fixes: 325fb6e26b ("d3d12: Only destroy the winsys during screen destruction, not reset")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26872 >
2024-01-03 17:17:30 +00:00
daoxianggong
d6f0f46ae4
zink - Fix for blend color change without blend state change
...
Flag blend color change and make sure vkCmdSetBlendConstants is called.
Signed-off-by: daoxianggong <daoxiang.gong@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26799 >
2024-01-03 16:35:51 +00:00
Gert Wollny
53efd35acc
zink: Don't pass a blend state when we have full ds3 support
...
The blend state is considered to be dynamic when no
VkPipelineColorBlendStateCreateInfo is passed in at pipeline creation.
Fixes:
VUID-VkGraphicsPipelineCreateInfo-renderPass-06055 when running
"Quern - Undying thoughts" when the GFX level enables blending.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26718 >
2024-01-03 15:34:50 +00:00
Samuel Pitoiset
7ea48145a1
radv: stop clearing CMASK to 0xcc when FMASK is present on GFX9
...
This is incorrect because clearing CMASK to 0xCC should only happen
for fast clears with DCC and FMASK/CMASK.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26634 >
2024-01-03 13:58:06 +00:00
Samuel Pitoiset
1714f7aff4
radv: disable FMASK for MSAA images with layers on GFX9
...
It seems that FMASK can be interleaved and RADV doesn't support this
properly, so let's disable it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26634 >
2024-01-03 13:58:06 +00:00
Rhys Perry
cad2c0915d
aco/tests: use more raw strings
...
Python 3.12 started giving a SyntaxWarning for unrecognized escapes such
as "\w". This might become a SyntaxError in a future python version.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26850 >
2024-01-03 13:33:52 +00:00
Yonggang Luo
472b6f5379
intel,crocus,iris: Use align64 instead of ALIGN for 64 bit value parameter
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26864 >
2024-01-03 12:46:10 +00:00
Yonggang Luo
5a2aa3ff88
intel: Cleanup duplicate ALIGN macro defines
...
Use ALIGN function instead
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26864 >
2024-01-03 12:46:10 +00:00
Yonggang Luo
8665ce27bc
intel: Use ALIGN_POT instead of ALIGN inside macro define
...
These macro define is compute from literals, so use ALIGN_POT instead of ALIGN function
so that it's can be computed at compile time
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26864 >
2024-01-03 12:46:10 +00:00
Yonggang Luo
3a9c569177
intel: Avoid use align as variable, replace it with other names
...
align is a function and when we want use it, the align variable will shadow it
So replace it with other names
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26864 >
2024-01-03 12:46:10 +00:00
Samuel Pitoiset
10ce61e16c
radv: advertise VK_KHR_maintenance6
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
db9816fd66
radv: add support for NULL index buffer
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
744cb98bc6
radv: add support for version 2 of all descriptor binding commands
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
5f63624701
radv: rename RADV_GRAPHICS_STAGES to RADV_GRAPHICS_STAGE_BITS
...
For consistency with RADV_RT_STAGE_BITS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
17081334ab
radv: add support for VkBindMemoryStatusKHR
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
845a666e0f
radv: move radv_BindImageMemory2() to radv_image.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Samuel Pitoiset
f30fa9dec8
radv: move radv_rt_{common,shader} files to nir/
...
These files contains NIR lowering code for RT.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
Samuel Pitoiset
02c5365ffa
radv: make a couple of NIR RT functions as static
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
Samuel Pitoiset
685c4b6337
radv: move radv_{emulate,enable}_rt() to radv_physical_device.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26851 >
2024-01-03 09:40:29 +00:00
Eric Engestrom
c100905796
docs: mention that python package packaging is required on python 3.12+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26857 >
2024-01-03 09:28:14 +00:00
Luc Ma
b6d22358e4
loader: Remove a line of unused include
...
Signed-off-by: Luc Ma <luc@sietium.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26852 >
2024-01-03 08:06:01 +00:00
Yiwei Zhang
68a9b3cc6f
venus: properly ignore formats in VkPipelineRenderingCreateInfo
...
also remove a redundant trace point and adjust the position for another
to better tell whether fixes have been applied to the pipeline info
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26751 >
2024-01-03 07:16:24 +00:00
Yiwei Zhang
a443d4dbc6
venus: refactor to add pipeline info fixes helpers
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26751 >
2024-01-03 07:16:24 +00:00
Yiwei Zhang
c1d8056bbe
venus: split up the pipeline fix description into self and pnext
...
prepare for fixing the pipeline pnext chain
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26751 >
2024-01-03 07:16:23 +00:00
Yiwei Zhang
2e1c9b68df
venus: clang format fixes
...
work around vk_outarray_append_typed till a better solution fits
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26751 >
2024-01-03 07:16:23 +00:00
Yonggang Luo
18abdb8596
compiler/glsl: Move glsl specific _mesa_glsl_initialize_types out and glsl_symbol_table of glsl_types.h
...
To make sure C-ABI compat,
struct _mesa_glsl_parse_state;
struct gl_shader_program;
struct gl_builtin_uniform_desc;
are wrapped with extern "C"
And getting _mesa_glsl_initialize_variables c-compat for consistence
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26804 >
2024-01-03 06:38:19 +00:00
Mark Janes
188c349e51
intel: remove workaround for preproduction DG2 steppings
...
DG2_G10 was released with stepping C0.
DG2_G11 was released with stepping B1.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26845 >
2024-01-02 16:06:37 -08:00
Iván Briano
56d556f821
anv: enable VK_KHR_maintenance6
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:02 +00:00
Iván Briano
b7c4fe54cb
anv: move astc_emu to use descriptors2 calls
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:02 +00:00
Iván Briano
ce6899d804
anv: add support for Cmd*DescriptorSet*2KHR
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:02 +00:00
Iván Briano
40377eed91
anv: handle VkBindMemoryStatusKHR on buffer/image memory bind
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:02 +00:00
Iván Briano
abe0cc8aa4
anv: remove no longer valid assert
...
Maintenance6 allows creating uncompressed views of compressed images
with multiple layers.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:02 +00:00
Iván Briano
3b5615500a
anv: allow NULL index buffers
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26842 >
2024-01-02 22:12:01 +00:00
David Heidelberg
9017852de4
ci/radeonsi: disable VA-API testing on raven
...
Fails and freezes after Collabora farm outage.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26820 >
2024-01-02 21:33:51 +00:00
David Heidelberg
ff6589715a
ci/zink: update piano trace
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26820 >
2024-01-02 21:33:51 +00:00
Sergi Blanch Torne
eca667b978
Revert "ci: disable collabora farm as it is currently offline"
...
This reverts commit d75643f400
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26820 >
2024-01-02 21:33:51 +00:00
Tapani Pälli
fe5c82e853
isl: implement Wa_14018471104
...
Set EnableSamplerRouteToLSC in case ResourceMinLOD is 0.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26801 >
2024-01-02 21:14:42 +00:00
José Roberto de Souza
70382f7f06
intel/isl/xe2: Enable route of Sampler LD message to LSC
...
Xe2 allows route of LD messages from Sampler to LSC to improve
performance when some restrictions are met.
BSpec: 57023
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/26801 >
2024-01-02 21:14:42 +00:00
Zhang, Jianxun
e9b633619c
intel/genxml: Add RENDER_SURFACE_STATE for xe2
...
The indirect BO of clear color is also removed along with clear value
address and its enabling.
Other delta in struct RENDER_SURFACE_STATE are deferred to their
functional enabling changes.
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26801 >
2024-01-02 21:14:42 +00:00
Jordan Justen
db5be18862
intel/genxml/gfx125: Move STATE_SURFACE_TYPE to enum
...
This will allow us to use it in Xe2 genxml.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
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/26801 >
2024-01-02 21:14:42 +00:00
Jordan Justen
772ce98a81
intel/genxml/gfx125: Move L1_CACHE_CONTROL to enum
...
This will allow us to use it in Xe2 genxml.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
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/26801 >
2024-01-02 21:14:42 +00:00
Sagar Ghuge
9e97ce59a8
anv: No need to emit PIPELINE_SELECT on Xe2+
...
On Xe2+, PIPELINE_SELECT is getting deprecated (Bspec 55860), as a
result we don't have to do the stalling flushes while switching between
different pipelines.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26637 >
2024-01-02 20:57:33 +00:00
Sagar Ghuge
a22297d2b1
iris: No need to emit PIPELINE_SELECT on Xe2+
...
On Xe2+, PIPELINE_SELECT is getting deprecated (Bspec 55860), as a
result we don't have to do the stalling flushes while switching between
different pipelines.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26637 >
2024-01-02 20:57:33 +00:00
Karol Herbst
208875516c
zink: lock screen queue on context_destroy and CreateSwapchain
...
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25985 >
2024-01-02 19:40:15 +00:00
Eric Engestrom
3bff59c567
docs: fix list whitespace
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26855 >
2024-01-02 17:18:34 +00:00
Eric Engestrom
ebc2af4e95
docs/backport-mr: fix invalid nested formatting
...
Sphinx doesn't support that, so it renders verbatim.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26855 >
2024-01-02 17:18:34 +00:00
Caio Oliveira
0b5abf2512
spirv: Use value_id_bound to set initial memory allocated
...
Don't rely on the current default (which is 2048 bytes) buffer size for
blocks -- which ends up being too small for most shaders. Since we
already rely on value_id_bound to allocate an array of vtn_value, use
that to estimate a better value.
In addition to space for the array, we approximate the extra size of
extra data structures with the size of vtn_ssa_value, and skip it to the
next size (double it) to cover the CFG related allocations. This
results in only single system allocation necessary to back the temporary
data for the majority of the shaders.
Parsing code was slightly reordered so we can validate and read the
value_id_bound before the temporary allocator is created.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25279 >
2024-01-02 16:07:06 +00:00
Caio Oliveira
d5b4b7356e
spirv: Use linear_alloc for parsing-only data
...
All the vtn_* structures and arrays are used only during the lifetime of
spirv_to_nir(); we don't need to free them individually nor steal
them out; and some of them are smaller than the 5-pointer header
required for ralloc allocations.
These properties make them a good candidate for using an
arena-style allocation.
Change the code to create a linear_parent and use that for all the vtn_*
allocation. Note that NIR data structures still go through ralloc,
since we steal them (through the nir_shader) at the end, i.e. they
outlive the parsing.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25279 >
2024-01-02 16:07:06 +00:00
Caio Oliveira
89afcc94ea
util: Add a way to set the min_buffer_size in linear_alloc
...
The default value remains 2048, which is also used for rounding up
any user provided size.
The option is useful in cases where there's a better idea of the
amount of data that's going to be used.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25279 >
2024-01-02 16:07:06 +00:00
Eric Engestrom
39c8cca34f
zink/requirements: update feature and property names that have been promoted
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26496 >
2024-01-02 15:49:41 +00:00
Eric Engestrom
48e4c68509
zink: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26496 >
2024-01-02 15:49:40 +00:00
Mary Guillemard
a5930b4d41
zink: Force 128 fs input components under Venus for Intel
...
Apply the same workaround as for Intel vk drivers by detecting Intel vendor ID.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26562 >
2024-01-02 15:30:14 +00:00
Jonathan Gray
33eecafe75
zink: put sysmacros.h include under #ifdef MAJOR_IN_SYSMACROS
...
Fixes the build on OpenBSD, where major() is in sys/types and
sys/sysmacros.h does not exist. Also include sys/mkdev.h if
MAJOR_IN_MKDEV is defined.
Fixes: 6d60115be7 ("zink: Fix enumerate devices when running compositor")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26735 >
2024-01-02 15:11:41 +00:00
Jesse Natalie
aa81acf9cb
zink: Add ASSERTED to vars that are only used for asserts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26762 >
2024-01-02 14:54:30 +00:00
Erik Faye-Lund
5024b212b6
zink: use KHR version of maint5 features
...
This is still not in Vulkan core, so we can't refer to it without the
KHR suffix.
Fixes: f501f9453a ("zink: use maintenance5")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26419 >
2024-01-02 14:26:21 +00:00
Erik Faye-Lund
021645ebf5
zink: update profile schema
...
This is needed for VK_KHR_maintenance5 support.
Fixes: f501f9453a ("zink: use maintenance5")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26419 >
2024-01-02 14:26:21 +00:00
Pierre-Eric Pelloux-Prayer
115b61e51f
ac/surface: don't oversize surf_size
...
Yet another iteration on the same YUV surfaces.
The change from 87ecfdfbf0 has 2 odd things:
* it's using MAX2(original value, new value) but the point of updating
surf_slice_size / surf_size is to make it correct relative to the new
value of surf_pitch
* it's multiplying surf_pitch (= number of elements per row) by height (ok)
by surf->bpe (= number of bytes per element) by surf->blk_w (= number of
"horizontal" pixels in an element) so the end unit doesn't make sense.
Fix this by computing a reasonnable value based on unit: the surf_slice_size
is the number of elements per row (surf_pitch) x number of bytes per element
(bpe) x number of rows.
This makes the expected size correct and thus fixes users of eglCreateImageKHR,
like the issue #6131 .
I tested a bunch of gst pipelines and ffmpeg scripts on various files I have
and didn't notice any issues (on gfx10.3 and gfx9).
Fixes: 87ecfdfbf0 ("ac/surface: adapt surf_size when modifying surf_pitch")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6131
Acked-by: Marek Olšák <marek.olsak@amd.com >
Tested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26693 >
2024-01-02 14:32:05 +01:00
Georg Lehmann
9ecfd7919b
aco: optimize 32bit fsign by using fmulz with Inf
...
2 instruction fsign with the power of cursed DX9 floating point rules.
Foz-DB Navi31:
Totals from 3803 (4.86% of 78196) affected shaders:
Instrs: 8436366 -> 8412549 (-0.28%); split: -0.29%, +0.00%
CodeSize: 43174284 -> 43114676 (-0.14%); split: -0.14%, +0.01%
SpillSGPRs: 3241 -> 3247 (+0.19%)
Latency: 66333841 -> 66287361 (-0.07%); split: -0.08%, +0.01%
InvThroughput: 10331902 -> 10316916 (-0.15%); split: -0.15%, +0.01%
VClause: 165455 -> 165472 (+0.01%); split: -0.01%, +0.02%
SClause: 242352 -> 242335 (-0.01%); split: -0.02%, +0.01%
Copies: 604086 -> 605781 (+0.28%); split: -0.04%, +0.32%
Branches: 214017 -> 214013 (-0.00%)
PreSGPRs: 209413 -> 209726 (+0.15%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26765 >
2024-01-02 13:07:30 +01:00
Mike Blumenkrantz
f60dafb4bd
vulkan: add wrappers for descriptor '2' functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26849 >
2024-01-02 11:28:07 +00:00
Ganesh Belgur Ramachandra
f119f34742
radeonsi: convert "gfx11_create_sh_query_result_cs" shader to nir
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25972 >
2024-01-02 10:53:31 +00:00
Ganesh Belgur Ramachandra
c109c3f95c
radeonsi: convert "create_query_result_cs" shader to nir
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25972 >
2024-01-02 10:53:31 +00:00
Ganesh Belgur Ramachandra
740a4c3448
radeonsi: add comments for unpack_2x16* utility functions
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25972 >
2024-01-02 10:53:31 +00:00
Ganesh Belgur Ramachandra
d5ef8a0ac0
radeonsi: enable nir pass for 64 bit operations
...
Enables optimisations for divide-by-constant which are
required in some shaders. e.g. si_create_query_result_cs()
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25972 >
2024-01-02 10:53:30 +00:00
Konstantin Seurer
b88ac6b381
nir: Optimize fpow with small constant exponents
...
They would be turned into exp(log(a)*b) instead, which is slow.
Totals from 2146 (2.52% of 85071) affected shaders:
MaxWaves: 35769 -> 35779 (+0.03%); split: +0.03%, -0.01%
Instrs: 6476835 -> 6465494 (-0.18%); split: -0.18%, +0.00%
CodeSize: 35382288 -> 35347092 (-0.10%); split: -0.10%, +0.00%
SpillSGPRs: 1055 -> 1017 (-3.60%)
Latency: 75211743 -> 75063623 (-0.20%); split: -0.20%, +0.00%
InvThroughput: 17525115 -> 17501745 (-0.13%); split: -0.14%, +0.00%
VClause: 200089 -> 200077 (-0.01%); split: -0.01%, +0.01%
SClause: 293566 -> 293480 (-0.03%); split: -0.03%, +0.00%
Copies: 649631 -> 640516 (-1.40%); split: -1.44%, +0.03%
Branches: 268441 -> 268325 (-0.04%)
PreSGPRs: 146868 -> 146045 (-0.56%)
PreVGPRs: 134125 -> 134128 (+0.00%); split: -0.00%, +0.01%
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26727 >
2024-01-02 11:16:14 +01:00
Juan A. Suarez Romero
8b3496df30
ci/v3dv: update results
...
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26846 >
2024-01-02 10:23:24 +01:00
Luca Weiss
2e46dd0624
freedreno: Enable A305B
...
Enable the Adreno 305B that is found on the MSM8226(v2) SoC (Snadragon
400).
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26434 >
2024-01-01 20:30:46 +00:00
Mark Collins
80a319c0b4
freedreno/rddecompiler: Add ability to read GPU buffer into file
...
While running tests, it is be useful to have non-sequenced dumps of
certain buffers to see their contents from changes in the decompiled
CS. This introduces a function gpu_read_into_file(...) for specifying
a file to read a specific GPU buffer into after replaying the CS.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26465 >
2024-01-01 18:47:48 +00:00
Mark Collins
3c89b2882f
freedreno/rddecompiler: Print pkt values in hex
...
As most of the pkt values are arbitrarily encoded numbers, they are
less readable as integers and printing them as hex is preferable.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26465 >
2024-01-01 18:47:48 +00:00
Mark Collins
84e5b28514
freedreno/rddecompiler: Reset buffers after RD_CMDSTREAM_ADDR
...
This is necessary to correctly decode certain traces such as those
that use FDM.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26465 >
2024-01-01 18:47:48 +00:00
Mark Collins
fa735aacbf
freedreno/rddecompiler: Decode ELSE branches using NOPs
...
In newer traces, in any cases where instructions need to be executed
for both cases of a predicate, such as for GMEM/sysmem. The proprietary
driver emits the TRUE and FALSE body one after another with a NOP at
the end of the TRUE condition body so the CP skips over the FALSE body.
Currently, the NOP skips over all instructions in the ELSE body which
results in them not being decoded whatsoever. This commit checks if
we encounter any NOPs while in a conditional block and appropriately
parses out them out into their own ELSE scope when we do.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26465 >
2024-01-01 18:47:48 +00:00
Mark Collins
cfc2a85b89
freedreno/rddecompiler: Emit explicit scope for CP_COND_REG_EXEC
...
Due to the larger amount of conditional execution in newer traces
the flat view makes it hard to parse what might be conditionally
executed and what might now. This makes it easier to view by adding
a scope for conditionally executed commands which is indented to the
next level.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26465 >
2024-01-01 18:47:48 +00:00
Rhys Perry
10e0518a85
nir/loop_analyze: remove invariance analysis
...
compute_invariance_information() wasn't doing anything. The only variables
not skipped in the list are phis (which are never considered invariant)
and ALU instructions which use the phi as one of it's sources.
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/23726 >
2024-01-01 14:15:39 +00:00
Yonggang Luo
0210b554d6
treewide: Replace the include of nir_types.h with glsl_types.h
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26753 >
2023-12-30 15:08:11 +00:00
Ian Romanick
2e75d71c1f
intel/cmat: Generate better code for nir_intrinsic_cmat_insert
...
When the source destination index is a constant, we can avoid generating
a lot of the intermediate code. At the very least, this makes initial
NIR dumps much easier to read.
v2: Simplify tracking of dst_index. Suggested by Caio.
Suggested-by: Caio
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
c6d44284aa
intel/dev: Enable VK_KHR_cooperative_matrix on all Gfx9+ GPUs
...
Gfx12.5 (DG2) will use DPAS instructions to accelerate the
implementation. Earlier platforms will use equivalent discrete
instructions (basically subgroup operations). Gfx12 (Tigerlake) will use
DP4A for 8-bit integer matrix multiplication. Older platforms, which
lack DP4A, will use a suboptimal instruction sequence. There is plenty
of room for improvement here.
On DG2 (Gfx12.5) gets the following results from the CTS:
Test run totals:
Passed: 1642/13982 (11.7%)
Failed: 0/13982 (0.0%)
Not supported: 12340/13982 (88.3%)
Warnings: 0/13982 (0.0%)
Waived: 0/13982 (0.0%)
On DG2 (Gfx12.5) with forced lowering, Raptor Lake (Gfx12) and Ice Lake
(Gfx11):
Test run totals:
Passed: 1662/13982 (11.9%)
Failed: 0/13982 (0.0%)
Not supported: 12320/13982 (88.1%)
Warnings: 0/13982 (0.0%)
Waived: 0/13982 (0.0%)
The difference in the number of tests run is due to
saturatingAccumulation not being set on DG2 when DPAS is used. There is
a comment in "intel/dev: Advertise integer configs with
saturatingAccumulation too" that explains how this could be added should
the need arise.
v2: Prefix type names with INTEL_CMAT_. Suggested by Lionel.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
8ea032b78e
intel/dev: Advertise integer configs with saturatingAccumulation too
...
VUID-RuntimeSpirv-saturatingAccumulation-08983 says:
For OpCooperativeMatrixMulAddKHR, the SaturatingAccumulation
cooperative matrix operand must be present if and only if
VkCooperativeMatrixPropertiesKHR::saturatingAccumulation is VK_TRUE.
As a result, we have to advertise integer configs both with and without
this flag set.
v2: Prefix type names with INTEL_CMAT_. Suggested by Lionel.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
f952dd510e
anv: Select the SIMD mode very early when cooperative matrices are used
...
The commit is a little ugly. The definition of anv_fixup_subgroup_size
is moved before the added call site. In addition, the bit starting at
the "Cooperative matrix extension requires..." comment is added.
v2: Dramatic simplification of SIMD selection. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
511f91e307
anv: Lower indirect derefs again after lowering cooperative matrices
...
The cooperative matrix lowering can generate a lot of indirect array
accesses, and these need to be eliminated.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
b741a9a851
anv: Set PIPELINE_SELECT systolic mode enable flag
...
Set the flag on compute shaders when the application has enabled the
cooperative matrix feature. We might still want to enable this only when
DPAS is actually used. The current method is based on many suggestions
from Lionel.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
7bfbeb79a7
anv: Set COMPUTE_WALKER systolic mode enable flag
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
67739b02de
anv: Add anv_physical_device::has_cooperative_matrix
...
This flag tracks whether or not cooperative matrices are fully enabled
on the physica device (i.e., both the configs exist and the environment
varible is set). This is mainly to support a later commit "anv: Set
PIPELINE_SELECT systolic mode enable flag."
This could be squashed into "anv: Implement VK_KHR_cooperative_matrix."
I left it separate because we might go back to the previous method.
v3: Don't hide the extension behind an environment variable
(ANV_COOPERATIVE_MATRIX) now the we have a better solution for setting
PIPELINE_SELECT.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Caio Oliveira
0a6f8b40bf
anv: Implement VK_KHR_cooperative_matrix
...
v2: Rebase on moving lowering pass to src/intel/compiler.
v3: Don't hide the extension behind an environment variable
(ANV_COOPERATIVE_MATRIX) now the we have a better solution for setting
PIPELINE_SELECT.
v4: Prefix type names with INTEL_CMAT_. Suggested by Lionel. Also rebase
on f99e43d606 ("anv: switch to use runtime physical device properties
infrastructure").
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Caio Oliveira
ff16458478
intel/dev: Add cooperative matrix configuration information
...
v2: Prefix type names with INTEL_CMAT_. Suggested by Lionel.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:54 -08:00
Ian Romanick
6b14da33ad
intel/fs: nir: Add nir_intrinsic_dpas_intel
...
v2: Fix parameter order in nir_intrinsic_dpas_intel to DPAS conversion.
v3: Fix float16 destination DPAS on DG2.
v4: Use nir_component_mask(...) instead of 0xffff. Suggested by Caio.
v5: Rebase on !26323 .
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:28:43 -08:00
Ian Romanick
3756f60558
intel/fs: DPAS lowering
...
Implements integer dot product lowering both with and without
DP4A. Implements half-float dot product lowering.
There are a couple FINISHME comments describing future optimizations.
v2: Add a brw_compiler::lower_dpas flag to track when the lowering
should be applied.
v3: Use is_null() instead of checking file != ARF. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:27:15 -08:00
Ian Romanick
3cb9625539
intel/fs: Fix scoreboarding for DPAS
...
v2: Remove all mention of DPASW. Suggested by Curro and Caio.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:27:15 -08:00
Ian Romanick
eb1f19d7bf
intel/compiler: Validation for DPAS instructions
...
v2: s/regiser/register/g in messages. Noticed by Caio. Add more context
to the sub-byte precision error message. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:27:15 -08:00
Ian Romanick
1c92dad5cb
intel/disasm: Disassembly support for DPAS
...
v2: Fix regioning in src[012]_dpas_3src. Noticed by Caio. Treat DPAS as
unordered. Suggested by Curro.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:27:13 -08:00
Ian Romanick
e666872c75
intel/compiler: Initial bits for DPAS instruction
...
v2: Add brw_ir_performance.cpp and brw_fs_generator.cpp changes. Fix
overlapping register allocation (via has_source_and_destination_hazard). Fix
incorrect destination register file encoding.
v3: Prevent lower_regioning from trying to "fix" DPAS sources.
v4: Add instruction latency information for scheduling and perf
estimates.
v5: Remove all mention of DPASW. Suggested by Curro and Caio. Update
the comment in fs_inst::has_source_and_destination_hazard. Suggested
by Caio.
v6: Add some comments near the src2 calculation in
fs_inst::size_read. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:16 -08:00
Ian Romanick
3a35f8b29b
intel/cmat: Lower cmat_load and cmat_store
...
v2: Add support for non-constant stride.
v3: Explain B matrices (a little bit) in
get_slice_type_from_desc. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:16 -08:00
Ian Romanick
502be565da
intel/cmat: Add lowering for cmat_bitcast
...
v2: Use nir_component_mask(...) instead of 0xffff. Assert that source
and destination are same size. Both suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Ian Romanick
7303315a8b
intel/cmat: Enable packed formats for scalar ops
...
v2: Use nir_pack_bits and nir_unpack_bits to simplify coop_scalar
handling. This saved 13 lines of code.
v3: Allow packing factor 2 and packing factor 1 elements be stored in
16-bit integers.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Ian Romanick
26c4acd8ee
intel/cmat: Enable packed formats for binary ops
...
v2: Use nir_pack_bits and nir_unpack_bits to simplify coop_binary
handling. This saved 13 lines of code.
v3: Allow packing factor 2 and packing factor 1 elements be stored in
16-bit integers.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Ian Romanick
0d314eb3cc
intel/cmat: Enable packed formats for unary, length, and construct
...
With this, a minimum test case passes:
void main()
{
coopmat<float16_t, gl_ScopeSubgroup, M, N, gl_MatrixUseA> matA;
coopmat<float, gl_ScopeSubgroup, M, N, gl_MatrixUseA> matR;
matA = coopmat<float16_t, gl_ScopeSubgroup, M, N, gl_MatrixUseA>(2.0);
matR = coopmat<float, gl_ScopeSubgroup, M, N, gl_MatrixUseA>(matA);
coopMatStore(matR, result, 0, N, gl_CooperativeMatrixLayoutRowMajor);
}
v2: Use nir_vec instead of explicit nir_vec{2,4}. Also fixes a typo in
one of the 4x8 cases.
v3: Use nir_pack_bits and nir_unpack_bits to dramatically simplify
coop_unary handling. This saved 67 lines of code.
v4: Allow packing factor 2 and packing factor 1 elements be stored in
16-bit integers.
v5: Massive update to the comment in lower_cooperative_matrix_unary_op
with some suggestions from Caio. Add a comment and assertion around
`nir_def *v[4]`. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Ian Romanick
75388a71c9
intel/cmat: Add lowering for cmat_insert and cmat_extract
...
v2: Use nir_component_mask(...) instead of 0xffff. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Ian Romanick
a2ded5b26c
intel/cmat: Update get_slice_type for packed slices
...
Also splits off another funciton get_slice_type_from_desc that will be
used in future commits.
v2: Allow packing factor 2 and packing factor 1 elements be stored in
16-bit integers.
v3: Use glsl_base_type_get_bit_size.
v4: Adjust packing so that a single row fills an entire GRF.
v5: Add comment for get_packing_factor and some other cleanups
there. s/cooperative_matrix/cmat/. Tighten the validation of len in
gt_slice_from_desc. All suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Caio Oliveira
dba6451ce8
intel/cmat: Add pass to lower cooperative matrix to subgroup operations
...
This is just the skeleton of the implementation. Future commits will
fill it all in.
v2: Move to src/intel/compiler
v3 (idr): Use vecN instead of array[N] for slice type.
v4 (idr): Refactor lower_cooperative_matrix_load and
lower_cooperative_matrix_store into a single function.
v5 (idr): Remove old, verbose debug logging. Assert that entry is not
NULL in get_coop_type_for_slice. Use nir_component_mask(...) instead of
0xffff. s/cooperative_matrix/cmat/. All suggested by Caio.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
I put both R-b on this because, at this point, we've each done equal
parts authoring and reviewing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25994 >
2023-12-29 20:24:15 -08:00
Danylo Piliaiev
61c9cf9890
freedreno: Add a644 support
...
The GPU is same as a660 but for SP_DBG_ECO_CNTL register value.
Checked by comparing cmd streams between them.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10366
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26836 >
2023-12-29 09:44:07 +00:00
Nanley Chery
ee524e198b
iris: Fix lowered images in get_main_plane_for_plane
...
This function was recently simplified based on the idea that if a
modifier is not present, then the plane count should not exceed the
plane count of the resource's external format. This seems to be true
except for lowered images. We don't enable compression modifiers on
lowered images, so this case was not handled during the transition.
As an example of the lowering that may occur: PIPE_FORMAT_YVYU is a
single plane, subsampled format that the gallium layer lowers to two
planes/formats (R8G8_UNORM and B8G8R8A8_UNORM) if not natively supported
by the hardware.
Fixes the assert failure when running the piglit test case:
ext_image_dma_buf_import-sample_yuv -fmt=YVYU -auto
ext_image_dma_buf_import-sample_yuv:
../../src/gallium/drivers/iris/iris_resource.c:1384:
iris_resource_from_handle:
Assertion `main_res->aux.surf.row_pitch_B ==
plane_res->surf.row_pitch_B' failed.
Also, replaces it with a new one in case this fails again:
ext_image_dma_buf_import-sample_yuv:
../../src/gallium/drivers/iris/iris_resource.c:1381:
iris_resource_from_handle:
Assertion `isl_drm_modifier_has_aux(whandle->modifier)' failed.
Fixes: 79222e5884 ("iris: Simplify get_main_plane_for_plane")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26826 >
2023-12-29 09:08:57 +00:00
Nanley Chery
94e5b5d049
isl: Handle MOD_INVALID in clear color plane check
...
In iris, if whandle->modifier is DRM_FORMAT_MOD_INVALID within
iris_resource_from_handle, isl_drm_modifier_plane_is_clear_color will
assert fail on non-existent modifier info. Update that function to
return early instead.
Fixes the assert failure when running the piglit test case:
ext_image_dma_buf_import-sample_yuv -fmt=YVYU -auto
ext_image_dma_buf_import-sample_yuv: ../../src/intel/isl/isl.h:2352:
isl_drm_modifier_plane_is_clear_color: Assertion `mod_info' failed.
Fixes: 81d132d5ea ("iris: Use helpers for generic aux plane importing")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26826 >
2023-12-29 09:08:57 +00:00
Rohan Garg
5fff6eac42
intel/compiler: Update disassembly for new LSC cache enums
...
Rework:
* Caio: Add remaining enum values.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26837 >
2023-12-28 15:13:24 -08:00
Francisco Jerez
b91fa057ab
intel/compiler/xe2: Don't disassemble non-existent fields.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Acked-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26837 >
2023-12-28 15:13:24 -08:00
Jordan Justen
6495fe3d37
intel/xe2+: Implement brw_wm_state_simd_width_for_ksp() on Xe2+.
...
The mechanism for selecting dispatch modes has changed from previous
platforms, add a new implementation brw_wm_state_simd_width_for_ksp()
using the new kernel dispatch controls.
[ Francisco Jerez: Split from a larger patch, handle multipolygon
dispatch, add additional comments. ]
Signed-off-by: Francisco Jerez <currojerez@riseup.net >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
d8ad51ec76
intel/xe2+: Implement fragment shader dispatch state setup.
...
This sets up the PS dispatch controls to a supported combination of
Kernel0/Kernel1 dispatch modes, initializing the polygon packing
controls to use a multipolygon dispatch mode if one was provided.
Rework:
* Jordan: Move into intel_update_ps_state()
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
ab0eff4388
intel/fs/xe2+: Attempt to build quad-SIMD8 and dual-SIMD16 FS variants on Xe2+ platforms.
...
Extend the pre-existing dual-SIMD8 compilation path in
brw_compile_fs() to attempt quad-SIMD8 and dual-SIMD16 compiles.
Instead of building every possible dispatch mode and then picking one
based on cycle-count heuristics, this attempts to only build a single
multipolygon kernel -- The different mulipolygon dispatch modes are
tried in the expected order of decreasing performance (quad-SIMD8,
dual-SIMD16 then dual-SIMD8), the first one that successfully compiles
without spills is taken as a simple heuristic, and no further
multipolygon builds are attempted.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
8cd8d6bccc
intel: Add debug flags for enabling Xe2+ multipolygon fragment shader dispatch modes.
...
Note that the multipolygon PS disptach modes supported by Xe2 aren't
enabled by default yet, but they can be enabled manually via
INTEL_SIMD_DEBUG=fs2x8,fs4x8,fs2x16.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
50d084ec29
intel/fs/xe2+: Lower SIMD width of instructions that access ATTR file from SIMD2x8/4x8 FS.
...
This is needed because the information stored on the ATTR file for
multipolygon fragment shaders isn't stored as a contiguous sequence in
the GRF, instead the ATTR source may be lowered by assign_urb_setup()
to use a <16;8,0> region, which reads 4 SIMD16 GRFs for a SIMD32
instruction, even though the result of fs_inst::size_read() is
expected to be 2 GRFs. Special case ATTR sources for multipolygon PS
shaders to calculate the number of physical GRFs that will actually be
read by the instruction after lowering, based on the number of
polygons processed by the instruction.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
0d332d0c49
intel/fs: Plumb shader instead of compiler to get_lowered_simd_width() and friends.
...
This will allow making lowering decisions based on properties of the
shader, like the multipolygon dispatch mode used.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
bd634bef12
intel/fs/xe2+: Implement layout of mesh shading per-primitive inputs in PS thread payloads.
...
This is based on a previous patch by Marcin Ślusarz addressing the
same issue, though it's largely rewritten, simplified and includes
additional fixes.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
4cebfaadf7
intel/fs/xe2+: Implement support for multi-polygon vertex setup data in PS payload.
...
This fixes a number of assumptions made by the multipolygon input
attribute handling code from assign_urb_setup() so it also works on
Xe2+, which has additional multipolygon dispatch modes (like SIMD4x8
and SIMD2x16) and uses a different more compact representation of the
plane parameters.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 14:12:59 -08:00
Francisco Jerez
702eabaaae
intel/fs/xe2+: Update for new layout of vertex setup data in PS payload.
...
The interpolation deltas of PS inputs now show up as a 12B vec3 (A0,
A1-A0, A2-A0) in the ATTR file, instead of the previously used 16B
format with an unused component.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
d622e19f00
intel/fs/xe2+: Enable new format of barycentrics in PS payload.
...
The X and Y barycentric vectors are no longer interleaved in SIMD8
chunks (yay), so this is mostly a matter of disabling the
lower_barycentrics() pass and switching to a simpler implementation of
fetch_barycentric_reg() that simply calls fetch_payload_reg() instead
of the SIMD8 shuffling we had to do in previous generations.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
49a867f67e
intel/fs: Add support for vector payload values to fetch_payload_reg().
...
This extends fetch_payload_reg() to support fetching vector registers
like barycentrics stored on the payload as a contiguous sequence of
SIMD-wide vectors. In the SIMD32 case, both halves of the SIMD16
vector registers specified as regs[0] and regs[1] are zipped to
construct a single SIMD32-wide vector.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
f295494cee
intel/fs/xe2+: Update poly info PS payload for new multi-polygon dispatch format.
...
This includes the render target array index, viewport index, and
front/back facing fields, which are now replicated per pair of
subspans in order to support fixed-layout multi-polygon PS dispatch.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
4cc9c37bba
intel/fs/xe2+: Update location of sample ID fields in PS payload.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
a0ae3c0dba
intel/fs/xe2+: Update uses of pixel/sample mask from PS thread payload.
...
Note from Caio: proper handling of brw_sample_mask_reg
will appear in later patches.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
6dae56cc57
intel/fs/xe2+: Fix for new layout of X/Y pixel coordinates in PS payload.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
ef6ef7aa8e
intel/fs/xe2+: Implement PS thread payload register offset setup.
...
The PS thread payload format has changed enough in Xe2 that it
probably doesn't make sense to share code with gfx6. See BSpec page
"PS Thread Payload for Normal Dispatch - 512 bit GRF" for the new
format.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
24e8709d8b
intel/eu/xe2+: Add helpers for constructing registers in 512b units.
...
These are new variants of the existing brw_reg GRF constructors that
take registers numbers in the new 512b units. Mainly useful for
thread payload setup code to use register numbers in a format that
matches the BSpec.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Eric Engestrom
0ffb828513
Revert "meson: add wrap for libdrm"
...
This reverts commit 40b87cde2a .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26835 >
2023-12-28 15:44:25 +00:00
Eric Engestrom
666f27d228
ci/containers: use build-libdrm.sh in debian/android
...
The extra complexity is not worth saving the 3x 468 KB of bandwidth
wasted every time we rebuild this container because we delete the
tarball inside the script.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26825 >
2023-12-28 14:13:39 +00:00
Eric Engestrom
753056fb94
meson: use allow_fallback instead of manually listing the deps and what they provide
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26834 >
2023-12-28 13:17:25 +00:00
Eric Engestrom
eb24e070bf
meson: update zlib wrap
...
Output of `meson wrap update zlib`.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26834 >
2023-12-28 13:17:25 +00:00
Eric Engestrom
05500ba4eb
meson: update libxml2 wrap
...
Output of `meson wrap update libxml2`.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26834 >
2023-12-28 13:17:25 +00:00
Eric Engestrom
14f8dd4236
meson: update libarchive wrap
...
Output of `meson wrap update libarchive`.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26834 >
2023-12-28 13:17:25 +00:00
Eric Engestrom
d55c655794
meson: update expat wrap
...
Output of `meson wrap update expat`.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26834 >
2023-12-28 13:17:25 +00:00
Dylan Baker
40b87cde2a
meson: add wrap for libdrm
...
Sometimes as a developer when a new version of libdrm is required, it's
nice to not have to install it somewhere and set up pkg-confing, and
just let Meson do it for us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10364 >
2023-12-28 11:35:04 +00:00
Eric Engestrom
ebee672ef8
docs: update calendar for 23.3.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26824 >
2023-12-27 22:34:32 +00:00
Eric Engestrom
b8215b5442
docs: add sha256sum for 23.3.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26824 >
2023-12-27 22:34:24 +00:00
Eric Engestrom
0cf1ee35f7
docs: add release notes for 23.3.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26824 >
2023-12-27 22:26:56 +00:00
José Roberto de Souza
3465e9f352
anv: Assume that imported bos already have flat CCS requirements satisfied
...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10291
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/26711 >
2023-12-27 18:05:04 +00:00
José Roberto de Souza
8d0e70f628
anv: Replace anv_bo.vram_only by anv_bo.alloc_flags check
...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10291
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/26711 >
2023-12-27 18:05:04 +00:00
José Roberto de Souza
060439bdf0
anv: Add ANV_BO_ALLOC_IMPORTED
...
The next patch will replace anv_bo.is_vram by a anv_bo.alloc_flags
check but to that actually work we can't use ANV_BO_ALLOC_NO_LOCAL_MEM
for imported bos, so here adding it.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10291
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/26711 >
2023-12-27 18:05:04 +00:00
Felix DeGrood
5683c54d8f
driconf: add Witcher3 to Intel XeSS workaround
...
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26818 >
2023-12-27 17:10:19 +00:00
Felix DeGrood
b77b67064e
driconf: add Dying Light 2 to Intel XeSS workaround
...
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26818 >
2023-12-27 17:10:19 +00:00
Kenneth Graunke
55c262898a
iris: Skip mi_builder init for indirect draws
...
We only need it for indirect draws.
Improves performance on an i7-12700 and A770:
- Piglit's drawoverhead base case +150.639% +/- 2.86933% (n=15).
- gfxbench5 gl_driver2_off +19.7219% +/- 1.13778% (n=15)
- SPECviewperf2020 catiav5test1 +1.6831% +/- 0.552052% (n=10).
Cc: mesa-stable
Reviewed-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/26806 >
2023-12-27 01:25:04 -08:00
Kenneth Graunke
d55b5d4af5
iris: Don't search the exec list if BOs have never been added to one
...
Whenever we use a BO in a batch, we need to find its corresponding exec
list entry, either to a) record that it's been used, b) update whether
it's being written, c) check for cross-batch implicit dependencies.
bo->index exists to accelerate these lookups. If a BO is used multiple
times by a batch, bo->index is its location in the list. Because the
field is global, and a BO can in theory be used concurrently by multiple
contexts, we need to double-check whether it's still there. If not, we
fall back to a linear search of all BOs in the list, looking to see if
our index was simply wrong (but presumably right for another context).
However, there's one glaringly obvious case that we missed here. If
bo->index is -1, then it's wrong for /all/ contexts, and in fact implies
that said BO has never been added to any exec list, ever. This is quite
common in fact: a new BO, never been used before, say from the BO cache,
or streaming uploaders, gets used for the first time.
In this case we can simply conclude that it's not in the list and skip
the linear walk through all buffers referenced by the batch.
Improves performance on an i7-12700 and A770:
- SPECviewperf2020 catiav5test1: 72.9214% +/- 0.312735% (n=45)
Cc: mesa-stable
Reviewed-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/26806 >
2023-12-27 01:25:00 -08:00
Kenneth Graunke
d178334d5c
iris: Initialize bo->index to -1 when importing buffers
...
A value of -1 means that the buffer has never been used in an execbuf
buffer list in any of our contexts. While setting this isn't critical,
doing so will allow us to short-circuit some looping in the next patch.
Cc: mesa-stable
Reviewed-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/26806 >
2023-12-27 01:24:35 -08:00
Nanley Chery
bd32badbb7
iris: Delay main and aux resource creation on import
...
Follow the pattern for initializing aux resource addresses.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Nanley Chery
5f93f97892
iris: Use common res fields for imported planes
...
Instead of putting the aux plane info in the aux fields, just use the
same iris_resource fields for all planes.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Nanley Chery
a0f3c0a246
iris: Inline import_aux_info
...
This function is only used once. By inlining it, we can more easily
compare the CCS plane import code with the clear color plane import
code.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Nanley Chery
81d132d5ea
iris: Use helpers for generic aux plane importing
...
Inline iris_resource_finish_aux_import and reimplement it with the
helper functions for managing resource planes. Provides more testing for
the helper functions and simplifies the code.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Nanley Chery
733607cc37
iris: Simplify a plane count check in from_handle
...
Instead of checking the plane count in order to finish importing the aux
info, just check the plane index. Planes are added in reverse, so we'll
have the complete number of planes once we reach plane zero.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Nanley Chery
79222e5884
iris: Simplify get_main_plane_for_plane
...
Dropping the mod_info parameter simplifies a future commit.
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25768 >
2023-12-26 18:40:38 +00:00
Chia-I Wu
d9ba75e2e1
Revert "vk/util: ignore unsupported feature structs"
...
This reverts commit eb5bb5c784 . The
commit broke drivers which do not initialize
vk_physical_device::properties.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26813 >
2023-12-25 20:36:34 +00:00
Karol Herbst
bc9fe6637b
ci: merge debian-rusticl-testing into debian-testing
...
There is really no point anymore having it split out.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26807 >
2023-12-25 16:18:41 +00:00
Yonggang Luo
6d4577799c
ci/microsoft: Update the image-tag and image-path for msvc2019/msvc2022
...
Update the image-path from x64 to x86_64 for consistence with other platform
This is also cause the python to be updated to python3.12
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
cb50d0cabf
ci/msvc: Split the install of rust and d3d out of mesa_deps_test.ps1
...
There is no need repeatedly downloading rust and d3d when building the docker locally
Download glext.h from github
Remove src directory and .git directory once compiling finished
Split piglit and depq compiling out
Clean middle files of piglit and depq
ci/msvc: Improve fetch source of spirv_samples_source
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
6e8c3a585a
ci/msvc: Stick VK-GL-CTS to specific version 56114106d860c121cd6ff0c3b926ddc50c4c11fd
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
85bbc1a753
ci/msvc: Stick deqp-runner to version v0.16.1
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
5109790cf9
ci/msvc: Install both msvc2019 and msvc2022
...
Currently only msvc2019 are used
This is did intentionally, so we have a history script install msvc2019 only within vs2022
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
14e624bf43
ci/msvc: Install msvc2019 only from vs2022
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
24c40cafc4
ci/msvc: Upgrade to vs2022 build tools
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
25a560b622
ci/msvc: Remove &windows_msvc_image_tag
...
This is hard to understand and complicated
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
c0ad42fe34
ci/msvc: Improve msvc init
...
Now when choose different version of msvc, there is no need rebuild windows-msvc docker
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
a2595dbf3b
ci/msvc: Rename vs to msvc for consistence
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
4d6d0a24ed
ci/msvc: Rename vs2019 to msvc
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
543e872d90
ci/msvc: Split install vulkan sdk out of choco
...
packaging are installed because python 3.12 need it
Install of vulkan-sdk improved so that it's can be running in non-docker environment
Now vulkan-sdk have separate script so that it can be updated without update MSVC
THe choco installed packages is almost freeze to update, so split install of vulkan sdk
out of it for avoid update it when update VULKAN_SDK_VERSION on local computer
--params="/InstallDir:C:\python3" won't take effect, drop it for not misleading
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
9e89e7a7c2
ci/msvc: Install graphics tools(DirectX debug layer) easy to stuck, place it at the beginning
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Yonggang Luo
09ca7b3d9e
ci/msvc: update flex and bison to winflexbison3
...
winflexbison3 is from github and faster, other than that, bison in winflexbison is too old(year 2007)
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736 >
2023-12-24 11:46:43 +00:00
Eric Engestrom
7e8db6aedf
meson: always define {,DRAW_}LLVM_AVAILABLE one way or the other
...
With the usual benefits of `#if` instead of `#ifdef` (mostly the fact
that typos can be build failures instead of silently being interpreted
as if 0).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3863 >
2023-12-24 10:01:39 +00:00
Eric Engestrom
ac5a27917d
ci: fix farm restore pipelines
...
A few lines above, we disable pipelines for farm disables, but we were
missing a condition to run the container & build jobs when re-enabling
a farm, leading to invalid pipelines where test jobs for that farm are
created but the container & build jobs are missing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26809 >
2023-12-24 09:30:52 +00:00
Eric Engestrom
d75643f400
ci: disable collabora farm as it is currently offline
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26810 >
2023-12-24 09:27:15 +00:00
Juan A. Suarez Romero
c05261a7d8
ci/v3dv: add new failures
...
These failures started with eb5bb5c784 ("vk/util: ignore unsupported
feature structs").
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26808 >
2023-12-24 00:48:10 +01:00
Samuel Pitoiset
551924aa87
ci: apply two bugfixes for VKCTS
...
These are needed for RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26798 >
2023-12-22 20:12:39 +00:00
Rohan Garg
3e46ee61d5
intel/fs/xe2+: Lift CPS dispatch width restrictions on Xe2+.
...
These restrictions don't seem to be applicable anymore, and limiting
to SIMD8 wouldn't work since we're no longer building shaders with
that dispatch width.
[ Francisco: This one-liner change was squashed by Rohan Garg into a
previous version of my patch "Stop building SIMD8 programs", but it
makes more sense as a separate commit -- Formatted as a separate
patch. ]
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26605 >
2023-12-22 10:37:00 -08:00
Ian Romanick
84b53e1a54
intel/fs/xe2+: Pass correct dispatch_width to fs_generator for geometry-processing stages.
...
Instead of hard-coding a dispatch_width value which is no longer
correct on Xe2+.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26605 >
2023-12-22 10:37:00 -08:00
Francisco Jerez
3f92dde55e
intel/fs/xe2+: Stop building SIMD8 shaders for geometry stages (VS/TCS/TES/GS).
...
They are no longer suppored by the fixed-function hardware.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26605 >
2023-12-22 10:37:00 -08:00
Francisco Jerez
6877916155
intel/fs/xe2+: Stop building SIMD8 fragment shaders.
...
They are no longer suppored by the fixed-function hardware.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26605 >
2023-12-22 10:37:00 -08:00
Francisco Jerez
7397ba61c2
intel/fs/xe2+: Stop building SIMD8 compute-like shaders (CS/BS/TS/MS).
...
SIMD8 kernels are no longer able to utilize the ALUs efficiently,
since they have twice the vector width as previous platforms. However
even though there aren't many reasons to use it, SIMD8 is still
supported by the instruction set technically, and it will still be
used for some SIMD-lowering sequences.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26605 >
2023-12-22 10:37:00 -08:00
Francisco Jerez
69cc72e50a
anv/gfx12: Hook up dual-SIMD8 fragment shader dispatch.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
4ec54e84da
iris/gfx12: Hook up dual-SIMD8 fragment shader dispatch.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
ccb5795938
intel/gfx12: Enable SIMD8 dispatch in 3DSTATE_PS for FS multipolygon dispatch.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
4868408e6e
intel/genxml: Add 3DSTATE_PS definitions needed for dual-SIMD8 dispatch on Gfx12+.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
1f2c44dc21
intel/compiler: Attempt to build dual-SIMD8 variant of fragment shaders on gfx12+ platforms.
...
Similar to other FS dispatch modes, attempt to build a dual-SIMD8
program if the regular SIMD8 program didn't spill and doubling the
amount of space for varyings doesn't cause us to go over the thread
payload limit. Dual-SIMD8 builds in combination with coarse pixel
shading are currently not handled.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
261d07f398
intel: Add debug flag for enabling dual-SIMD8 fragment shader dispatch.
...
Note that this option isn't enabled by default yet pending additional
performance evaluation.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
28aec45eed
intel/fs/gfx12: Implement multi-polygon format of render target array index in PS payload.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
5b1ab77423
intel/fs/gfx12: Implement multi-polygon format of back/front-facing flag in PS payload.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
4672fcbc76
intel/fs: Fix PS thread payload setup for depth_w_coef_reg.
...
It's not replicated per SIMD16 half of a SIMD32 thread on the PS
payload. Make fs_visitor::payload::depth_w_coef_reg a scalar rather
than an array.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
09ea840987
intel/fs: No need to copy null destinations in lower_simd_width.
...
The copy would be discarded immediately. Until now we were relying on
DCE to eliminate these, but it seems like in some cases MOVs into the
null register emitted by lower_simd_width() are never eliminated,
likely because a lower_simd_width() call has been introduced close to
the bottom of optimize() which isn't follow by any additional DCE
passes.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
5e0760a993
intel/fs/gfx12: Don't consider multipolygon PS to have packed dispatch.
...
This fixes a number of regressions and hangs in multipolygon fragment
shaders that have FIND_LIVE_CHANNEL sequences which would otherwise
lead to access of a dead channel. Note that the failures don't seem
to be reproducible in simulation.
Acked-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
8f92baa5d3
intel/fs/gfx12+: Don't set nir_divergence_single_prim_per_subgroup option for fragment shaders.
...
Flat-shaded inputs and other per-primitive values can no longer be
considered to be uniform across fragment shader subgroups due to
multipolygon dispatch.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
6bf99e6a45
intel/compiler: Don't change types for copies from ATTR file.
...
Since the <8;8,0> regions they use in multipolygon mode could violate
regioning restrictions in some cases, depending on the execution type
of the instruction. Note that the assertion is removed from
try_copy_propagate() since a more accurate check is used within that
function than what fs_inst::can_change_types() can do.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
2ed36050fb
intel/fs: Don't copy-propagate ATTR registers in multi-polygon FS shaders when invalid.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Jordan Justen
3f89fa63e6
intel/compiler: Pass max_polygons to copy-prop from fs_visitor.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
b62ad4e028
intel/fs: Rework layout of FS vertex setup data in ATTR file to support multi-polygon dispatch.
...
The updated layout includes one copy of each plane parameter per
channel of the SIMD thread, in order to allow channels to process
different polygons.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
a844c0b185
intel/fs: Fix fs_reg::component_size() to handle two-dimensional register regions.
...
Add code to calculate the size in bytes of arbitrary two-dimensional
regions for FIXED_GRF and ARF registers.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Francisco Jerez
83a0252e8d
intel/fs: Pass builder to per_primitive_reg().
...
Matches prototype of interp_reg(), will be useful in a subsequent commit.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
8e9f09dbe5
intel/fs: Provide component index explicitly to interp_reg().
...
Main motivation is that for multipolygon PS shaders the i-th plane
parameter for the j-th input attribute will no longer necessarily be a
scalar, since different channels may be processing different polygons
with different input plane parameters, so simply taking a component()
of the result of interp_reg() will no longer work. Instead of
duplicating the multipolygon handling logic in every caller of
interp_reg(), fold the component() call into interp_reg() so we can
replace it with multipolygon-correct code more easily.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
742a575bd6
intel/fs: Consider ATTR registers with different fs_reg::nr as belonging to disjoint register spaces.
...
Instead of treating fs_reg::nr as an offset for ATTR registers simply
consider different indices as denoting disjoint spaces that can never
be accessed simultaneously by a single region. From now on geometry
stages will just use ATTR #0 for everything and select specific
attributes via offset() with the native dispatch width of the program,
which should work on current platforms as well as on Xe2+. See
"intel/fs: Map all GS input attributes to ATTR register number 0." for
the rationale.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
2d26ed6688
intel/fs: Assert fs_reg::nr is always zero for ATTR registers in geometry stages.
...
Instead of treating fs_reg::nr as an offset for ATTR registers simply
consider different indices as denoting disjoint spaces that can never
be accessed simultaneously by a single region. From now on geometry
stages will just use ATTR #0 for everything and select specific
attributes via offset() with the native dispatch width of the program,
which should work on current platforms as well as on Xe2+. See
"intel/fs: Map all GS input attributes to ATTR register number 0." for
the rationale.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
b26cf8b189
intel/fs: Map all TES input attributes to ATTR register number 0.
...
Instead of treating fs_reg::nr as an offset for ATTR registers simply
consider different indices as denoting disjoint spaces that can never
be accessed simultaneously by a single region. From now on geometry
stages will just use ATTR #0 for everything and select specific
attributes via offset() with the native dispatch width of the program,
which should work on current platforms as well as on Xe2+. See
"intel/fs: Map all GS input attributes to ATTR register number 0." for
the rationale.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
ef12565a37
intel/fs: Map all VS input attributes to ATTR register number 0.
...
Instead of treating fs_reg::nr as an offset for ATTR registers simply
consider different indices as denoting disjoint spaces that can never
be accessed simultaneously by a single region. From now on geometry
stages will just use ATTR #0 for everything and select specific
attributes via offset() with the native dispatch width of the program,
which should work on current platforms as well as on Xe2+. See
"intel/fs: Map all GS input attributes to ATTR register number 0." for
the rationale.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
1d22721b5a
intel/fs: Map all GS input attributes to ATTR register number 0.
...
The fs_reg::nr field currently has a somewhat inconsistent meaning for
ATTR registers depending on the shader stage. In geometry stages it
has a similar effect as fs_reg::offset except it's expressed in 32B
units instead of B units. In the PS however it's expressed in units
of logical scalar attributes (16B on present platforms), which isn't
currently handled correctly throughout the back-end since some places
assume 32B units in all cases.
The different format of the PS setup data in multi-polygon dispatch
modes would make its behavior even more irregular, which would be
worsened further (for both geometry and pixel stages) by the register
size changes coming up on Xe2, particularly in brw_ir_fs.h helpers
where neither the devinfo struct nor the shader stage are available.
Instead of treating it as an offset simply consider different
fs_reg::nr indices as denoting disjoint spaces that can never be
accessed simultaneously by a single region. From now on geometry
stages will just use ATTR #0 for everything and select specific
attributes via offset() with the native dispatch width of the program,
which should work on current platforms as well as on Xe2+.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
e4aca2ebaa
intel/fs: Add separate constructor of fs_visitor for fragment shaders.
...
To allow specifying the number of polygons that will be processed per
SIMD thread.
Rework:
* Jordan: Add needs_register_pressure following
09cdb77a92 ("intel/fs: report max register pressure in shader stats")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
1eff2fcb62
intel/compiler: Add polygon count statistic to brw_compile_stats.
...
And use it in ANV in order to return a "SIMDNxM" name from
vkGetPipelineExecutablePropertiesKHR.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
ccf9174655
intel/compiler: Add multipolygon dispatch fields to brw_wm_prog_data.
...
Add fields that track the number of polygons processed per PS SIMD
thread (note that this might be lower than the value that was
specified to the compiler via brw_compile_fs_params if compilation at
the desired polygon count wasn't possible), and the dispatch width of
the multi-polygon PS kernel.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Francisco Jerez
e7b1993376
intel/compiler: Add max_polygons FS compilation parameter.
...
Add a brw_compile_fs_params parameter that specifies to the compiler
the maximum number of polygons that may be processed in parallel per
PS SIMD thread.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:30 +00:00
Caio Oliveira
6fccacda1e
compiler/types: Use a typedef for glsl_type
...
Most of the code now will see `const glsl_type *` instead of
`const struct glsl_type *`.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26708 >
2023-12-22 07:53:25 -08:00
Caio Oliveira
550fdc2026
compiler/types: Remove glsl_type C++ helpers
...
All code now use the C functions. Remove glsl_type_impl.h that
contained the inline C++ wrappers around those.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:51:01 -08:00
Caio Oliveira
d06f0305f6
glsl: Use glsl_type C helpers
...
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:51:01 -08:00
Caio Oliveira
db5f73dc9f
compiler/types: Add a few more glsl_type C helpers
...
These will be used once the C++ ones are removed.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
6af93b1801
lima: Use glsl_type C helpers
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
7d0d4a494e
mesa: Use glsl_type C helpers
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
582c20c431
nir: Use glsl_type C helpers
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
cc809d4de9
nouveau: Use glsl_type C helpers
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
2cbc318193
r600/sfn: Use glsl_type C helpers
...
In one case, just used glsl_without_array instead of checking if its
an array to decide to use. Using that helper with a non-array type
just returns the type.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Caio Oliveira
55cde229d5
intel/compiler: Use glsl_type C helpers
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26707 >
2023-12-22 06:44:23 -08:00
Yonggang Luo
1e6fcd6a61
dzn: Remove #if D3D12_SDK_VERSION blocks now that 611 is required
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26794 >
2023-12-22 13:35:35 +00:00
Rob Clark
8023ede00a
ci: Remove per-driver wayland-dEQP-EGL xfails
...
Since these are not driver specific and have been added to
all-skips.txt, remove them from per-driver CI expectations.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26779 >
2023-12-22 11:13:23 +00:00
Rob Clark
c2bb95653b
ci: Add wayland-dEQP-EGL.functional.render.* skips
...
These appear to be failing in the same way as the color_clears tests.
Same results on llvmpipe and freedreno (as with the color_clears tests)
so it does not appear to be a driver specific issue.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26779 >
2023-12-22 11:13:23 +00:00
Rob Clark
4261621a7e
ci: List specific color_clears skips
...
No need to throw the baby out with the bathwater.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26779 >
2023-12-22 11:13:23 +00:00
Rob Clark
dbe5b8b5a4
ci: More context for color_clear skips for Wayland
...
Add some more notes, so context isn't lost to time when someone gets
around to digging deeper.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26779 >
2023-12-22 11:13:23 +00:00
Dmitry Baryshkov
f49624fc97
freedreno/drm: fallback to default BO allocation if heap alloc fails
...
Allow fd_bo_heap_alloc() to return NULL if the heap is exausted (or
fragmented) instead of segfaulting. Then handle the error properly in
bo_new().
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26787 >
2023-12-22 10:48:53 +00:00
Tapani Pälli
9e88c711a3
drirc/anv: disable FCV optimization for Baldur's Gate 3
...
Cc: mesa-stable
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/26754 >
2023-12-22 09:47:19 +00:00
Vinson Lee
f5d08bdf4e
etnaviv: Remove duplicate initializers
...
Fix initializer-overrides warnings.
../src/gallium/drivers/etnaviv/etnaviv_compiler.c:62:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
62 | .lower_extract_byte = true,
| ^~~~
../src/gallium/drivers/etnaviv/etnaviv_compiler.c:63:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
63 | .lower_extract_word = true,
| ^~~~
Fixes: 9dc4ee9121 ("etnaviv: lower (un)pack_{2x16,2x32}_split and extract_{byte,word}")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26773 >
2023-12-22 06:22:51 +00:00
Matt Turner
184fc71aa1
iris: Only initialize batch decoder if necessary
...
This avoids a lot of overhead in context creation if some other
`INTEL_DEBUG` flag is set.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10333
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26790 >
2023-12-22 04:40:58 +00:00
Rob Clark
68c53ec2c2
freedreno: Add layout metadata support
...
Add support to use layout metadata to communicate modifier between
exporter and importer. This is required because EXT_external_objects
does not have modifier support, so when importing a memobj we must use
a back-channel to communicate the modifier with the exporter.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25945 >
2023-12-22 04:01:12 +00:00
Rob Clark
32fa9bed12
freedreno/drm: Add BO metadata support
...
This will be used as a back-channel between vk and gallium to
communicate image layout metadata.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25945 >
2023-12-22 04:01:12 +00:00
Rob Clark
b8df7069d3
tu: Add metadata support for dedicated allocations
...
In the case of a dedicated image allocation, stash the layout metadata
on the backing GEM object, so that when imported the metadata can be
retrieved in order to properly interpret the imported memobj.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25945 >
2023-12-22 04:01:12 +00:00
Rob Clark
0105c2e2eb
freedreno/layout: Add layout metadata
...
Add a struct for communicating layout metadata between turnip and
gallium driver. For now, all that is needed is the modifier, but we
can extend it in the future if needed.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25945 >
2023-12-22 04:01:12 +00:00
Rob Clark
96aba6e8e3
drm-uapi: Sync drm-uapi
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25945 >
2023-12-22 04:01:12 +00:00
Matt Turner
f2c97440f2
intel: Only validate inst compaction if debugging a shader stage
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26791 >
2023-12-22 03:16:32 +00:00
David Heidelberg
2309451c4f
ci/google: re-enable farm
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26792 >
2023-12-22 01:36:48 +00:00
Jesse Natalie
555955fc9f
dzn: Fix 3D to 2D image copies
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26795 >
2023-12-22 00:29:22 +00:00
Tapani Pälli
629b15f446
mesa: fix enum support for EXT_clip_cull_distance
...
Extension was enabled but required enums not.
Fixes: 979bcb9f42 ("glsl: add EXT_clip_cull_distance support based on ARB_cull_distance")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26688 >
2023-12-21 21:10:52 +00:00
Eric Engestrom
423f9d1bb0
ci: add nvk to the clang build
...
Would have prevented
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26772
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26781 >
2023-12-21 20:35:53 +00:00
Vignesh Raman
2763655571
ci/freedreno: add FARM variable
...
Add the `FARM: google` variable to the .google-freedreno-test job,
which is extended by devices managed by the Google farm. Add the
`FARM: collabora` variable to sc7180-trogdor-kingoftown,
sc7180-trogdor-lazor-limozeen and sm8350-hdk device types which
are available in Collabora farm.
This commit also adds DEVICE_TYPE variable for the .a306-test,
.a530-test and .a630-test jobs.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25807 >
2023-12-21 19:54:44 +00:00
Vignesh Raman
dc66de3029
ci: bare-metal: cros-servo: Create strutured logs for a630
...
Use the CustomLogger class and CLI tool to create strutured
logs for cros-servo scripts. Below is an example for a630.
{
"_timestamp": "2023-10-18T18:14:16.114117",
"dut_job_type": "sdm845-cheza-r3",
"farm": "google",
"dut_jobs": [
{
"status": "pass",
"submitter_start_time": "2023-10-18T18:14:16.255163",
"dut_start_time": "2023-10-18T18:14:16.328396",
"dut_submit_time": "2023-10-18T18:14:16.330469",
"dut_end_time": "2023-10-18T18:33:47.034774",
"dut_name": "google-freedreno-cheza-18",
"dut_state": "finished",
"dut_job_phases": [
{
"name": "boot",
"start_time": "2023-10-18T18:14:16.329576",
"end_time": "2023-10-18T18:14:24.495826"
},
{
"name": "test",
"start_time": "2023-10-18T18:14:24.495855",
"end_time": "2023-10-18T18:33:47.136979"
}
],
"submitter_end_time": "2023-10-18T18:33:47.207702"
}
],
"job_combined_status": "pass",
"dut_attempt_counter": 1
}
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25807 >
2023-12-21 19:54:44 +00:00
Marek Olšák
dc69d797ba
mesa: enable GL_SELECT and GL_FEEDBACK modes for indirect draws
...
This enables the correct GL_SELECT/GL_FEEDBACK codepaths for indirect
draws.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26786 >
2023-12-21 19:02:28 +00:00
Marek Olšák
1b09fbd9aa
mesa: add a pipe_draw_indirect_info* parameter into the DrawGallium callback
...
We need this to enable GL_SELECT and GL_FEEDBACK modes for indirect draws.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26786 >
2023-12-21 19:02:28 +00:00
Marek Olšák
3ad1c3eb7c
st/mesa: restore pipe_draw_info::mode at the end of st_hw_select_draw_gallium
...
This fixes possible incorrect rendering with lowered multi draws because
the first draw would override the prim type and the next draws would use
the overriden (incorrect) prim type.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26786 >
2023-12-21 19:02:28 +00:00
Marek Olšák
e40f5a7cb3
mesa: micro-improvements in draw.c
...
- use ctx->pipe instead of ctx->st->pipe
- call st_prepare_draw outside the loop
- don't call DrawGallium is draw.count == 0
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26786 >
2023-12-21 19:02:28 +00:00
Marek Olšák
5a4eddc298
glthread: add a missing end-of-batch marker
...
Unmarshal calls that "look ahead" in the batch use it. They expect
the next call ID to be equal to a specific GL call. NUM_DISPATCH_CMD
is not equal to any GL call (it's last_call_id + 1).
This was missed in the referenced commit, causing assertion failures.
Fixes: c3b95d1507 - glthread: add a marker at the end of batches indicating the end
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26786 >
2023-12-21 19:02:28 +00:00
Karol Herbst
9643671dae
rusticl: check rustc version for flags requiring newer rustc/clippy
...
Fixes: 7e74ee07e3 ("rusticl: silence clippy::arc-with-non-send-sync for now")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26780 >
2023-12-21 18:06:26 +00:00
Chia-I Wu
eb5bb5c784
vk/util: ignore unsupported feature structs
...
vk_physical_device_check_device_features should ignore unsupported
feature structs:
Any component of the implementation (the loader, any enabled layers,
and drivers) must skip over, without processing (other than reading
the sType and pNext members) any extending structures in the chain not
defined by core versions or extensions supported by that component.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10177
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26767 >
2023-12-21 17:22:17 +00:00
Marek Olšák
2816db0182
ci: disable the google/freedreno farm because it's down
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26789 >
2023-12-21 17:19:24 +00:00
Jonathan Gray
fbb9ce0140
intel/common: add directory prefix to intel_gem.h include
...
Otherwise common/intel_gem.h may get included instead of
common/i915/intel_gem.h when building in a different directory.
Fixes: e050a00b9f ("intel/common: Move i915 files to i915 folder")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26784 >
2023-12-21 16:37:04 +00:00
Eric Engestrom
91e4428dc4
radv/ci: add flake on raven
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/53017453
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26788 >
2023-12-21 13:26:21 +00:00
Friedrich Vock
b2067001d4
radv/rt: bsearch inlined shaders
...
When there are lots of inlined shaders, going over each one and checking
if the call index matches becomes expensive. Instead, use a
binary-search-like selection to skip most of the checks.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26380 >
2023-12-21 12:39:06 +00:00
Joshua Ashton
6b1fafe716
nvk: Enable KHR_present_id and KHR_present_wait
...
This is needed for DXVK and VKD3D-Proton in order to implement
DXGI frame latency and frame latency waitable objects.
Gamescope also requires this to keep in-step with the host.
Using the same enablement system as RADV, etc to be safe.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26752 >
2023-12-21 05:38:47 +00:00
Joshua Ashton
edb5229538
nvk: Hook up driconf for nvk_instance
...
We will use this in the future to enable present_id + present_wait like
in RADV.
This also enables the common WSI driconf entries for image count, etc
overrides to work by default, fixing some games.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26752 >
2023-12-21 05:38:47 +00:00
Vinson Lee
2464cd81d3
nvk: Fix tautological-overlap-compare warning
...
../src/nouveau/vulkan/nvk_nir_lower_descriptors.c:145:55: warning: overlapping comparisons always evaluate to false [-Wtautological-overlap-compare]
145 | if (desc_type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
146 | desc_type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes: f1c909edd5 ("nvk/nir: Add cbuf analysis to nvi_nir_lower_descriptors()")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26772 >
2023-12-20 21:16:17 +00:00
Roland Scheidegger
e61fae6eb8
lavapipe: bump image alignment up to 64 bytes
...
We can't query the actually required alignment from llvmpipe, but 16
bytes is insufficient. In particular, llvmpipe's pixel backend code for
depth/stencil will load/store 4 values at a time, which crashes
with d32s8x24 format if alignment is only 16 bytes (the color backend
does similar things but will use unaligned loads if alignment exceeds
16 bytes at least for now).
32 bytes would be enough, however the "ordinary" llvmpipe resource
layout code currently always aligns to at least 64 bytes, so use
this value as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26724 >
2023-12-20 16:36:01 +00:00
Timur Kristóf
4d93aac74d
radv: Use correct plane and binding index with SDMA.
...
This lets us support multi-planar images properly on transfer queues.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
ab4720691c
radv: Clean up SDMA chunked copy info struct.
...
Remove redundant fields.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
7fe899a3b6
radv: Use SDMA surface structs for determining unaligned buffer copies.
...
This removes a bunch of redundant calculations, thus making the code
less error-prone.
Also move the row pitch calculation to a separate function.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
dab4863396
radv: Pass radv_sdma_surf from copy functions to SDMA.
...
This makes it possible to gather the surface information
only once and pass it to the various SDMA functions, therefore
the code can be less error-prone.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
85fa749c63
radv: Refactor and simplify SDMA surface info functions.
...
This makes it possible to call the function just once instead
of calling different functions repeatedly.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
a21cba6799
radv: Unify SDMA surface struct for linear and tiled images.
...
Using just one struct for both types of images (and buffers)
will simplify a lot of code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Timur Kristóf
65dfdd3fff
radv: Move SDMA function and struct declarations to a new header.
...
Very few parts of RADV actually need the SDMA functions, so
moving them to a separate header makes the driver cleaner and
also improves compilation time when SDMA functions change.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26353 >
2023-12-20 13:22:26 +00:00
Samuel Pitoiset
2ce0ea8e7c
radv/ci: update CI lists for NAVI10,NAVI31 and RENOIR
...
These dynamic rendering failures/flakes are a known issue that will
be resolved soon as part of VKCTS. Until that, make sure CI is green.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26734 >
2023-12-20 13:06:41 +00:00
Lang Yu
27c46dd207
radeonsi: emit SQ_NON_EVENT for GFX11_5
...
Signed-off-by: Lang Yu <lang.yu@amd.com >
Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:28 +00:00
Pierre-Eric Pelloux-Prayer
981fbafa18
radeonsi: fix extra_md handling with fmask
...
Setting metadata on textures with fmask isn't allowed.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:28 +00:00
Pierre-Eric Pelloux-Prayer
5371fca829
radeonsi/sqtt: handle COMPUTE queues as well
...
Use cs_get_ip_type to support both type of queues instead
of restricting ourselves to GFX.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
2efd1baa64
radeonsi/sqtt: fix capturing RGP on RDNA3 with more than one Shader Engine
...
Based on radv 2cc981a0cd .
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
e0507ec50b
radeonsi/sqtt: fix emitting SQTT userdata when CAM is needed
...
Based on radv 6caae898dd .
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
a2cfd4186f
radeonsi/winsys: add cs_get_ip_type function
...
Will be used in the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
c1f08608b8
radeonsi/sqtt: fix capturing indirect dispatches with SQTT
...
Ported from radv 083e7d3a92 .
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
5139441c96
radeonsi/sqtt: reformat with clang-format
...
To fix the 2-space indentation used in this file.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
af8e6c9347
radeonsi/sqtt: use calloc instead of malloc
...
This makes sure the record is fully initialized and
fixes RGP crashes or missing shaders.
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
b55a2065e0
radeonsi/sqtt: rework pm4.reg_va_low_idx
...
The initial logic was to remember the place were SPI_SHADER_PGM_LO_*
are written, then assume that we can get the register offset because
the sequence would always be:
PKT3_SET_SH_REG
SPI_SHADER_PGM_LO_* register offset
VA low 32 bits value <- reg_va_low_idx
The problem is that this sequence isn't guaranteed, for instance we
can get this instead:
0 c0067600 |
1 00000046 |
2 003ffffd | SPI_SHADER_PGM_RSRC3_VS
3 00000020 | SPI_SHADER_LATE_ALLOC_VS
4 * 00002080 | SPI_SHADER_PGM_LO_VS
5 00000080 | SPI_SHADER_PGM_HI_VS
So the assert in si_state_draw.cpp would fail as well as the VA
update logic.
So instead remember which the SPI_SHADER_PGM_LO_* offset, and the low
32 bits of the VA in si_update_shaders.
Fixes: 8034a71430 ("radeonsi/sqtt: re-export shaders in a single bo")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
e4d537fb84
radeonsi/sqtt: clear record_counts variable
...
This avoids hitting the asserts in ac_sqtt_finish.
Fixes: 94ce6540d8 ("ac/sqtt: add helpers for initializing ac_thread_trace_data")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Pierre-Eric Pelloux-Prayer
77098ec467
radeonsi/sqtt: fix RGP pm4 state emit function
...
It was missing in c3129b2b83 .
Fixes: c3129b2b83 ("radeonsi: add a simple version of si_pm4_emit_state for non-shader states")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774 >
2023-12-20 12:23:27 +00:00
Karol Herbst
63e08bd61d
rusticl/nir: add missing nir include
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26764 >
2023-12-20 11:31:31 +00:00
Karol Herbst
c4d8f257ce
rusticl: fix constant and printf buffer size
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26764 >
2023-12-20 11:31:31 +00:00
Karol Herbst
7e74ee07e3
rusticl: silence clippy::arc-with-non-send-sync for now
...
Allows compilation with newer clippy
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26764 >
2023-12-20 11:31:30 +00:00
Karol Herbst
382718e0e1
rusticl: do not warn on empty RUSTICL_DEBUG or RUSTICL_FEATURES
...
Fixes: b90d1cfbfe ("rusticl/platform: add RUSTICL_FEATURES boilerplate")
Fixes: ca1e9917a9 ("rusticl/program: allow dumping compilation logs through RUSTICL_DEBUG")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26764 >
2023-12-20 11:31:30 +00:00
Karol Herbst
f8afd41667
clc: add workaround for clang always defining __IMAGE_SUPPORT_ and __opencl_c_int64
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26764 >
2023-12-20 11:31:30 +00:00
Bas Nieuwenhuizen
07ad6fd34a
radv: Use correct writemask for cooperative matrix ordering.
...
Not expecting this to actually fix anything externally visible,
but reduces some invalid usage when the resulting vector is
not 16 elements long (e.g. the C/result matrix).
Fixes: 9df4703fbb ("radv: Add cooperative matrix lowering.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26768 >
2023-12-20 11:02:30 +00:00
David Heidelberg
16af090908
ci/lava: separate HW definitions from SW
...
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26722 >
2023-12-20 10:15:44 +00:00
Bas Nieuwenhuizen
d04ee07712
radeonsi: Add support to clear LDS at the end of a shader.
...
No hash updates as I didn't find a facility to do it in radeonsi
(even though there are flags like forcing fma32).
Note that we do this very late to avoid any optimizations that
might remove the dead stores. (Checked that LLVM doesn't remove
them, but it is admittedly potentially brittle)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26679 >
2023-12-20 09:15:45 +00:00
Bas Nieuwenhuizen
eaf61adea5
radv: Add option to clear LDS at the end of a shader.
...
Only shaders which explicitly allow shared memory are included for
now. The pass is very late to avoid optimizations removing the stores
and to ensure the clear gets added after MS outputs get loaded from LDS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26679 >
2023-12-20 09:15:45 +00:00
Bas Nieuwenhuizen
da6a5e1f63
nir: Add pass for clearing memory at the end of a shader.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26679 >
2023-12-20 09:15:45 +00:00
Bas Nieuwenhuizen
bc99b73d70
nir: Add nir_static_workgroup_size helper.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26679 >
2023-12-20 09:15:45 +00:00
Qiang Yu
21d569b081
radeonsi: unify elf and raw shader binary upload
...
RAW shader did not have dma shader upload, this commit share
the pre/post upload code with ELF, so RAW and ELF can have same
upload mechanism.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26750 >
2023-12-20 06:51:07 +00:00
Faith Ekstrand
f11b4d1ebe
nvk: Advertise shaderFloat64
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9661
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
4a4815b855
nak/nir: Lower a bunch of fp64
...
All we have are add, mul, ffma, and comparisons. Everything else has to
be lowered.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
3e042173e4
nir/lower_doubles: Add lowering for fmin/fmax/fsat
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
e1fecd83ed
nak/sm50: Add DMnMx and use it for fp64 fmin/fmax
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
1a7e83c87f
nak/sm50: Properly legalize OpSel and drop an assert
...
While we're here, update sm70 to be a bit more modern.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
7f5c6642d8
nak/sm50: Fix encoding of iadd with imm32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Daniel Almeida
0ac6a81ab5
nak: sm50: fix ineg legalization
...
There is nothing to be done, as we lower this op unconditionally.
We need to add an arm in the match to not panic, though.
Fixes a panic in
dEQP-VK.binding_model.shader_access.primary_cmd_buf.sampler_immutable.vertex_fragment.multiple_contiguous_descriptors.2d
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
73a1acef18
nak/sm50: Fix encoding of f20 immediates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
17d2b2f2cc
nak/sm50: Add encoding and legalization for dadd/dfma/dmul/dsetp
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
1f5623c557
nak: Implement 64-bit nir_op_fsign
...
There is NIR lowering for this but this implementation is more
efficient.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:25 +00:00
Faith Ekstrand
d03cbac05a
nak: Fix encoding of dsetp with RZ on SM70+
...
The `as_reg().is_some()` check returns false when src[1].src_ref is
Zero but we want to handle that as a register case. Replace it with a
match instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26587 >
2023-12-20 02:40:24 +00:00
Timothy Arceri
52dbf44d2e
glsl: add support for inout params to glsl_to_nir()
...
Supporting these means we don't have to depend on calling the GLSL
IR optimisation loop for shaders that contain these parameter types.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26755 >
2023-12-20 01:47:27 +00:00
Timothy Arceri
3d3ba9f428
glsl: move glsl ir lowering out of glsl_to_nir()
...
The main motivation for doing this is that some tests and even the
st tracker linking code dump out the GLSL IR for debugging before
glsl_to_nir() is called expecting it to already be in its final
form. Moving these to the linker makes those assumptions true.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26755 >
2023-12-20 01:47:27 +00:00
Timothy Arceri
bb1873faad
glsl: add additional lower mediump test
...
There were tests for inputs and inout, but no test for out which turned
out to not be behaving correctly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26755 >
2023-12-20 01:47:27 +00:00
Timothy Arceri
d42f9d94af
glsl: copy precision val of function output params
...
We need to copy the precision to our temp values when converting
to nir or this information will be lost. This change fixes the new
test introduced in the following patch.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26755 >
2023-12-20 01:47:27 +00:00
Sil Vilerino
e3c26889ac
d3d12: Report support for PIPE_VIDEO_CAP_ENC_ROI for Delta QP
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26766 >
2023-12-20 00:28:15 +00:00
Sil Vilerino
917044db98
d3d12: Implement Delta QP ROI In h264, hevc and av1 video encode
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26766 >
2023-12-20 00:28:15 +00:00
Timothy Arceri
37e83a93d7
glsl: remove some unused linker code
...
These were missed when removing code in 72ad0db505 .
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26747 >
2023-12-19 23:45:30 +00:00
Timothy Arceri
4584acca6b
glsl: tidy up validation loop in linker
...
There is no need to have a separate loop to determine the first stage in
the shader program. Previously there were other users of this but since
this is the last remain user this patch changes the code to simply detect
the first stage directly.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26747 >
2023-12-19 23:45:30 +00:00
Yonggang Luo
670a799ebf
meson: Support for both packaging and distutils
...
distutils was deprecated and is now gone on modern systems.
so the default behavior is to use the supported thing, which is packaging.version, and when on an old system, fallback to the old distutils.version.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9943
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26746 >
2023-12-19 21:36:58 +00:00
Dave Airlie
b4cde1b2a6
vulkan/video: drop encode beta checks and rename EXT->KHR
...
The latest headers move encode support out of beta, so clean up the tree.
Reviewed-by: Lynne <dev@lynne.ee >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26763 >
2023-12-19 20:48:59 +00:00
Christian Gmeiner
4fdb381d02
mesa: Drop not used program_written_to_cache
...
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26740 >
2023-12-19 19:25:14 +00:00
David Heidelberg
ba0d39fb69
ci: skip EGL functional color_clears tests for Wayland
...
A majority of the tests introduced in CTS 1.3.7.0 are experiencing failures and flakes.
Disable these tests until someone with a more deeper understanding of EGL examines them.
Acked-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26760 >
2023-12-19 18:18:31 +01:00
Samuel Pitoiset
7afd7299bf
vulkan: drop VK_ENABLE_BETA_EXTENSIONS for video encode layouts
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26756 >
2023-12-19 14:44:07 +00:00
Mike Blumenkrantz
49759101a1
vk/cmd_queue: exempt more descriptor functions from autogeneration
...
void* sizeof
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26756 >
2023-12-19 14:44:07 +00:00
Samuel Pitoiset
cfa944635c
vulkan: bump headers/registry to 1.3.274
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26756 >
2023-12-19 14:44:07 +00:00
Jianxun Zhang
1b8a07095d
intel/isl: Add Gfx 12.x RC_CCS_CC into modifier scores
...
Add RC_CCS_CC drm modifiers of TGL, DG2 and MTL into
the list with a higher score than RC_CCS modifiers.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
ed45f95b51
intel/vulkan: Add COMPRESSED_CLEAR state in layout translation
...
The added state is for RC_CCS_CC modifiers that support fast
clear.
Fix:
vkcube: ../src/intel/vulkan/anv_image.c:2686: anv_layout_to_aux_state:
Assertion `!"" "unexpected isl_aux_state"' failed.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
24b4f9c3ba
intel/vulkan: Update comment of a workaround of modifiers
...
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
12f0715787
intel/vulkan: Correct a comment about an offset in fast clear
...
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
9c5a28d919
intel/vulkan: Use the last 2 dwords of clear color struct
...
Refer to the comments added in the code, we now take the
last 2 dwords in the clear color struct to store the fast
clear type and the first compression state.
Suggested by Nanley Chery <nanley.g.chery@intel.com >
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
82f47acb16
intel/vulkan: Remove private binding on fast clear region
...
To support modifiers with fast clear color, the region
should be able to export along with main surface, so we
remove the private binding in such case.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
91a10251b9
intel/vulkan: Import aux state tracking buffer
...
Pass down the offset of aux state tracking buffer
of an imported image from the layout provided from
the application.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
1d5326b30e
intel/vulkan: Specify offset when creating aux state tracker
...
Allow aux state tracking buffer created with different offsets,
in order to support importing images with drm modifiers. We
will always need to calculate the size of an imported fast
clear region because Vulkan spec defines:
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267
For each element of pPlaneLayouts, size must be 0
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
a26d62df6b
intel/vulkan: Allow modifiers supporting fast clear
...
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
ab6f1b1d57
intel/vulkan: Report clear color in subresource layout
...
To support drm modifiers with fast clear features, this
change reports the layout of the region back to application.
Because it tracks all levels and layers in that plane, the
whole region is reported back regardless the level and
layer are being queried.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
f280b6e8d5
intel: Move mod_plane_is_clear_color() into isl
...
We are going to reuse this helper in anv driver and
also rename it.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Jianxun Zhang
3b885926e9
intel/isl: Add a debug option to override modifer list
...
Developers can limit supported modifers to a single
modifier provided in INTEL_MODIFIER_OVERRIDE environment
variable for debug purposes. For example, setting it
makes Vulkan CTS only run modifier tests against the
specified modifier instead of all modifiers in production
code.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Acked-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25651 >
2023-12-19 13:57:16 +00:00
Sviatoslav Peleshko
8f8cde4c60
intel/fs: Don't optimize DW*1 MUL if it stores value to the accumulator
...
Fixes: a8b86459 ("i965/fs: Optimize a * 1.0 -> a.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9570
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25710 >
2023-12-19 13:32:23 +00:00
Sviatoslav Peleshko
a6459e0f7b
nir/loop_analyze: Don't test non-positive iterations count
...
Testing negative iterations count makes no sense, and can cause issues
when the unsigned type is used.
Testing 0 iterations is already covered with
will_break_on_first_iteration, so it can be skipped too.
Fixes: 6772a17a ("nir: Add a loop analysis pass")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9913
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26173 >
2023-12-19 12:53:52 +00:00
David Heidelberg
dd144962c2
ci/broadcom: separate HW definition from SW
...
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26720 >
2023-12-19 12:34:09 +00:00
Juan A. Suarez Romero
ef4f33b661
ci/v3d/vc4: remove explicit modules to load
...
These are now loaded through the initramfs image.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26720 >
2023-12-19 12:34:09 +00:00
José Expósito
d913927fe9
egl/glx: fallback to software when Zink is forced and fails
...
When `MESA_LOADER_DRIVER_OVERRIDE` is set to `zink` and the display
initialization fails, fallback to software rendering.
The error was reported in #10123 and it can be reproduced with:
$ MESA_LOADER_DRIVER_OVERRIDE=zink eglinfo
`eglinfo` would crash in `dri2_display_release()` because of
`assert(dri2_dpy->ref_count > 0)`.
After bisecting the error to commit 8cd44b8843 ("egl/glx: add
autoloading for zink"), I found out that, before this change, the
display was set to initialized even when `_eglDriver.Initialize(disp)`
failed:
disp->Options.Zink = env && !strcmp(env, "zink");
// disp->Options.Zink is true
if (!_eglDriver.Initialize(disp)) {
[...]
// Zink initialization has failed at this point
// However, success is set to true:
bool success = disp->Options.Zink;
if (!disp->Options.Zink && !getenv("GALLIUM_DRIVER")) {
[...]
}
// Software initialization is ignored because success is true
if (!success) {
[...]
}
}
// The display is set as initialized even though it shouldn't
disp->Initialized = EGL_TRUE;
Resolves: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10123
Fixes: 8cd44b8843 ("egl/glx: add autoloading for zink")
Signed-off-by: José Expósito <jexposit@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26184 >
2023-12-19 11:59:49 +00:00
Kenneth Graunke
49b8ccbcdc
intel/fs: Drop opt_register_renaming()
...
In the past, multiple writes to a single register were pretty common,
but since we've transitioned to NIR, and leave the IR in SSA form for
everything not captured in a phi-web, the pattern of generating new
temporary registers at each step is a lot more common.
This pass isn't nearly as useful now. Across fossil-db on Alchemist,
this affects only 0.55% of shaders, which fall into two cases:
- Coarse pixel shading pixel-X/Y setup. There are a few cases where
we write a partial calculation into a register, then have a second
instruction read that as a source and overwrite it as a destination.
While we could use a temporary here, it doesn't actually help with
register pressure at all, since there's the same amount of values
live at both instructions regardless. So while this pass kicks in,
it doesn't do anything useful.
- Geometry shader control data bits (5 shaders total). We track masks
for handling EndPrimitive in a single register across the program,
and apparently in some cases can split the live range. However, it's
a single register...only in geometry shaders...which use EndPrimitive.
None of them appear to be in danger of spilling, either. So this tiny
benefit doesn't seem to justify the cost of running the pass.
So, just throw it out. It's not worth keeping.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26343 >
2023-12-19 11:07:18 +00:00
Kenneth Graunke
866205d4d7
intel/fs: Allow omitting the destination of A64 untyped atomics
...
This works exactly the same as the other atomics and the missing
destination is already handled in lower_logical_sends().
Only affects 2 shaders in fossil-db (in Cyberpunk 2077), but the
cycle count drops by 4.23%. Nice to have in place at any rate.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26343 >
2023-12-19 11:07:18 +00:00
Vignesh Raman
2487e18d4e
ci: bare-metal: poe: Create strutured logs
...
Use the CustomLogger class and CLI tool to create strutured logs
for poe scripts which are used by broadcom and nouveau jobs.
Renamed stage lint to code-validation and added python-test job
which runs the tests for structured and customer logger to ci.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25179 >
2023-12-19 10:09:35 +00:00
Vignesh Raman
2a530cb188
ci: copy logging script to install
...
Copy structured_logger.py and custom_logger.py to install,
so that the ci jobs can use these scripts for logging.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25179 >
2023-12-19 10:09:35 +00:00
Vignesh Raman
aa0c4078de
ci: Add CustomLogger class and CLI tool
...
This commit introduces the CustomLogger class, which provides methods
for updating, creating, and managing dut jobs and phases in a structured
log in below json format.
{
"_timestamp": "2023-10-05T06:16:42.603921",
"dut_job_type": "rpi3",
"farm": "igalia",
"dut_jobs": [
{
"status": "pass",
"submitter_start_time": "2023-10-05T06:16:42.745862",
"dut_start_time": "2023-10-05T06:16:42.819964",
"dut_submit_time": "2023-10-05T06:16:45.866096",
"dut_end_time": "2023-10-05T06:24:13.533394",
"dut_name": "igalia-ci01-rpi3-1gb",
"dut_state": "finished",
"dut_job_phases": [
{
"name": "boot",
"start_time": "2023-10-05T06:16:45.865863",
"end_time": "2023-10-05T06:17:14.801002"
},
{
"name": "test",
"start_time": "2023-10-05T06:17:14.801009",
"end_time": "2023-10-05T06:24:13.610296"
}
],
"submitter_end_time": "2023-10-05T06:24:13.680729"
}
],
"job_combined_status": "pass",
"dut_attempt_counter": 1
}
This class uses the existing StructuredLogger module,
which provides a robust and flexible logging utility supporting multiple
formats. It also includes a command-line tool for updating, creating,
and modifying dut jobs and phases through command-line arguments.
This can be used in ci job scripts to update information in structured logs.
Unit tests also have been added for the new class.
Currently, only LAVA jobs create structured log files, and this will be
extended for other jobs using this tool.
Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25179 >
2023-12-19 10:09:35 +00:00
Samuel Pitoiset
b5153693cc
radv: move image view related code to radv_image_view.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
1db86d93f2
radv: move buffer view related code to radv_buffer_view.c
...
More code isolation.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
02282fe482
radv: move SI_GS_PER_ES to radv_constants.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
d057cfc8f6
radv: move more shader related declarations to radv_shader.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
0481723cf0
radv: move radv_depth_clamp_mode to radv_cmd_buffer.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:35 +00:00
Samuel Pitoiset
c0d7ef1e58
radv: move more descriptor related declarations to radv_descriptor_set.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
a080390c3c
radv: move radv_image_is_renderable() to radv_image.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
8a5106f91a
radv: move RADV_HASH_SHADER_xxx flags to radv_pipeline.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
9d15390635
radv: move meta declarations to radv_meta.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Samuel Pitoiset
939936a328
radv: remove radv_get_tess_output_topology() declaration
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26713 >
2023-12-19 09:48:34 +00:00
Jesse Natalie
51bf1b26d0
libgl-gdi: Update wgl test to set debug flags needed for tests
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26744 >
2023-12-18 23:49:28 +00:00
Jesse Natalie
8c88cc8630
libgl-gdi: Update wgl test to use a 32bit framebuffer
...
Otherwise, the d3d12 driver doesn't use a DXGI swapchain
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26744 >
2023-12-18 23:49:28 +00:00
Jesse Natalie
325fb6e26b
d3d12: Only destroy the winsys during screen destruction, not reset
...
Fixes: 81c8e89f ("d3d12: Fix screen->winsys leak in d3d12_screen")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26744 >
2023-12-18 23:49:28 +00:00
Jesse Natalie
ff9868c569
d3d12: Add a debug flag to opt out of singleton behavior
...
For testing, it can be useful to observe behaviors on the singleton
device by just having the test also just use D3D12CreateDevice
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26744 >
2023-12-18 23:49:28 +00:00
Jesse Natalie
bed69133cd
util: Re-implement getenv for Windows
...
On Windows, the C runtime maintains an environment variable cache for
getenv. But apps and drivers are free to statically link the C runtime,
so you might get different environment variable caches between components.
Specifically, a test trying to putenv to update the environment won't have
its update reflected by the driver if the CRT is statically linked, unless
we go to the Win32 API directly.
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26744 >
2023-12-18 23:49:28 +00:00
Yonggang Luo
a0b7ae859f
osmesa: Fixes building osmesa.c on windows
...
Fixes: 5bf68ab701 ("osmesa: Make osmesa.h compatible with Windows SDK's GL.h")
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Ack-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26674 >
2023-12-18 23:35:17 +00:00
Erico Nunes
601b826a5e
ci: lima farm is down
...
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26748 >
2023-12-18 23:32:07 +00:00
Ruijing Dong
8bcf33cdc1
radeonsi/vcn: ROI capability value initialization.
...
It needs to initialize the cap value to
avoid causing confusion.
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26741 >
2023-12-18 23:07:25 +00:00
David Heidelberg
148230db05
ci/freedreno: downgrade whole Adreno 6xx series, incl. zink-a618 jobs
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26745 >
2023-12-18 21:32:48 +01:00
Konstantin Seurer
662f86c533
radv/bvh: Stop emitting leaf nodes inside the encoder
...
Avoids unnecessary copies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Konstantin Seurer
8fca54a754
radv: Add more offsets acceleration_structure_layout
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Faith Ekstrand
a2a0cef9f4
meson: Update our rust dependencies
...
These are the package versions currently shipped by Fedora. This allows
using system packages by setting
export MESON_PACKAGE_CACHE_DIR=/usr/share/cargo/registry/
Of course, other distros may place it somewhere else.
Ubuntu matches versions on syn and unicode-ident but is a tiny bit off
on quote and proc-macro2. However, given how far I was able to bump the
versions with only a tiny meson tweak to syn, I think it should work
with the Ubuntu versions as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26726 >
2023-12-18 18:33:53 +00:00
Michel Dänzer
f0594915e6
glx: Handle IGNORE_GLX_SWAP_METHOD_OML regardless of GLX_USE_APPLEGL
...
Avoids tons of
WARNING: unknown fbconfig attribute from server: tag 0x8060 value 0x8063
messages with LIBGL_DEBUG=verbose.
Fixes: e64ab3e4a9 ("glx: Delete support for GLX_OML_swap_method.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26685 >
2023-12-18 17:52:09 +00:00
Michel Dänzer
9548f969bd
gallium/dri: Return __DRI_ATTRIB_SWAP_UNDEFINED for _SWAP_METHOD
...
In contrast to __DRI_ATTRIB_SWAP_EXCHANGE, this is compatible with Mesa
< 23.3 on the client side.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10080
Fixes: e64ab3e4a9 ("glx: Delete support for GLX_OML_swap_method.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26685 >
2023-12-18 17:52:09 +00:00
Faith Ekstrand
290d958c63
nak/nir: Set nir_lower_io_lower_64bit_to_32 for varyings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:29 +00:00
Faith Ekstrand
a9fb7b0280
nak: Implement b2f64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:29 +00:00
Faith Ekstrand
26d649f120
nak: Fix nir_op_f2f64
...
We were only allocating one register
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:29 +00:00
Faith Ekstrand
7ced1d3648
nak: Wire up 64-bit nir_op_fadd/ffma/fmul and comparisons
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
995eea8d04
nak: Split fmul/ffma handling from fmulz/ffmaz
...
They're enough of a special case that things are going to get confusing
when we start adding bit sizes to fmul/ffma. Let's make them a special
case so they can assert all their things.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
1236c5d4f1
nak: Add the rest of the double-precision ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
2f899f44eb
nak: Rework encoding of ALU instructions on SM70+
...
The main change here is that we match on src2 first and then src1. This
lets make some of the src2 code common because src2 never moves around
if it's a register. This change also has another subtle effect: None
sources now work everywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
c53f562d1a
nak: OpDAdd doesn't have saturate
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
ada338bfcc
nak/sm70: Allow src2 of 3src ops to be an immediate
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
8b2232906e
nak: Pass SrcTypes around instead of RegFile in legalize
...
We need to be able to tell the difference between `F64` and other GPR
source types. In order for this to work, we also have to tighten up
some of the requirements round GPR and SSA sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
d24eb539c5
nak: Make OpAtom::cmpr a GPR source
...
We set it to Zero for atomics other than CmpExch.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
3b6e6e985e
nak: Copy propagate and constant fold OpPrmt
...
This comes up fairly frequently in int64 and fp64 use-cases. In
particular, we see a lot of `prmt rZ 0x4444 rZ` which is just zero.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
9ad5b544d8
nak: Fix copy-prop for fp64
...
For propagating OpDAdd, we need to check for negative zero because
negative zero is the no-op, not add with zero. We were also propagating
the upper and lower halves of fp64 sources wrong. While we're here, use
`let ... else` instead of an `if let` pattern a couple places.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Faith Ekstrand
d41b0a2bf5
nak: Move the copy detection part of opt_copy_prop to a helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26743 >
2023-12-18 17:35:28 +00:00
Connor Abbott
0b2e48f432
freedreno/afuc: Fix gen autodetection for a7xx
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
ae9604c29e
freedreno/afuc: README updates for a7xx
...
Mention the introduction of LPAC/BR/BV, and explain the shared control
reg space.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
5ca347e727
freedreno: Update more control/pipe registers for a7xx
...
Copy over control registers that are mostly the same from a6xx and add a
definition of the EVENT_CMD pipe register, which is updated for a7xx
events.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
d01be55340
freedreno/afuc: Decode (sdsN) modifier
...
This removes the last unknown flag from read/write instructions.
Because we now handle the write in CP_SET_DRAW_STATE more correctly when
emulating, we also have to update the control register definitions and
draw state emulation code to adjust.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
55985b7301
freedreno/afuc: Add syntax for pre-increment addressing
...
This is inspired by the ARM syntax.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
579227e028
freedreno/afuc: Use SQE registers for call stack
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
da3cf26564
freedreno/afuc: Add separate "SQE registers"
...
It seems like starting with a6xx, the SQE has a special register space
for reading/writing the state of the processor itself, mainly used for
saving/restoring its state in preemption. Add support for disassembling
it, removing one of the unknown flags bits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Connor Abbott
7c919f0406
freedreno/afuc: Handle store instruction on a5xx
...
Turns out a5xx already had store, although not load. It was using the
high bit of the unknown flags for this.
Note that a6xx does use the high bit, and we fall back to not decoding
it at all here before properly decoding it in the next commit. Splitting
up the commits seems worth this small breakage.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691 >
2023-12-18 17:01:35 +00:00
Dudemanguy
cef345129f
vulkan/wsi/wayland: fix wl_event_queue memory leak
...
When creating the swapchain, this queue is created, but it was never
freed in wsi_wl_swapchain_free along with the rest of the resources.
Signed-off-by: Dudemanguy <random342@airmail.cc >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26052 >
2023-12-18 16:28:53 +00:00
Jordan Justen
30faa7a483
anv, iris, intel/genxml: Update 3DSTATE_HS for xe2
...
Update 3DSTATE_HS programming for xe2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:31 +00:00
Jordan Justen
8ba9988858
anv, iris, intel/genxml: Update 3DSTATE_GS for xe2
...
Update 3DSTATE_GS programming for xe2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:31 +00:00
Jordan Justen
1bc7c966f4
intel/batch_decoder: Update 3DSTATE_PS decoding for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:31 +00:00
Jordan Justen
a659b1f0c0
anv, blorp, iris, intel/genxml: Update 3DSTATE_PS_EXTRA for xe2
...
Update 3DSTATE_PS_EXTRA programming for xe2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:31 +00:00
Jordan Justen
5548e6a478
anv, blorp, iris, intel/genxml: Update 3DSTATE_VS for xe2
...
Update 3DSTATE_VS programming for xe2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:31 +00:00
Jordan Justen
f170995e66
anv, blorp, iris: Update 3DSTATE_PS programming for xe2
...
Rework:
* Jordan: Move code into intel_update_ps_state()
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Zhang, Jianxun
80d9294d2d
intel/isl: update 3DSTATE_STENCIL_BUFFER (xe2)
...
Update xml file and adjust driver code to compile.
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Zhang, Jianxun
2a49a598ce
intel/genxml: update 3DSTATE_DEPTH_BUFFER instruction (xe2)
...
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Jordan Justen
99eadc2ecb
intel/genxml: Add UNIFIED_COMPRESSION_FORMAT enum for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Zhang, Jianxun
2c41811808
intel/genxml: update 3DSTATE_WM_HZ_OP instruction (xe2)
...
The depth clear value is provided from 3DSTATE_WM_HZ_OP now.
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Zhang, Jianxun
5d4a995294
intel/genxml: Remove 3DSTATE_CLEAR_PARAMS instruction (xe2)
...
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Rohan Garg
9512f61cd8
iris,isl: Adjust driver for several commands of clear color (xe2)
...
The xe2 xml will be updated in following commits. Commit message
has been updated by Jianxun.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600 >
2023-12-18 15:41:30 +00:00
Job Noorman
2d273c520c
ir3: lower 64b registers before creating preamble
...
ir3_nir_lower_preamble cannot handle 64b @load/store_preamble so we have
to make sure ir3_nir_opt_preamble will never produce them. Up to now,
nir_lower_locals_to_regs was run after preamble lowering so 64b locals
could still be around when lowering the preamble. This patch moves
running this pass, as well as ir3_nir_lower_64b_regs, to before the
preamble lowering.
Fixed Piglit tests:
- spec@arb_gpu_shader_fp64@execution@fs-indirect-temp-double-dst
- spec@arb_gpu_shader_fp64@execution@built-in-functions@fs-frexp-dvec4-variable-index
This patch has no impact on shader-db.
Note: a few cleanup passes used to be run after nir_lower_locals_to_regs
(nir_opt_algebraic, nir_opt_constant_folding) and after
ir3_nir_lower_64b_regs (nir_lower_alu_to_scalar, nir_copy_prop). As far
as I can tell, these are not necessary anymore when running the register
lowering earlier so this patch removes them.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26737 >
2023-12-18 14:52:02 +00:00
Job Noorman
6cad2fc230
nir: add helper to create cursor after all @decl_regs
...
@decl_reg intrinsics must be in the first block so it's convenient to be
able to create an insertion point after all @decl_regs when the first
block needs to be split.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26737 >
2023-12-18 14:52:02 +00:00
Tatsuyuki Ishi
533ec9843e
radv: Precompute shader max_waves.
...
Doing it at bind-time causes a 1.4% overhead (among all driver calls) in
Overwatch 2. !24502 mentions that it can be precomputed in case overhead
is a concern, so do it here.
max_waves is stored directly in the radv_shader struct, because
ac_shader_config conforms to LLVM ABI and we cannot add anything custom,
and radv_shader_info needs to be determined from NIR only.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:25 +00:00
Tatsuyuki Ishi
1161f22c27
radv: Move up radv_get_max_waves, radv_get_max_scratch_waves.
...
To avoid forward declaration.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:25 +00:00
Tatsuyuki Ishi
e444908d65
radv: Simplify shader config assignment.
...
We don't hash this struct so direct assignment here is OK.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26692 >
2023-12-18 14:31:24 +00:00
Samuel Pitoiset
4353b0ad72
radv: move emitting the fb mip tail workaround when rendering begins
...
It doesn't have to be emitted in the draw path.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Samuel Pitoiset
7dd7e551b1
radv: stop checking FMASK for the fb mip tail workaround
...
Vulkan doesn't allow mipmaps with MSAA images, so checking for FMASK
shouldn't have any effect.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Samuel Pitoiset
57efe44f43
radv: add missing HTILE support for fb mip tail workaround
...
PAL also applies to depth/stencil images with HTILE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26589 >
2023-12-18 13:06:29 +00:00
Tapani Pälli
82553774e2
iris: use intel_needs_workaround with 14015055625
...
This was missing from the FS stage primitive-id check. Also add usage
of macro to avoid running any extra code on platforms where this WA
would not apply.
Fixes: 0f14724039 ("iris: Implement Wa_14015297576")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26709 >
2023-12-18 11:14:11 +00:00
Martin Roukala (né Peres)
240d11eb8d
Revert "ci: disable the valve-kws farm until it can be rebooted"
...
This reverts commit 299cd1af82 as I
managed to reboot it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26733 >
2023-12-18 07:53:42 +00:00
Dave Airlie
f76f4be301
intel/compiler: move gen5 final pass to actually be final pass
...
This got broken by the register conversion, this pass needs to be
after all the others.
Fixes: ce75c3c3fe ("intel: Switch to intrinsic-based registers")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26731 >
2023-12-18 07:24:37 +00:00
Martin Roukala (né Peres)
299cd1af82
ci: disable the valve-kws farm until it can be rebooted
...
We are having some issues related to serial consoles and I can't seem
to connect to the VPN to reboot the gateway.
So let's disable the farm until I get to it.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26730 >
2023-12-18 08:27:54 +02:00
Eric Engestrom
377c6b2d45
ci/build: drop redundant meson/build.sh from jobs that already inherit from .meson-build
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26714 >
2023-12-17 17:03:08 +00:00
Yiwei Zhang
ddf2ca4faf
vulkan/wsi/wayland: ensure drm modifiers stored in chain are immutable
...
Chain stored modifiers point to the mapping of the current feedback
shmem of the surface. The surface tracked feedback mapping will be gone
and replaced with new mapping during surface_dmabuf_feedback_done. There
are two issues here:
1. One issue is that the existing mapping is closed before been used to
compare against new modifiers in sets_of_modifiers_are_the_same.
2. The other issue is that when the chain is still optimal, the chain
persists while the mapping is still replaced with the one from the
new format table shmem.
This change makes a deep copy of the modifiers to store in the chain to
ensure the modifiers used for the current chain are immutable through
the chain lifecycle.
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26618 >
2023-12-16 18:26:38 +00:00
David Heidelberg
33e8f22d84
ci/austriancoder: separate HW definition from SW
...
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26721 >
2023-12-16 16:03:08 +01:00
Christian Gmeiner
64caf90632
etnaviv: disassembler: Switch to isaspec
...
Use the power of isaspec for our integrated disassembler.
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/20144 >
2023-12-16 14:34:18 +00:00
Christian Gmeiner
fa0ff0849c
etnaviv: Add isaspec support
...
This commit adds etnaviv.xml which describes the used ISA. Quite some
time was spend to to get it into that shape by creating a big collection
of shader asm generated by the binary blob. These shaders are used as basis
for test driven development for this ISA specification.
The xml has some black spots but the internal disasm is used by
developers so that should be no problem. Some refinement will happen
during normal development.
This commit adds only disasm support.
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/20144 >
2023-12-16 14:34:18 +00:00
Christian Gmeiner
a8a33ac5ae
isaspec: Add bool_inv type to print inverted bools
...
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/20144 >
2023-12-16 14:34:18 +00:00
M Henning
586c34b19c
nak: Optimize jumps to fall-through if possible
...
This saves 15 instructions on the compute shader in Sascha Willems'
computecloth example.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26473 >
2023-12-16 06:10:23 +00:00
M Henning
b2420fae4b
nak: Add a jump threading pass
...
This saves 16 instructions on the compute shader in Sascha Willems'
computecloth example.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26473 >
2023-12-16 06:10:23 +00:00
M Henning
786bf749bc
nak: Print out an instruction count
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26473 >
2023-12-16 06:10:23 +00:00
George Ouzounoudis
55c8f5e288
nvk: Support extended dynamic state for tessellation domain origin
...
The tessellation domain origin, type, prims and spacing are all pushed
together in SET_TESSELLATION_PARAMETERS. So to support domain origin as
dynamic we need to push all these together when the state is dynamically
changed or when a new tessellation shader is bound.
This is also needed for EXT_shader_object.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
George Ouzounoudis
1319cfb40d
nvk: Remove pipeline state setting functions
...
We do not need these functions for graphics pipelines anymore as all the
required state is now dynamic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
George Ouzounoudis
453c50bef9
nvk: Support extended dynamic state for rasterization stream
...
This is needed for EXT_shader_object. Move to dynamic state.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
George Ouzounoudis
d8945dd51e
vulkan: Fix dynamic graphics state enum usage
...
Simply replace the correct rasterization stream enum
Fixes: 9d0ed9cbcc ("vulkan: Add more dynamic rasterizer state")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
George Ouzounoudis
8b178f9ce4
nvk: Support extended dynamic state for alpha to coverage/one
...
This is needed for EXT_shader_object. Move to dynamic state.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
Faith Ekstrand
b42fae61bb
nvk: Support extendedDynamicState3ColorWriteMask
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:50 -06:00
George Ouzounoudis
c7135e94cb
nvk: Support extendedDynamicState3SampleMask
...
This is needed for EXT_shader_object. Move to dynamic state.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:33 -06:00
George Ouzounoudis
88e661db99
nvk: Support extendedDynamicState3ColorBlendEquation
...
This is needed for EXT_shader_object. Move state to dynamic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:33 -06:00
George Ouzounoudis
e27b4855f7
nvk: Support extendedDynamicState3ColorBlendEnable
...
This is needed for EXT_shader_object. Move state to dynamic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:33 -06:00
Faith Ekstrand
b24cbb0b29
nvk: Use render->color_att_count for color write enables
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:26:07 -06:00
George Ouzounoudis
4325efd2cf
nvk: Move SET_BLEND_STATE_PER_TARGET to graphics state initialization
...
We never change this state so it needs to be set only once at state init.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 18:02:19 -06:00
Faith Ekstrand
5d937f09b2
nvk: Advertise VK_KHR_vulkan_memory_model
...
Now that the NAK barrier bugs seem fixed and we're passing all the
tests, we can turn this on.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9608
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26716 >
2023-12-15 22:38:45 +00:00
Faith Ekstrand
629bef2a4c
nak: Handle minimum execution latencies in the dep tracker
...
Some instructions have a minimum latency before another instruction can
execute. It's a little unclear exactly what the details on these are.
For things like OpBar it's probably something to do with when stuff
actually convergres. For MemBar, maybe we only need to wait before we
do something that also touches memory? Unclear and the few docs seem to
imply that it's a straight-up stall. For now, we model it as an
execution latency where nothing is allowed to happen until then.
The blob also inserts a NOP with a delay of 2 in these cases. It's not
entirely clear why but it's probably best we do the same. Theses
instructions tend to be pretty heavy-weight anyway so 2 cycles isn't
really going to cost much compared to the chances that we're missing
some subtle HW issues somewhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26716 >
2023-12-15 22:38:45 +00:00
Faith Ekstrand
26c2566606
nak: Plumb shader model into instruction latency queries
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26716 >
2023-12-15 22:38:45 +00:00
Faith Ekstrand
8c1daae469
nak: Switch to //-style comments
...
Some time ago I dropped the C-style `/* */` for `//` which seems to be
more idiomatic in Rust. Let's get rid of the rest of the C-style ones
and make the codebase consistent.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26716 >
2023-12-15 22:38:45 +00:00
Nanley Chery
45d7764a06
iris: Don't memset the clear color BO during aux init
...
The clear color BO is sometimes getting unnecessarily zeroed. For
example, if the resource will be fast-cleared, the app may pick a
non-zero color, causing the initial memset to be unneeded. So, skip the
memset and mark the clear color as unknown if it has not been freshly
allocated. For now, we leave the memsets on imported dmabufs alone for
simplicity.
On non-small BAR ACM systems, this also allows internal resources using
compression to be created without executing an IOCTL for memory mapping.
Reviewed-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/26675 >
2023-12-15 21:58:16 +00:00
Nanley Chery
68d56b15d7
iris: Zero the clear color before FCV_CCS_E rendering
...
On small-BAR ACM systems, we don't initialize the clear color at
resource creation time. This could cause an issue with FCV_CCS_E.
Because the rendering and sampling fields may not be in agreement, FCV
may generate fast-cleared blocks during rendering and the sampler may
interpret them with the wrong values.
Thankfully, the register bit which enables FCV on ACM is disabled by
default, so there is not an actually issue today. Regardless, this patch
implements the fix for this issue now. The next patch will actually skip
explicit clear color initialization at resource creation time. So, this
fix will be useful for other systems that do have FCV enabled today.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26675 >
2023-12-15 21:58:16 +00:00
Nanley Chery
6064de1d53
iris: Optimize BO_ALLOC_ZEROED for suballocations
...
Fresh suballocations from fresh allocations have already been zeroed by
the kernel. So, make BO_ALLOC_ZEROED a no-op for them.
This introduces a new field, iris_bo::zeroed, which will be reused for
similar optimizations in the future.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26675 >
2023-12-15 21:58:16 +00:00
José Roberto de Souza
ba6faeb974
anv: Remove libdrm usage from Xe KMD backend
...
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26699 >
2023-12-15 20:40:49 +00:00
José Roberto de Souza
dea6c82437
intel: Sync xe_drm.h final part
...
Sync xe_drm.h with commit a8ff56e160bb ("drm/xe/uapi: Remove reset uevent for now").
This is the last xe_drm.h uAPI break.
The only relevant change for ANV and Iris is that now VM bind uAPI
is asynchronous only so I had to bring back the syncobj creation, wait
and destruction.
Is still in the Xe port TODO list to make VM binds truly asynchronous.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26699 >
2023-12-15 20:40:49 +00:00
Sagar Ghuge
2ac78b5096
anv: Enable blitter engine unconditionally on ACM+
...
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/26703 >
2023-12-15 20:10:53 +00:00
Eric Engestrom
8043e8c4a6
vulkan/wsi: fix build when platform headers are installed in non-standard locations
...
Anything that uses the platform defines in `vulkan_wsi_list` will need
to be able to resole the includes they trigger, which are provided by
`vulkan_wsi_deps`.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10304
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26715 >
2023-12-15 18:35:54 +00:00
Friedrich Vock
f9a394b753
radv/rt: Initialize unused children in PLOC early-exit
...
Bad things happen when these aren't initialized.
Fixes GPU hangs when loading Avatar: Frontiers of Pandora savegames.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26712 >
2023-12-15 17:52:00 +00:00
Job Noorman
286caa5080
ir3: lower 64b registers
...
After all int64/double lowerings, there might still be 64b registers
left which ir3 currently doesn't handle. This only happens in a small
number of Piglit tests where those registers (or the variables they come
from) did not get DCE'd.
This patch handles 64b registers in ir3 by adding a NIR pass that does
the following:
- @decl_reg -> split in two 32b ones
- @store_reg -> unpack_64_2x32_split_x/y and two separate stores
- @load_reg -> two separate loads and pack_64_2x32_split
After this pass, the 64b vecs used for the original loads/stores are
still present and are also not handled yet by ir3. This patch removes
them by running nir_lower_alu_to_scalar and nir_copy_prop.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26175 >
2023-12-15 17:19:28 +00:00
Job Noorman
6e7a61df4c
nir: add _safe variants of nir_foreach_reg_load/store
...
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26175 >
2023-12-15 17:19:28 +00:00
Iago Toral Quiroga
5057eb90a1
v3dv: implement VK_KHR_shader_terminate_invocation
...
The semantics for this matches those of discard.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26683 >
2023-12-15 16:35:50 +00:00
Iago Toral Quiroga
d0f75fdeab
broadcom: lower null pointers
...
We only support the variablePointersStorageBuffer feature of variable pointers,
which basically ensures that pointers may only target one buffer. This means
that a particular pointer may change where it points within a given buffer but
it cannot change its value to point to some other buffer. This is a requirement
from us since we expect buffer indices on buffer loads and stores to be
constant, so we can't have a buffer load come through a pointer that may
be assigned to different buffers, since in that case the buffer index
would need to come from bcsel.
There is, however, a small complication: the spec still allows pointers to
be null, and NIR defines null pointers to use 0xffffffff for both the buffer
index and the offset, which will cause a problem in a scenario like this:
int *b = ...
if (cond) {
b = null;
discard;
}
ubo_load(b);
Here the buffer index for the ubo load may come from a bcsel choosing between
the null pointer (0xffffffff) and the valid address (let's say 0), so we don't
have a constant and we assert fail.
This change detects this scenario and upon finding it will rewrite the buffer
index on the null pointer branch of the bcsel to match that of the valid
branch so that later optimizations passes can remove the bcsel and we end up
with a constant index. This is fine because a null pointer dereference is
undefined behavior and it is not something we should see in valid applications.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26683 >
2023-12-15 16:35:50 +00:00
Iago Toral Quiroga
716847a77d
broadcom: disable perquad tmu loads after discards
...
Otherwise we may emit a load from an invalid offset from
a lane that was discarded.
This fixes an simulator assert from triggering when
executing:
dEQP-VK.spirv_assembly.instruction.terminate_invocation.terminate.no_null_pointer_load
That test emits a conditional kill and then a buffer load
which would have invalid offsets for the lines killed. Since
the buffer load is in uniform control flow we were incorrectly
emitting a full quad load, including disabled lanes which would
prompt the simulator to assert on invalid offsets being loaded
coming from the lanes that had been killed in the shader.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26683 >
2023-12-15 16:35:50 +00:00
Sil Vilerino
2b04fb410f
d3d12: Fix warning C4065 switch statement contains default but no case labels
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26710 >
2023-12-15 16:17:50 +00:00
Ruijing Dong
8bbdde2d9a
radeonsi/vcn: enable ROI feature in vcn.
...
Enable ROI feature.
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26659 >
2023-12-15 14:06:34 +00:00
Ruijing Dong
9c07a2e10d
radeonsi/vcn: ROI feature implementation
...
Implemented ROI feature in VCN generations.
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26659 >
2023-12-15 14:06:34 +00:00
Ruijing Dong
d6da63071e
frontends/va: add ROI feature
...
ROI (region of interest) feature implementation
in va.
It does not support ROI priority, and supports
qp delta, and the maximum number of supported
region is defined as 32, the region sequence implies
the priority, the lower the sequence number, the higher
the region priority, when region overlapping happened,
the higher priority region overwrites the lower
priority one.
And specifically for AV1, the adjust step will be
rounded by 5 when rate control is used, for example,
if qp_delta (q index) is 6, it will use 5, if
qp_delta is 8, it will use 10.
For AVC/HEVC (RC/CQP) and AV1 CQP mode, the
qp_delta granularity is 1.
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26659 >
2023-12-15 14:06:34 +00:00
Ruijing Dong
434a53ebbe
radesonsi/vcn add qp_map definition
...
This is for enabling ROI (region of interest)
feature in VAAPI interface. It will support
both CQP and rate control mode.
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26659 >
2023-12-15 14:06:34 +00:00
Eric Engestrom
05fb2e21f9
docs: document how to build the docs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26701 >
2023-12-15 13:33:45 +00:00
Boris Brezillon
0463a951ad
panfrost: Flag BO shareable when appropriate
...
Let the kmod backend know when we might end up exporting a BO. This
doesn't change anything for the Panfrost kmod backend, but will be
needed for Panthor.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
30d6dfb861
panvk: Pass PAN_BO_SHAREABLE when relevant
...
Check VkExportMemoryAllocateInfo to know if we might export the BO
object at some point.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
aa6176ee1e
panfrost: Introduce a PAN_BO_SHAREABLE flag
...
This flag reflects the ability to share a BO. This lets the kmod
backend optimize the case where the BO stays private to a specific
VM.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
5089a758df
panfrost: Back panfrost_bo with pan_kmod_bo object
...
We keep the existing implementation unchanged but use pan_kmod for
all interactions with the kernel driver.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
7a9c471009
panfrost: Add a VM to panfrost_device
...
The current code assumes the logical device comes with a VM, so let's
explicitly create this default VM so we can map BOs with the kmod API.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
91fe8a0d28
panfrost: Back panfrost_device with pan_kmod_dev object
...
Back panfrost_device with pan_kmod_dev object and query all props using
the pan_kmod_dev_query_props().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
70bcdbee6c
panfrost: Avoid direct accesses to some panfrost_bo fields
...
We are about to delegate some BO-related operations to the pan_kmod
layer, but before we can do that, we need to hide panfrost_bo
internals so we can redirect such accesses to pan_kmod.
Provide panfrost_bo_{size,handle}() accessors and start using them.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
d47e01a3c3
panfrost: Avoid direct accesses to some panfrost_device fields
...
We are about to delegate some device-related operations to the pan_kmod
layer, but before we can do that, we need to hide panfrost_device
internals so we can redirect such accesses to pan_kmod.
Provide a few panfrost_device_xxx() accessors and start using them.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
93178999f6
pan/kmod: Add a backend for the panfrost kernel driver
...
Just a few implementation details that are worth mentioning:
- Panfrost doesn't support explicit VM management. This means
panfrost_kmod_vm_create() must always be created with
PAN_KMOD_VM_FLAG_AUTO_VA and panfrost_kmod_vm_bind(op=map) must
always be passed PAN_KMOD_VM_MAP_AUTO_VA. The actual VA is assigned
at BO creation time, and returned through
drm_panfrost_create_bo.offset, or can be queried through
DRM_IOCTL_PANFROST_GET_BO_OFFSET for imported BOs.
- Evictability is hooked up to DRM_IOCTL_PANFROST_MADVISE.
- BO wait is natively supported through DRM_IOCTL_PANFROST_WAIT_BO.
The rest is just a straightforward translation between the kmod API and
the existing panfrost ioctls.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
d95ec56f8c
panfrost: Abstract kernel driver operations
...
We have generic BO management and device management layers that
directly call kernel driver-specific ioctls. The introduction of
Panthor (the new kernel driver supporting CSF hardware) forces us to
abstract some low-level operations. This could be done directly in
pan_{bo,device,props}.{c,h}, but having the abstraction clearly defined
and separated from the rest of the code makes for a cleaner
implementation.
This is also a good way to get a low-level KMD abstraction that
we can use without pulling all sort of gallium-related details in,
which will be important for some refactoring we plan to do in panvk.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Samuel Pitoiset
768c737273
radv: remove some declared but unused functions/macros
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26682 >
2023-12-15 08:40:24 +00:00
Samuel Pitoiset
2f79ed1831
radv: stop asserting some image create info fields
...
Vulkan Validation Layers already check that and these assertions never
caught anything.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26682 >
2023-12-15 08:40:23 +00:00
Colin Marc
a26119e124
vulkan video: correctly set SPS VUI bits
...
According to the spec section E.1 flags such as overscan_info_present_flag are
independent of aspect_ratio_info_present_flag.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26669 >
2023-12-15 07:13:13 +00:00
Tapani Pälli
07f8db02ff
iris: cleanup, use intel_needs_workaround instead of is_dg2
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26666 >
2023-12-15 06:13:41 +00:00
Tapani Pälli
2f25679b3f
anv: cleanup, use intel_needs_workaround instead of is_dg2
...
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26666 >
2023-12-15 06:13:41 +00:00
Tapani Pälli
012b6fbe63
drirc: setup anv_assume_full_subgroups=16 for UnrealEngine5.1
...
We set max subgroup size as 16 for 'UnrealEngine5.1', this improves a
customer benchmark by 50% on A750.
Cc: mesa-stable
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/26385 >
2023-12-15 05:28:51 +00:00
Tapani Pälli
7ff8f79a88
anv/hasvk/drirc: change anv_assume_full_subgroups to have subgroup size
...
Cc: mesa-stable
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/26385 >
2023-12-15 05:28:51 +00:00
Faith Ekstrand
1cf1b9d741
nir: Scalarize bounds checked loads and stores
...
Fixes: 39da1deb49 ("nir/lower_io: Add a bounds-checked 64-bit global address format")
Reviewed-by: M Henning <drawoc@darkrefraction.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26526 >
2023-12-15 03:53:54 +00:00
Caio Oliveira
81e3b28f78
compiler: Remove C++ static member pointers to builtin types
...
When we moved the bulk of glsl_type to C, these globals were
kept to avoid changes to compiler/glsl code in the MR. Now that
landed, change the code to use the actual bultins directly.
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26658 >
2023-12-15 03:09:19 +00:00
Caio Oliveira
bfc953add7
intel/compiler: Use C helpers to access builtin types
...
Remove usage of C++ static members as they are going to be removed.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26658 >
2023-12-15 03:09:19 +00:00
Caio Oliveira
90e364edb0
compiler/types: Add a few more helpers to get builtin types
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26658 >
2023-12-15 03:09:19 +00:00
Faith Ekstrand
22b99f15b9
nvk: Use ENUM_PACKED for enums instead of PACKED
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:59 +00:00
Faith Ekstrand
45f320e97f
nvk: Enable cbufs
...
Just in case this breaks and blows up the universe, we'll add a NO_CBUFS
debug flag as a back-door.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:59 +00:00
Faith Ekstrand
d41fe63d99
nvk: Add debug flags to the physical device
...
These should probably go on the instance but everything is tangled up
too badly right now. This at least moves them to some place where we
have them without a nouveau_ws_device. It's fine to do this because
debug flags are an environment variable and won't change across a run.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:59 +00:00
Faith Ekstrand
ee29a8d1cd
nvk: Upload cbufs based on the cbuf_map
...
For draw, this requires that we use a macro to read descriptors out of
the descriptor buffer because we may not have that information easily
available on the CPU.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
e6cd4b177a
nvk: Don't flush descriptors in BeginConditionalRendering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
869f5fc680
nvk: Set MME_DATA_FIFO_CONFIG on device init
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
951d96a1a2
nvk: Rework push_indirect to take an address
...
The only reason we took a buffer bevore was to support the old kernel
API. We can simplify the function now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
af3e7ba105
nvk: Stash descriptor set sizes
...
To save space in the root descriptor table, we put these in the CPU-only
descriptor structure instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
107a09e7dd
nvk: Add a cbuf_bind_map to nvk_shader
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
bdec097bb8
nvk/nir: Lower UBO loads to load_ubo when we have a cbuf
...
This will make it go through the cbuf path in NAK.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
f1c909edd5
nvk/nir: Add cbuf analysis to nvi_nir_lower_descriptors()
...
This builds a list of the 15 most commonly used UBOs or descriptor
buffers and places them in a new nvk_cbuf_map data structure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
952e06672f
nak/sm50: Add legalization and encoding for OpLdc
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
2199eea31b
nak/sm50: Fix legalization of OpIAdd
...
Most of them specified bits 20..40 which is wrong because it's actually
19 bits with the sign bit off in bit 56 for some reason.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
e697280ebf
nak/sm50: Fix immediate encodings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
eabd8cd470
nak: Handle negative cbuf offset immediates
...
This can happen with indirect UBO pulls because we just try go find an
iadd in NIR and one side may be negative.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
7bfb7a2b81
nak: Rework the dependency pass
...
This breaks the dependency pass in two. The first pass builds a
dependency graph, including first-wait information for each barrier.
The second applies uses the newly constructed dependencies to place
barriers. This fixes at least two known bugs:
1. We were placing redundant write barriers. In the case where we did
a load, for example, we would add read barriers for the address and
write barriers for the result. In the fairly common case where the
result is used before someone tries to overwrite the address, we
don't actually need both barriers because a wait on the result
implies a wait on the sources.
2. There were a bunch of WaR cases which weren't being handled
correctly. In particular, when a variable-latency instruction read
a register and then a fixed fixed-latency instruction read it, the
fixed-latency read would replace the variable latency read. When we
then wrote that value with a fixed-latency instruction, we wouldn't
see the hazard. This commit fixes it by replacing the single last
use per reg with a Vec of uses in the case of reads.
This fixes all known 1.1 memory model fails.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Faith Ekstrand
8006f271d4
nak: Add a delay of 2 cycles for barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615 >
2023-12-15 02:17:58 +00:00
Sil Vilerino
0739927080
d3d12: Remove D3D12_SDK_VERSION checks after bumping directx-headers dependency to v611
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26556 >
2023-12-14 20:06:53 -05:00
Sil Vilerino
90b49f16f7
d3d12: Bump directx-headers dependency to v611.0 for latest video codecs and features
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26556 >
2023-12-14 20:06:52 -05:00
Jesse Natalie
2ea04ef69b
vulkan/wsi: Convert bit tests to bool with != 0
...
Otherwise the bool result could be some value other than 0 or 1.
Fixes: d7938de8 ("vulkan/wsi: don't support present with queues where blit is unsupported")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26706 >
2023-12-15 00:39:10 +00:00
Jesse Natalie
19175e474b
microsoft: Whitespace change to trigger CI
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26706 >
2023-12-15 00:39:10 +00:00
Jordan Petridis
62c797f5f3
Revert "ci: take microsoft farm offline"
...
Infrastructure issues [1] have been solved, sort of! Let's give
it a go again!
This reverts commit 0957b01a06 .
[1]: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37270
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26706 >
2023-12-15 00:39:10 +00:00
GKraats
4fe9a6053a
i915G: show correct number of needed ALU instructions at errmess
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26340 >
2023-12-14 23:24:32 +00:00
Daniel Stone
752b23547a
panfrost/ci: Skip broken image copy tests
...
Any kind of image copy with a conversion (between channel
size/order/content, or between tiling mode) seems liable to failure.
Since this seems like a general problem, just skip the entire battery of
tests until it can be systematically fixed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26449 >
2023-12-14 22:53:40 +00:00
Daniel Stone
f51d99def6
panfrost/ci: Add environment variable to suppress warnings
...
Without it, our test log fills up with warnings that crawling index
buffers from the CPU isn't valid. We know that.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26449 >
2023-12-14 22:53:39 +00:00
Daniel Stone
ac613b9e44
panfrost/ci: Remove Vulkan expectations from G57
...
panvk doesn't yet support G57.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26449 >
2023-12-14 22:53:39 +00:00
Thomas H.P. Andersen
487837c0bf
docs: update features.txt for nvk
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26676 >
2023-12-14 22:41:37 +00:00
Eric Engestrom
871ea3bb88
radv/ci: add flake
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52773139
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26704 >
2023-12-14 22:13:45 +00:00
Eric Engestrom
64c2a0489d
docs: drop : in title
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26702 >
2023-12-14 22:07:08 +00:00
Eric Engestrom
b557362b3a
ci: run every test when changing the build
...
Changing meson options, checks or dependencies can affect drivers, so
they should be tested.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26625 >
2023-12-14 20:58:16 +00:00
Eric Engestrom
9041084dd5
ci: fix indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26625 >
2023-12-14 20:58:16 +00:00
Eric Engestrom
efa331a589
v3d/ci: add flake
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52760914
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26695 >
2023-12-14 20:37:52 +00:00
Daniel Schürmann
42e9ba1c70
aco: remove VCCZ and EXECZ register handling
...
We don't use these registers and since RDNA3 removed the explicit usage,
it is unlikely that we will properly support them in the future.
Removing the registers from the ACO IR prevents accidentally using them
without proper support.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26664 >
2023-12-14 20:08:28 +00:00
Daniel Stone
8085145db0
ci: Fix trivial typo in ARTIFACTS_BASE_URL
...
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26690 >
2023-12-14 19:24:35 +00:00
Maíra Canal
3b715fb99d
v3dv: enable CPU jobs in the simulator
...
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:14 +00:00
Maíra Canal
f11a458a50
v3d/v3dv: move V3D_CSD definitions to a separate file
...
Both OpenGL and Vulkan drivers share the same V3D_CSD definitions.
Therefore, move it to a common place instead of duplicating.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
35b4dcb2f2
v3dv: use the copy performance query results user extension
...
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
8913c134e4
drm-uapi: extend interface for copy performance query CPU job
...
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
43258ad44b
v3dv: use the reset performance query user extension
...
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
b2db2e3f33
v3dv: don't start iterating performance queries at zero
...
Currently, the function handle_reset_query_cpu_job() starts to iterate
between the performance queries in the zero-index. This is not correct,
as we should start iterating the performance queries at first, which
is a index indicated by info->first.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
6089982a82
drm-uapi: extend interface for the reset performance query CPU job
...
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
4a9da29016
v3dv: use the copy timestamp query results user extension
...
The copy timestamp query user extension allows the creation of a CPU job
that copies the results of a timestamp query to a BO with the possibility
to indicate the timestamp availability with a availability bit.
By using the copy timestamp query user extension, it will be possible to
use the multisync user extension to synchronize this type of job, which
currently possible with the user space implementation without stalling.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
a990defab3
drm-uapi: extend interface for copy timestamp results CPU job
...
Extend the UAPI to support the copy timestamp results user extension for the
CPU job. This user extension will allow the creation of a CPU job that
copies the results of a timestamp query to a BO with the possibility to
indicate the timestamp availability with a availability bit.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
d1d52ebdc9
v3dv: use the reset timestamp user extension
...
The reset timestamp user extension allows the creation of a CPU job that
resets a timestamp query by updating its value in the timestamp BO and
resetting the availability syncobj.
Using the reset timestamp user extension, it will be possible to use the
multisync user extension to synchronize this type of job, which is not
currently possible with the user space implementation without stalling.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
7af9b47471
drm-uapi: extend interface for reset timestamp CPU job
...
Extend the UAPI to support the reset timestamp user extension for the
CPU job. This user extension will allow the creation of a CPU job that
resets a timestamp query by updating the timestamp BO and reseting the
timestamp's availability syncobj.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
17e03ebacd
v3dv: use the timestamp query user extension
...
The timestamp query user extension allows the creation of a CPU job that
calculates the timestamp by updating its values in a BO with the appropriate
offsets and signalling the availability syncobjs.
The CPU job should be serialized so it only executes after all previously
submitted work has completed. This is accomplished by setting job->serialize
to V3DV_BARRIER_ALL before setting the multi-sync extension.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
d48aaa4773
drm-uapi: extend interface for timestamp query CPU job
...
Extend the UAPI to support the timestamp query user extension for the
CPU job. This user extension will allow the creation of a CPU job that
calculates the query timestamp by updating a timestamp BO with its value
and signaling the availability syncobj.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
2e32644e35
v3dv: occlusion queries aren't handled with a CPU job
...
A CPU job of type V3DV_JOB_TYPE_CPU_RESET_QUERIES is only created for
performance and timestamp queries. Occlusion queries are handled with a
compute job. Therefore, there is no need to handle occlusion queries in
the CPU job.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Iago Toral Quiroga
2a0d196abf
v3dv: switch timestamp queries to using BO memory
...
Signed-off-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Maíra Canal <mcanal@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
e404ccba5b
v3dv: use the indirect CSD user extension
...
The indirect CSD user extension allows the creation of a CSD
job linked to a CPU job. When we submit the CPU job, the CPU job
will run when the indirect CSD dependency is completed, map the
indirect buffer to read the CSD dispatch parameters and reconfigure
the CSD job accordingly.
Using the indirect CSD user extension, allows us to use the multisync
user extension to synchronize this type of job, which is not currently
possible from user-space without stalling.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
b1134775e0
v3dv: create a CPU queue type
...
We will be introducing a new type of queue, a CPU queue. This queue will
be responsible for handling the CPU jobs, such as timestamp queries and
indirect CSD dispatch.
Therefore, add a CPU queue to the enum v3dv_queue_type and its
respective barrier.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
e162308298
v3dv: check CPU queue availability
...
Include a check to assure that the kernel driver supports the CPU queue.
Also, indicate that, currently, the simulator doesn't have support for
the CPU queue.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
2589998e05
drm-uapi: extend interface for indirect CSD CPU job
...
Extend the UAPI to support CPU job in the kernel space using an user
extension design and also add support for the indirect CSD job
extension. This user extension will allow the creation of a CSD
job linked to a CPU job. The CPU job will wait for the indirect CSD job
dependencies and, once they are signaled, it will update the CSD job
parameters.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
d2a6383c64
v3dv: allow set_multisync() to accept more wait syncobjs
...
Currently, set_multisync() doesn't allow using external syncobjs as
in_syncs objects in the multisync extension. Add the possibility to use
external syncobjs as in_syncs. This will ease the synchronization of CPU
jobs, as they sometimes depend on external syncobjs, such as
query availability syncobjs.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
f01d702d4a
v3dv: allow different in/out sync queues
...
Allow in syncs and out syncs to be configured based on different queues.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
Maíra Canal
3a3acac8c5
v3dv: move multisync functions to the beginning of the file
...
With the support of CPU jobs by the kernelspace, now the CPU job
functions will also use the multisync extension. Therefore, move the
multisync functions to the beginning of the file to allow the CPU job
functions to call them.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448 >
2023-12-14 16:43:13 +00:00
David Heidelberg
14267d9739
ci/freedreno: more issues showed up on a618, let's use 6.4
...
Until resolved, switch to 6.4 kernel.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26689 >
2023-12-14 14:05:06 +00:00
Martin Roukala (né Peres)
a0f350429b
ci/b2c: fix the cmdline_extra variable name
...
The variable name should have been named `kernel_cmdline_extra`, so
let's rename it to match the expectations of the rest of Mesa.
Fixes: 4362d5913f ("ci/b2c: import all variables starting with `B2C_`")
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26686 >
2023-12-14 13:27:40 +00:00
Samuel Pitoiset
1ef5feac5e
radv: fix binding partial depth/stencil views with dynamic rendering
...
With dynamic rendering, it's allowed to begin rendering with depth or
stencil only but still with a depth/stencil format. The test below
checks that unbound part of ds isn't modified, if depth is bound and
stencil not and vice versa.
This fixes a recent CTS
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25350 >
2023-12-14 12:54:23 +00:00
Eric Engestrom
759b68bf66
bin/gitlab_gql: print merged yaml as yaml instead of a python dict
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26074 >
2023-12-14 12:06:39 +00:00
Eric Engestrom
db6541a41a
bin/gitlab_gql: fix --print-merged-yaml when --rev != HEAD
...
Reading the local root config file and then asking gitlab to evaluate it
in the context of some other version will cause issues if they are not
identical.
Instead, the local document should be a simple include of whatever is
the root config file at that commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26074 >
2023-12-14 12:06:39 +00:00
Lionel Landwerlin
6a92af158d
anv: wait for CS write completion before executing secondary
...
Got a error state on DG2 with a jump to secondary. The secondary is
empty and padded with MI_NOOPs to workaround the CS prefetching.
According to the error state, the return jump address from the
secondary to the primary is 0x0. The ACTHD register value is 0x10, so
it seems that the command streamer indeed jumped to 0x0 and hanged on
a few dwords after that.
The return address should have been set edited by a previous
MI_STORE_DATA_IMM instruction. So it appears it did not complete in
time for the command stream to catch it. On Gfx12+ this can happend if
we do not set ForceWriteCompletionCheck.
This change also takes the opportunity to remove the padding MI_NOOPs
at the end of secondaries on Gfx12+ by using disabling the prefetching
just before jumping into secondaries and reenabling it at the
beginning of each secondary.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26665 >
2023-12-14 11:28:31 +02:00
Samuel Pitoiset
98ea540158
radv: add support for MRT compaction with PS epilogs
...
Now that PS epilogs are always compiled during cmdbuf recording, we
have all information to enable MRT compaction, for optimal performance.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26667 >
2023-12-14 09:51:26 +01:00
Samuel Pitoiset
8760b7fab7
radv: cleanup radv_pipeline_generate_ps_epilog_key()
...
This has no effects because key->spi_shader_col_format isn't used when
the graphics pipeline needs to compile a PS epilog.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26663 >
2023-12-14 08:18:46 +00:00
Samuel Pitoiset
60e6e3f8e6
radv: cleanup gathering PS info with/without PS epilogs
...
To make it clear that some fields aren't used with PS epilogs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26663 >
2023-12-14 08:18:46 +00:00
Samuel Pitoiset
a39c3920fb
radv: cleanup ac_nir_lower_ps options
...
To make it clear that some fields aren't used with PS epilogs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26663 >
2023-12-14 08:18:46 +00:00
Samuel Pitoiset
78e45221bd
radv: emit the task shader in radv_emit_graphics_pipeline()
...
It's a better place to do so.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26414 >
2023-12-14 07:57:32 +00:00
Sagar Ghuge
8375609235
docs: Document INTEL_COPY_CLASS
...
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/26409 >
2023-12-14 00:53:15 +00:00
Sagar Ghuge
135a7d5031
iris: Handle aux map init for copy engine
...
We don't setup any state for the copy engine but platforms that supports
aux map, we need to init the aux map at context creation in order to
support compression.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9231
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/26409 >
2023-12-14 00:53:15 +00:00
Sagar Ghuge
46f5359238
anv: Invalidate aux map for copy/video engine
...
Make sure to invalidate the aux map table for copy/video engines on
platforms that has the aux map.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9231
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/26409 >
2023-12-14 00:53:15 +00:00
Sagar Ghuge
108f880986
anv: Handle video/copy engine queue initialization
...
We don't need to setup any state for video/copy usually but platform
that supports the aux map, we need to init the aux map by programming
equivalent registers.
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/26409 >
2023-12-14 00:53:15 +00:00
Sagar Ghuge
2aea09c8de
intel/genxml: Add BCS/VD0 aux table base address register
...
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/26409 >
2023-12-14 00:53:15 +00:00
Robert Foss
e46e9ee46c
egl/surfaceless: Don't overwrire disp->Device if using EGL_DEVICE_EXT
...
Make sure that disp->Device is never overwritten during probe
function calls.
If EGL_DEVICE_EXT is provided, the probing should rather fail
than switch the device being used.
Signed-off-by: Robert Foss <rfoss@kernel.org >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26131 >
2023-12-13 23:15:17 +00:00
Robert Foss
208894c94f
egl: Add _eglHasAttrib() function
...
Provide a simple function for checking if an EGLDisplay
is using a specific EGLAttrib.
This can be useful when trying to inhibit platform behavior
depending on the EGLAttribs provided.
Signed-off-by: Robert Foss <rfoss@kernel.org >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26131 >
2023-12-13 23:15:17 +00:00
Robert Foss
cda9980f96
egl/surfaceless: Fix EGL_DEVICE_EXT implementation
...
The native_display checks are incorrect and partially never
executed due to native_display always being NULL.
Fixes: 1efaa85889 ("egl: Fix attrib_list[0] == EGL_NONE check")
Signed-off-by: Robert Foss <rfoss@kernel.org >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26131 >
2023-12-13 23:15:17 +00:00
Daniel Stone
59a7fc2054
ci/radeonsi: Occlusion queries are flaky on stoney
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26678 >
2023-12-13 22:51:52 +00:00
Eric Engestrom
e46702f7ae
ci: deduplicate constructing the ARTIFACTS_BASE_URL
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26670 >
2023-12-13 21:12:22 +00:00
Eric Engestrom
d024da3900
docs: update calendar for 23.3.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26673 >
2023-12-13 21:03:25 +00:00
Eric Engestrom
efa24268ce
docs: add sha256sum for 23.3.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26673 >
2023-12-13 21:03:25 +00:00
Eric Engestrom
d5bf161706
docs: add release notes for 23.3.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26673 >
2023-12-13 21:03:25 +00:00
Chris Spencer
342dba5102
vulkan/android: Only limit advertised extensions in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
3c618d23d1
vn/android: Only limit advertised Vulkan version in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
30788edbcc
v3dv/android: Only limit advertised Vulkan version in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
9385f1d4e2
radv/android: Only limit advertised Vulkan version in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
ebc3032245
anv/android: Only limit advertised Vulkan version in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
257ecaca88
android.mk: Add option to pass arbitrary parameters to meson
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Chris Spencer
50458703fa
meson: Add option to ignore artificial Android limitations
...
Some capabilities are artificially disabled on Android to avoid running
afoul of the CTS. Make this behaviour opt-out so devices that don't need
strict conformance can take advantage of the full capabilities of the
driver.
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Caio Oliveira
6a4156f812
clover: Remove usage of glsl_type C++ helpers
...
Preparation for removing the C++ helpers from glsl_type.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26671 >
2023-12-13 19:52:24 +00:00
Sagar Ghuge
a4947f7bd8
intel/fs: Adjust destination size for load ubo on Xe2+
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26639 >
2023-12-13 19:06:21 +00:00
Sagar Ghuge
e0ce94318b
intel/fs: Adjust destination size for global load constant on Xe2+
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26639 >
2023-12-13 19:06:21 +00:00
Sagar Ghuge
11fea46bdc
intel/fs: Adjust destination size for image size intrinsic
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26639 >
2023-12-13 19:06:21 +00:00
Sagar Ghuge
c426553658
intel/compiler: Adjust assertion in lower_get_buffer_size() for Xe2
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26639 >
2023-12-13 19:06:21 +00:00
Eric Engestrom
f8e583d537
ci/b2c: identify dut by its id instead of its tags
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
b93d836e47
ci/b2c: rename B2C_TEST_SCRIPT to B2C_CONTAINER_CMD to match the automatic import
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
4362d5913f
ci/b2c: import all variables starting with B2C_
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
ef0e8bae0d
ci/b2c: use envvars directly instead of converting them back and forth into cli args
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
e157d67d39
ci/b2c: export B2C_TEST_SCRIPT
...
Next commit will use it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
b2e78a9775
ci/b2c: use with:write instead of manually doing open;write;close
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
50da22812d
ci/b2c: always define cmdline_extras
...
Just make it an empty string when undefined
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
86ee903b38
ci/b2c: always define job_volume_exclusions
...
The template doesn't do anything if the list is empty, so simplify the code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
14f59188f6
ci/b2c: drop unused --volume and --mount-volume
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
5142ae2d4f
ci/b2c: drop support for harbor.freedesktop.org
...
It's dead, Jim.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
8eabe3d913
ci/b2c: tags are mandatory
...
Jobs without tags are not accepted, so there is no point in having
support for creating them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
850d3e28e5
ci/b2c: drop unused B2C_EXTRA_VOLUME_ARGS
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
a10bd6fcb0
ci/b2c: fix indentation of comment and after_script: list
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
918199a154
ci/b2c: stop ignoring errors in before_script
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Eric Engestrom
6cc6ebde3a
ci/b2c: drop passthrough of unset CI_JOB_JWT
...
Fixes: dabc068e6c ("ci: Use ci-fairy minio login via token file")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26653 >
2023-12-13 18:29:23 +00:00
Lionel Landwerlin
d761871761
isl: drop AUX-TT CCS alignment with INTEL_DEBUG=noccs
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26644 >
2023-12-13 17:40:38 +00:00
Boris Brezillon
db5166718d
util/hash_table: Don't leak hash_key_u64 objects when the u64 hash table is destroyed
...
Allocate a ralloc sub-context which takes the u64 hash table as a parent
and attach a destructor to it so we can free the hash_key_u64 objects
that were allocated by _mesa_hash_table_u64_insert().
The order of creation of this sub-context is crucial: it needs to happen
after the _mesa_hash_table_create() call to guarantee that the
destructor is called before ht->table and its children are freed,
otherwise the _mesa_hash_table_u64_clear() call in the destructor leads
to a use-after-free situation.
Fixes: ff494361be ("util: rzalloc and free hash_table_u64")
Cc: stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26423 >
2023-12-13 17:02:02 +00:00
Boris Brezillon
5a60fd7b14
util/hash_table: Don't leak hash_u64_key objects when the entry exists
...
When an entry exists, _mesa_hash_table_insert() updates the entry with
the new data/key pair, which causes a leak if the key has previously
been dynamically allocated, like is the case for hash_u64_key keys.
One solution to solve that is to do the insertion in two steps: first
_mesa_hash_table_search_pre_hashed(), and if the entry doesn't exist
_mesa_hash_table_insert_pre_hashed(). But approach forces us to do the
double-hashing twice.
Another approach is to extract the logic in hash_table_insert() that's
responsible for the searching and entry allocation into a separate helper
called hash_table_get_entry(), and keep the entry::{key,data} assignment
in hash_table_insert().
This way we can re-use hash_table_get_entry() from
_mesa_hash_table_u64_insert(), and lake sure we free the allocated
key if the entry was already present.
Fixes: 6649b840c3 ("mesa/util: add a hash table wrapper which support 64-bit keys")
Cc: stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26423 >
2023-12-13 17:02:02 +00:00
Boris Brezillon
977cc3157d
util/hash_table: Use FREE() to be consistent with the CALLOC_STRUCT() call
...
CALLOC_STRUCT() calls the OS abstraction layer to do the allocation.
Call FREE() to free the corresponding objects so we keep things
consistent and have proper debug traces when memory-debugging
is enabled.
Fixes: 6649b840c3 ("mesa/util: add a hash table wrapper which support 64-bit keys")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26423 >
2023-12-13 17:02:02 +00:00
Marek Olšák
165d27abfc
winsys/amdgpu: document BO structures
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
68f7e497fe
winsys/amdgpu: fix amdgpu_cs_has_user_fence for VPE
...
invert the condition to prevent this in the future.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
f5a3874ad1
winsys/amdgpu: clean up the rest of the code for cs->buffer_lists
...
This just changes how we iterate over the buffer lists.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
af0d2fe4fc
winsys/amdgpu: pass amdgpu_buffer_list* to amdgpu_add_bo_fences_to_dependencies
...
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
378984b994
winsys/amdgpu: return amdgpu_cs_buffer* from add/lookup_buffer instead of index
...
because we only use the index to get amdgpu_cs_buffer.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
05ba3c9cc5
winsys/amdgpu: clean up duplicated code around amdgpu_lookup/add_buffer
...
The function for real, slab, and sparse buffers can be unified, mostly.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
2afe6cea4c
winsys/amdgpu: change amdgpu_lookup_buffer to take struct amdgpu_buffer_list
...
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
9cf35b601a
winsys/amdgpu: change real/slab/sparse_buffers to buffer_lists[3]
...
The next commits will simplify it.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
32eb4a54dc
winsys/amdgpu: don't count memory usage because it's unused
...
Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
bbd64747e2
winsys/amdgpu: move lock from amdgpu_winsys_bo into sparse and real BOs
...
The slab BO doesn't use it.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
6803868498
winsys/amdgpu: use inheritance for the slab BO
...
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
86481c461e
winsys/amdgpu: use inheritance for the sparse BO
...
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
e9c416ac9a
winsys/amdgpu: use inheritance for the real BO
...
add struct amdgpu_bo_real
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
d1e70db89a
winsys/amdgpu: use inheritance for the cache_entry BO field
...
Add struct amdgpu_bo_real_reusable for it. This is the beginning
of changing amdgpu_winsys_bo to use inheritance instead of a union.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
943a3329c7
winsys/amdgpu: inline amdgpu_add_fence_dependencies_bo_lists
...
and rename the other one
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
5cf57986d2
winsys/amdgpu: cosmetic changes in amdgpu_cs_add_buffer
...
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
c902b9e1d9
winsys/amdgpu: don't return a value from cs_add_buffer
...
It's unused. The return value is only used with the radeon winsys.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
390f26eefb
ac,radeonsi: require DRM 3.27+ (kernel 4.20+) same as RADV
...
The only major change is the code removal of the legacy BO list path
in the winsys, which required switching "debug_all_bos" to the new path.
Reviewed-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Marek Olšák
5cfd659276
ac/llvm: remove code for converting txd from 1D to 2D because NIR does it
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26547 >
2023-12-13 16:26:17 +00:00
Caio Oliveira
f17e23e116
compiler/glsl: Reduce scope of is_anonymous
...
This a GLSL parser specific detail, so move it there. Also
add a comment pointing to where #anon prefix is used.
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26656 >
2023-12-13 15:44:40 +00:00
Ganesh Belgur Ramachandra
8458cd49e0
asahi: fixes prevailing '-Werror=maybe-uninitialized' issue
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26206 >
2023-12-13 15:29:43 +00:00
Sathishkumar S
cd8ccba814
frontends/va: use va interface for jpeg partial decode
...
add support to check jpeg crop decode cap and to set the crop
rectangle. the interface is avialble on libva 1.21.0 and higher.
v2: (Ruijing)
enclose the entire case block within VA_CHECK_VERSION
if attr unsupported set the return value to VA_ATTRIB_NOT_SUPPORTED
Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26588 >
2023-12-13 14:18:05 +00:00
Christian Gmeiner
2f205caea4
etnaviv: Add static_assert(..) to catch memory corruption
...
When we start to support GPUs with more then 16 varyings the code base
tells us that there is some work to do.
Cc: mesa-stable
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26662 >
2023-12-13 12:56:47 +00:00
Christian Gmeiner
11ffb20b70
etnaviv: Update headers from rnndb
...
Update to rnndb commit 071f5a60dcb8.
This updates VIVS_PA_SHADER_ATTRIBUTES__LEN define from 10 to 16 and
fixes memory corruption if more then 10 varyings are used. The current
upper limit for varyings is 16.
Cc: mesa-stable
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26662 >
2023-12-13 12:56:47 +00:00
Karol Herbst
de3190d36d
radeonsi: fix reg_saved_mask for non graphics contexts
...
The old code used to clear the bits, the new one set it. It should have
used `BITSET_CLEAR_RANGE` instead.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10286
Fixes: 17e01a9a9b ("radeonsi: merge context_reg_saved_mask and other_reg_saved_mask into a BITSET")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Tested-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26657 >
2023-12-13 12:25:38 +00:00
Tatsuyuki Ishi
c3c3a8926a
radv/amdgpu: Separate the concept of residency from use_global_list.
...
A BO can be always resident by two ways:
1. Through kernel bookkeeping. The BO is created with
AMDGPU_GEM_CREATE_VM_ALWAYS_VALID and bo->is_local gets set to true.
2. Through the driver global BO list. On every submission, the global
BO list is added to the CS's BO list.
Until now, use_global_list reflected either 1. or 2. . This commit
changes it to reflect 2. only, and update callsites that checks for
residency to use a new helper.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26591 >
2023-12-13 12:03:20 +00:00
Tatsuyuki Ishi
63120a55b8
radv/amdgpu: Remove virtual bo dump logic.
...
Virtual BOs cannot go into the global bo list. Accessing bo_handle is
also invalid for virtual BOs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26592 >
2023-12-13 11:42:35 +00:00
Rohan Garg
40c6e54ce7
anv: rename anv_create_companion_rcs_command_buffer to anv_cmd_buffer_ensure_rcs_companion
...
We can now drop any checks for companion_rcs_cmd_buffer before calling
anv_create_companion_rcs_command_buffer.
Ensure that anv_cmd_buffer_ensure_rcs_companion callee's have the proper
error handling.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26648 >
2023-12-13 11:19:07 +00:00
Timothy Arceri
bed1b8b90d
radeonsi: fix divide by zero in si_get_small_prim_cull_info()
...
This fixes a crash on startup with the game
"Ty the Tasmanian Tiger 3"
Fixes: f8a0aa6852 ("radeonsi: fix view culling for wide lines")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26661 >
2023-12-13 10:06:41 +00:00
Lionel Landwerlin
d376d8c5ea
anv: promote EXT_calibrated_timestamps to KHR
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632 >
2023-12-13 09:39:08 +00:00
Lionel Landwerlin
4eb1eb0db1
anv: promote EXT_vertex_attribute_divisor to KHR
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632 >
2023-12-13 09:39:08 +00:00
Lionel Landwerlin
f99e43d606
anv: switch to use runtime physical device properties infrastructure
...
Prevents us to have that big switch case for each extension's
properties.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632 >
2023-12-13 09:39:08 +00:00
Lionel Landwerlin
dc858202a9
anv: get features after initializing drm
...
We'll want to capture properties like features, just once at
initialization.
In order to do this we need the DRM stuff to be initialized as some of
that can be reported in properties.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632 >
2023-12-13 09:39:08 +00:00
Lionel Landwerlin
a1dcf943ab
isl: constify isl_device_get_sample_counts()
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26632 >
2023-12-13 09:39:08 +00:00
Tapani Pälli
2336058bbb
iris: use slow clear for small surfaces with Wa_18020603990
...
Described in Wa_18020603990, we need to use slow clear or add an
partial resolve after fast clear for surfaces where bpp <= 32 and
dim <= 256x256.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26629 >
2023-12-13 09:12:19 +00:00
Tapani Pälli
25a32433b1
anv: use slow clear for small surfaces with Wa_18020603990
...
Described in Wa_18020603990, we need to use slow clear or add an
partial resolve after fast clear for surfaces where bpp <= 32 and
dim <= 256x256.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26629 >
2023-12-13 09:12:19 +00:00
Samuel Pitoiset
ca8d9f850b
radv/ci: remove dEQP-VK.mesh_shader.ext.query.* from the lists
...
meshShaderQueries has been recently disabled because it causes random
GPU hangs in CI, I'm still investigating it. But let's clean the CI
lists to avoid any confusion, I will re-introduce them if needed but
this issue can also be reproduced without mesh shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26651 >
2023-12-13 08:33:24 +00:00
Samuel Pitoiset
f576ce3340
radv: advertise VK_KHR_vertex_attribute_divisor
...
This is a promotion from the EXT, except the new property
supportsNonZeroFirstInstance which should already be supported.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26595 >
2023-12-13 08:08:21 +00:00
Samuel Pitoiset
24c755316b
vulkan/runtime: promote VK_EXT_vertex_attribute_divisor to KHR
...
Just rename existing structs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26595 >
2023-12-13 08:08:21 +00:00
Samuel Pitoiset
0605631094
radv: stop clearing FMASK_COMPRESS_1FRAG_ONLY for TC-compat CMASK images
...
TC-compat CMASK means Fmask decompression isn't needed because the hw
can read it directly from shaders, so this shouldn't have any effects.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26575 >
2023-12-13 07:48:51 +00:00
Samuel Pitoiset
c70c269b16
radv: remove useless check for TC-compat CMASK images during fb emission
...
The FMASK decompression only happens for images with FMASK and without
TC-compat CMASK, so both can never be TRUE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26575 >
2023-12-13 07:48:51 +00:00
Iago Toral Quiroga
205938cd39
v3dv: disallow image stores on VK_KHR_DISPLAY surfaces
...
Display surfaces must be linear and V3D can only do linear TMU access
for 1D images. This would also restrict sampling usages, however, we
can currently work around those in the driver at a performance penalty.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10268
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26647 >
2023-12-13 06:17:15 +00:00
Faith Ekstrand
f6437f4388
nvk: Implement VK_EXT_multi_draw
...
Zink uses this to let it skip a bunch of the per-draw validation and, in
the case of NVK, redundant root descriptor uploads.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9642
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26660 >
2023-12-13 03:18:04 +00:00
Thomas H.P. Andersen
afbaeee358
nvk: VK_EXT_color_write_enable
...
A write mask based on the pipeline creation input is stored in scratch. Another
similar mask is also stored for the dynamic color_write_enable. These can then
be updated individually, and will be combined in MME macro before use.
Each attachment has a mask for rgba. The max number of attachments in 8 so
we can fit the write mask in a single 32bit scratch.
color_write_enable is a single bit per attachment. To make it easier to combine
in with the write mask it is stored in scratch with a separate rgba bits.
The layout of the both scratch values are:
Attachment index 88887777666655554444333322221111
Component abgrabgrabgrabgrabgrabgrabgrabgr
dEQP-VK.pipeline.monolithic.color_write_enable.*
Test run totals:
Passed: 576/576 (100.0%)
Failed: 0/576 (0.0%)
Not supported: 0/576 (0.0%)
Warnings: 0/576 (0.0%)
Waived: 0/576 (0.0%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26211 >
2023-12-13 00:48:54 +00:00
Alyssa Rosenzweig
f217d267d3
gallium: add PIPE_IMAGE_ACCESS_DRIVER_INTERNAL
...
for e.g. driver internal blits that can use special paths wrt comporession.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26613 >
2023-12-12 19:44:41 -04:00
Alyssa Rosenzweig
15b5437f8f
gallium: fix util_clamp_color type confusion
...
fixes arb_color_buffer_float-clear GL_RGBA8_SNORM.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26613 >
2023-12-12 19:44:35 -04:00
Karol Herbst
d136583c82
rusticl/kernel: explicitly set rounding modes
...
Since dbbf566588 ("aco,ac/llvm,radeonsi: lower f2f16 to f2f16_rtz in nir")
radeonsi behavior changed and some of the core fp16 ops broke as a result.
We should explicitly specify the rounding mode until we add an gallium API
for drivers to advertize what they prefer.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26655 >
2023-12-12 23:02:11 +00:00
David Heidelberg
53b01459fd
rusticl: add freedreno alias for RUSTICL_ENABLE
...
`RUSTICL_ENABLE=msm` isn't first thought usually,
let's support the `freedreno` alias.
Suggested-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26642 >
2023-12-12 21:56:59 +00:00
Friedrich Vock
f1817ab7e0
radv,vtn,driconf: Add and use radv_rt_ssbo_non_uniform workaround for Crysis 2/3 Remastered
...
Crysis 2 and 3 Remastered's RT shaders non-uniformly index into SSBO
descriptor arrays without specifying the NonUniformEXT qualifier on the
relevant access chains/load ops. This leads to artifacts around objects.
To add insult to injury, the game fails to provide a meaningful
applicationName/engineName in the Vulkan part of the DX11-Vulkan interop
solution used for RT. Both of these fields are set to "nvpro-sample"
(perhaps the code has been copied from NVIDIA's sample applications).
Therefore, fall back to executable name matching.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9883
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26391 >
2023-12-12 21:16:39 +00:00
Faith Ekstrand
63e2bba592
nak: Don't set both FTZ and DNZ at the same time
...
Fixes: 3955e596df ("nak: Implement fmulz and ffmaz")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26654 >
2023-12-12 20:29:53 +00:00
Rhys Perry
dcbf31dce2
vulkan/wsi: always create command buffer for special blit queues
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Fixes: d7938de8fe ("vulkan/wsi: don't support present with queues where blit is unsupported")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10283
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26635 >
2023-12-12 20:02:43 +00:00
Caio Oliveira
a8b2426419
intel/compiler: Use reference instead of pointer for fs_visitor
...
Per Ian suggestion. Also clear up a few unnecessary casts around the code and
use `s` for fs_visitor ("shader"). Note to include a reference in ntf we need
to set it during initialization, so create an explicit mem_ctx for it.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
77ab74ccc2
intel/compiler: Use reference instead of pointer for nir_to_brw_state
...
Per Ian suggestion.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
4e5fcccd01
intel/compiler: Create and use nir_to_brw() function
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
38a42e5aa1
intel/compiler: Add ctor to fs_builder that just takes the shader
...
Uses the dispatch_width from the shader (fs_visitor). This was not
possible before because the dispatch_width was not part of
backend_shader.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
cf730adc58
intel/compiler: Make fs_builder include fs_visitor and not the other way
...
This will allow fs_builder have a reference to an fs_visitor (a
"fs_shader" really), instead of a reference to a backend_shader.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
f5032c4d52
intel/compiler: Make fs_visitor not depend on fs_builder
...
At this point this is more a header dependency due to inline functions,
so shuffle them around. The end goal is to allow fs_builder have a
reference to a fs_visitor (really a fs_shader).
Note the header is still included, a later patch will move the includes
to the call-sites.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
4f991dec00
intel/compiler: Remove fs_visitor::bld
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
5b8ec015f2
intel/compiler: Don't use fs_visitor::bld in remaining places
...
The remaining users can simply create a new builder at_end() if needed.
In many places a new builder object is already being constructed, so
just give more specific instructions.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
c73c1aa496
intel/compiler: Annotate and use nir_to_brw_state::bld
...
Use the "current bld" in nir_to_brw_state more widely, and also replace it
with an annotated version when applicable (to associate it with a NIR
instruction being lowered). After filling a block we reset it back to
the original value.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
34c28680b1
intel/compiler: Stop using fs_visitor::bld field in NIR conversion
...
Provide its own builder in nir_to_brw_state. Will allow eventually remove
the one in fs_visitor.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
79735fa783
intel/compiler: Move remaining NIR conversion fields to nir_to_brw_state
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
5cb189636d
intel/compiler: Move nir_ssa_value into a local structure
...
Create a nir_to_brw_state struct that is valid only during the
NIR to backend translation and use it for nir_ssa_values array.
This removes some NIR specific handling out of the fs_visitor -- nowadays
effectively an fs_shader.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
afe75d65be
intel/compiler: Make NIR resources helpers static
...
Remove get_nir_src_block() since it is not used anywhere.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
a7a27ee95e
intel/compiler: Make NIR atomic conversion functions static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
5777943381
intel/compiler: Make non-intrinsic NIR conversion functions static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
2385d6087a
intel/compiler: Make setup functions of NIR emission static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
3899e6b1d8
intel/compiler: Make functions for NIR control flow conversion static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
860ec33f9a
intel/compiler: Make more functions in NIR conversion static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
acca9dbf6b
intel/compiler: Make a NIR intrinsic emission functions static
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
c12460b01e
intel/compiler: Move NIR emission code to brw_fs_nir.cpp
...
This is a preparation to reorganize NIR emission code.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Caio Oliveira
1ef6415d22
intel/compiler: Remove unused headers
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:13 +00:00
Faith Ekstrand
3e308903eb
nvk: Enable NAK by default for Volta
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 >
2023-12-12 18:48:11 +00:00
Karol Herbst
69454a8abd
nak: move nir_lower_subgroups into nak_postprocess_nir
...
Fixes a bunch of `dEQP-VK.descriptor_indexing` tests.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 >
2023-12-12 18:48:11 +00:00
Karol Herbst
cedb101d3f
nak: add algebraic lowering pass
...
Lowering and file copied from bifrost_nir_algebraic.py
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 >
2023-12-12 18:48:11 +00:00
Karol Herbst
8c73b1eb90
nir/algebraic: add support for custom arguments
...
Those are passed as an optional argument and are declared as a list of
(type, name) tuples.
At the moment this can only be used for conditions.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 >
2023-12-12 18:48:11 +00:00
Karol Herbst
2701e634c1
nak: fix some sm checks for volta
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 >
2023-12-12 18:48:11 +00:00
Jordan Justen
7be8bc2c97
isl: Add mocs for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26593 >
2023-12-12 17:54:38 +00:00
David Heidelberg
c2558a2df8
ci/freedreno: fail introduced by ARB_post_depth_coverage
...
Fixes: fd00e99444 ("freedreno/a6xx: ARB_post_depth_coverage")
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
55d6430bd7
ci/freedreno: downgrade a618_piglit to 6.4 kernel
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
5527c090f4
ci/freedreno: timestamp-get no longer fails on Adreno
...
Fixes: 659e557676 ("freedreno: Fix timestamp conversion")
Cc: mesa-stable #23.3
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
4d78d63552
ci/freedreno: re-enable two Adreno 618 tests
...
9 limozeen-nots-r5 machines are available. Also correct piglit job name,
it has nothing common with gles2.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
d98ab19a95
ci/freedreno: extend timeout for full runs
...
Current two jobs getting around 4 hours with 1.3.7.0 CTS suite.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
7db3d6415f
ci/tu: add another failing pipeline strip draw
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:55 +00:00
David Heidelberg
32bb80ee12
ci/freedreno: increase fraction for Vulkan testing
...
Reduce runtime from 18 minutes below 15m.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:54 +00:00
David Heidelberg
0fc4665bd3
ci/freedreno: switch Adreno 630 boards back to 6.4 kernel
...
Until gets figured out why 6.6 kernel is ~ 1 ‒ 5 minutes slower per run.
Acked-by: Rob Clark <robclark@freedesktop.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:54 +00:00
David Heidelberg
1498577436
ci/freedreno: mark unvanquished-lowest trace as flaky and skip
...
Acked-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Acked-by: Rob Clark <robclark@freedesktop.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26611 >
2023-12-12 17:28:54 +00:00
Echo J
9342635903
vulkan: Remove nonexistent output in vk_synchronization_helpers target
...
I noticed that my NVK build was always LTOing the library twice
(I managed to trace it to the vk_synchronization_helpers change)
This change fixes the double compilation/LTO issue (which should
definitely cut packaging times a bit) 🐸
Fixes: fe12c1c29e ("vulkan: Add some auto-generated synchronization helpers")
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26630 >
2023-12-12 17:01:00 +00:00
Erico Nunes
09ae669fc5
panvk: Support modifiers for Wayland WSI
...
If we don't send modifiers, Wayland compositors end up with
DRM_FORMAT_MOD_INVALID which may prevent them from e.g. assigning an
overlay plane to an application.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26568 >
2023-12-12 16:19:36 +00:00
Erico Nunes
a51a44a169
Revert "ci: disable lima farm as it appears to be down"
...
This reverts commit cca5a4191d .
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26649 >
2023-12-12 15:45:35 +00:00
Erico Nunes
b88f3cafd8
lima/ci: update piglit ci expectations
...
These tests started to fail during the last CI downtime.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26649 >
2023-12-12 15:45:35 +00:00
Karol Herbst
c674db05e8
clc: use addMacroDef/Undef instead of -D/-U flags
...
It always felt weird having the extension management in two different
places. Later once we require LLVM-14 we might even be able to clean it up
a little more.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26641 >
2023-12-12 14:24:48 +00:00
Iago Toral Quiroga
6b89c71c90
broadcom: fix scheduling dependencies for SETMSF instruction
...
We use SETMSF to implement discard, so we need to ensure that any
TMU writes after a SETMSF don't actually execute. We emit a TMU flush
before a discard but we also need to ensure that the QPU scheduler
honors this.
Fixes some tests in dEQP-VK.spirv_assembly.instruction.terminate_invocation.*
when we expose the extension that would otherwise fail because the
QPU scheduler would incorrectly move some image writes emitted after a SETMSF
before the SETMSF instruction.
Also fixes spec@arb_shader_atomic_counters@fragment-discard
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26631 >
2023-12-12 12:58:42 +00:00
Frank Binns
4add1273f5
pvr: alloc WSI memory via GPU when there isn't a valid display FD
...
This isn't currently causing any issues as the driver only supports the
VK_KHR_display extension for now, so there will always be a valid display FD
when a WSI allocation is requested. However, checking that we have a valid
display FD when attempting to allocate via the display driver is more correct
and, when we come to support VK_KHR_wayland_surface, will avoid
vkAllocateMemory() unnecessarily failing.
This addresses a comment made here:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507#note_2188052
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Reviewed-by: Luigi Santivetti <luigi.santivetti@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26516 >
2023-12-12 12:41:13 +00:00
Samuel Pitoiset
86ab29a4d4
docs: update features.txt for RADV
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26646 >
2023-12-12 12:34:03 +00:00
Lionel Landwerlin
aa8c88f96c
anv: fix incorrect queue_family access on command buffer
...
The queue_family field is not an array, but a pointer.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 9866c4e32b ("anv: Skip layout transition on the compute queue")
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26645 >
2023-12-12 12:11:29 +00:00
Lionel Landwerlin
f53748c481
nir: fixup nir_printf intrinsic description
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
dc3e69af1a
nir/serialize: untangle printf serialization from a particular stage
...
This allows any stage to carry printf instructions.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
4e4a3820ab
nir/divergence: handle printf intrinsic
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
f7ae92b868
nir: include printfs from linked shaders
...
Once lowered low enough, it's not always possible to tell what strings
are used. So include them all when linking another shader.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
81b3dea993
nir/clone: fix missing printf_info clone
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
603f039708
nir: make printf_info (de)serializer available
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Lionel Landwerlin
751e919c33
util/u_printf: add a u_printf_ptr() variant
...
Taking an array of pointer to u_printf_info.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26505 >
2023-12-12 11:11:10 +00:00
Thomas Devoogdt
3ef5149824
util: os_same_file_description: fix unknown linux < 3.5 syscall SYS_kcmp
...
https://man7.org/linux/man-pages/man2/kcmp.2.html
The kcmp() system call first appeared in Linux 3.5.
But was probably also not supported by all major platforms
at that time. So fallback to the check that is done for windows.
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com >
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18517 >
2023-12-12 10:28:17 +00:00
Yonggang Luo
8fa16452ba
broadcom/compiler: remove include of gallium headers from meson.build
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26579 >
2023-12-12 10:03:11 +00:00
Yonggang Luo
238a9ef5ff
broadcom/(compiler,common): avoid include of gallium headers in header files
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26579 >
2023-12-12 10:03:10 +00:00
Pavel Asyutchenko
a921a69010
mesa/main: allow S3TC for 3D textures
...
This is allowed by D3D, RADV, ANV and Nvidia GL drivers
at least, so it should work on any hardware with S3TC.
Confirmed to work in OpenXRay on radeonsi.
Signed-off-by: Pavel Asyutchenko <svenpavel@gmail.com >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26389 >
2023-12-12 06:53:00 +00:00
Yogesh Mohan Marimuthu
a9064837f8
winsys/radeon: remove unused gpu_address variable from struct radeon_cmdbuf
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
9a258bd5b3
winsys/amdgpu: rename big_ib_buffer,ib_mapped variables in struct amdgpu_ib
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
65cd94c8f0
winsys/amdgpu: rename ptr_ib_size_inside_ib to is_chained_ib
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
50ad5845cb
winsys/amdgpu: rename requested_size_dw to projected_size_dw
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
e240cda128
winsys/amdgpu: move 125% comment to correct line of code
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
c7d004d029
winsys/amdgpu: remove rcs variable from struct amdgpu_ib
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
52aca8542f
winsys/amdgpu: rename ib variable name to chunk_ib
...
rename struct drm_amdgpu_cs_chunk_ib ib variable name to chunk_ib for
improving code readability.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:23 +00:00
Yogesh Mohan Marimuthu
34fba64cf6
winsys/amdgpu: rename struct amdgpu_ib main variable as main_ib everywhere
...
In amdgpu_cs.c, struct amdgpu_ib variable is named as ib which creates
confusion since struct drm_amdgpu_cs_chunk_ib is also called as ib in
some places.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:22 +00:00
Yogesh Mohan Marimuthu
4d6089bfd1
winsys/amdgpu: remove ib_type variable from struct amdgpu_ib
...
preamble ib is created using amdgpu_cs_setup_preemption()
function. only IB_MAIN memory is allocated from struct amdgpu_ib.
Hence remove ib_type variable from struct amdgpu_ib.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:22 +00:00
Yogesh Mohan Marimuthu
0f117efe39
winsys/amdgpu: add _dw to max_ib_size variable for code readability
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26612 >
2023-12-12 06:14:22 +00:00
Timothy Arceri
5147e9a26e
glsl: combine shader stage loops in linker
...
The gs validation that was run between these loops can be run after
merging them without any issue.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26628 >
2023-12-12 02:28:33 +00:00
Timothy Arceri
5d98592e04
mesa/st: drop additional validate_ir_tree() call
...
This is not needed. validate_ir_tree() is called at the end of the
glsl ir linker and the IR is not modified again after so we can
drop this.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26628 >
2023-12-12 02:28:33 +00:00
Timothy Arceri
fe44414662
glsl/st: move remaining glsl ir lowering to linker
...
This is a tidy up but also allows us to drop an additional
validate_ir_tree() call.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26628 >
2023-12-12 02:28:33 +00:00
Timothy Arceri
f4a8aa653d
glsl/st: move has_half_float_packing flag to consts struct
...
Moving this out of the state tracker will allow us to move its user
directly to the glsl linker in the folowing patch.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26628 >
2023-12-12 02:28:33 +00:00
Karol Herbst
8af15359e3
rusticl: use rust.proc_macro for proc macros
...
Should fix a few issues in regards to cross compilation and maybe other
things. This requires meson-1.3.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26636 >
2023-12-12 00:21:40 +00:00
Karol Herbst
280dde8c23
rusticl: bump meson req
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26636 >
2023-12-12 00:21:40 +00:00
Karol Herbst
2d80240220
ci/fedora: bump to meson 1.3.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26636 >
2023-12-12 00:21:40 +00:00
Rob Clark
1188b218c6
freedreno: Implement PIPE_CAP_TIMER_RESOLUTION
...
Perhaps it should use div_round_up() unlike normal timestamp conversion,
but this is close enough and it makes the connection to the 19.2MHz RBBM
counter more obvious.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26640 >
2023-12-11 23:46:26 +00:00
Rob Clark
659e557676
freedreno: Fix timestamp conversion
...
The kernel returns the 19.2MHz RBBM counter, same as what is used for
timestamp queries. So it needs to be converted the same way.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26640 >
2023-12-11 23:46:26 +00:00
Rob Clark
2284d1c42f
freedreno: De-duplicate 19.2MHz RBBM tick conversion
...
The 19.2MHz always-on counter is universal across generations, so
de-duplicate.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26640 >
2023-12-11 23:46:26 +00:00
Karol Herbst
e6249f97f1
rusticl: implement cl_khr_subgroup_shuffle and shuffle_relative
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26504 >
2023-12-11 23:08:51 +00:00
Karol Herbst
7e78802028
clc: add support for cl_khr_subgroup_shuffle and shuffle_relative
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26504 >
2023-12-11 23:08:51 +00:00
Karol Herbst
a217eb111c
radeonsi: lower 64bit subgroup shuffle to 32 bit
...
This option only affects 64 bit values and is needed by OpenCL.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26504 >
2023-12-11 23:08:51 +00:00
Karol Herbst
9fbcc7987f
radeonsi: lower relative shuffle subgroup ops
...
This will be needed by rusticl to support the relevant CL extensions.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26504 >
2023-12-11 23:08:51 +00:00
Sil Vilerino
83624659c5
meson: Only build WGL for Windows platform when opengl option is active
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26638 >
2023-12-11 22:32:08 +00:00
Eric Engestrom
c51e40dd8b
spirv: add missing build dependency
...
Fixes: 59a72570b6 ("compiler: Move spirv into a module of its own")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10277
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26624 >
2023-12-11 21:47:37 +00:00
Yiwei Zhang
88c5affacf
driconfig: add a workaround for Hades (Vulkan backend)
...
Vulkan backend of Hades can only handle at most 3 swapchain images.
It affects all drivers after below commit:
04d654a5d0
and then only affects specific driver backend which enables
extra_xwayland_image in wsi device options after below commit:
c1a62476ac
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Renato Pereyra <renatopereyra@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26607 >
2023-12-11 19:40:09 +00:00
Ian Romanick
7fce0a5598
nir: Handle divergence for decl_reg
...
Once decl_reg is handled, src[0].ssa->divergent will be properly set, so
load_reg and load_reg_indirect do not need special treatment.
shader-db can run to completion on HSW, IVB, and SNB now. No other
testing was done.
v2: Refactor nir_intrinsic_load_reg and nir_intrinsic_load_reg_indirect
handling. Suggested by Daniel Schürmann.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Fixes: 4fd257d20f ("nir: Properly handle divergence for load_reg")
Fixes: 6dbb5f1e07 ("intel/fs: rerun divergence analysis prior to convert_from_ssa")
Closes : #10233
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26436 >
2023-12-11 17:10:51 +00:00
Jesse Natalie
7cd0553572
microsoft/clc: Flip on capabilities to prevent warning spew
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26582 >
2023-12-11 16:28:29 +00:00
Jesse Natalie
37c0e8beda
compiler/clc: Don't fail to parse SPIR-V if there's no kernels
...
It's valid to have library SPIR-V being parsed that has no entrypoints.
We still want to get spec constant info for them.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26582 >
2023-12-11 16:28:28 +00:00
Faith Ekstrand
3955e596df
nak: Implement fmulz and ffmaz
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10261
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569 >
2023-12-11 15:29:17 +00:00
Faith Ekstrand
ce8d966085
nak: Set .ftz on f32 ops by default
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569 >
2023-12-11 15:29:17 +00:00
Faith Ekstrand
aac1e3f595
nir: Add a new has_fmulz_no_denorms flag
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26569 >
2023-12-11 15:29:17 +00:00
Erik Faye-Lund
a8b68badd5
mesa/st: use _mesa_is_zero_size_texture-helper
...
No need to repeat the logic.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418 >
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
3123e4ffeb
mesa/main: remove unused function
...
Let's just remove it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418 >
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
b84117b272
mesa/main: use _mesa_is_zero_size_texture-helper
...
No need to repeat this logic.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418 >
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
9e69dfbfed
mesa/main: remove unused ClassID
...
This was probably useful in the past when we had DRI drivers, but it's
only ever written now. Let's get rid of it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418 >
2023-12-11 12:23:19 +00:00
Erik Faye-Lund
c67e6ea4c1
mesa/main: remove unused Log2 variants of width/height/depth
...
These are unused, and the comments about the relationships between it an
the other variants seems to be seriously outdated. Let's get rid of it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26418 >
2023-12-11 12:23:19 +00:00
David Heidelberg
81be60a233
docs: drop unused manual optimizations override
...
Fixes: ed4fd1d90e ("util: cleanup cpuinfo.* and it's related files")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26620 >
2023-12-11 12:05:03 +00:00
Daniel Schürmann
dd7b6898e6
radv: fix number of physical SGPRs on GFX10+
...
This change has no effect.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521 >
2023-12-11 10:39:51 +00:00
Daniel Schürmann
5ebba87772
aco: rename max_wave64_per_simd -> max_waves_per_simd
...
and update usage. Changes are because the scheduler targets
a different number of waves.
Totals from 195 (0.25% of 79330) affected shaders: (GFX11)
MaxWaves: 3120 -> 3108 (-0.38%)
Instrs: 71202 -> 71070 (-0.19%); split: -0.27%, +0.09%
CodeSize: 383272 -> 382828 (-0.12%); split: -0.21%, +0.10%
VGPRs: 7392 -> 7752 (+4.87%)
Latency: 2280141 -> 2262487 (-0.77%); split: -0.79%, +0.02%
InvThroughput: 4759022 -> 5725442 (+20.31%); split: -0.01%, +20.32%
VClause: 1737 -> 1741 (+0.23%); split: -3.11%, +3.34%
SClause: 2385 -> 2376 (-0.38%); split: -0.80%, +0.42%
Copies: 5257 -> 5274 (+0.32%); split: -0.25%, +0.57%
Branches: 1213 -> 1212 (-0.08%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521 >
2023-12-11 10:39:50 +00:00
Daniel Schürmann
f5bdc46a57
amd: rename max_wave64_per_simd -> max_waves_per_simd
...
These are hard limits and don't depend on wave size.
Accordingly, also update the usage in order to avoid
reporting unreasonable occupancy.
Totals from 192 (0.24% of 79330) affected shaders:
MaxWaves: 5814 -> 3072 (-47.16%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26521 >
2023-12-11 10:39:50 +00:00
Samuel Pitoiset
ac20c70e9d
radv: promote EXT_calibrated_timestamps to KHR
...
All functionality are similar.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26596 >
2023-12-11 08:26:20 +01:00
Samuel Pitoiset
c9e1758462
vulkan: bump headers/registry to 1.3.273
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26596 >
2023-12-11 08:26:02 +01:00
M Henning
9d162de9a0
nak: Enable loop unrolling.
...
This brings The Talos Principle from 9 to 18 fps on my machine.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26626 >
2023-12-11 01:40:55 +00:00
M Henning
e87cca7717
nak: Clamp negative texture array indices to zero
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26626 >
2023-12-11 01:40:55 +00:00
Faith Ekstrand
888f09eca8
nvk: Rework the way we set up memory heaps/types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26627 >
2023-12-10 18:31:31 -06:00
Faith Ekstrand
18ae2d1878
nvk: Throw Tegra behind NVK_I_WANT_A_BROKEN_VULKAN_DRIVER
...
It's recieved very little testing and what testing it has recieved
indicates that synchronization is pretty badly broken. Let's turn it
off for users by default right now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26627 >
2023-12-10 18:27:43 -06:00
Echo J
9ca9b67446
nvk: Set HOST_CACHED_BIT for the GTT type
...
vkd3d-proton requires this memory bit in various cases (adding
it to the GTT memory type significantly reduces failures in the
vkd3d-proton test suite) 🐸
I'm not sure if Tegra supports this bit though so I'm not adding it
to the VRAM-less path (hopefully someone can provide an actual answer)
The next step would be adding HOST_VISIBLE bit to the VRAM type (this
will likely require more work and maybe even some KMD changes) which
would make gamescope work (Faith said that DXVK benefits from it too)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26621 >
2023-12-10 17:57:38 +02:00
Marek Olšák
9ab59574ef
gallium: add typedef pipe_draw_func matching the draw_vbo signature and use it
...
We've copied the signature too many times already. This will also be used
more.
It intentionally deviates from the name by not including the "_vbo" part.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:14 +00:00
Marek Olšák
7f11272d29
mesa: execute an error path sooner in _mesa_validated_drawrangeelements
...
Also don't print the warning in release builds.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
4f766426b2
cso: inline cso_get_pipe_context
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
7da5b8dac0
cso: do cso_context inheritance how we do it elsewhere
...
Currently, we have:
- cso_context_base is the base class, but cso_context is passed to functions
- cso_context is the derived class
Change:
- cso_context to become the base class, and is passed to functions
- cso_context_priv to become the derived class.
mesa/main will need to access the base class directly.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
3b16541a8f
mesa: move index bounds code (st_prepare_indexed_draw) into draw.c
...
there is no other user
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
c6281a6f26
st/mesa: no need to check index_size in st_prepare_indexed_draw anymore
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
4cd585ab50
mesa: call st_prepare_(indexed_)draw before Driver.DrawGallium(MultiMode)
...
This is refactoring for future work. Also, it unifies the st_draw_feedback
path with the normal path and the "indexed" version doesn't have to be called
in many places.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
8cbab48403
mesa: inline st_draw_transform_feedback
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
b14e26b198
st/mesa: make prepare_(indexed_)draw non-static
...
for later use
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
cf951bace2
mesa: remove non-relevant 16-year-old comment
...
The comment has nothing to do with the code around it and all uploads
are handled by u_vbuf today.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
360166c6f4
mesa: remove more DrawArrays/Elements duplication
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
2b8d764a76
mesa: remove some DrawElementsInstanced duplication
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Marek Olšák
23227954bc
mesa: remove some DrawTransformFeedback duplication
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26619 >
2023-12-10 06:20:13 +00:00
Faith Ekstrand
df62471fef
nvk: CBuf alignment reduces to 64B on Turing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
289149ebcb
nvk: Simplify alignment limit plumbing
...
We dont't need this whole function just for advertising alignment
requirements. We now have enough #defines and helpers that they map
pretty cleanly to those.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
08222146ac
nak: Reduce minStorageBufferAlignment
...
The only real requirement here is that we can load an entire vec4 at a
time without getting a misaligned address.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
35a40b4c6a
nvk: Add an NVK_MIN_TEXEL_BUFFER_ALIGNMENT #define
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
b7f8a9e648
nvk: Add a nvk_min_cbuf_alignment() helper and use it
...
We want to be able to use cbufs for UBOs and descriptor buffers going
forward. This also cleans up alignments all over the code-base where
just kinda did whatever seemed like a good idea at the time. The result
is a lot more flexible and accurate.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
bc236acff5
nvk: Plumb a physical device into descriptor_stride_align_for_type
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
c7de8afbe0
nvk: s/device/dev in nvk_descriptor_set_layout.c
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Faith Ekstrand
700d5c56d1
nvk: Make NVK_DEBUG=push an alias for push_dump
...
This has been bothering me for a while. I can never remember whether
it's push_dump or dump_push. Let's just get rid of the confusion.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26617 >
2023-12-10 03:06:01 +00:00
Alyssa Rosenzweig
d11c9f9836
asahi: clamp draw count for mdi
...
spec req. KHR-GL43.indirect_parameters_tests.MultiDrawArraysIndirectCount
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
fdec9dcf05
asahi: wire up hardware gl_PrimitiveID
...
when FS reads but no GS in the pipeline, the hw supplies for us. fixes
KHR-GL43.shader_image_size.basic-*-fs-*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
1e2de134ad
asahi: respect render condition for compute
...
KHR-GL43.compute_shader.conditional-dispatching
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
1a39d1c73a
asahi: allow more format reinterpretation
...
This seems to be the hw rule... would like to confirm with perf counters
though...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
e69a0f830e
asahi: fix size calculation for 2d msaa arrays
...
otherwise the hw can overprefetch. fixes KHR-GL42.shader_image_load_store.basic-allTargets-load-ms
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
982e644d18
agx: don't produce split of immediate
...
can't be consumed, affects KHR-GL42.shader_image_load_store.basic-allTargets-load-ms
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6e2c71dc3b
agx: Lower 64-bit I/O to 32-bit
...
Fixes KHR-GL42.vertex_attrib_64bit.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
d6474be46b
agx: fix fp64 lowering options
...
we have no fp64 whatsoever.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
8d451fe9f2
asahi: fix integer RT clamping
...
fixes the rest of KHR-GL33.packed_pixels.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
01d0fb1cde
asahi: fix pbe swizzling
...
fixes cases in KHR-GL33.packed_pixels.rectangle.*. matches what the powervr
driver does.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6d05bf8761
asahi: fix dupe rgb65 formats
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
b68caa13e4
asahi: add more BGR formats
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
c89f0becf7
asahi: Implement ARB_cull_distance
...
Passes KHR-GL33.cull_distance.* and the piglits.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
ba077d899e
asahi: handle compact clip/cull in gs component gather
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
f02190b688
asahi: prepare gs copy shaders for compact clip/cull
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0dc004888c
asahi: handle some components/offsets in GS lowering
...
occurs for compact clip/cull xfb. not hard to deal with, do so instead of
getting caught up in assertions.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
17f348f73a
asahi: Implement ARB_viewport_array
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
af9241ce92
asahi: add XML for multiple viewports
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
3435ccb49a
asahi: allow empty scissor box
...
we can't cull on the cpu when we have a scissor array, so don't try.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
bb59c787ec
agx: report if we have a nonzero viewport
...
so driver can optimize.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
bc7afbf23d
agx: allocate varying slot if writing viewport only
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
643acacd1b
agx: note that sample_mask runs occlusion queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
79e58e1d77
agx: handle force early-z + discard
...
fixes ./arb_shader_image_load_store-early-z. experimentally, an opaque pass type
works too but better match what the blob does.
also, I now have proof that sample_mask triggers occlusion query updates because
if you run it multiple times, you get >1 hits per fragment in a counting query
:p
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
3987c8a35f
agx: remove spurious z/s writes in force early-z shaders
...
fixes crash in arb_shader_image_load_store-early-z
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
c43c90a5fa
asahi: rewrite pointsize handling
...
In the wise words of Mike Blumenkrantz, "I hate gl_PointSize and so can you".
The mesa/st lowering won't mesh well with vertex shader epilogues, and it falls
over in various circumstances. I am too tired to go against the grain, so let's
just pretend to be a normal gallium driver and trust in the rasterizer CSO,
lowering point size internally. This properly handles transform feedback without
any hacks, both GL and GLES behaviours, etc.
Fixes:
KHR-GL31.transform_feedback.capture_vertex_separate_test
gl-2.0-large-point-fs
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
aa1849a541
asahi: assert hw invariant
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
23f216d6e7
asahi: Lower edge flags
...
With the common geometry shader based lowering added for zink. Fixes edge flag
related piglits.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
f4a648c607
asahi: Unroll GS/XFB primitive restart on the GPU
...
..and fix bugs versus the CPU unroll while we're at it. CPU based unrolling is
invalid in Vulkan, but this slow-as-dogs GPU unroll is ok.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
15957219ad
agx: rework libagx linking a bit
...
for correctness with generic ptrs, avoids splat with the next patch.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
4a4c6d1bc6
agx: Avoid scratch mem with tri strip w/ adjacency
...
with restart unroll kernel where nir fails to optimize this away without a
little help from us.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
7f9ef5b176
agx: fix VARYING_SLOT_COL0 getting flatshaded
...
it's a bit mask.
didn't fix the piglit i was debugging :-(
but did fix the shadow glitching out in neverball.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6437578435
asahi: add xml for flatshading fans
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
403a20a9f2
asahi: rework cf binding xml
...
for flat shading of fans.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
2fec6bf951
asahi: fix tri fan enum
...
from tracing macos. fixes piglits:
spec@!opengl 1.1@gl-1.1-drawarrays-vertex-count 100000 varray gl_triangle_fan
spec@!opengl 1.1@gl-1.1-drawarrays-vertex-count 100000 vbo gl_triangle_fan
spec@!opengl 1.4@triangle-rasterization-overdraw
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6ae72a2f2a
asahi: Support L/A/I formats for texture buffers
...
mesa/st doesn't know how to emulate them. Fixes
arb_texture_buffer_object-formats.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
5b33c74626
agxdecode: fix stack smash with border colour
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
a8857028bb
asahi: add static assert
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
2be37d1c96
asahi: double depth bias
...
fixes gl-1.4-polygon-offset, other drivers do this too.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
3af825ed96
asahi: move heap alloc to first use
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0fa7252d8a
asahi: Implement multidraw indirect
...
GS only for now (inserting a passthru GS if needed). This should be optimized
later, but it's ~correct.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
5987e47a29
asahi: rework GS input assembly
...
in prep for tessellation (which will share the IA lowering), and for multidraw
indirect (which greatly complicates IA lowering with geom/tess).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
a816350d95
asahi: force GS for indirect prim gen query
...
removes one more indirect cpu fallback (invalid in vulkan)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0805fef082
asahi: make UB easier to see
...
would've saved us
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
a12d2689d8
asahi: rm unnecessary uniform upload for GS
...
already done in launch gs.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
2220044ca2
asahi: remove dead declarations
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
9c66ae9b36
asahi: use agx_push
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
4d48574bd7
asahi: collapse unreachable condition
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
09e46aa168
asahi: add agx_push macro
...
Thanks, Ella!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
31b1bdb475
asahi: fix destroy_query leaving dangling references
...
this was fixed for occlusion queries already, but other queries have equivalent
issues.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
2d8a714f9c
asahi: choose staging bind better
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
5257283941
asahi: use correct target packing PBE
...
harmless, but more correct.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
a3ae9e1a59
asahi: fix layout transitions with arrays
...
don't minify the layer count for non-3D!
Affects: dEQP-GLES31.functional.copy_image.*array
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Asahi Lina
25d185a501
ail: Fix tile size & strides for compressed textures
...
Compressed textures have two additional quirks that affect the tiling
code (but not the mip offsets): they get extra stride padding in some
cases for the large miptree, and the tile size is based on the POT size
and not the real size for the small miptree.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Asahi Lina
be3890a898
ail: Add explicit specification of mip level strides
...
For compressed textures, mip levels > 0 can have additional stride
padding. This (in some cases) affects the tile stride calculation, so it
cannot be implicitly represented with the existing members.
Add an explicit array containing the stride, in elements, of each
miptree level. The tiling code uses this instead of the minified and
element-aligned width when computing tile addressing.
This commit should be a functional no-op.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Asahi Lina
2221eb6cec
ail: Fix miptree offset generation for compressed textures
...
For compressed textures, the POT miptree starting size is calculated
backwards (POT then minify instead of minify then POT).
In addition, the existing POT miptree start level code does not work for
compressed textures. Due to the extra block alignment requirement each
step of the way, we can no longer get away with nice log-based O(1)
math. Switch to a loop. This should be equivalent for uncompressed
textures, but yields different results with compression (element size >
1x1).
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Alyssa Rosenzweig
5382f57e81
asahi: advertise ARB_shader_texture_image_samples
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Alyssa Rosenzweig
bc6b2d087b
agx: wire up texture_samples/image_samplers
...
CL makes this too easy, lmao
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Karol Herbst
6979a1aa07
nir/opt_preamble: make load_workgroup_size handling optional
...
not all drivers support it being in the preamble, e.g. asahi.
Signed-off-by: Karol Herbst <git@karolherbst.de >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
i509VCB
3ddb07c36b
asahi,docs: add PBE to hardware glossary
...
Signed-off-by: i509VCB <git@i509.me >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
47337e7918
asahi: Implement draw parameters
...
This is the easy part, passes the piglits.
---
N.b.: this also includes a bug fix for ARB_base_instance that would be
nontrivial to extract out, so I'm backporting the whole feature for release. How
terrible, more features :-P
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
31f1ef0a79
asahi: Early out for GS + rast discard
...
Reduces overhead for XFB.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
2129fe30bc
asahi: use GS for first-provoking fans
...
workaround hw bug / missing feature, in a vk compliant way.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
e10e21120b
asahi: Rotate tri fans based on provoking vtx
...
I don't have a spec citation for the rotation but it's implied by the GL and VK
specs taken together with piglit.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
5bae4bfc8c
asahi: defeature quads
...
fixes xfb piglits. i am not paid enough to care.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
decd134c0c
asahi: fix xfb of pointsize when not drawing points
...
stupid case.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
9d1a0f11e2
agx: Fix flatshading of matrices
...
Fixes dEQP-VK.glsl.conversions.scalar_to_matrix.float_to_mat4_vertex
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
9fc23df0d5
asahi: flush before resource transition
...
otherwise data_valid is not valid! fixes arb_shader_image_load_store-bitcast
and who knows what else.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
e637ccff36
asahi: blit with the old format when transitioning
...
dest is uncompressed, it can take it. but src is compressed so we don't want to
view. bugfix by inspection
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
9031f04642
asahi: minify when blitting for transition
...
asahi version of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26077/diffs
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
a0485292af
asahi: bump glsl version
...
should work and fixes a buggy test falling over due to missing gpu_shader5
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
2ad5bcc41e
asahi: fix output to non-rast streams
...
fixes arb_gpu_shader5-emitstreamvertex_nodraw
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
79e37f7581
asahi: implement xfb stream queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
0099315edf
asahi: fix meta usc builder allocation
...
otherwise can usc overflow (caught by the usc builder validation :) )
fixes clearbuffer-mixed-format
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
f82264fec0
asahi: return GL_OOM for excessive image sizes
...
fixes piglit max-texture-size
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
fd91d46487
ail: handle >4GiB textures
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
7a7a3b8847
asahi: defer texture packing to draw-time
...
needed for correctness with layout transitions.
fixes arb_shader_image_load_store-host-mem-barrier
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
b74d2dcd57
asahi: use 2D descriptors for cubes
...
fixes arb_shader_image_load_store-invalid case imageLoad/address bounds test/imageCube/rgba32f
this is also better codegen since it avoids the wacko division by 6. although it
creates a div by 6 in imageSize, that's better because that one is much more
likely to hoist to the preamble. probably should've done this from the start.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
86c4a72767
asahi: rm compact image atomic descriptors
...
these cause robustness problems -- since the target type might not match the
shader for invalid apps -- and are a dubious microoptimization. can revisit
later. for now, fixes imageAtomic*/target mismatch test.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
b13e3adb04
asahi: fix imageSize of null image
...
Fixes faulting in imageAtomicAdd/unbound image test.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
0cd032e4bb
asahi: Be robust with arrays of images
...
fixes imageLoad/index bounds test subcase.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
b0f4b0a9ef
asahi: handle null PBE
...
fixes some subcases of arb_shader_image_load_store-invalid
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
c73d7d042c
asahi: fix dirty tracking fail with point sprites
...
fixes arb_point_sprite-checkerboard
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
683dac24b2
asahi: be robust about null xfb
...
fixes arb_enhanced_layouts-transform-feedback-layout-qualifiers tests.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
3ac44d8c5e
asahi: remove bogus assertion
...
replace with optional debug flag for retaining debugability but getting
conformant behaviour by default. fixes piles of piglit crashes.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
e3c528068f
asahi: bump limits
...
fixes gl-3.3-minmax.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
84a8324c55
asahi: handle self blits
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
de6336381b
asahi: clamp clear colours
...
fixes arb_texture_view-rendering-formats_gles3
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
acd095f03d
asahi: init clear colour between batches
...
should be a noop, but safer
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Janne Grunau
2cceacdb8e
asahi: Fix typo in arch check in agx_get_gpu_timestamp
...
Signed-off-by: Janne Grunau <janne-fdr@jannau.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
4ff78407f7
asahi: Sync heap size
...
Hot fix... gpu alloc needs bigger reworks but that's probably not going to
happen until tess is done & we can see the whole picture.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
afb60d7707
asahi: fix index bias with GS/XFB
...
noticed when bringing up mdi.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Asahi Lina
45ef977481
asahi: Add extra barrier for texture atomics on G13X
...
Found experimentally. Fixes
KHR-GLES31.core.texture_buffer.texture_buffer_atomic_functions on G13D.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Asahi Lina
376c2697dc
asahi: Add more memory barrier opcodes
...
These are used by the helper program, and at least one experimentally
fixes texture atomics on G13X.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
c507f4a330
asahi: Identify bicubic filtering mode
...
Officially undocumented but supported by MSL.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
58d6374b4c
asahi: Identify Primitive ID frag input
...
With a name from powervr :)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
0cb6a993a8
asahi: Add XML for hw tessellation
...
AFAICT, there's no way to use this with...
* transform feedback
* geometry shaders
* isolines
* points mode
...so it's not terribly useful to us. But worth knowing it exists.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
2c328f4f8a
asahi: Add half float type to genxml
...
Used with the tessellator.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
3da3b18d0c
asahi: Quiet clang warning
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
033bb91468
asahi/decode: Decode multiple macOS commands
...
We get a CDM+VDM pair for OpenGL tess, decode them all for better r/e.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Asahi Lina
1b1a0e0ce7
asahi: Move USC cache flush to agx_batch_init_state
...
This shouldn't make a difference, but it's cleaner to do it here, since
then we don't have to check whether we have any draws.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Asahi Lina
5a9136a0ef
asahi: Add extra CDM barrier bit for G13X
...
I don't know if we need the other bits yet. I'm assuming the logic here
is the same as we used to use for VDM...
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Asahi Lina
c20210c643
asahi: Fix CDM Launch/Barrier naming
...
"Launch" is actually just a barrier, and it seems likely to use the same
bit assignments as in VDM...
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
412922ed73
agx: Hotfix for stack_adjust in GS
...
Spurious, turn this off for now, it's inert rn anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Rhys Perry
33f4e947d8
vulkan/wsi: fix win32 compilation
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Fixes: d7938de8fe ("vulkan/wsi: don't support present with queues where blit is unsupported")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26610 >
2023-12-09 11:56:32 +00:00
Eric Engestrom
48b410731d
freedreno/ci: move hang-y a630 jobs from pre-merge to nightly
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26609 >
2023-12-09 09:49:56 +00:00
Eric Engestrom
40bdb757af
a630/ci: add another flake
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52554248
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26602 >
2023-12-09 09:13:23 +00:00
Rhys Perry
d7938de8fe
vulkan/wsi: don't support present with queues where blit is unsupported
...
Since we might have to perform a copy, video and sparse queues cannot be
used to present.
Attempting to create a command buffer on RADV for the sparse binding queue
causes a crash.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 748b7f80ef ("radv: Move sparse binding into a dedicated queue.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26523 >
2023-12-09 07:37:44 +00:00
Qiang Yu
43d83cfcf9
radeonsi: fix legacy merged LS/ES workgroup size for aco compilation
...
This is for ACO handling of nir_load_local_invocation_index, which will not
add (wave_id * wave_size) if workgroup size <= wave size. So merged shader
LS/ES need to set workgroup size too.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26560 >
2023-12-09 06:19:49 +00:00
Marek Olšák
e6b723ccce
mesa: fix _mesa_matrix_is_identity
...
Fixes: d321b1500b - mesa: optimize _mesa_matrix_is_identity
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26599 >
2023-12-09 02:08:18 +00:00
Timur Kristóf
8e77da1f21
radv: Implement vkCmdUpdateBuffer on transfer queues.
...
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/26580 >
2023-12-09 01:49:13 +00:00
Timur Kristóf
635c81f723
radv: Implement buffer copies on transfer queues.
...
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/26580 >
2023-12-09 01:49:13 +00:00
Timur Kristóf
a632024700
radv: Implement vkCmdWriteBufferMarker2AMD on transfer queues.
...
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/26580 >
2023-12-09 01:49:13 +00:00
Timur Kristóf
7a4f535145
radv: Implement vkCmdWriteTimestamp2 on transfer queues.
...
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/26580 >
2023-12-09 01:49:13 +00:00
Timur Kristóf
32dd77ea2d
radv: Implement vkCmdFillBuffer on transfer queues.
...
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/26580 >
2023-12-09 01:49:13 +00:00
Timur Kristóf
23590a4e98
radv: Implement barriers for transfer queues.
...
The current flush flags in RADV don't really match the SDMA HW,
so just always emit a NOP packet, for 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/26580 >
2023-12-09 01:49:13 +00:00
Juston Li
4f2b4b81d1
venus: fix query feedback copy sanitize off by 1
...
Copy sanitization incorrectly included +1 range of the reset.
Eg Reset Query=0 QueryCount=5 is [0,5) exclusive, not [0,5] inclusive.
Fixes: 5b24ab91e4 ("venus: switch to unconditionally deferred query feedback")
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26603 >
2023-12-09 01:32:05 +00:00
Marek Olšák
57e658d041
radeonsi: rework how guardband registers are updated to decrease overhead
...
See the code comments.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:28 +00:00
Pierre-Eric Pelloux-Prayer
2e50b6677b
radeonsi: update guardband if vs_disables_clipping_viewport changes
...
Because the guardband state depends on this value.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:28 +00:00
Marek Olšák
2f281b39ab
ac/gpu_info: fix printing radeon_info after adding VPE
...
Fixes: 3ec397819e - amd: add new hardware ip for vpe
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:28 +00:00
Marek Olšák
11fcd58957
radeonsi: convert rasterizer state to tracked registers
...
Most of these registers don't change, so we should not set them when they
don't. This reworks the rasterizer state to use a custom emit function and
eliminate redundant register changes. This required merging the poly_offset
state into the rasterizer state and change how the poly offset state is
updated.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
cabf927765
radeonsi: convert depth-stencil-alpha state to tracked registers
...
Some of these registers don't change, so we should not set them when they
don't. This reworks the DSA state to use a custom emit function and
eliminate redundant register changes.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
17e01a9a9b
radeonsi: merge context_reg_saved_mask and other_reg_saved_mask into a BITSET
...
There will be more than 64 context registers that we'll need to track,
so use BITSET for all of them.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
fb994f44d9
util: make BITSET_TEST_RANGE_INSIDE_WORD take a value to compare with
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
6d2a7f53ac
radeonsi: decrease NUM_INTERP if export formats/colormask eliminated PS inputs
...
This adds a pass that removes output stores. It's called before NIR
optimizations that are before PS lowering, which will cause it to remove
PS inputs from register settings.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
bd700bace5
radeonsi: update comments about uniform inlining
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
dbea0f51a3
radeonsi: decrease NUM_INTERP if uniform inlining eliminated PS inputs
...
This should improve performance when that happens.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
1d4402b02a
radeonsi: don't include the PARAM_GEN input in si_shader_info
...
It's only produced by lowering point smoothing.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
197af03698
radeonsi: add PS input info into si_shader_binary_info
...
It will be modified to reflect PS inputs after uniform inlining.
For now, it's just a copy of selector->info.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
3faa9ba06b
radeonsi: gather lowered color inputs for monolithic PS
...
This also adds missing io_semantics to the input loads that the gathering
expects.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
94e0a1267e
radeonsi: change the signature of si_nir_lower_ps_color_input
...
This will be needed later.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
7d2faa88ab
nir,radeonsi: add FLAGS into load_vector_arg_amd to record color input usage
...
This will be needed for gathering color usage from lowered PS.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
00dd4d400e
ac,radeonsi: rename pos_inputs -> fragcoord_components
...
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
4f2b794e98
radeonsi: track NIR progress properly for optimizations in si_get_nir_shader
...
Just a small code size decrease in 12 shaders.
TOTALS FROM AFFECTED SHADERS (12/58918)
SGPRS: 600.00 -> 600.00 (0.00 %)
VGPRS: 528.00 -> 520.00 (-1.52 %)
Spilled SGPRs: 0.00 -> 0.00 (0.00 %)
Spilled VGPRs: 0.00 -> 0.00 (0.00 %)
Private memory VGPRs: 0.00 -> 0.00 (0.00 %)
Scratch size: 0.00 -> 0.00 (0.00 %) dwords per thread
Code Size: 39772.00 -> 39688.00 (-0.21 %) bytes
Max Waves: 180.00 -> 180.00 (0.00 %)
Outputs: 0.00 -> 0.00 (0.00 %)
Patch Outputs: 0.00 -> 0.00 (0.00 %)
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
e1e35112c8
winsys/amdgpu: bypass GL2 for command buffers
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
c77bcf00a3
radeonsi/gfx11: prefer Wave64 for VS/TCS/TES/GS because it's slightly faster
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
257f07f499
radeonsi: clean up how debug flags and shader profiles determine the wave size
...
- remove DBG_W32_PS_DISCARD
- just return the wave size instead of setting local variables dbg_wave_size
and profile_wave_size
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
716b521515
radeonsi/gfx11: disable the shader profile for Medical that disables binning
...
GFX11 performs better with the default behavior.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
f85488824e
radeonsi/gfx11: disable the shader profile for Medical that forces Wave64
...
GFX10 should keep using it, but not GFX11.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
65b3b0b355
radeonsi/gfx11: prefer Wave64 for PS without inputs for better VALU perf
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
48ce5fbaa1
radeonsi: group most vertex element fields
...
fix_fetch and vertex_buffer_index can't be grouped because we do
memcmp on those arrays
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
7fa0ee15df
radeonsi: set OOB_SELECT for VBOs in si_create_vertex_elements
...
we can do this since the stride is in the CSO now
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
55d81214c9
radeonsi: replace gl_FrontFacing with a constant if one side is always culled
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
1afe6f3321
radeonsi: don't print the preamble state separately for GALLIUM_DDEBUG
...
because it's always printed as part of command buffers.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
9e76459616
radeonsi: execute streamout_begin after cache flushes
...
so that si_emit_streamout_begin can assume that cache flushes have
finished.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
2022854360
radeonsi/gfx11: skip si_set_streamout_enable because it has no effect
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
bf7debee82
radeonsi: in bind_{blend,rs}_state, only call 1 update function per if
...
Also don't use "key.ps.part.prolog.color_two_side" during updates
because it would depend on the order the update functions are called,
which is not a problem now, but it's a trap for the future.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
53aa36772a
radeonsi: rewrite si_get_total_colormask as si_any_colorbuffer_written
...
The result is only used as bool.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
e2b817b948
radeonsi: rewrite how shader key bits dependent on current_rast_prim are updated
...
Don't set do_update_shaders every time current_rast_prim changes, which can
be EVERY DRAW. Instead, just update the shader key bits and set
do_update_shaders only if any bits are different.
When we bind a new rasterizer state, do the same.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
4ab5374ec3
radeonsi: clean up setting poly/line/stipple shader key bits
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
f9c4ac3477
radeonsi: update shaders for rasterizer state only if the shader key changed
...
Check if any key bit changed before setting do_update_shaders.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
613ea16aab
radeonsi: update shaders for blend state only if the shader key changed
...
Check if any key bit or state changed before setting do_update_shaders.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
c8411ddf17
radeonsi: change the low-priority compiler queue to normal priority
...
I'm guessing that low priority could cause us to get optimized shaders later
than we need.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
98e7a7123b
radeonsi: don't set non-existent VGT_GS_MAX_PRIMS_PER_SUBGROUP on gfx10
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Marek Olšák
f51b960af1
radeonsi/gfx11: fix unaligned SET_CONTEXT_PAIRS_PACKED
...
It set an invalid register. Luckily it didn't cause any issues.
Fixes: 2ac6816b70 - radeonsi/gfx11: use SET_CONTEXT_REG_PAIRS_PACKED for other states
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307 >
2023-12-09 00:05:27 +00:00
Paulo Zanoni
af65af8267
intel/tools: fix compilation of intel_hang_viewer on 32 bits
...
Because gcc was complaining:
../../src/intel/tools/intel_hang_viewer.cpp: In function ‘void display_hang_stats()’:
../../src/intel/tools/intel_hang_viewer.cpp:365:31: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘std::vector<hang_bo>::size_type’ {aka ‘unsigned int’} [-Werror=format=]
365 | ImGui::Text("BOs: %lu", context.bos.size());
| ~~^ ~~~~~~~~~~~~~~~~~~
| | |
| long unsigned int std::vector<hang_bo>::size_type {aka unsigned int}
| %u
../../src/intel/tools/intel_hang_viewer.cpp:366:31: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘std::vector<hang_exec>::size_type’ {aka ‘unsigned int’} [-Werror=format=]
366 | ImGui::Text("Execs %lu", context.execs.size());
| ~~^ ~~~~~~~~~~~~~~~~~~~~
| | |
| long unsigned int std::vector<hang_exec>::size_type {aka unsigned int}
| %u
../../src/intel/tools/intel_hang_viewer.cpp:367:31: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘std::vector<hang_map>::size_type’ {aka ‘unsigned int’} [-Werror=format=]
367 | ImGui::Text("Maps: %lu", context.maps.size());
| ~~^ ~~~~~~~~~~~~~~~~~~~
| | |
| long unsigned int std::vector<hang_map>::size_type {aka unsigned int}
| %u
cc1plus: some warnings being treated as errors
I'm not sure if STL's size_type is defined by the spec to be anything
specific, but for the platforms we care about it seems to be size_t,
so change it to %z.
Fixes: 33fd93f3b1 ("intel/tools: hang viewer/editor")
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/26581 >
2023-12-08 22:53:03 +00:00
Eric Engestrom
b0ad9995d6
v3dv/ci: only trigger on relevant changes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26597 >
2023-12-08 22:19:50 +00:00
Matt Turner
6d2be84672
ci/lava: Add firmware-misc-nonfree on amd64
...
Hopefully this provides the GuC firmware files we need for testing on
Intel ADL+ boards.
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9841
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25792 >
2023-12-08 21:25:12 +00:00
Rob Clark
2132f95de0
freedreno/a6xx: Fix NV12+UBWC import
...
Treat R8_G8B8_420_UNORM and NV12 the same, because dri2 frontend doesn't
understand or care about the difference from the sampler PoV.
Fixes: 1e820ac128 ("freedreno: Rework supported-modifiers handling")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26601 >
2023-12-08 21:06:05 +00:00
Sagar Ghuge
708d4f59f8
anv: Use RCS cmd buffer if blit src/dest has 3 components
...
The Blitter engine lacks support for 3 components color format so we can
just fallback to RCS companion command buffer for the blit operation.
Even though blitter supports 96-bit support it only supports linear
tiling. We can support other types of tiling by falling back to the RCS
companion command buffer.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26300 >
2023-12-08 20:44:03 +00:00
Ian Romanick
87cdcbd7d7
intel/compiler: Verify that DO is alone in the block
...
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26439 >
2023-12-08 20:21:28 +00:00
Ian Romanick
65237f8bbc
intel/fs: Don't add MOV instructions to DO blocks in combine constants
...
There was a subtle bug related to CFG tracking. Namely, some branch
instructions may point *only* to the block after the DO instruction
for the loop. If the MOV instructions are in the DO block, the may not
have liveness properly tracked.
Like in !25132 , having the MOV instructions in blocks that might
contain other instructions helps scheduling.
shader-db:
All Broadwell and newer Intel GPUs had similar results (Ice Lake shown)
total cycles in shared programs: 848577248 -> 848557268 (<.01%)
cycles in affected programs: 78256396 -> 78236416 (-0.03%)
helped: 361 / HURT: 18
fossil-db:
All Skylake and newer Intel GPUs had similar results (Ice Lake shown)
Totals:
Cycles: 15021501924 -> 15021372904 (-0.00%); split: -0.00%, +0.00%
Totals from 735 (0.11% of 656080) affected shaders:
Cycles: 676429502 -> 676300482 (-0.02%); split: -0.02%, +0.00%
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26439 >
2023-12-08 20:21:28 +00:00
Sil Vilerino
23f07f4942
d3d12: Check video encode codec cap before checking encode profile/level cap
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26598 >
2023-12-08 20:04:49 +00:00
Timur Kristóf
1c8c3e5a7a
radv: Don't retile DCC on transfer queues.
...
Instead, the retile will be executed on another queue type
when the image is transitioned to another queue.
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/25834 >
2023-12-08 14:46:17 +00:00
Timur Kristóf
5c30d462b9
radv: Disable HTILE on exclusive images with transfer queues when SDMA doesn't support it.
...
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/25834 >
2023-12-08 14:46:17 +00:00
Timur Kristóf
1764259ba8
radv: Disable DCC on exclusive images with transfer queue when SDMA doesn't support it.
...
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/25834 >
2023-12-08 14:46:17 +00:00
Timur Kristóf
89a6b08cba
radv: disable HTILE/DCC for concurrent images with transfer queue if unsupported.
...
DCC and HTILE are only supported by SDMA on GFX10+ (unless disabled by a workaround).
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/25834 >
2023-12-08 14:46:16 +00:00
Chia-I Wu
ad6b6673be
radv: convert a check in radv_get_memory_fd to assert
...
VUID-VkBindImageMemoryInfo-memory-02628 and
VUID-VkBindImageMemoryInfo-memory-02629 make sure the memory offset is 0
for dedicated allocations.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25964 >
2023-12-08 14:21:42 +00:00
Chia-I Wu
8aa62ba240
radv: fix asserts for radv_init_metadata
...
radv_init_metadata hits several assert failures when the image is
multi-planar. Make sure we use plane 0.
This change should make no difference in practice. Also, this is done
only to follow radeonsi. Since the opaque metadata is mainly for
validations and DCC, and we don't enable DCC for multi-planar images, we
probably don't need to call radv_query_opaque_metadata at all.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25964 >
2023-12-08 14:21:42 +00:00
Chia-I Wu
035cf7ab97
radv: fix a typo in radv_image_view_make_descriptor
...
Only GFX8 and before have legacy_surf_level.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25964 >
2023-12-08 14:21:42 +00:00
Chia-I Wu
07f575a8a6
radv: fix VkSubresourceLayout2KHR for multi-planar formats with modifiers
...
Memory planes and format planes are equivalent for multi-planar formats
with modifiers. Do not return the DCC info of plane 0.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25964 >
2023-12-08 14:21:42 +00:00
Chia-I Wu
8f60ccf969
radv: fix VkDrmFormatModifierProperties2EXT for multi-planar formats
...
Do not report DCC modifiers for multi-planar formats. We don't support
DCC for them and drmFormatModifierPlaneCount had incorrect values.
Fix vkGetImageSubresourceLayout for multi-planar images with modifiers.
In that case, memory planes and format planes are equivalent.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25964 >
2023-12-08 14:21:42 +00:00
Samuel Pitoiset
90dda31901
radv: simplify disabling MRT compaction for PS epilogs
...
If the fragment shader isn't compiled, the PS epilog key isn't used
at all with GPL.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26563 >
2023-12-08 13:52:40 +00:00
Samuel Pitoiset
0cf00390c5
ci: uprev vkd3d-proton to a0ccc383937903f4ca0997ce53e41ccce7f2f2ec
...
To cover DGC mesh shaders which are only tested as part of vkd3d-proton.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26590 >
2023-12-08 11:14:22 +00:00
Yonggang Luo
5bf68ab701
osmesa: Make osmesa.h compatible with Windows SDK's GL.h
...
For glext.h and glcorearb.h, it's already use 'APIENTRY', so for the osmesa.h
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26561 >
2023-12-08 09:55:54 +00:00
Dave Airlie
10db6948da
nvk/nak: fix regression with shf changes on sm70
...
This commit nak: implement SHL and SHR on SM50 caused a regression on
KHR-GL45.gpu_shader_fp64.* using zink.
This fixes the regression, by setting the wrap fields.
Fixes: 00be041ffc ("nak: implement SHL and SHR on SM50")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26586 >
2023-12-08 05:30:09 +00:00
Marek Olšák
64b769a102
glthread: add a string table of function names
...
for printing glthread batches
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
adfab9794e
mesa: deduplicate glVertexPointer and glNormalPointer vs DSA error checking
...
Regular and direct state access functions did the same thing. The new
functions will be used later.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
3a74cdcd91
glthread: pass struct marshal_cmd_DrawElementsUserBuf into Draw directly
...
Pass the whole structure directly instead of as separate parameters.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
98e42c6efb
glapi: only allow deprecated="" on non-aliased functions
...
Merging deprecated="" of aliased and real functions isn't completely
predictable. The function (real or aliased) that's defined last overwrites
attributes of its alias defined before it.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
61e19c53e7
glthread: don't do "if (COMPAT)" if the function is not in the GL core profile
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
a3992379cb
glapi: only expose GL_EXT_direct_state_access functions to GL compatibility
...
The extension is only exposed in GL compatibility.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
666d53214a
glthread: rework type reduction and reduce vertex stride params to 16 bits
...
- add get_marshal_type(), which reduces type sizes
- rework all places to use the result of get_marshal_type()
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
162c890614
glthread: use autogenerated marshal structures for custom functions
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
e9d08bb043
glapi: rename primcount -> instance_count in a few Draw functions
...
In order to match the marshal structures we already have in the tree.
The next commit will depend on this.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
a02ed8a95f
glthread: add option to put autogenerated marshal structures in the header file
...
This is used when we want to be able to read the calls of autogenerated
functions, or when we want to use the default structure for our custom
marshal functions.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:52 +00:00
Marek Olšák
bdb771b27c
glthread: eliminate push/pop calls in PushMatrix+Draw/MultMatrixf+PopMatrix
...
Viewperf benefits. This implements glPushMatrix marshalling manually and
looks ahead in the unmarshal function what the following calls are.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:51 +00:00
Marek Olšák
c3b95d1507
glthread: add a marker at the end of batches indicating the end
...
Unmarshal calls that "look ahead" in the batch will use it.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:51 +00:00
Marek Olšák
5af047d40a
mesa: optimize setting the identity matrix
...
instead of memcpy from a static mutable place ("const" doesn't help
anything here), just set the values directly
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:51 +00:00
Marek Olšák
5fb106c253
mesa: skip checking for identity matrix in glMultMatrixf with glthread
...
glMultMatrixf was doing it. glMatrixMultfEXT is the other user of
matrix_mult that needs to do it before we can skip it here.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:51 +00:00
Marek Olšák
d321b1500b
mesa: optimize _mesa_matrix_is_identity
...
+5% performance in VP13/Sw/teslaTower_shaded
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26548 >
2023-12-08 04:25:51 +00:00
Yiwei Zhang
d17ddcc847
venus: dispatch background shader tasks to secondary ring
...
Summary:
- Add a perf option to force primary ring submission
- Let device own secondary ring(s) for ad-hoc spawn
- For threads where swapchain and command pool are created, track with
TLS to instruct ring dispatch.
- If the pipeline creation or cache retrieval happens on the background
threads not on the hot paths, force synchronous and dispatch to the
secondary ring after waiting for primary ring becoming current.
- If the pipeline creation or cache retrieval happens on the hot paths
threads, dispatch to the primary ring to avoid being blocked by those
tasks on the secondary ring.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
5b26bebcf4
venus: add vn_gettid helper
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
b170c1a391
venus: switch to vn_ring as the protocol interface - part 3
...
Sync protocol and fix all the interfaces, otherwise we have to generate
two sets of headers with both interfaces to separate protocol sync and
the driver side adaptation.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
5943f70c7a
venus: switch to vn_ring as the protocol interface - part 2
...
Use instance ring as the primary ring of a logical device.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
d28ebf7b99
venus: switch to vn_ring as the protocol interface - part 1
...
No functional change but just preparations for switching instance
to ring to interface with the venus protocol headers.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
a0ef347a82
venus: add vn_ring_get_id and hide vn_ring internals entirely
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
9e38c74139
venus: move the actual ring creation into ring as well
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
c779fc9fb1
venus: move ring submission into ring
...
At first, no behavior change in this CL.
The instance level helper for normal command submission is left to work
with the current venus protocol. Meanwhile, we leave the helper to
submit recorded command buffer inside instance to it can later redirect
to the primary ring.
We've internalized a few ring helpers that no longer need to be exposed.
Besides, indirect submission decision is on per-ring basis since the
ring buffer can vary later.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
9229c13a2c
venus: move the rest ring belongings into ring
...
This change only moves the fields without changing the accessors. It's
better to let ring own its own upload cs encoder (which is backed by
shmem array) to avoid lock contention between indirect submissions
across rings.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
d1e29b7557
venus: move ring shmem into vn_ring
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
3e122014cf
venus: relax ring mutex
...
Now we are able to break up the original lock to allow shmem alloc to be
outside the ring mutex, as long as the reply shmem set is still coupled
with ring submission.
Add and expose vn_instance_reply_shmem_alloc helper which will be used
by rings separately later.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
b98d850efd
venus: remove command_dropped tracking
...
The encoder must not be empty by then so switch to an assert. Failing to
get a reply shmem would end up with VK_ERROR_OUT_OF_HOST_MEMORY, thus
there's no need to track either.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
90e64564b8
venus: make vn_renderer_shmem_pool thread-safe
...
This can be thread-safe only because we have dropped seeking command
stream offset, which requires comparing pool shmem to decide conditional
set stream.
This is to prepare for later sharing reply shmem pool across rings.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
0273c9cc03
venus: always set reply command stream to avoid seek
...
More considerations and details here:
- The seek is a bit lighter than set, since it assumes renderer side
resource being immutable. It does affect perf when Venus is still
making verbose synchronous calls at runtime (e.g. descriptor set,
buffer, device memory, etc).
- Seek still requires lock protection as the reply shmem must be
immutable before the seek and the followed cmd are committed to the
ring.
- Removing seek without doing set requires renderer change to always
bump the encoder end position according to what the original request
is instead of being ad-hoc upon what the host driver tells to write.
The overhead and extra complexity there isn't negligible.
- Further, removing seek requires each ring to track the prior reply
pool shmem in the multi-ring scenario. While the additional host side
resource lookup isn't costy as the number of resources is must less
than the vk object table.
- The nice thing is that we can make shmem pool thead safe to be more
easily shared across rings.
So we just drop it.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
70e8d1397e
venus: further cleanup vn_relax_init to take instance instead of ring
...
For multi-ring, later we can just check primary ring alive status.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
f6adc60822
venus: refactor to add vn_watchdog
...
Summary:
- cleanup redundant report_period_us check post 1.0 release
- add vn_watchdog and its accessors
- vn_watchdog_init
- vn_watchdog_fini
- vn_watchdog_acquire
- vn_watchdog_release
- vn_watchdog_timeout
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
d8b059b01b
venus: move ring monitor to instance for sharing across rings
...
Later we will base off just the primary ring alive status.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
22b5c9c65f
venus: refactor instance creation failure path
...
Make fail path more precise and slightly adjust cs_shmem to sit together
with reply shmem pool.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
26e20eb12c
venus: add vn_instance_fini_ring helper
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
2cdab2c25d
venus: use instance allocator for indirect cs storage alloc
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
ec131c6e55
venus: use instance allocator for ring allocs
...
and some nice to have refactors
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
15c7e7743e
venus: add ring helper to avoid redundant ring wait requests
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
891d3fb2db
venus: enable renderer shmem cache dump for cache debug
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
34c9864318
venus: use STACK_ARRAY to prepare for indirect submission
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
60e0af9661
venus: reduce ring idle timeout from 50ms to 5ms
...
The ring wake up is no longer costy as the other notifies followed by
the initial call won't be blocked by ring cmd execution anymore
(without vkr side big context lock). Reducing the timeout can help cpu
bound scenarios.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
9c9e097585
venus: add missing shmem pool fini for cs_shmem pool
...
This is missed from the fail path. No need to backport since there's
nothing leaked from this yet.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
8ac7d78bf3
venus: properly initialize ring monitor initial alive status
...
This avoids a potential race condition if two threads are competing for
the monitor with the initial states, and the losing one may run into
alive status being false and abort.
Fixes: 4a4b05869a ("venus: check and configure new ringMonitoring feature")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reported-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:37 +00:00
Yiwei Zhang
aed4c4d04e
venus: fix async compute pipeline creation
...
Fixes: a771efdefe ("venus: Enable VK_EXT_pipeline_creation_cache_control")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26179 >
2023-12-08 04:06:36 +00:00
Dave Airlie
55e0aced28
nvk: drop unneeded shader type conversion function
...
This is both pointless now and not used anywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26583 >
2023-12-08 12:27:18 +10:00
Kenneth Graunke
a7b054c974
anv: Don't report more memory available than the heap size
...
When calculating the system memory heap size, we report only 3/4 of
the total RAM size (or 1/2 for systems with less than 4GB of RAM).
In the memory budget extension query, we were reporting 90% of the
available system memory. If most of the memory in the system is free,
this could result in the total heap size being 3/4 of RAM, but the
memory available being 9/10 of RAM. But if the application tried to
allocate the memory reported as "available", it would exceed the heap
size. This can confuse some applications.
This patch makes the memory budget query clamp the available RAM to
the heap size, so it will never report more available than the heap
can provide. Unfortunately, this means that we'll report only 67.5%
of system memory as available (3/4 * 9/10). We may want to adjust
this estimate in the future.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26553 >
2023-12-07 15:12:38 -08:00
Kenneth Graunke
029b1d3f26
anv: Drop 3/4 of PPGTT size restriction for sys heap size calculation
...
This was mainly useful for older Gen7.x GPUs with 32-bit PPGTT, which
are now supported by hasvk rather than anv. The remaining platforms
which anv supports have 36, 47, or 48-bit PPGTT, which imposes a 3/4
limit of 48GB, 96TB, and 192TB of memory.
The GPUs with 36-bit PPGTT are Elkhart Lake and Jasper Lake, which
appear to be Atom CPUs that have a maximum supported memory
configuration of 32GB or less, so this limit should not matter there.
Nor is a multi-TB limit likely to matter on our other parts.
Drop this check to simplify the heap and memory budget calculations.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26553 >
2023-12-07 15:12:35 -08:00
Faith Ekstrand
3bb4c14c75
nak: Rework barrier handling a bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26577 >
2023-12-07 22:44:36 +00:00
Thomas H.P. Andersen
eafc8f58c6
nouveau: drop unused #includes of tgsi_parse.h
...
The use of these includes was dropped. No need to keep these around
Reviewed-by: M Henning <drawoc@darkrefraction.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26339 >
2023-12-07 22:29:09 +00:00
David Heidelberg
0ea6e17130
ci: bump kernel to 6.6.4
...
Let's move to current LTS kernel.
Acked-by: Christian Gmeiner <cgmeiner@igalia.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26551 >
2023-12-07 21:35:53 +00:00
Konstantin Seurer
4ac8d16006
nvk: Do not preserve metadata after lower_load_global_constant_offset_instr
...
The pass inserts control flow.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26366 >
2023-12-07 21:20:21 +00:00
Konstantin Seurer
99fdd98b3f
drm-shim/nouveau: Stub mitting ioctls
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26366 >
2023-12-07 21:20:21 +00:00
Konstantin Seurer
17bfaeac15
drm-shim/nouveau: Expose the 2D engine on NV50+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26366 >
2023-12-07 21:20:21 +00:00
Konstantin Seurer
3b0c34075c
drm-shim/nouveau: Set nv_device_info_v0::platform
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26366 >
2023-12-07 21:20:21 +00:00
Dave Airlie
45eaf6c002
nvk/nak/xfb: handle skipping properly when setting xfb_attr.
...
The code treated 0x00 and 0xff the same, but they aren't,
port over the codegen code.
Fixes GTF-GL45.gtf40.GL3Tests.transform_feedback3.transform_feedback3_skip_components
with zink on nvk
v2: drop padding to 0, tests still pass.
Fixes: 30f01c47c2 ("nak: Translate XFB info")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26559 >
2023-12-07 21:05:12 +00:00
Faith Ekstrand
6b1f3884c3
nak: Clean up instruction printing a bit
...
When we can do it in one line I like the little if else pattern for
single-bit modifiers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Faith Ekstrand
f5869d1c5b
nak: Audit sm50 for FTZ/DNZ bits
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Faith Ekstrand
22aab2ccba
nak: Audit remaining FTZ/DNZ bits on sm70+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Faith Ekstrand
5bfb46a735
nak: Add dnz bits to OpFMul and OpFFma
...
Also, while we're here, clean up the from_nir code a bit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Faith Ekstrand
97a59ded43
nak: Plumb through float controls for frnd[p]
...
Fixes: 1c84c8183c ("nak: Plumb through float controls")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Faith Ekstrand
e179a90356
nak: Plumb through float controls for fset[p]
...
Fixes: 1c84c8183c ("nak: Plumb through float controls")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26572 >
2023-12-07 20:49:40 +00:00
Dave Airlie
1b27a6be20
nvk: fix transform feedback with multiple saved counters.
...
The SET_STREAM_OUT_BUFFER_LOAD_WRITE_POINTER registers have an
8 dword stride, but the code is only adding one dword between them
then the MME is calling an illegal method.
This is the simple fix, otherwise I think we'd have to multiply
somehow in the MME which seems pointless.
Fixes KHR-GL45.transform_feedback* on zink on nvk.
Fixes: 5fd7df4aa2 ("nvk: Support for vertex shader transform feedback")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26558 >
2023-12-07 20:17:13 +00:00
Eric Engestrom
40c82b5f67
vk/update-aliases.py: only apply renames for the vulkan api (not vulkansc)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:01 +00:00
Eric Engestrom
1b3fca1708
vk/update-aliases.py: enforce correct list order
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:01 +00:00
Eric Engestrom
2cf22af0a7
vk/update-aliases.py: handle more concatenated prefixes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:01 +00:00
Eric Engestrom
04517193c5
vk/update-aliases.py: simplify addition of other concatenated prefixes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:01 +00:00
Eric Engestrom
3fe90f2957
vk/update-aliases.py: sort files when informing the user of the matches
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:01 +00:00
Eric Engestrom
d8b38ec4a3
vk/update-aliases.py: handle "no match" grep call
...
This was not necessary before because there was always at least the
vk.xml file itself in the `src/` search path.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:00 +00:00
Eric Engestrom
c6ebf9d643
vk/update-aliases.py: allow specifying the files we want to update
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:00 +00:00
Eric Engestrom
e988b1975b
vk/update-aliases.py: drop dead --check-only
...
This was introduced for when it was intended for this script to run as
part of the build tests, but that was dropped, and so should this.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26484 >
2023-12-07 19:52:00 +00:00
Juston Li
dc7c1d989b
radv: enable stippledBresenhamLines on GFX9 chips
...
This isn't supposed to work nor does it match radeonsi but setting
AUTO_RESET_CNTL=0 by default for GFX9 chips is what gets it passing
linestrip CTS tests:
dEQP-VK.rasterization.primitives.dynamic_stipple.bresenham_line_strip
dEQP-VK.rasterization.primitives.dynamic_stipple_and_topology.bresenham_line_strip
dEQP-VK.rasterization.primitives.dynamic_stipple_and_topology.bresenham_line_strip_wide
dEQP-VK.rasterization.primitives.static_stipple.bresenham_line_strip
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24623 >
2023-12-07 19:10:15 +00:00
Eric Engestrom
7301327f9c
broadcom/ci: avoid running the rpi4 jobs when changing the rpi3 expectations, and vice-versa
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26256 >
2023-12-07 18:44:03 +00:00
Eric Engestrom
fa36b087c7
etnaviv/ci: run only the relevant jobs when changing the ci expectations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26281 >
2023-12-07 18:26:35 +00:00
Eric Engestrom
6df0968ff4
etnaviv/ci: expand first level of files in src/etnaviv/
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26281 >
2023-12-07 18:26:35 +00:00
Eric Engestrom
185315590e
etnaviv/ci: fix yaml indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26281 >
2023-12-07 18:26:35 +00:00
Sil Vilerino
fc69d65a4e
frontends/va: Parse enc_constraint_set_flags from packed SPS
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
(Reviewed in PR !26556 as well)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26573 >
2023-12-07 17:55:16 +00:00
Sil Vilerino
32667f78ab
d3d12: Use enc_constraint_set_flags for H264 NALU writing
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26573 >
2023-12-07 17:55:16 +00:00
Sil Vilerino
bfad3617a9
d3d12: Fix typos in d3d12_video_encoder_bitstream_builder_h264
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26573 >
2023-12-07 17:55:16 +00:00
Sil Vilerino
096e17b578
d3d12: Fix AV1 video encode 32 bits build
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26573 >
2023-12-07 17:55:16 +00:00
Yonggang Luo
e5ebd59dd5
broadcom: remove unused headers include
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26571 >
2023-12-07 17:22:47 +00:00
Yonggang Luo
35133551e1
broadcom/compiler: remove unused blend in v3d_fs_key
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26571 >
2023-12-07 17:22:47 +00:00
Sil Vilerino
65ab022499
d3d12: Fix usage of H264/HEVC specific classes when VIDEO_CODEC_H26XENC not set
...
Fixes: 8af080cec4 ("d3d12: Implement d3d12_video_encoder_get_encode_headers for out of band VPS, SPS, PPS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26566 >
2023-12-07 17:05:37 +00:00
Yonggang Luo
575c4f6802
broadcom/compiler: Use correct type pipe_logicop for logicop_func in struct v3d_fs_key
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26570 >
2023-12-07 16:36:50 +00:00
Yonggang Luo
0eaf200974
v3dv: Use correct type VkStencilOp in function translate_stencil_op
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26570 >
2023-12-07 16:36:50 +00:00
Faith Ekstrand
61dd82ccab
nvk: Advertise VK_KHR_shader_float_controls
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9605
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26557 >
2023-12-07 16:21:14 +00:00
Faith Ekstrand
1c84c8183c
nak: Plumb through float controls
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26557 >
2023-12-07 16:21:14 +00:00
Faith Ekstrand
29bfdcd7c1
nak: Add an ftz bit to a bunch of float ops
...
Specifically, OpFAdd, FFma, FMnMx, FMul, and FSwzAdd
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26557 >
2023-12-07 16:21:14 +00:00
Faith Ekstrand
6881ff4c99
nak: Drop the fmnmx from Builder
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26557 >
2023-12-07 16:21:14 +00:00
Faith Ekstrand
00b2564163
nak/nvfuzz: Add an SM parameter
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26557 >
2023-12-07 16:21:14 +00:00
Dave Airlie
884da2622c
nvk/nil: allow storage on VK_FORMAT_A2B10G10R10_UINT_PACK32
...
Fixes:
KHR-GL45.shader_image_load_store.basic-allFormats*
with zink
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26536 >
2023-12-07 15:35:14 +00:00
Rohan Garg
db6aaa691d
intel/compiler: infer the number of operands using lsc_op_num_data_values
...
nir_emit_global_atomic should utilize lsc_op_num_data_values to
infer the number of operands for global atomic ops, following the same
pattern as nir_emit_surface_atomic
Fixes: 90a2137 ('intel/compiler: Use LSC opcode enum rather than legacy BRW_AOPs')
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26432 >
2023-12-07 14:40:24 +00:00
Rohan Garg
46d98a71ef
intel/compiler: use the proper enum type to store the op
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26432 >
2023-12-07 14:40:24 +00:00
José Roberto de Souza
6d42333b16
intel/genxml/xe2: Update PIPELINE_SELECT
...
'Media Sampler DOP Clock Gate Enable' and 'Force Media Awake' don't
exist anymore.
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/26403 >
2023-12-07 14:16:18 +00:00
José Roberto de Souza
9898c719a2
intel/genxml/xe2: Update PIPE_CONTROL
...
'Tile Cache Flush Enable' and 'Generic Media State Clear' are now
reserved bits in gfx20+.
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/26403 >
2023-12-07 14:16:18 +00:00
Tapani Pälli
8e57ba092d
mesa: lower EXT_render_snorm version requirement
...
Requirement was lowered in the extension spec:
https://github.com/KhronosGroup/OpenGL-Registry/pull/596
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26500 >
2023-12-07 13:37:11 +00:00
Yonggang Luo
8913cf6f7d
docs: Generate document with utf8 encoding
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26515 >
2023-12-07 12:41:07 +00:00
Yonggang Luo
e499253966
zink: Generate source file with utf-8 encoding from mako template
...
Make them generated in consistent way
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26515 >
2023-12-07 12:41:07 +00:00
Yonggang Luo
36480b4d02
intel: Generate source file with utf-8 encoding from mako template
...
Make them generated in consistent way
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26515 >
2023-12-07 12:41:07 +00:00
Yonggang Luo
e7c614bd20
util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template
...
This is for fixes the following error:
FAILED: src/vulkan/runtime/vk_synchronization_helpers.c src/vulkan/runtime/vk_synchronization_helpers.h
"C:\CI-Tools\msys64\mingw64\bin/python3.EXE" "../../src/vulkan/util/vk_synchronization_helpers_gen.py" "--xml" "../../src/vulkan/registry/vk.xml" "--out-c" "src/vulkan/runtime/vk_synchronization_helpers.c" "--beta" "false"
Traceback (most recent call last):
File "C:/work/xemu/mesa/src/vulkan/util/vk_synchronization_helpers_gen.py", line 213, in main
f.write(TEMPLATE_C.render(**environment))
UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 15: illegal multibyte sequence
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26515 >
2023-12-07 12:41:07 +00:00
Tatsuyuki Ishi
9b2b790ea3
radv: Enable radv_legacy_sparse_binding for DOOM Eternal.
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10234
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26464 >
2023-12-07 11:40:38 +00:00
Tatsuyuki Ishi
b2e8095d6d
radv: Add workaround to allow sparse binding on gfx queues.
...
For working around improper usage of sparse in DOOM Eternal.
When fully explicit sync sparse binding is implemented, this path will
remain implicit sync to also deal with the improper semaphore usage.
radv_queue_submit_bind_sparse_memory will likely get a bool parameter to
control explicit / implicit sync in that case.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26464 >
2023-12-07 11:40:38 +00:00
Eric Engestrom
c1229db1a8
docs/calendar: add 24.0 branchpoint and release schedule
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26406 >
2023-12-07 10:31:54 +00:00
Eric Engestrom
adc44bbb20
intel/ci: run only the relevant jobs when changing the ci expectations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
c56237e477
intel/ci: hasvk changes should only trigger hasvk jobs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
fb5294717c
intel/ci: anv changes should only trigger anv jobs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
0963d0b135
intel/ci: expand first level of common intel files
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
a3077cdcba
intel/ci: deduplicate common intel files rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
5ccc898276
intel/ci: fix yaml indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26279 >
2023-12-07 09:59:39 +00:00
Eric Engestrom
dc69c5b323
freedreno/ci: run only the relevant jobs when changing the ci expectations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26280 >
2023-12-07 09:37:25 +00:00
Eric Engestrom
60df7b6768
freedreno/ci: fix yaml indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26280 >
2023-12-07 09:37:25 +00:00
Eric Engestrom
e8193956e2
panfrost/ci: run only the relevant jobs when changing the ci expectations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26257 >
2023-12-07 09:21:11 +00:00
Eric Engestrom
fad164a06e
panfrost/ci: fix yaml indendation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26257 >
2023-12-07 09:21:10 +00:00
Pierre-Eric Pelloux-Prayer
1a99f50c7f
radeonsi: use a compute shader to convert unsupported indices format
...
This commit replace the CPU-conversion of ubyte to ushort by a compute shader.
The benefits are:
* we don't need to sync anymore
* we can allocate the index buffer in VRAM (no need to CPU map it)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10195
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26416 >
2023-12-07 08:42:19 +00:00
Eric Engestrom
5bdb42b1a2
zink/ci: run only the relevant jobs when changing the ci expectations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26258 >
2023-12-07 07:55:13 +00:00
Eric Engestrom
428ca69ba9
zink/ci: expand first (and only) level of folders in the list of files
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26258 >
2023-12-07 07:55:13 +00:00
Eric Engestrom
e39785f6c6
zink/ci: use variable to avoid repeating the list
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26258 >
2023-12-07 07:55:13 +00:00
Eric Engestrom
b36338a3f4
zink/ci: fix yaml indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26258 >
2023-12-07 07:55:12 +00:00
Eric Engestrom
d971e3ba45
ci: fix rules for formatting checks
...
Fixes: 70eff58767 ("ci: allow hw jobs even if lint jobs fail for non-Marge pipelines")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26511 >
2023-12-07 07:27:11 +00:00
Timothy Arceri
72ad0db505
glsl: remove now unused GLSL IR block linker
...
This is now done in the NIR linker instead.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26534 >
2023-12-07 03:05:10 +00:00
Timothy Arceri
32f274768e
glsl: use new nir based block linker
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26534 >
2023-12-07 03:05:10 +00:00
Timothy Arceri
0c6272f97f
glsl: support glsl linking in nir block linker
...
This added support for names and some extra validation that the
spirv linker does not require.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26534 >
2023-12-07 03:05:10 +00:00
Timothy Arceri
c468aa6059
nir: add nir_fixup_deref_types()
...
This will be used to fix up types after arrays have been resized.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26534 >
2023-12-07 03:05:09 +00:00
Yonggang Luo
72e30c8853
treewide: Avoid use align as variable, replace it with other names
...
align is a function and when we want use it, the align variable will shadow it
So replace it with other names
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25997 >
2023-12-07 02:30:53 +00:00
Yonggang Luo
adf81143a1
clover: Rename function align to align_vector to avoid conflict with global align
...
align is a global function, do not conflict with it
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25997 >
2023-12-07 02:30:53 +00:00
Yonggang Luo
0f5688eb2c
intel: Remove unused ALIGN macro
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25997 >
2023-12-07 02:30:53 +00:00
Yonggang Luo
ff306c5f8c
meson/win32: There is no need install OpenGL headers on win32
...
The libraries that use OpenGL already handling the non-exist of OpenGL headers for both
MSVC and MINGW, so there is no need install them
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14019 >
2023-12-07 00:58:25 +00:00
Faith Ekstrand
112900075b
nak: Add barriers on Volta
...
The warp barriers go back to SM70, not SM75.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
186baba000
nak: Clean up compiler warnings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
ad89613dc4
nak: implement VOTE on SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
8fd7ee2a4f
nak: implement SHFL on SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
2d63f3dad6
nak: encode Dst::None as RZ on SM50
...
This case came up when testing VOTE, but likely occurs elsewhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
ebfd651361
nak: implement IMUL for SM50
...
IMAD64 does not exist on SM50, so we're using IMUL instead for
nir_op_{i,u}mul_high and nir_op{i,u}mul_2x32_64. Longer-term we may want
to replace this with XMAD for better perf.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
00be041ffc
nak: implement SHL and SHR on SM50
...
SHF.{L,R} is supported, but it seems to always write 0 to dst when the
shift value is a register. The only case in nak_from_nir that actually
uses the 64-bit shift is nir_op_isign, which has an immediate shift
value.
This also avoids the SHF.I32 issue, since the only usage is now SHF.I64.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
286b832f74
nak: make as_imm_not_{i,f}20 helper methods public
...
These are useful for SM50 legalize, which is in a different module.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Mary Guillemard
cb3263560f
nak: sm50: Implement FFMA
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
f02b2866bc
nak/sm50: Drop src_mod_has* in favor of core helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
89f727b1bd
nak/sm50: remove *fmod* calls from iabs
...
I see no mention of NOT and ABS in codegen's encoding for I2I
Also, this is an integer instruction, so calling into the float
helpers seem wrong.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
546edfde83
nak/sm50: remove ALUSrc and friends
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
592d8fa436
nak: sm50: remove encode_alu() and friends
...
This method was too complex. Remove it as we have now rewritten all other
methods not to rely on it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
f32c560e82
nak: sm50: rewrite encode_prmt to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
63c85c9cf7
nak: sm50: rewrite encode_popc to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
78efdf9755
nak: convert encode_imad to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
04d4f1b512
nak: sm50: rewrite encode_f2f to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
cb9318b8ef
nak: sm50: convert i2f to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
bfb091e227
nak: sm50: convert sel to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
2adf5a3437
nak: sm50: rewrite iabs to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
9f34a3c61d
nak: sm50: rewrite fset to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
3ab0cea646
nak: sm50: rewrite fmul to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
b7bc6cebaa
nak: sm50: Rewrite fmnmx to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
01c7f16755
nak: sm50: rewrite fsetp to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
4b8a8b2a28
nak: use carry register file for IADD2
...
This allows detecting dependencies between IADD.X and IADD.CC, which is
necessary for SM50 sched and DCE.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
9d6c487a75
nak: move iadd64 construction to a builder method
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
6323cae9f9
nak: add carry register file
...
There is only one carry-register, so representing it as a register file
is a little weird, but it makes calculating instruction deps simpler.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
1ae43d2606
nak/sm50: Stop using ALUSrc for IADD2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
998c470f58
nak/sm50: Add better helpers for encoding sources with modifiers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Daniel Almeida
43160df14e
nak/sm50: rewrite encode_iadd2 to not use encode_alu()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
e5d70d303f
nak: Drop the SM50 encoding of BREV
...
We should add an OpBfe instead of this mess.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
a1af8129a6
nak/sm50: Rewrite the encoding for OpMov
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
0adb7c52f8
nak: Implement FS input interpolation on SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
bdf0c300e1
nak/sm50: Rewrite the encoding for OpIMnMx
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
20176035f6
nak: Rewrite the SM50 encoding of OpF2I
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
426b27ef04
nak/sm50: Wire up tex ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
bb41f2815f
nak/nv50: Rewrite the encoding of OpShf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
08ac17789b
nak: Rework nvfuzz for SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
899c58606d
nak: Only split texture destinations on Volta+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Faith Ekstrand
c57bf36c0a
nak: Add SM50 encodings for ALD and AST
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
08cab9a57e
nak: add ATOM{G,S} encoding for SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:36 +00:00
Benjamin Lee
cd7ac4b0c5
nak: implement ST* and LD* on SM50
...
LDG was previously encoded, but the opcode and field offsets were incorrect.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Benjamin Lee
8a82f426a2
nak: add IADD instruction for SM50
...
For now, we're just using this in place of IAdd3x for 64-bit adds. IADD3
with carry flags is supported on SM50, but it works completely
differently from SM75. Longer-term we'll probably want to emit this in
all of the places that we're currently using IADD3.
Also need to hook the carry register up to calc_deps, but for now I'm
just using NAK_DEBUG=serial.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Benjamin Lee
588cfcaec7
nak: Legalize a bunch of instructions for SM50
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
bbd2de34c5
nak: Rework the SM50 encoding of isetp
...
Drop the ALU stuff and hand-encode it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
e404877a02
nak: Use OpLop2 and OpPSetP pre-SM70
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
36e80caac9
nak: Rename LogicOp to LogicOp3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
93b6c43725
nak: Rewrite SM50 encode_fadd to not use encode_alu
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
4ab2d5c4ff
nak: Rework set_src_imm20 in nak_encode_sm50
...
Rename it to set_src_i20 and fix the assert to allow negative signed
values. Also, add a new set_src_f20 helper with the correct semantics
for float immediates. Finally, get rid of some bogus shifting in the
ALU code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
a80ce982d4
nak: Initial WIP SM50 backend
...
Only encode some instructions.
some TODO:
- SM50 specific legalizer
- Cleaner ALU encoding (there is multiple form of encoding depending of
the instruction)
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Benjamin Lee
9af7639e4b
nak: make sm available in builders
...
This is needed for the 'sel' builder method, which should emit different
instrs on SM50 versus SM75.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Faith Ekstrand
40127e881f
nak: Split legalize into per-SM functions
...
We still have common code to handle the multiple vector source case
because that's required for RA correctness but everything else is
pretty much per-SM.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114 >
2023-12-07 00:36:35 +00:00
Juan A. Suarez Romero
d0ae58f413
ci: do not mount already mounted directories
...
In some cases we are using an initramfs image that pre-mounts some of
the directories, so let's skip them in the next stage.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26552 >
2023-12-07 00:05:25 +00:00
Juan A. Suarez Romero
f97e065c4f
ci/baremetal: make BM_BOOTCONFIG optional
...
In some cases we can have the config.txt boot file already available in
the tftp folder.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26552 >
2023-12-07 00:05:25 +00:00
Jesse Natalie
d157cd7442
microsoft/clc: One more image lowering fix
...
Bindings are not necessarily globally unique, and even the location
where we were trying to read the binding value out of is a union, so
we could be trying to compare binding values against data for other
arg types.
Instead, use the arg metadata offset, which is globally unique and
outside of the union.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26555 >
2023-12-06 23:46:42 +00:00
Faith Ekstrand
03ae261183
nvk: Advertise KHR_shader_integer_dot_product
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
eb633b4978
nak: Wire up DP4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
fcf31d9c25
nak: Rework printing of int/float types and rounding modes
...
Make the . part of the enum's print like for other things.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
adafcacf15
microsoft: Stop claiming dot_4x8_sat support
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
d2ffcb6092
nir: Lower [su]dot_4x8_[ui]add_sat to [su]dot_4x8_[ui]add
...
Since nir_opt_algebraic runs on its own results, if the driver doesn't
have [su]dot_4x8_[ui]add then the [su]dot_4x8_[ui]add lowering rules
will kick in and lower that to what we had originally.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
09fc5e1c4d
nir: Split has_[su]dot_4x8 bits into regular and _sat versions
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533 >
2023-12-06 23:15:33 +00:00
Faith Ekstrand
fde43e44e9
ci: Also rustfmt binaries
...
The standard name for an executable is main.rs. Also fix the rusticl
docs while we're at it.
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26546 >
2023-12-06 22:41:47 +00:00
Faith Ekstrand
03f1b99f50
nak: Restructure for better module separation
...
With this commit, NAK now takes on a more Cargo-like structure with
things split better into crates:
- bitview/
- lib.rs // Formerly bitview.rs
- nak/
- lib.rs // Only pulls stuff into the module
- api.rs // Formerly nak.rs
- ...
- nvfuzz/
- main.rs // Formerly nvfuzz.rs
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26546 >
2023-12-06 22:41:47 +00:00
Faith Ekstrand
97cd55d065
nak: rustfmt
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26546 >
2023-12-06 22:41:47 +00:00
José Roberto de Souza
5560835fbe
anv: Avoid unnecessary intel_flush calls
...
Batch bos are always allocated with ANV_BO_ALLOC_HOST_CACHED_COHERENT
so there is no need to do cflush calls.
But if we ever decide to change that anv_bo_needs_host_cache_flush()
will make sure cflush is called.
Outside of batch bos, this patch is also removing the
intel_flush_range() call from anv_QueuePresentKHR because
device->debug_frame_desc is offset of workaround_bo that is also
allocated as ANV_BO_ALLOC_HOST_COHERENT.
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/26457 >
2023-12-06 22:18:26 +00:00
José Roberto de Souza
9aea879342
anv: Promote bos to host_cached+host_coherent in platforms with LLC
...
In platforms with LLC we can promote all bos to cached+coherent
without any performance penality.
On the up side CPU reads can hit cache this way.
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/26457 >
2023-12-06 22:18:26 +00:00
José Roberto de Souza
a65e982b44
anv: Split ANV_BO_ALLOC_HOST_CACHED_COHERENT into two actual flags
...
As suggested by Lionel, here adding ANV_BO_ALLOC_HOST_COHERENT
and with that ANV_BO_ALLOC_HOST_CACHED_COHERENT is now defined by
(ANV_BO_ALLOC_HOST_COHERENT | ANV_BO_ALLOC_HOST_CACHED).
In some callers of anv_device_alloc_bo() was necessary to add
ANV_BO_ALLOC_HOST_COHERENT as no other flag was set and that
was the default behavior up to now.
A change that could look not related is the removal of the
intel_flush_range() in anv_device_init_trivial_batch(), that was done
because trivial_batch_bo is HOST_COHERENT so no flush is necessary.
And it did not made sense to make it ANV_BO_ALLOC_HOST_CACHED_COHERENT
as it was never read in CPU.
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/26457 >
2023-12-06 22:18:26 +00:00
José Roberto de Souza
0eac6298f2
anv: Fix handling of host_cached_coherent bos in gen9 lp in older kernels
...
Kernel versions without DRM_I915_QUERY_MEMORY_REGIONS support will
take a different code path in i915_gem_create() that lacks the
i915_gem_set_caching() call to make cached bos in gen9 lp 1 way
coherent.
Fixes: fc0acf6d90 ("anv: Move i915 specific gem_set_caching to backend")
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/26457 >
2023-12-06 22:18:26 +00:00
Sil Vilerino
d0c3556011
meson: Add all, all_free (default) options for video-codecs option.
...
- Adds new 'all' value to the video-codecs option
- Adds 'all_free' value to video-codecs and sets
it as default value for non patent-encumbered
codecs, restoring the behavior for these codecs
before existing as options in commit 7b22dd8bfd
Fixes: 7b22dd8bfd ("meson: add vp9 and av1 codec support options")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26320 >
2023-12-06 21:49:27 +00:00
Samuel Pitoiset
e126e82c79
zink/ci: stop running zink-radv-navi31-valve sequentially
...
Skipping the tests that OOM seems to fix this.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26544 >
2023-12-06 20:31:24 +00:00
Samuel Pitoiset
bec2928cc2
zink/ci: update list of failures for NAVI31
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26544 >
2023-12-06 20:31:24 +00:00
Samuel Pitoiset
f6dc3429e6
zink/ci: skip more tests that run OOM on NAVI31
...
These have been skipped recently, but not for NAVI31 for some reasons.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26544 >
2023-12-06 20:31:24 +00:00
José Roberto de Souza
969af605fe
intel/isl: Set mocs.blitter_dst/src for MTL
...
This fields are required to be set because those are used by
XY_FAST_COLOR_BLT instruction.
Right now it is not set causing applications to abort because
DestinationMOCS is required to be non-zero.
This fixes at least piglit@ext_external_objects-vk-image-display on MTL.
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/26502 >
2023-12-06 20:09:04 +00:00
Lionel Landwerlin
4ff1b0f751
anv/video: only report matching memory types for protected sessions
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 794b0496e9 ("anv: enable protected memory")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26519 >
2023-12-06 19:17:17 +00:00
Lionel Landwerlin
e8a96e6ba0
vulkan/runtime: retain video session creation flags
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26519 >
2023-12-06 19:17:17 +00:00
Faith Ekstrand
22c60ea384
nir: Respect variable alignments in lower_vars_to_explicit_types
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26522 >
2023-12-06 18:37:36 +00:00
Faith Ekstrand
629af540ca
spirv: Plumb variable alignments through to NIR
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26522 >
2023-12-06 18:37:36 +00:00
Juan A. Suarez Romero
47b825c6c5
v3d: include the revision in the device name
...
To match what the Vulkan driver does.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26520 >
2023-12-06 18:19:08 +00:00
José Roberto de Souza
1f0a9f853c
intel: Sync xe_drm.h take 2 part 3
...
Sync xe_drm.h with commit ac7b89571d80 ("drm/xe/uapi: Kill exec_queue_set_property").
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/26360 >
2023-12-06 17:35:23 +00:00
Rohan Garg
d1109f67bb
iris: Emit EXECUTE_INDIRECT_DRAW when available
...
On newer platforms (Arrowlake and above) we can issue a
EXECUTE_INDIRECT_DRAW that allows us to:
* Skip issuing mi load/store instructions for indirect parameters
* Skip doing the indirect draw unroll on the CPU side when the
appropriate stride is passed
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26178 >
2023-12-06 17:09:58 +00:00
Faith Ekstrand
e5b7e16f3b
nvk: Implement VK_EXT_texel_buffer_alignment
...
These values are taken from the blob.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9618
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26545 >
2023-12-06 16:54:57 +00:00
Samuel Pitoiset
47f666b64b
radv: enable extendedDynamicState3AlphaToCoverageEnable on GFX11
...
This is now supported and this allows Zink to enable full ds3 mode for
even less stuttering. DXVK also uses dynamic alpha to coverage
sometimes.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26250 >
2023-12-06 16:36:16 +00:00
Samuel Pitoiset
bca4ebc3c4
radv: export MRTZ via PS epilogs when alpha to coverage is dynamic on GFX11
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26250 >
2023-12-06 16:36:16 +00:00
Rhys Perry
0cbe0d2968
nir/loop_analyze: support loops with min/max and non-add incrementation
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Rhys Perry
fc1ebc67b1
nir/loop_analyze: support umin and {u,i,f}max
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Rhys Perry
9591c36666
nir/loop_analyze: check min compatibility with comparison
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Rhys Perry
b6c2a5d48d
nir/loop_analyze: fix vector basis/limit/comparison
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Rhys Perry
2f46773819
nir/loop_analyze: scalarize try_eval_const_alu
...
This is simpler, and users of this function expected scalar anyway.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Rhys Perry
7960588413
nir/loop_analyze: skip if basis/limit/comparison is vector
...
Replacement in try_eval_const_alu() doesn't work because the replacements
are always scalar. The callers also always give a scalar dest.
This is encountered when compiling a Redout shader under ASan.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Timothy Arceri <tarceri@itsqueeze.com >
Fixes: bc170e895f ("nir/loop_analyze: Use try_eval_const_alu and induction variable basis info")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26225 >
2023-12-06 15:58:36 +00:00
Eric Engestrom
0957b01a06
ci: take microsoft farm offline
...
It has been in a rough few days for that farm and it doesn't seem to be
able to handle the load.
Unfortunately we need to consider it down so that it stops blocking
merges.
2023-12-06 15:36:41 +00:00
Samuel Pitoiset
13e9e73974
zink/ci: remove skipped tests from the list of expected failures for NAVI31
...
These are skipped.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26539 >
2023-12-06 12:28:17 +00:00
Samuel Pitoiset
79cf2b6824
radv: determine and emit SPI_SHADER_Z_FORMAT for PS epilogs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Samuel Pitoiset
4248d0b03a
radv,aco: declare PS epilog VGPR arguments for depth/stencil/samplemask
...
Depth/stencil/samplemask inputs are first to match
create_fs_jump_to_epilog().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Samuel Pitoiset
8b87c985b0
radv: prepare the PS epilog key for exporting MRTZ on RDNA3
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Samuel Pitoiset
5b01285cfb
radv: determine if MRTZ needs to be exported via PS epilogs
...
For GFX11 only.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Samuel Pitoiset
b2a37b4304
ac/nir: add an option to skip MRTZ exports in ac_nir_lower_ps()
...
On RDNA3, alpha to coverage needs to be exported through MRTZ when
depth, stencil or samplemask are also exported. This option will allow
us to export MRTZ from PS epilogs instead of the main FS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Samuel Pitoiset
81eeb157f8
aco: export depth/stencil/samplemask in create_fs_jump_to_epilog()
...
This currently has no effects because the store_output instructions
are removed earlier (in ac_nir_lower_ps). Though, this will be needed
for exporting MRTZ from PS epilogs for alpha to coverage on RDNA3.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26413 >
2023-12-06 11:49:31 +00:00
Eric Engestrom
680f249c9f
ci: improve comments
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
b6fa242fb0
ci: make sure pre-merge pipelines have the same jobs as merge pipelines
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
22d9c17c66
ci: clean up pre-merge and fork pipelines rules
...
We've already handled all the Marge-bot possibilities above, so drop the
redundant `marge-bot` check, which also makes it obvious the last line
was dead code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
f3264c2ea0
ci: give an explicit priority to the scheduled nightly pipelines
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
2ecb550418
ci: add pipeline for direct pushes to main
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
90a77f55de
ci: drop containers, builds, and tests from post-merge pipeline
...
All these jobs are redundant and a waste of resources:
- the containers have already been built & pushed in the merge pipeline
- the mesa build variants have already all passed
- the driver tests have already all passed
None of these jobs are doing anything useful in this pipeline, but it
costs a factor of 2x to our infrastructure, so let's remove them.
In other words, the only job left in the post-merge pipeline is the
`pages` job that deploys the update to the website.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
b976b9cd8d
ci: rename is-pre-merge-for-marge to is-merge-attempt to be clearer
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
7f05f52f2d
ci: identify merge request pipelines using $CI_PIPELINE_SOURCE == merge_request_event instead of $CI_COMMIT_BRANCH being missing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
5b51b7ba41
ci: turn comment into code in sanity job rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Eric Engestrom
60dcc4744f
ci: explain what we mean by the various types of pipelines
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451 >
2023-12-06 08:26:04 +00:00
Samuel Pitoiset
a3b3a7d36a
radv: remove unused code for compiling PS epilogs as part of pipelines
...
Since we switched to the "on-demand" path for GPL, this is dead code.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26398 >
2023-12-06 08:01:46 +00:00
Samuel Pitoiset
725fc0ec03
radv: switch to on-demand PS epilogs for GPL
...
RADV currently has two paths for PS epilogs:
- the first one is mostly used by GPL to compile fragment shader epilogs
as part of the graphics pipeline. It's supposed to be optimal because
fragment shader epilogs are compiled in the pipeline and eventually
cached.
- the second one (the "on-demand" path) is required when some dynamic
states are used because otherwise it's just impossible to compile the
fragment shader. These epilogs are compiled during cmdbuf recording
when all needed info are known, they are also cached in memory. This
is the main path for Zink.
Having two different paths isn't ideal for maintenance but there is
another problem. On RDNA3, alpha to coverage needs to be exported as
part of MRTZ when either depth/stencil/samplemask are exported. The
problem being that with GPL, the PSO multisample state can be NULL when
the frag shader lib is created, which means that we can't know if atc
needs to be exported or not, even if it's static. The solution seems to
to always use on-demand fragment shader epilogs for GPL on RDNA3.
So far, I think that switching to on-demand PS epilogs unconditionally
for GPL shouldn't hurt performance and that will simplify a lot of
things.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26398 >
2023-12-06 08:01:45 +00:00
Eric Engestrom
267f86a8a3
util/blob: fix trivial typo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26499 >
2023-12-06 07:22:02 +00:00
Faith Ekstrand
2c427d7c20
nak: Implement usub_sat
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Faith Ekstrand
99bbfbf7b2
nak: Implement uadd_sat
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Faith Ekstrand
85462f7455
nak: Legalize immediates with source modifiers
...
We can just apply the source modifier to the immediate. Also, make
IAdd3X have I32 sources. They do get a bit odd in the high form but
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Faith Ekstrand
5335a59bff
nak/legalize: Handle the src0/1 source mod condition for OpIAdd3X
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Faith Ekstrand
b736cdcb83
nak: Rework the OpIAdd3/OpIAdd3X split
...
This lets us use the correct source types on OpIAdd3X
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Faith Ekstrand
48917600fb
nak: Add a B32 source type
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26535 >
2023-12-06 06:10:30 +00:00
Dave Airlie
fab508da38
nvk/xfb: set correct counter buffer for writing stream out counters.
...
nvc0 does nvc0_hw_query_get(push, q, 0x00, 0x0d005002 | (q->index << 5));
which corresponds to sub report.
Just noticed in code review, don't know of any tests that will notice yet.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26513 >
2023-12-06 05:55:54 +00:00
Qiang Yu
7656251294
aco: fix set_wqm segfault when ps prolog
...
ps prolog does not have nir shader.
Fixes: 3b10547e67 ("aco: enable helper lanes if shader->info.fs.require_full_quads")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26512 >
2023-12-06 05:34:30 +00:00
Faith Ekstrand
3bbd5357e9
nak: Advertise subgroupBroadcastDynamicId
...
This doesn't do anything yet because it's a Vulkan 1.2 core feature and
not in any extension but it will apply when we enable Vulkan 1.2 in the
future or if someone uses MESA_VK_VERSION_OVERRIDE=1.2/1.3.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26530 >
2023-12-06 05:18:30 +00:00
Faith Ekstrand
a3159bab98
nvk: Advertise VK_EXT_scalar_block_layout
...
https://gitlab.freedesktop.org/mesa/mesa/-/issues/9653
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26530 >
2023-12-06 05:18:30 +00:00
Sagar Ghuge
b223d33141
blorp: Handle stencil buffer compression on blitter engine
...
XY_BLOCK_COPY_BLT and XY_FAST_COLOR_BLT instruction supports AUX_CCS
surface mode. Stencil buffer compression is stencil data with CCS so we
can easily support that on blitter engine.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26167 >
2023-12-06 04:39:09 +00:00
Sil Vilerino
28ad562a16
d3d12: Video Encoder: Support reporting non contiguous NALU, offsets for frontend extraction
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
bed54fc9b0
d3d12: Video Encoder - When setting rate control dirty flags take into account rolled back optional configs
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
960d86ef9a
d3d12: Fix max reference frames reporting when HW does not support B frame
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
d010364841
d3d12: d3d12_create_fence_win32 - Fix double refcount bump
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
81c8e89ff8
d3d12: Fix screen->winsys leak in d3d12_screen
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
7bd6a42d1f
d3d12: Fix d3d12_tcs_variant_cache_destroy leak in d3d12_context
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
ba85ca3721
d3d12: Improve error detection and reporting for video encoder
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
0233cdd00d
d3d12: Detect imported resource buffer unknown format
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
bf73d5551a
d3d12: Implement PIPE_VIDEO_CAP_ENC_H264_SUPPORTS_CABAC_ENCODE
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
bee68059cb
d3d12: Autodetect d3d12_video_buffer imported handle/resource format and dimensions when not passed
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
3f43b2eae5
d3d12: Implement PIPE_VIDEO_FEEDBACK_METADATA_TYPE_AVERAGE_FRAME_QP
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
364cc5d51d
d3d12: Fix max slice size and max frame size metadata reporting
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
25e2a7544b
d3d12: max_frame_poc workaround for infinite GOPs
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
c89766f416
d3d12: Use new pipe h264 encode ip_period param
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
8af080cec4
d3d12: Implement d3d12_video_encoder_get_encode_headers for out of band VPS, SPS, PPS
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
829e821aab
d3d12: Only pass texture dimensions to d3d12_video_encoder_update_current_encoder_config_state
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
05fe740374
d3d12: Implement fence_get_win32_handle to get HANDLE from d3d12_fence
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
942791b937
d3d12: Implement get_feedback_fence for encode async waiting on pipe_feedback_fence
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
0cc0220cce
d3d12: H264 encode - Allow CONSTRAINED_BASELINE profile to be written in headers
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
c80b35274f
d3d12: Do not increase active_seq_parameter_set_id on new SPS. Force PPS on new SPS
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
1032fc07b5
d3d12: Implement inserting optional new headers on each H264/HEVC IDR frame
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
9a927f21fb
vl_winsys_win32: call winsys->destroy(winsys) in error conditions
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
88f25f35e4
frontend/va: Use p_video_codec.get_feedback_fence to report errors on frame submission
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
e0345bff94
frontend/va: Add VACodedBufferSegment Average QP metadata
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
0c1ff82bc8
frontend/va: Add h264 encode ip_period param
...
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
413b466aea
pipe: Add PIPE_H264_MAX_REFERENCES
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
92b73aeb16
pipe: Add PIPE_VIDEO_CAP_ENC_H264_SUPPORTS_CABAC_ENCODE
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
c954830132
pipe: Add PIPE_VIDEO_FEEDBACK_METADATA_TYPE_AVERAGE_FRAME_QP
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
3f07c8c321
pipe: Add p_video_codec.get_encode_headers for out of band VPS, SPS, PPS
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:53 +00:00
Sil Vilerino
34d45cf7ed
pipe: Add fence_get_win32_handle to get HANDLE from pipe_fence_handle
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:52 +00:00
Sil Vilerino
d9bbae6a0c
pipe: Add get_feedback_fence for encode async waiting on pipe_feedback_fence
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:52 +00:00
Sil Vilerino
3ab25d6fb3
pipe: Support inserting new headers on each H264/HEVC IDR frame
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456 >
2023-12-06 03:58:52 +00:00
jphuang
02a873fa2a
dzn: Change dst image layout according to aspect
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26532 >
2023-12-06 03:36:07 +00:00
Eric Engestrom
cb6422765c
turnip: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26493 >
2023-12-06 02:21:04 +00:00
Eric Engestrom
df8ea977be
radeonsi/ci: track changes to vpelib
...
According to `src/amd/meson.build`, radeonsi uses vpelib, so we should
track changes to it as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26479 >
2023-12-06 01:58:41 +00:00
Eric Engestrom
3a8da0b8bf
v3d: drop leftover from "move v3d_tiling to common"
...
Fixes: d198e26a1e ("broadcom/common: move v3d_tiling to common")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26525 >
2023-12-06 01:44:14 +00:00
Eric Engestrom
4dd8030b25
freedreno/ci: add more a630 flakes
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52405040 and passed
in the auto-retry https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52405437
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26531 >
2023-12-06 01:22:30 +00:00
Jesse Natalie
d7f038e8de
microsoft/clc: Add a test which sinks image derefs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26529 >
2023-12-06 01:07:24 +00:00
Jesse Natalie
c8895a4b85
microsoft/clc: Fix images with multiple derefs for real
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26529 >
2023-12-06 01:07:24 +00:00
Paulo Zanoni
bf0f261c1e
anv/sparse: document USAGE_2D_3D_COMPATIBLE as non-standard too
...
The standard block shapes (and by extension, the tiling formats they
require) are simply incompatible with getting a 2D view of a 3D image.
I couldn't find in the Vulkan spec anything related to what are the
expectations when trying to use both at the same time.
So here we "document" that this case is known non-standard. Please
notice that since we report residencyStandard3DBlockShape as true we
were actually supposed to support this case, but I can't see how this
would be possible, so set is_known_nonstandard_format to true so we
can avoid the assert() that comes right after.
Fixes the following when using Zink:
KHR-GL46.sparse_texture_tests.SparseTextureAllocation
Also "moves forward" the following test on Zink, so it now hits a
different assertion:
KHR-GL46.sparse_texture_tests.SparseTextureCommitment
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/26454 >
2023-12-06 00:29:58 +00:00
Paulo Zanoni
819b94176a
anv/sparse: check if the non-sparse version is supported first
...
During vkGetPhysicalDeviceSparseImageFormatProperties(), check first
if the non-sparse version of the image is supported, and return in
case it's not.
On TGL, if we don't do that, we may hit the following assertion:
deqp-vk: ../../src/intel/isl/isl.c:2584: isl_surf_init_s: Assertion `!(info->usage & ISL_SURF_USAGE_CPB_BIT) || dev->info->has_coarse_pixel_primitive_and_cb' failed.
My TGL doesn't has_coarse_pixel_primitive_and_cb.
Fixes the following on TGL:
dEQP-VK.api.maintenance5.flags.sparse_image_format_props
dEQP-VK.api.maintenance5.flags.sparse_image_format_props2
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/26454 >
2023-12-06 00:29:58 +00:00
Paulo Zanoni
181aa83027
anv/tr-tt: assert the bind size is a multiple of the granularity
...
If the size here is not a multiple of the granularity (64kb) then
we'll miss our "pages" estimation by 1. We could fix this with
DIV_ROUND_UP() or by simply putting a "+1" there, but the upper layers
should now be preventing this case so let's just put the assertion
here.
Previously it was possible to hit this case with Zink by running
under certain conditions piglit/arb_sparse_buffer-basic.
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/26454 >
2023-12-06 00:29:58 +00:00
Paulo Zanoni
c87f7c13fa
anv/sparse: reject binds that are not a multiple of the granularity
...
From the spec:
"Resources can be bound at some defined (sparse block) granularity."
"The sparse block size in bytes for sparse buffers and
fully-resident images is reported as
VkMemoryRequirements::alignment. alignment represents both the
memory alignment requirement and the binding granularity (in bytes)
for sparse resources."
Not only the upper layer (the Spec) doesn't allow this, the lower
layers (both the vm_bind ioctl and TR-TT) also work on a granularity.
Just check for this case and return an error.
Before this check, what would happen was:
- for the vm_bind backend, the vm_bind ioctl would fail
- for the TR-TT backend, we'd understimate l1_binds_capacity and
fail an assertion, or we'd just silently bind 64kb instead of the
original size
Currently, some Zink tests such as piglit/arb_sparse_buffer-basic can
trigger this behavior, but we're working to fix Zink for this case
(and that commit may be merged before this one).
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/26454 >
2023-12-06 00:29:58 +00:00
Ryan Neph
a495d437b7
venus: add dri option to enable multi-plane wsi modifiers
...
Adds a venus dri option to advertise support for multi-plane format
modifiers to Vulkan's common WSI. Otherwise, Venus will only support
modifiers with planeCount == 1 to ensure compatibility with Xwayland's
virgl-backed Glamor backend.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26240 >
2023-12-05 23:55:05 +00:00
Ryan Neph
035730f26e
venus: reject multi-plane modifiers for tiled wsi images
...
Force the use of single-plane modifiers for tiled wsi images as long as
Venus is integrated with Virgl, which does not support non-format
compression metadata planes (e.g. Intel's CCS or AMD's DCC modifiers).
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26240 >
2023-12-05 23:55:05 +00:00
Ryan Neph
833d228f53
venus: strip ALIAS_BIT for WSI image creation on ANV
...
For compositors that advertise modifier support, Vulkan common WSI
modifier support queries still fail in Venus on the Intel ANV driver.
This is due to the presence of VK_CREATE_IMAGE_ALIAS_BIT, without
accompanying wsi_image_create_info struct, which is implicitly excluded
from serialized messages over the venus-protocol.
By removing ALIAS_BIT, modifier queries begin to pass when the host
supports them.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26240 >
2023-12-05 23:55:05 +00:00
Ryan Neph
9bde89591e
venus: add VN_PERF=no_tiled_wsi_image
...
Force DRM_FORMAT_MOD_LINEAR for wsi image creation, even for winsys that
supports non-linear modifiers.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26240 >
2023-12-05 23:55:05 +00:00
Ryan Neph
aa15f52bf5
virgl: implemement resource_get_param() for modifier query
...
Without such, Xwayland gets back the implicit modifier token (INVALID)
when calling gbm_bo_get_modifier() for a dmabuf shared by the WSI layer.
Then mistakenly sends INVALID upon wl_buffer creation, rather than the
explicit modifier sent by WSI.
The logic of Xwayland's Glamor gbm backend is a bit circuitous, since
the modifier is sent by WSI alongside the dmabuf fd. Rather than use
that modifier directly when creating wl_buffer (via
zwp_linux_dmabuf_v1), Glamor first imports the dmabuf+modifier with
gbm_bo_import(), then uses the result of later gbm_bo_get_modifier().
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26240 >
2023-12-05 23:55:05 +00:00
Faith Ekstrand
95c0447ad6
radeonsi: Drop an unnecessary cast
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Faith Ekstrand
2a28338aa8
compiler: Fix a comment
...
We're not using GL enums here anymore
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Faith Ekstrand
06257514c1
nir: Return a mesa_prim from gs_in_prim_for_topology
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Faith Ekstrand
e3ff5a3b0e
intel/vec4: Use MESA_PRIM_* instead of GL_*
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Faith Ekstrand
b97003e49a
glsl: Properly remap GL_* to MESA_PRIM
...
Instead of blatantly assuming with no assert that they're the same, add
a remap function. Also, be more careful about which enum we use where.
In the AST, we use GLenum and GL_FOO because we also need GL_ISOLINES.
When we translate to shader info, GS gets translated into mesa_prim
and tessellation gets translated into tess_primitive_mode which has
ISOLINES as a valid primitive value.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Faith Ekstrand
a41d65cfba
dxil: Use mesa_prim consistently
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24821 >
2023-12-05 23:12:32 +00:00
Karol Herbst
65de9bc81a
clc: add dump_llvm debug options
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26524 >
2023-12-05 22:45:53 +00:00
Karol Herbst
d9d398e652
clc: allow debug flag to be read from other files
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26524 >
2023-12-05 22:45:53 +00:00
Samuel Pitoiset
3678482f1e
radv: set combinedImageSamplerDescriptorCount to 1 for multi-planar formats
...
RADV compacts all descriptors for multi-planar images into one
combined image sampler, so it should be 96, and not eg. 192 for a two
planes format.
Fixes new CTS
dEQP-VK.binding_model.descriptor_buffer.ycbcr_sampler.*array.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26498 >
2023-12-05 22:27:19 +00:00
Alyssa Rosenzweig
65e431e61a
nir/lower_idiv: Optimize idiv sign calculation
...
Save a comparison, and move out the comparison to be more backend friendly.
Saves 2 instrs on AGX (as the remaining comparison now fuses with bcsel).
Results on AGX, all affected shaders in asphalt9.
total instructions in shared programs: 1813003 -> 1812611 (-0.02%)
instructions in affected programs: 119646 -> 119254 (-0.33%)
helped: 333
HURT: 0
Instructions are helped.
total bytes in shared programs: 11870344 -> 11867208 (-0.03%)
bytes in affected programs: 820888 -> 817752 (-0.38%)
helped: 333
HURT: 0
Bytes are helped.
and on Mali-G57:
total instructions in shared programs: 2677538 -> 2677205 (-0.01%)
instructions in affected programs: 206923 -> 206590 (-0.16%)
helped: 333
HURT: 0
Instructions are helped.
total cvt in shared programs: 14667.50 -> 14662.30 (-0.04%)
cvt in affected programs: 1953.64 -> 1948.44 (-0.27%)
helped: 333
HURT: 0
Cvt are helped.
total quadwords in shared programs: 1450664 -> 1450544 (<.01%)
quadwords in affected programs: 5064 -> 4944 (-2.37%)
helped: 15
HURT: 0
Quadwords are helped.
total threads in shared programs: 53282 -> 53309 (0.05%)
threads in affected programs: 27 -> 54 (100.00%)
helped: 27
HURT: 0
Threads are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26489 >
2023-12-05 21:46:26 +00:00
Eric Engestrom
910000f30f
freedreno/ci: add more flakes seen on a630
...
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52365773 and its
automatic retry https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52365892
have two distinct sets of failures; add all of them as flakes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26517 >
2023-12-05 21:21:07 +00:00
Eric Engestrom
21b0445d05
freedreno/ci: add flake seen on a630
...
Failed in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52372985 and
passed in the retry https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52374333
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26517 >
2023-12-05 21:21:07 +00:00
Rhys Perry
e110eac171
aco: insert p_end_wqm before p_jump_to_epilog
...
Otherwise, we can transition to exact before p_jump_to_epilog, then
transition to WQM again and then back to exact:
p_jump_to_epilog //transitions to exact
p_logical_end //transitions to wqm
p_end_wqm //transitions to exact
We rely on ssa elimination to clean most of this up.
fossil-db (navi21):
Totals from 1 (0.00% of 79330) affected shaders:
Instrs: 111 -> 110 (-0.90%)
CodeSize: 572 -> 568 (-0.70%)
Copies: 16 -> 15 (-6.25%)
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/25440 >
2023-12-05 21:02:04 +00:00
Connor Abbott
24527b3d28
tu: Move shader linking to tu_shader.cc
...
This creates a function that can be used by both pipelines and shaders.
Note that we cannot yet call tu_CreateShadersEXT directly inside the
pipeline due to things like pipeline feedback, multiview, and so on, but
further extensions will hopefully bring us closer to that ideal.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679 >
2023-12-05 20:38:28 +00:00
Connor Abbott
ca03e6ab3f
tu: Make filling out tu_program_state not depend on the pipeline
...
We will need to fill it out at draw time for shader objects.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679 >
2023-12-05 20:38:28 +00:00
Connor Abbott
88db736472
tu: Rework dynamic offset handling
...
With shader objects, we won't have the pipeline layout available. This
means that the current way we implement dynamic offset descriptors in
combination with fast-linking and independent descriptor sets, where we
use the pipeline layout when fast-linking that has pre-computed offsets
for each descriptor set, won't work. Instead we need to piece together
the sizes of the descriptors in each descriptor set from the shaders.
This is already effectively what we do when we stitch together the
pipeline layout when fast-linking, but we need to make it work with just
the shaders.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679 >
2023-12-05 20:38:28 +00:00
Connor Abbott
af691ec8e4
tu: Don't use pipeline layout to emit shared const enable
...
It won't exist when we emit this at draw time for shader objects.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679 >
2023-12-05 20:38:27 +00:00
Faith Ekstrand
785290836b
nak: Add a barrier propagation pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
a595535074
nak: Force RA to allocate bar_in/out to the same register
...
OpBreak and OpBSsy aren't very SSA friendly as they require bar_in and
bar_out to be assigned the same register. We need to encure that RA
knows about this restriction. For now, we just special-case these two
instructions. In the future we may want a more generic mechanism for
this but it's not worth it for just two instructions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
eda940c855
nak: Make barriers SSA-friendly
...
The NIR intrinsics now take and return a barrier whenever one is
modified instead of modifying in-place. In NAK, we give the internal
instructions the same treatment and convert everything to use barrier
SSA values and RegRefs. In nak_from_nir, we move all barriers to/from
GPRs. We'll clean up the massive pile of OpBMov later.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
71813afa7a
nak: Take num_barriers from RA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
dca65f62c8
nak: Add support for spilling barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
7cd9680554
nak: Add back OpBMov with better semantics
...
It now takes a regular Src and Dst and we handle both GPR -> Bar vs.
Bar -> GPR forms in the emit code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
40c96ff6ea
nak: Add a barrier register file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
618723428a
nak: Fix scheduling for control barriers
...
OpBar and OpBSync both stall the thread until other threads get to that
point. These instructions must have .yld set. Also, warp barrier ops
don't support the usual instruction barrier mechanism so they should be
marked as having a fixed latency. It's unclear if the barrier file is
internally scoreboarded or if warp barrier ops just stall the whole
thread. In either case, this seems necessary.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
45686ec0ba
nak: Replace OpBMov with OpBClear
...
This is all we're using it for right now and an op that simply clears
has far more obvious semantics than something which reads from and then
clears its source.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Faith Ekstrand
3348446422
nak: Simplify Src::is_predicate()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463 >
2023-12-05 18:59:40 +00:00
Samuel Pitoiset
13dcbdcdf3
radv: make sure to reset the stipple line state when it's disabled
...
In a scenario like:
CmdBindPipeline(stipple line enabled)
CmdDraw()
CmdBindPipeline(stipple line disabled)
CmdDraw()
The second draw wasn't resetting the stipple line state and this might
have caused issues, though it's uncovered by VK CTS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429 >
2023-12-05 18:29:30 +00:00
Samuel Pitoiset
e88973fd02
radv: change the reset stipple pattern mode for adjacent lines
...
Ported from RadeonSI. This isn't covered by VK CTS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429 >
2023-12-05 18:29:29 +00:00
Samuel Pitoiset
16d5ffc3ee
radv: update the reset stipple pattern mode
...
PAL recently changed the mode. This doesn't fix anything known.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429 >
2023-12-05 18:29:29 +00:00
Samuel Pitoiset
949fdc9a73
radv: advertise VK_EXT_depth_clamp_zero_one
...
RADV already implements this behavior, so enabling this extension is
a no-op.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26443 >
2023-12-05 18:10:31 +00:00
Lionel Landwerlin
8d6c059bd2
intel/tools: 32bit compile fixes
...
Fixes: 03712579b0 ("intel/tools: add hang_replay tool")
Signed-off-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/26514 >
2023-12-05 17:45:18 +00:00
Rhys Perry
7a37a39fe0
aco: simplify v_mul_* labelling slightly
...
This was from before VALU_instruction existed.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445 >
2023-12-05 16:56:58 +00:00
Rhys Perry
468ee8b80c
aco: implement 16-bit fsat on GFX8
...
GFX8 doesn't have v_med3_f16.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445 >
2023-12-05 16:56:58 +00:00
Rhys Perry
de51a21e26
aco: implement 16-bit derivatives
...
These are used by radeonsi.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445 >
2023-12-05 16:56:58 +00:00
Rhys Perry
997a0884a5
aco: implement 16-bit fsign on GFX8
...
GFX8 doesn't have v_med3_i16.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445 >
2023-12-05 16:56:58 +00:00
Rhys Perry
b7725b072b
aco: flush denormals for 16-bit fmin/fmax on GFX8
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445 >
2023-12-05 16:56:57 +00:00
Yonggang Luo
a9a2eabea8
glsl: move glsl_get_gl_type into glsl/linker_util.h
...
glsl_get_gl_type only accessed in src/compiler/glsl files, do not expose it
in libcompiler
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25879 >
2023-12-05 16:16:55 +00:00
Boris Brezillon
1d4583759a
panfrost: Restrict job descriptor emission to JM hardware
...
CSF hardware issue jobs through command stream instructions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
54e0086abe
panfrost: Restrict job chain helpers to JM hardware
...
Jobs are issued through command stream instructions on CSF hardware.
Don't expose the job chain helpers in that case.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
1481883a6e
panfrost: Make pan_afbc_compression_mode() per-gen
...
With the introduction of v10, we need this function to have a
per-gen name to avoid duplicates. While at it, move it to pan_texture.c
since the prototype is already defined in pan_texture.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
e144347140
panfrost: Rename pan_cs.{c,h} into pan_desc.{c,h}
...
Pre v10 Mali GPU were describing GPU jobs as a chain of job descriptors,
but new generations moved to a command stream based approach. The
pan_cs.{h,c} name was chosen based on the assumption this job chain
would replace the command stream we have on other GPUs, things will
become a lot more confusing now that we have a real command stream.
Let's rename these files before it happens. Given all the helpers in
there are either emitting descriptors, and calculating values to be
put in such descriptors, pan_desc.{c,h} sounds like an acceptable
name.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
dc087a3184
panfrost: s/pan_scoreboard/pan_jc/
...
What pan_scoreboard manipulates is a job chain, how dependencies
between jobs is implemented is an implementation detail, and shouldn't
leak through the name.
Let's rename pan_scoreboard.h pan_jc.h, and prefix the functions
accordingly.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
692a4b1804
panfrost: Don't leak NIR compute shaders
...
We never steal the NIR program or free it explicitly, and the state
tracker expects drivers to take ownership of the program object. Since
panfrost doesn't need to keep the original NIR shader around for
compute, let's just free it before returning.
Fixes: 40372bd720 ("panfrost: Implement a disk cache")
Cc: stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26424 >
2023-12-05 15:29:28 +00:00
Karol Herbst
b470bd7359
rusticl/gl: make GLX support optional
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26394 >
2023-12-05 14:44:52 +00:00
Karol Herbst
494fd5d068
rusticl: add x11 dependency
...
This is needed by `glx.h` pulling in `X11/Xlib.h`
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10221
Fixes: df0623e51a ("rusticl, meson: Add gl/egl/glx bindings")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26394 >
2023-12-05 14:44:52 +00:00
Samuel Pitoiset
338319741c
radv: add DGC support for mesh shader only
...
This only implements mesh shaders with DGC because task shaders are
really tricky. I will address them later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890 >
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
eb3e1bdfe6
radv: only initialize the VTX base SGPR if non-zero with DGC
...
Otherwise, its value is incorrect.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890 >
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
1deedc70db
radv: only initialize the VBO reg if VBOs are bound with DGC
...
With mesh shader there is no VBO at all.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890 >
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
400cfa0eba
radv: remove never used binds_state for DGC
...
This has been removed a while ago.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890 >
2023-12-05 14:17:39 +00:00
Mario Kleiner
1700c6af6f
v3d: add B10G10R10[X2/A2]_UNORM to format table.
...
Enables 10 bpc / color depth 30 bit support under XOrg
with X11/GLX/OpenGL.
Successfully tested with RaspberryPi OS 11,
running X-Server 1.20, and also with Weston,
on a RaspberryPi 400 on top of current Mesa 24.0-devel.
Alejandro Piñeiro also performed a GLES CTS run
with successful result, citing him:
"Full GLES 31 CTS finished with 0 failres. So all ok"
Note that this commit was originally developed and
successfully tested by myself against Mesa 23.1-devel
from February 2023, and therefore should apply and work
cleanly against recent Mesa stable branches. One could
see this commit as a trivial compatibility fix against
X-Server 1.20 / modesetting-ddx 1.20, which is why I'm
also nominating this commit for the current 23.3 stable
branch, and also the 23.2 stable branch, so it may make
it into RaspberryPi OS 12. Thanks for the consideration.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Backport-to: 23.2
Backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26472 >
2023-12-05 13:56:23 +00:00
Eric Engestrom
48324e3734
radeonsi/ci: update vangogh piglit expectations
...
Looking good there, Vangogh!
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26466 >
2023-12-05 13:34:32 +00:00
Martin Roukala (né Peres)
91076fd390
amd/ci: reduce Renoir's concurrency to 16
...
It seems like when we increased the number of tests per shard, we
started overcommitting the Renoir runner, leading to load averages
higher than the 16 CPU threads could handle, while also running at
75-96% memory usage.
By dropping the concurrency to 16, we should be able to reduce this
memory usage while also reducing the execution time.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26501 >
2023-12-05 12:45:44 +00:00
Caio Oliveira
d9565a0e66
intel/compiler: Remove the linking step in intel_clc
...
A previous patch already removed individual compilation of the inputs,
by simply concatenating the files. This patch removes the linking of
the remaining single object that's compiled.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458 >
2023-12-05 11:48:25 +00:00
Caio Oliveira
d9e49ce194
intel/compiler: Fix memory leaks in intel_clc
...
Avoids failures when using Address Sanitizer.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458 >
2023-12-05 11:48:25 +00:00
Caio Oliveira
db9111bb87
intel/compiler: Use single variable instead of dynarray
...
A previous change concatenated multiple SPIR-V inputs to be
compiled together, so we have a single clc_binary to work on.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458 >
2023-12-05 11:48:25 +00:00
Caio Oliveira
73276c1ece
intel/compiler: Refactor program exit in intel_clc
...
Move the clean up code (at the moment just ralloc_ctx) into
a single place at the end.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458 >
2023-12-05 11:48:25 +00:00
Faith Ekstrand
1d10de539c
nvk: Implement VK_EXT_shader_image_atomic_int64
...
The compiler work is done but we still need to advertise formats and
deal with clears.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9647
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
0ad77cbf98
nvk: Don't disable non-texturable formats
...
We're about to add int64 formats and those aren't texturable but you can
use them as storage images.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
7f1dc665ef
nil: Add R64_SINT and R64_UINT formats
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
c190c54c30
nak: Handle 64-bit image atomics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
62ff051139
nak: Lower 64-bit image load/store
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
1e2f9ab771
nak/nir: Trim image load/stores based on format
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
9b60a1c00e
nvk: Advertise VK_KHR_shader_atomic_int64
...
Everything should be mostly wired up. Shared atomics don't seem to work,
though, for some reason.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9603
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
c05ad7904f
nvk: Advertise KHR_shader_subgroup_extended_types
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9607
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
a975c51d5b
nak/nir: Handle non-32-bit data in lower_scan_reduce
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
2655607983
nvk: Advertise VK_EXT_shader_subgroup_ballot/vote
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
3bded00831
nvk: Advertise shaderInt64
...
We enable the lowering so everything should work. If there's bugs,
we'll fix them. There's more work to do to implement it efficiently, of
course, but it should work.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9662
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
56a6486599
nak/nir: Don't lower 64-bit conversions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
39db9cf0a7
nak: Implement b2i64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
943eae018b
nak: Fix encoding of 64-bit F2I, I2F, and F2F
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
16e55dc7d5
nak: Use the right source types for I2F, F2I, and F2F
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
d621f2ccfd
nak: Don't ask NIR to lower [iu]mul64_2x32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
d2cec80768
nak: Implement 64-bit comparisons
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
8747a25d65
nak: Rework printing of comparisons
...
As with the memory modifiers, put the . on the modifier rather than
having to do it as part of the print itself. Also, add printing of
accumulators but only if it's not a trivial accumulation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
9c1eade3eb
nak: Lower isign in NIR
...
The NIR lowering just clamps to [-1, 1] which should turn into two IMnMx
as opposed to the 4 instructions we're emitting now. We can maybe do
better than the NIR lowering for 64-bit but that seems unnecessary.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
12acb2ef62
nak: Natively implement 64-bit shifts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
a52e46406b
nak: Implement 64-bit ineg
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:51 +00:00
Faith Ekstrand
7db3cc7502
nak/nir: Don't use nir_lower_bit_size on 64-bit values
...
It works by casting values to a larger type and doing the operation
there so it makes no sense to use it for 64-bit values.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:50 +00:00
Faith Ekstrand
af94989085
nak: Set .64/.32 on CSSR as needed
...
Fixes: 46d489fa4d ("nak: Implement shader clock")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:50 +00:00
Faith Ekstrand
ee386c0c58
nak: Fix integer roll-over when we have a u64vec4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:50 +00:00
Faith Ekstrand
add1119671
nak: Run rustfmt again
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246 >
2023-12-05 11:24:50 +00:00
Yonggang Luo
83a5fb9faf
util: Fixes note: the alignment of ‘_Atomic long long int’ fields changed in GCC 11.
...
This is a improve of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22121
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23961 >
2023-12-05 09:26:08 +00:00
Eric Engestrom
81ec1fa0b5
nvk: use || instead of | between bools
...
We have to split each call into its own variable, because simply
replacing `|` with `||` would short-circuit the right side when the left
side succeeds.
Fixes: dadf9d59e6 ("nvk: Add support for variable pointers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26509 >
2023-12-05 08:07:48 +00:00
Eric Engestrom
3115e6e211
amd/ci: reuse .radeonsi-rules in .radeonsi-vaapi-rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26480 >
2023-12-05 06:55:21 +00:00
Lionel Landwerlin
344a4948b7
intel/hang_replay: fix compile race with generated files
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 03712579b0 ("intel/tools: add hang_replay tool")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26510 >
2023-12-05 06:09:52 +00:00
Faith Ekstrand
dcf2f25169
nouveau: Move headers/classes to headers/nvidia/classes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26507 >
2023-12-05 03:53:01 +00:00
Faith Ekstrand
ec345567ad
nouveau: Rename nvidia-headers to headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26507 >
2023-12-05 03:53:01 +00:00
Yonggang Luo
e568ef122a
d3d12,dzn: Simplify the usage of #include <wsl/winadapter.h>
...
Now wsl/winadapter.h are platform independent
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26508 >
2023-12-05 03:24:30 +00:00
Yonggang Luo
767aa00230
dzn: Fixes -Werror=incompatible-pointer-type
...
Error message:
../../src/microsoft/vulkan/dzn_device.c:3840:108: error: passing argument 5 of 'device->dev13->lpVtbl->OpenExistingHeapFromAddress1' from incompatible pointer type [-Werror=incompatible-pointer-types]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26508 >
2023-12-05 03:24:30 +00:00
Rob Clark
f2e3285d8e
freedreno/drm: Fix zombie BO import harder
...
Fixes: 6ac133c646 ("freedreno/drm: Fix race in zombie import")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26506 >
2023-12-05 03:03:12 +00:00
Mohamed Ahmed
3c10b70ee8
nvk: Enable linear images for texturing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Mohamed Ahmed
03492b5532
nvk: Wire up rendering to linear
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Mohamed Ahmed
6ab7753042
nil: Add support for linear images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Mohamed Ahmed
b1737856ad
nvk: Fix GetImageSubResourceLayout for non-disjoint images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Faith Ekstrand
db1ec1c67a
nil: Add support for filling out linear texture headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26365 >
2023-12-05 02:47:18 +00:00
Faith Ekstrand
bd667acb35
nvk: Advertise VK_EXT_subgroup_size_control
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9617
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26503 >
2023-12-05 02:32:00 +00:00
Dmitry Baryshkov
579ea57db9
freedreno/regs: add mdp_fetch_mode enum
...
Basing on the DPU driver, add the mdp_fetch_mode enum. It describes the
SSPP fetching mode: linear, UBWC or tiled.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26471 >
2023-12-05 01:19:50 +00:00
Dmitry Baryshkov
10cca7ac49
freedreno/regs/mdp_common: fix BPC comments
...
Fix comments for the BPC5 and BPC4A entries, so that they mention proper
bit width corresponding to this enum value.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26471 >
2023-12-05 01:19:50 +00:00
Dmitry Baryshkov
80816f210d
freedreno/regs/mdp_common: change BPC1 -> BPC4
...
This enum value corresponds to 4-bits colour instead of 1-bit colour.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26471 >
2023-12-05 01:19:50 +00:00
Rob Clark
d05e81fa7f
isaspec: Sort labels with same output
...
In order to get stable results from qsort() across different versions of
libc, toolchain, etc., sort labels with the same offset alphabetically.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10217
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26399 >
2023-12-05 00:42:09 +00:00
Boris Brezillon
93e9bfcfd5
panfrost: Fix multiplanar YUV texture descriptor emission on v9+
...
Multiplanar YUV textures require two surface descriptors, and the
base address calculation should be moved inside the for loop,
otherwise we always take the base address of the first plane.
Fixes: 144f9324a3 ("panfrost: prepare v9+ to support YUV sampling")
Cc: stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26425 >
2023-12-05 00:26:20 +00:00
Eric Engestrom
dafd6e776e
venus: fix typo in comment
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26495 >
2023-12-05 00:03:56 +00:00
Eric Engestrom
64a827a8e6
venus: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26495 >
2023-12-05 00:03:56 +00:00
Eric Engestrom
f5297208d0
vk/overlay-layer: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26487 >
2023-12-04 23:27:29 +00:00
Eric Engestrom
d0df3834b4
vk/util: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26487 >
2023-12-04 23:27:29 +00:00
Eric Engestrom
d6144ba88f
vk/wsi: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26487 >
2023-12-04 23:27:29 +00:00
Eric Engestrom
84c27ea42c
vk/runtime: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26487 >
2023-12-04 23:27:29 +00:00
Lionel Landwerlin
7c76125db2
anv: use 2 different buffers for surfaces/samplers in descriptor sets
...
We had the unfortunate finding on a recent platform to learn that the
bindless sampler heap is not functioning as expected.
Nowhere in the documentation is the size of the heap written down. So
most people assumed that's the max number that we can program (4Gb).
The reality is that it's only 64Mb.
Though it is appearing like it's working properly for the whole 4Gb
range for most apps, this is only because the HW bounds checking
applied is broken. Instead of clamping anything beyong 64Mb, it's only
clamping the last 4Kb of each 64Mb region.
So this heap is useless for us to make a 4Gb region of both sampler &
surface states...
This change essentially turns off the bindless sampler heap on DG2+.
The only location where we can put SAMPLER_STATE elements is the
dynamic state heap. Unfortunately we cannot align the dynamic state
heap with the bindless surface state heap. So the solution is to
allocate sampler & surface states separately, each from the own heap
in the descriptor pool.
We now have to provide 2 sets of offsets for surfaces & samplers.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Lionel Landwerlin
09a3a93372
anv: set layout printer
...
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Lionel Landwerlin
4608de6645
anv: add missing push descriptor flush on ray tracing pipelines
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Lionel Landwerlin
f26e83b6a4
anv: make a couple of descriptor function private
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Lionel Landwerlin
1cdadbcdf6
anv: move descriptor set type selection to earlier
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Lionel Landwerlin
18a1234541
anv: add a sampler state pool
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897 >
2023-12-04 23:06:05 +00:00
Eric Engestrom
ddc6bd11df
nvk: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26492 >
2023-12-04 22:50:26 +00:00
Sviatoslav Peleshko
5cb20b5edc
anv: Fix MI_ARB_CHECK calls in generated indirect draws optimization
...
According to PRMs, to use self-modifying code correctly we have to
disable preparser before jumping to the generated commands, and re-enable
it with a first command in that buffer.
Old implementation did it wrong: for both inplace and inring generation
it disabled preparser before running the generation shader, had it
disabled during generation, and re-enabled it just before jumping to
the generated commands.
This usually didn't cause any trouble, because the generation shader and
generated draws are in different BOs, and the jump distance is greater than
the command FIFO depth. But we allocate them from the same pool,
so there are rare cases where the end of the BO with generation commands,
and the beginning of the BO with generated draws are adjacent. In such
cases, the wrong commands might be fetched.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10162
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26427 >
2023-12-04 22:02:59 +00:00
Sil Vilerino
936dd81ed9
ci: Build d3d12 gallium driver in debian-x86_32
...
Adding d3d12 to this ci build will prevent issues such
as #6708 or fixes like !26363 from happening again in the future.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26447 >
2023-12-04 21:06:16 +00:00
Eric Engestrom
ebaede788e
amd/ci: limit radv jobs to radv + aco files changes
...
Otherwise, any change in src/amd/ would always trigger all the radv
jobs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26460 >
2023-12-04 20:43:53 +00:00
Eric Engestrom
03d8ea9912
amd/ci: split common amd files list from radeonsi files list
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26460 >
2023-12-04 20:43:53 +00:00
Eric Engestrom
98f0800c94
amd/ci: fix yaml indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26460 >
2023-12-04 20:43:53 +00:00
Eric Engestrom
fc96bc9b58
hasvk: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26491 >
2023-12-04 18:06:57 +00:00
Eric Engestrom
680d5fdaf3
anv: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26491 >
2023-12-04 18:06:57 +00:00
José Roberto de Souza
7b2a0b6778
iris: Fix the mmap mode for IRIS_HEAP_DEVICE_LOCAL_PREFERRED
...
bos allocated into IRIS_HEAP_DEVICE_LOCAL_PREFERRED can always be
mmaped because it is also backed to smem which is not the case for
IRIS_HEAP_DEVICE_LOCAL.
This fixes issues with small PCIe bar systems.
Fixes: 21170a58d8 ("iris: Split system memory heap into cached-coherent and uncached heaps")
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26455 >
2023-12-04 16:35:15 +00:00
Alyssa Rosenzweig
d7f0804a47
nir/format_convert: handle clamping smaller bit sizes
...
asahi will pass in 16bits, works fine if we convert before clamping. note we
don't try to be clever and make a smaller immediate because it would require
extra logic for negatives to make sure we don't have garbage in upper bits
(nir_validate checks that). do the simple, obviously correct thing.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26440 >
2023-12-04 15:41:19 +00:00
Lionel Landwerlin
33fd93f3b1
intel/tools: hang viewer/editor
...
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Lionel Landwerlin
1e17c2219a
intel/error_decode: map i915 gfx12.5 register names to our names
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Lionel Landwerlin
a2a2624a8f
intel/aubinator_error_decode: bump max buffers to 1024
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Lionel Landwerlin
df77e6da82
intel: add error2hangdump tool
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Lionel Landwerlin
a496abf177
intel/hang_replay: add the ability to pass the context image to sim-drm
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Lionel Landwerlin
03712579b0
intel/tools: add hang_replay tool
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21167 >
2023-12-04 14:51:29 +00:00
Sergi Blanch Torne
008f56ec5a
Revert "ci: disable Collabora's LAVA lab for maintance"
...
This reverts commit 3816e5dae7
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26313 >
2023-12-04 13:15:36 +00:00
David Heidelberg
2143e2abbb
Revert "ci/freedreno: disable a660 as it's down now"
...
Fixed.
This reverts commit 5161af7df70001ac1bb71f332c7bac180c3e25d1.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26497 >
2023-12-04 12:52:48 +00:00
Friedrich Vock
d6d68ceda1
radv: Enable compute dispatch tunneling
...
Compute tunneling can considerably lower the latency of high-priority
compute work. Enabling it is beneficial in cases where high-priority
work is dispatched while the GPU is already busy with other work (e.g.
rendering on GFX). This is the case in VR compositors that dispatch
latency-sensitive compositing work to ACE while GFX is busy rendering
the next frame.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26462 >
2023-12-04 12:32:47 +00:00
Eric Engestrom
b3ab233ff7
pvr: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26486 >
2023-12-04 12:16:06 +00:00
Erik Faye-Lund
d8d49ad034
meson: work around meson 0.62 issue
...
Ubuntu 22.04 LTS has Meson 0.62, but recent versions of mesa fails to
build there due to an issue with using wayland-protocols from wrapdb,
that wasn't fixed until Meson 0.63. Luckily the problem is easy to
work around, so let's just do that.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10232
Fixes: 5fe5c3e223 ("meson: add wayland-protocols from meson wrapdb")
Tested-by: Eero Tamminen <eero.t.tamminen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26446 >
2023-12-04 11:41:37 +00:00
Pierre-Eric Pelloux-Prayer
5119e0adc3
egl/wayland: set the correct modifier for the linear_copy image
...
linear_copy_display_gpu_image is created using DRM_FORMAT_MOD_LINEAR,
so use createImageFromDmaBufs3 to be able to pass the modifier when
importing it on the render GPU.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9282
Reviewed-by: Simon Ser <contact@emersion.fr >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26337 >
2023-12-04 11:03:41 +00:00
Eric Engestrom
778000ec7f
radv: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26490 >
2023-12-04 10:45:48 +00:00
Felix bridault
059391b631
radv: use 32bit va range for sparse descriptor buffers
...
Fixes: 5c5735fd68 ("radv: advertise VK_EXT_descriptor_buffer")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26482 >
2023-12-04 09:59:29 +00:00
Samuel Pitoiset
9027c6d8ca
radv: adjust assertions for multi-layer resolves with the HW/FS paths
...
Only compute supports layers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316 >
2023-12-04 08:12:16 +00:00
Samuel Pitoiset
70556739e0
radv: only re-initialize DCC for one level for the HW resolve path
...
The source image can only have one level, so only level in the
destination image needs to be re-initialized.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316 >
2023-12-04 08:12:16 +00:00
Samuel Pitoiset
91aaf0c663
radv: remove unused layers support for the HW/FS resolve paths
...
The driver always fallbacks to the compute resolve path when either
the source or destination images have layers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316 >
2023-12-04 08:12:16 +00:00
Samuel Pitoiset
aae2595390
radv: stop performing redundant resolves with the HW resolve path
...
This path was quadratic...
Found by inspection.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316 >
2023-12-04 08:12:16 +00:00
Samuel Pitoiset
e425f92f3e
radv: simplify creating image views for src resolve images
...
The Vulkan spec says:
"If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be
VK_IMAGE_TYPE_2D, flags must not contain
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1..."
So, the source image is always 2D with no mipmaps.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316 >
2023-12-04 08:12:16 +00:00
Sergi Blanch Torne
3816e5dae7
ci: disable Collabora's LAVA lab for maintance
...
This is to inform you of some planned downtime in the LAVA lab as follows:
* Start: 2023-12-04 08:00 UTC
* End: 2023-12-04 12:00 UTC
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26312 >
2023-12-04 07:16:55 +01:00
Eric Engestrom
38ce0c1747
v3dv: drop duplicate flag
...
`VK_PIPELINE_STAGE_2_TRANSFER_BIT` is the old name for
`VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT` which is already on the next
line; drop the duplicate.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26485 >
2023-12-04 04:13:39 +00:00
Eric Engestrom
1e03ac324f
v3dv: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26485 >
2023-12-04 04:13:39 +00:00
David Heidelberg
78bb77e41b
ci/freedreno: disable a660 as it's down now
...
Let's prevent unpleasant morning workday surprises.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26488 >
2023-12-03 22:19:19 +01:00
Eric Engestrom
2cdebf51fd
amd/ci: radeonsi is gl, not vk
...
Fixes: cf323446e7 ("amd/ci: run gl(es) cts & piglit on radeonsi on vangogh")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26478 >
2023-12-03 13:57:38 +00:00
Eric Engestrom
76be39ca6d
ci_run_n_monitor: allow picking a pipeline by its MR
...
It picks the latest pipeline from the MR; if you want another pipeline,
use `--pipeline-url`.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26381 >
2023-12-03 11:28:49 +00:00
Eric Engestrom
ed53147a7f
turnip: fix typo in comment
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26477 >
2023-12-03 09:19:13 +00:00
Dylan Baker
10a0f87857
docs: Add sha256 sum for 23.2.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26476 >
2023-12-03 08:12:37 +00:00
Dylan Baker
71655f33cf
docs: add release notes for 23.2.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26476 >
2023-12-03 08:12:36 +00:00
Eric Engestrom
cb923b3b4e
docs: fix release date for 23.3.0
...
I forgot to generate the relnotes when I did the release, and when
I generated it a couple days later the script picked `today()` instead
of the date on the tag (because it's supposed to be run _before_ tagging
the release), and I didn't notice right away.
Fixes: cad37be6c9 ("docs: add release notes for 23.3.0")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26475 >
2023-12-03 07:45:54 +00:00
M Henning
0e1bee73eb
nak: Call nir_opt_shrink_vectors
...
This can shrink loads and stores in some cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
d2657dbd21
nak: Call nir_opt_combine_barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
1a1c81987d
nak: Call nir_opt_load_store_vectorize
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
b6c949917d
nak: Provide robustness info to postprocess_nir
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
7adb40cfaa
nvk: Fix descriptor alignment offset
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
b565b42991
nak: Use nir_combined_align
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
M Henning
6797b6ba45
nak: Request alignment that matches the load width
...
Previously, this callback could try to set the requested alignment to
NIR_ALIGN_MUL_MAX, which would then overflow the u16 value in the
struct. We don't actually need that much alignment though, and this
value only really matters if we needed to increase alignment anyway.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26347 >
2023-12-03 04:15:39 +00:00
Eric Engestrom
b7517aec9e
docs: add sha256sum for 23.3.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26470 >
2023-12-02 12:01:54 +00:00
Eric Engestrom
cad37be6c9
docs: add release notes for 23.3.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26470 >
2023-12-02 12:01:54 +00:00
Eric Engestrom
2765b8aea4
bin/gen_release_notes: include removed 'new_features.txt' in commit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26469 >
2023-12-02 11:55:26 +00:00
Eric Engestrom
f548d84a35
bin/python-venv: fix venv folder check
...
My last refactor before merging !26354 was incorrect and broke the
script when use for the first time (or after deleting the venv folder).
Fixes: 69ec13b303 ("bin/python-venv: detect python version change")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26453 >
2023-12-02 11:48:35 +00:00
Eric Engestrom
2a6d750a53
bin/gen_release_notes: fix regex raw string
...
Fixes: ba6336ce3e ("docs: use version-number as toctree-title for relnotes")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26468 >
2023-12-02 11:44:45 +00:00
Eric Engestrom
402210034b
radv/ci: add navi21-aco flake
...
Failed once in https://gitlab.freedesktop.org/mesa/mesa/-/jobs/52219125
but passed in the automatic retry.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26467 >
2023-12-02 09:33:46 +00:00
Faith Ekstrand
6e2a7689b3
nak: Drop a bunch of SET_REFERENCE from the pre-Turing paths
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:09 +00:00
Faith Ekstrand
e0c2244ea9
nvk: Drop MME_DMA_SYSMEMBAR before indirect draw/dispatch
...
This reverts commit 3d3641e446 . We're now
doing this as part of CmdWaitEvents and CmdPipelineBarrier().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:09 +00:00
Faith Ekstrand
3a38526ff8
nvk: Drop unnecessary per-draw/dispatch cache maintenance
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:09 +00:00
Faith Ekstrand
e1c1cdbd5f
nvk: Implement vkCmdPipelineBarrier2 for real
...
We also need to plumb all the same logic into event handling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:09 +00:00
Faith Ekstrand
e962430e6f
nvk: Rework transform feedback stalling
...
Instead of doing a compute shader invalidate, use SET_REFERENCE to force
a command streamer stall. Also, emit a SYSMEMBAR before reading XFB
offsets through the MME.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:08 +00:00
Faith Ekstrand
ee22aa27b5
nvk: Move Begin/EndTransformFeedback to nvk_cmd_draw.c
...
There's nothing generic about this so it should go in the 3D-specific
file.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26408 >
2023-12-02 03:05:08 +00:00
Caio Oliveira
d96705e4b8
iris/xe2+: Use Region-based Tessellation redistribution
...
Update to recommended value from BSpec for xe2.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26438 >
2023-12-02 02:22:07 +00:00
Caio Oliveira
f5d15d6a06
anv/xe2+: Use Region-based Tessellation redistribution
...
Update to recommended value from BSpec for xe2.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26438 >
2023-12-02 02:22:07 +00:00
Jordan Justen
05632fc9eb
intel/genxml: Update 3DSTATE_TE for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26438 >
2023-12-02 02:22:07 +00:00
Marcin Ślusarz
878ca75335
anv: fix minSubgroupSize for xe2
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26437 >
2023-12-02 01:55:26 +00:00
Faith Ekstrand
00e88584af
vulkan: Add helpers for access flags
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
44add595af
vulkan: Add helpers for pipeline stage flags
...
This adds hand-written helpers for detecting if a set of stage flags
contains shaders as well as expand helpers that properly handle
TOP/BOTTOM_OF_PIPE_BIT.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
fe12c1c29e
vulkan: Add some auto-generated synchronization helpers
...
These are helpful for drivers to implement synchronization rules
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
9ad51980de
vulkan: Move vk_synchronization2 to vk_synchronization
...
I'm about to add more stuff that isn't really for sync2 so it makes
sense to give it a slightly more generic name.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:50 +00:00
Faith Ekstrand
2538354850
nvk: Stop initializing the 2D engine
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26441 >
2023-12-01 17:10:29 +00:00
Faith Ekstrand
85fd85f950
nvk: Use the copy engine for NVK_DEBUG=zero_memory
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26441 >
2023-12-01 17:10:29 +00:00
Faith Ekstrand
74b083ef75
nvk: Use the copy engine for CmdFillBuffer
...
The copy engine is a lot simpler than the 2D engine.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26441 >
2023-12-01 17:10:29 +00:00
Mary Guillemard
771bf5aaa3
nak: Fix NAK_ATTR_CLIP_CULL_DIST_7 wrong value
...
Fixes: d4d7f26151 ("nak: Add enums for sysvals and attributes")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26452 >
2023-12-01 16:40:24 +00:00
Samuel Pitoiset
bd54592487
radv: remove radv_pipeline_key::dynamic_color_write_mask
...
When this state is dynamic, the common runtime code sets the write mask
to 0xf which prevents color exports to be removed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26400 >
2023-12-01 15:50:04 +00:00
Martin Roukala (né Peres)
a6f22aa182
radv: disable meshShaderQueries on gfx10.3
...
They have been causing hangs intermitently in CI for the past week,
until it finally caught my attention and forced me spend a couple of
hours bisecting the issue.
We'll re-introduce support for it when the issue is fixed.
Fixes: b975d4e800 ("radv: enable meshShaderQueries on GFX10.3")
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26450 >
2023-12-01 15:17:48 +00:00
Rohan Garg
8cfae77439
anv: enable VK_EXT_depth_range_unrestricted
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
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/26426 >
2023-12-01 13:23:54 +00:00
Rohan Garg
80cafa3571
anv: ensure that we clamp only when EXT_depth_range_unrestricted is not enabled
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
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/26426 >
2023-12-01 13:23:54 +00:00
Rohan Garg
2e72917923
blorp: set min/max viewport depths to -FLT_MAX/FLT_MAX when EXT_depth_range_unrestricted is enabled
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
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/26426 >
2023-12-01 13:23:54 +00:00
Samuel Pitoiset
ced313eec8
radv: make sure to prefetch the compute shader for DGC
...
It was never prefetched. These two helpers should be refactored with
radv_dispatch() though.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26417 >
2023-12-01 12:25:46 +00:00
Samuel Pitoiset
ab6cf1592f
radv: fix bogus interaction between DGC and RT with descriptor bindings
...
pipeline_is_dirty was never TRUE because it's emitted in the before
helper. This might fix bad interactions between DGC and RT because
they both use compute shaders and descriptor bindings need to be
re-emitted.
Found by inspection.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26417 >
2023-12-01 12:25:46 +00:00
Frank Binns
b6f3b55b88
pvr: Add powervr winsys implementation
...
Co-authored-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com >
Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Co-authored-by: Sarah Walker <sarah.walker@imgtec.com >
Co-authored-by: Matt Coster <matt.coster@imgtec.com >
Co-authored-by: Donald Robson <donald.robson@imgtec.com >
Co-authored-by: Boris Brezillon <boris.brezillon@collabora.com >
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com >
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com >
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Signed-off-by: Donald Robson <donald.robson@imgtec.com >
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507 >
2023-12-01 10:41:24 +00:00
Sarah Walker
be82fe7ab9
pvr: Add command stream and static context state layout to rogue_kmd_stream.xml
...
Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com >
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507 >
2023-12-01 10:41:24 +00:00
Sarah Walker
90916c955b
pvr: csbgen: Add dummy implementation of stream type
...
This is enough of an implementation to allow stream layout to be added to
rogue_kmd_stream.xml.
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507 >
2023-12-01 10:41:24 +00:00
Frank Binns
d9132b63d9
include/drm-uapi: add pvr_drm.h
...
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507 >
2023-12-01 10:41:24 +00:00
Erik Faye-Lund
3a46181fe0
zink: do not handle PIPE_SWIZZLE_NONE
...
This is not a valid value for texture-views, whic is what we currently
use it for... And it's not the same as an identity swizzle anyway, in
the case we'd want to use it for something else in the future.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26192 >
2023-12-01 07:53:58 +00:00
Erik Faye-Lund
d7e067823b
d3d12: do not handle PIPE_SWIZZLE_NONE from sampler-view
...
This shouldn't be possible, so not need to handle it.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26192 >
2023-12-01 07:53:58 +00:00
Erik Faye-Lund
a5970c1a01
panfrost: do not handle NONE-swizzle
...
Neigher PIPE_SWIZZLE_NONE nor PIPE_SWIZZLE_MAX are legal here, so let's
not even try to handle it. If we ever get either here, we're triggering
a bug anyway.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26192 >
2023-12-01 07:53:58 +00:00
Erik Faye-Lund
e233eee492
lavapipe: do not use NONE-swizzle
...
The NONE-swizzle isn't supported for texture views in LLVMpipe, because
it's not meant for this purpose in the first place.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26192 >
2023-12-01 07:53:58 +00:00
Erik Faye-Lund
1fbec9f532
util/format: document NONE swizzle
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26192 >
2023-12-01 07:53:58 +00:00
ratatouillegamer
5f7aa0e012
hasvk: Enable hasvk override Vulkan API Version for Brawlhalla
...
Brawlhalla runs good with DXVK 2.0+, it can be enable as default
avoiding to use OpenGL Brawlhalla renderer.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26433 >
2023-12-01 07:18:10 +00:00
ratatouillegamer
9de6928746
hasvk: Add Vulkan API version override
...
This allows to use a driconf to override the API version and expose Vulkan 1.3.
That can be used in conjunction with certain games like for example Brawlhalla
which benefits from some DXVK +2.0 features.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26433 >
2023-12-01 07:18:10 +00:00
Gert Wollny
c13de0509c
r600/sfn: Don't try to re-use iterators when the set is made empty
...
It seems with libc++ the iterators are invalidated when the set
is emptied during iterating over it.
Fixes: 05fab97 (r600/sfn: Don't try to re-use the iterator when uses is updated)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7931
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26420 >
2023-12-01 06:37:30 +00:00
Qiang Yu
b16017d080
nir: fix load layer id system_values_read info gather
...
Otherwise radeons+ACO compilation fail.
Fixes: 32ee6376ad ("nir: add lowering from FS LAYER input to LAYER_ID sysval")
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26422 >
2023-12-01 03:17:57 +00:00
Rohan Garg
a499be0ee3
intel/genxml: Update IDD for new fields
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Rohan Garg
c916038b89
intel/genxml: Update COMPUTE_WALKER_BODY for xe2
...
Reworks:
* Caio: Change patch to only add COMPUTE_WALKER_BODY and
EXECUTE_INDIRECT_DISPATCH (that uses it).
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Rohan Garg
cc2dce82bc
intel: Set a preferred SLM size for LNL
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
16483cd4bc
iris: xe2 doesn't have INTERFACE_DESCRIPTOR_DATA::BarrierEnable
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Rohan Garg
ef1c1ca821
intel/genxml: Add the preferred slm size enum for xe2
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
1e9972991c
anv, iris: Update INTERFACE_DESCRIPTOR_DATA programming for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
bdb9c70f84
intel/genxml: Update INTERFACE_DESCRIPTOR_DATA for xe2
...
Reworks:
* Caio: Remove "Mask Stack Exception Enable", not present in BSpec.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
d95bbf35c9
anv: Set COMPUTE_WALKER Message SIMD field
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
59dc9b1df6
iris: Set COMPUTE_WALKER Message SIMD field
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
aafdf59dfe
intel/genxml: Update COMPUTE_WALKER for xe2
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Jordan Justen
064bdecb36
intel/compiler: Define XE2 compiler enum
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26390 >
2023-12-01 02:36:12 +00:00
Tatsuyuki Ishi
eb0419a1aa
radv: Remove aspect mask "expansion" for copy_image.
...
The Vulkan spec says multi-planar images can only be copied on a
per-plane basis. The COLOR_BIT to "all planes" expansion applies to
image memory barriers which is completely unrelated.
Remove the expansion logic to simplify the code. Add assertions to
clearly describe the invariant.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26364 >
2023-12-01 01:52:04 +00:00
Marek Olšák
7ffb65f935
ac: add an IB parser that gathers context rolls
...
This is an important performance bottleneck analysis tool.
Try it with radeonsi: AMD_ROLLS=filename app
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26349 >
2023-12-01 01:15:55 +00:00
Marek Olšák
f0cb8852a4
ac: move the IB parsers into ac_parse_ib.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26349 >
2023-12-01 01:15:55 +00:00
Marek Olšák
c5fe2780e6
ac: rename ac_parse_ib.c -> ac_ib_parser.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26349 >
2023-12-01 01:15:55 +00:00
Peyton Lee
95c933c8b7
winsys, amdgpu, drm: add VPE submission handle
...
Signed-off-by: Peyton Lee <peytolee@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Peyton Lee
a212e9bdbf
amd, radeonsi: supports post processing entrypoint
...
create a new decoder for handling post processing
Signed-off-by: Peyton Lee <peytolee@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Peyton Lee
ed176e2c71
amd, radeonsi: add si_vpe.c with helper functions of VPE lib
...
Signed-off-by: Peyton Lee <peytolee@amd.com >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Peyton Lee
3ec397819e
amd: add new hardware ip for vpe
...
Signed-off-by: Peyton Lee <peytolee@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Peyton Lee
17c20ceda7
amd,radeonsi: add libvpe
...
Signed-off-by: Peyton Lee <peytolee@amd.com >
Signed-off-by: Alan Liu <haoping.liu@amd.com >
Acked-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Peyton Lee
6b441ef6ab
frontends, va: add new parameters of post processor
...
Signed-off-by: Peyton Lee <peytolee@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25713 >
2023-12-01 00:23:38 +00:00
Jesse Natalie
be05c9458a
microsoft/clc: Fix image lowering pass to only erase variables at the end
...
Otherwise, if a variable has multiple derefs in a shader, we'll crash
trying to remove it a second time. No idea how that can happen though,
seems derefs got sunk by opt_dead_cf.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26435 >
2023-11-30 23:32:08 +00:00
Lynne
aff59c63eb
radv: change queue family order in radv_get_physical_device_queue_family_properties
...
Fixes: 748b7f80ef ("radv: Move sparse binding into a dedicated queue.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26428 >
2023-11-30 22:45:49 +00:00
José Roberto de Souza
42dd48e933
anv: Fix vm bind of DRM_XE_VM_BIND_FLAG_NULL
...
In this case bo is NULL so application was crashing when it was trying
to get the alloc_flags of bo to get the intel_device_info_pat_entry.
Fixes: 1a0d3504d5 ("anv: Fill PAT fields in Xe KMD gem_create and vm_bind uAPIs")
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26430 >
2023-11-30 22:22:41 +00:00
Rhys Perry
5bc27e80c9
ac/nir: fix 32-bit offset global access optimization
...
Since 38cff03e58 ("radv: use nir_lower_conv64"), u2u64(a) is replaced
with pack_64_2x32_split(a, 0).
fossil-db (navi31):
Totals from 1203 (1.52% of 79330) affected shaders:
MaxWaves: 33685 -> 33813 (+0.38%)
Instrs: 1407031 -> 1374689 (-2.30%); split: -2.32%, +0.02%
CodeSize: 7088652 -> 6917320 (-2.42%); split: -2.43%, +0.01%
VGPRs: 69276 -> 68988 (-0.42%); split: -0.43%, +0.02%
SpillSGPRs: 982 -> 977 (-0.51%); split: -0.92%, +0.41%
Latency: 12536511 -> 12451605 (-0.68%); split: -0.94%, +0.27%
InvThroughput: 2456803 -> 2431241 (-1.04%); split: -1.09%, +0.05%
VClause: 27624 -> 27832 (+0.75%); split: -1.88%, +2.64%
SClause: 31757 -> 32702 (+2.98%); split: -0.53%, +3.51%
Copies: 90923 -> 91238 (+0.35%); split: -1.47%, +1.81%
Branches: 25127 -> 25128 (+0.00%); split: -0.00%, +0.01%
PreSGPRs: 46025 -> 46068 (+0.09%); split: -0.53%, +0.62%
PreVGPRs: 53944 -> 53488 (-0.85%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26402 >
2023-11-30 21:50:21 +00:00
Rhys Perry
10ba06960f
ac/nir: ignore 8/16-bit global access offset
...
This was found by inspection, I'm not sure it can even happen.
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26402 >
2023-11-30 21:50:21 +00:00
Caio Oliveira
bbb12dbbf9
intel/compiler: Add a few tests to opt_predicated_break
...
v2 (idr): Fix expectations BottomBreakWithContinue. opt_predicated_break
will remove the IF and make the CONTINUE predicated.
v3 (idr): Temporarily disable the one test that fails.
v4 (idr): Free strings allocated by open_memstream. Fixes gitlab CI
failures in debian-testing-asan.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Caio Oliveira
0b072c5351
intel/compiler: Sort lists of succs and preds in CFG dump output
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Caio Oliveira
47c5656f0e
intel/compiler: Allow dumping CFG to a specific FILE*
...
Add optional argument for both cfg and block dump() function to pass
a FILE*. Default behavior remains dumping to stderr.
v2 (idr): Don't add the new test framework in this commit.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Caio Oliveira
21cf9323f0
intel/compiler: Add a few more helpers to fs_builder
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
c0ecc0d70b
intel/compiler: Don't promote CFG link types when removing a block
...
Imagine 3 blocks A, B, and C. A has a physical link to B, and B has a
logical link to C. Previous to this commit, if B were removed, A would
get a logical link to C. This is not correct.
This was specifically observed to occur when block A was a DO block and
B was the WHILE block. The DO block would have two logical successors,
and that is completely invalid.
v2: Assert that the links from A-to-B and B-back-to-A are the same
kind. Suggested by Caio.
v3: Assume the successor and predecessor lists are well formed. Use this
to simplify the logic. Suggested by Caio. Add checks to cfg_t::validate
to ensure the lists are well formed.
v4: Remove (now unused) bblock_link_invalid. Suggested by Curro.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
77c0c1ce54
intel/compiler: Don't create extra CFG links when deleting a block
...
The previous is_successor_of and is_predecessor_of checks prevented
creating a physical link when a logical link already existed. However, a
logical link could be added when a physical link already existed. This
change causes an existing physical link to be "promoted" to a logical
link.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
7e842a75ac
intel/compiler: Don't create extra CFG links in opt_predicated_break
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
bbd7729993
intel/compiler: Delete bidirectional block links in opt_predicated_break
...
Previously when earlier_block->children.make_empty() was called, the
child blocks would still have links back to earlier_block.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
5842829380
intel/compiler: Limit scope of cur_endif variable
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
02f9bbf6f3
intel/compiler: Add basic CFG validation
...
v2: Use _mesa_shader_stage_to_abbrev(stage) instead of
stage_abbrev. Noticed by Caio and GCC. That's what I get for not
recompiling after rebasing. Wrap cfg_t::validate in NDEBUG
magic. Suggested by Caio.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Ian Romanick
19db6f1cd9
intel/vec4: Don't emit an empty ELSE
...
This matches the behavior of fs_visitor::nir_emit_if.
This is not technically wrong, but the cfg_t generates some invalid
parent / child links in this case.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25216 >
2023-11-30 20:58:05 +00:00
Rohan Garg
f3d99e3535
anv: introduce ANV_TIMESTAMP_REWRITE_INDIRECT_DISPATCH
...
In order to rewrite timestamps for indirect dispatch's, instroduce a
ANV_TIMESTAMP_REWRITE_INDIRECT_DISPATCH that repacks the PostSync field
for a EXECUTE_INDIRECT_DISPATCH.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
9dd49e7a63
anv: memcpy the thread dimentions only when they're on the CPU
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
d161e3c2e2
iris: Emit a EXECUTE_INDIRECT_DISPATCH when available
...
On newer platforms (Arrowlake and above) we can issue a
EXECUTE_INDIRECT_DISPATCH that allows us to:
* Skip issuing mi load/store instructions for indirect parameters
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
580728564e
anv: Emit a EXECUTE_INDIRECT_DISPATCH when available
...
On newer platforms (Arrowlake and above) we can issue a
EXECUTE_INDIRECT_DISPATCH that allows us to:
* Skip issuing mi load/store instructions for indirect parameters
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
6d4f43f0d6
anv: Emit EXECUTE_INDIRECT_DRAW when available
...
On newer platforms (Arrowlake and above) we can issue a
EXECUTE_INDIRECT_DRAW that allows us to:
* Skip issuing mi load/store instructions for indirect parameters
* Skip doing the indirect draw unroll on the CPU side when the
appropriate stride is passed
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
7a9e82e82f
genxml/12.5: Add the EXECUTE_INDIRECT_DISPATCH instruction
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:45 +00:00
Rohan Garg
4229757309
genxml/12.5: Add the EXECUTE_INDIRECT_DRAW instruction
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:44 +00:00
Rohan Garg
6e060d99ba
intel/dev: Add a bit for when the HW can do a indirect draw/dispatch unroll
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:44 +00:00
Rohan Garg
fa350862e9
anv: refactor kernel dispatch to use new common functions
...
Refactor the function to use the new common functions introduced for
indirect dispatch previously.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:44 +00:00
Rohan Garg
51d2d9a665
anv: Refactor loading indirect parameters and filling IDD
...
Refactor out loading the indirect parameters and filling the interface
descriptor data.
Reworks:
* Jordan: Change anv to use get_interface_descriptor_data which
returns the IDD struct rather than filling it.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26421 >
2023-11-30 17:01:44 +00:00
Gert Wollny
ac4b8aab21
r600/sfn: Fix usage of std::string constructor
...
Fixes: f718ac6268 (r600/sfn: Add a basic nir shader backend)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26415 >
2023-11-30 16:42:43 +00:00
Gert Wollny
eb25c7a4e2
r600/sfn: keep workgroup and invocation ID registers for whole shader
...
For some reason one must not overwrite these values "too early", so
pin them for the whole shader.
Fixes: 79ca45 (r600/sfn: rewrite NIR backend)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10004
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25846 >
2023-11-30 16:04:05 +00:00
Gert Wollny
5de814171b
r600/sfn: Allow skipping backend shader optimization for a subset of shaders
...
This comes in handy when debugging problems with the backend optimizer
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25846 >
2023-11-30 16:04:05 +00:00
Erik Faye-Lund
777c25255b
panfrost: minify dimensions when converting modifiers
...
When blitting resources, we need to specify the boxes in mip-level sized
coordinates. For the X and Y coordinates, missing this makes things
behave correctly, but only because we end up clipping away the excess
area.
However, for the Z coordinate of 3D textures, this will make us read
outside of the mip-chain during blitting, making us stumble and crash.
But let's fix what we do for all dimensions. And while we're at it,
rewrite the code a bit, so we don't end up computing any needless
values.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26077 >
2023-11-30 15:43:59 +00:00
José Roberto de Souza
b27ca68143
intel/dev: Adjust prefetch_size values for Xe2 engines
...
Xe2 follows MTL and has different prefetch sizes for different
types of engines.
BSpec: 60223
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26396 >
2023-11-30 14:54:04 +00:00
Boyuan Zhang
046cc51223
radeonsi/vcn: add new logic for hevc multi slices reflist
...
For multi slices hevc decoding, use the newly defined buffer to handle
the case for multi slices ref pic list.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26081 >
2023-11-30 08:39:34 -05:00
Boyuan Zhang
d07517d19f
radeonsi: add new interface to handle multi slice reflist
...
Add new flag and buffer to handle multi slice reflist case for hevc.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26081 >
2023-11-30 08:39:31 -05:00
Boyuan Zhang
ffdc83e9dd
frontend/va: add support for multi slices reflist
...
According to codec spec, hevc supports different reference picture lists
for multi slices case. For example, each slice can have it's own ref pic
list. Add this support to pipe, and modify both frontend/va and radeonsi
accordingly.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26081 >
2023-11-30 08:39:28 -05:00
Boyuan Zhang
26237b9807
gallium/pipe: define hevc max slices number
...
No logic change, just use define instead of hardcoded number to make
it more clear.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com >
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26081 >
2023-11-30 08:39:25 -05:00
Eric Engestrom
02fe92c908
ci: disable opengl & gles in debian-vulkan build
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26369 >
2023-11-30 08:47:07 +00:00
Eric Engestrom
69ec13b303
bin/python-venv: detect python version change
...
The venv only works for a specific python version; when updating python,
the venv needs to be regenerated.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26354 >
2023-11-30 08:39:17 +00:00
Faith Ekstrand
01d15d8a38
nak: Revert "nak: Handle non-DW-aligned UBO loads"
...
This reverts commit 70c9fc66ffab8cb85b37c74b507201097e16da85. We're now
handling non-DW-aligned UBO loads in NIR where we can handle it a bit
more completely, we don't need to carry the nak_from_nir code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26412 >
2023-11-30 05:05:00 +00:00
Faith Ekstrand
67e6ca1924
nak/nir: Handle CBuf alignment rules
...
The NIR lowering is more complete and lets us properly handle 16-bit
loads which, weirdly, require a 4B alignment.
Fixes: bda208665f ("nak: Handle non-DW-aligned UBO loads")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26412 >
2023-11-30 05:05:00 +00:00
Timothy Arceri
57acffbba8
glsl: remove GLSL IR lower_named_interface_blocks()
...
We now use a NIR based lowering pass instead.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26001 >
2023-11-30 03:45:08 +00:00
Timothy Arceri
cdf0ed8960
glsl: use the nir based lower_named_interface_blocks()
...
Because we are now doing the lowering in NIR we need to move the code
that sets the compact flag on some builtin vars out of the glsl to nir
pass.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26001 >
2023-11-30 03:45:07 +00:00
Timothy Arceri
bedf504d38
glsl: add nir based lower_named_interface_blocks()
...
This will be used in the following patch to replace the GLSL IR
version of this pass.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26001 >
2023-11-30 03:45:07 +00:00
Faith Ekstrand
5311d8713d
nak: Implement scan/reduce on booleans
...
We could use the lowering in nir_lower_subgroups for this but it's a lot
more complicated than we need and uses quad_any/all which we don't have.
Fixes: cca40086c6 ("nak: Lower scan/reduce in NIR")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26411 >
2023-11-30 02:50:25 +00:00
Eric Engestrom
fc30a29bd6
docs/calendar: add 23.3.x releases
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26405 >
2023-11-29 21:05:45 +00:00
Eric Engestrom
e2cd0ece86
docs: update calendar for 23.3.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26405 >
2023-11-29 21:05:45 +00:00
Yiwei Zhang
3475c8cc41
venus: scrub msaa sample mask only with valid msaa state
...
No crash in dEQP-VK.api.pipeline.pipeline_invalid_pointers_unused_structs.graphics
Fixes: 417437c715 ("venus: pipeline fixes for VK_EXT_extended_dynamic_state3")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26404 >
2023-11-29 20:49:29 +00:00
Pierre-Eric Pelloux-Prayer
b9f4e3c39b
Revert "radeonsi: decrease PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS to 1024"
...
This reverts commit 03353bd752 .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10222
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26401 >
2023-11-29 19:33:48 +00:00
Sagar Ghuge
4ebad93c9c
anv,hasvk: Use uint32_t for queue family indices
...
Vulkan API uses uint32_t for the queue family indices.
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/26387 >
2023-11-29 19:07:17 +00:00
Bas Nieuwenhuizen
748b7f80ef
radv: Move sparse binding into a dedicated queue.
...
1) This better reflects the reality that we only have one timeline
of sparse binding changes.
2) Allows making it a threaded queue from the start in prep of
explicit sync stuff.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16935 >
2023-11-29 17:37:37 +00:00
Bas Nieuwenhuizen
00faefa08e
radv: Remove the sparse binding queue from coherent images.
...
Never access the image on the queue family, so no need.
(Technically not sure if this is needed for Vulkan, somewhat of
a backstop in case apps do it)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16935 >
2023-11-29 17:37:37 +00:00
Bas Nieuwenhuizen
6ff98f9313
radv: Add implementation of cmd buffers for a sparse binding queue.
...
None of the commands are allowed on these ...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16935 >
2023-11-29 17:37:37 +00:00
Alessandro Astone
4f48a140ac
asahi: Use the compat version of qsort_r
...
Not all platforms define qsort_r, util_qsort_r takes care of that.
CC: mesa-stable
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25553 >
2023-11-29 17:01:09 +00:00
José Roberto de Souza
c9e41f25a1
anv: Add heaps for Xe KMD in platforms without LLC
...
As Xe KMD don't support WB + 0 way coherency, so this are the only two
memory types possible for integrated GPUs without LLC in Xe KMD.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
1a0d3504d5
anv: Fill PAT fields in Xe KMD gem_create and vm_bind uAPIs
...
Unlike i915, Xe KMD needs the cache parameter in gem_create
then during vm bind it request the PAT index that matches previous
parameter.
The PAT index selected could have more memory caracteristics that KMD
don't need to know.
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
99ae565af2
anv: Prepare anv_device_get_pat_entry() for discrete GPUs
...
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
eb18a92ef9
iris: Fill PAT fields in Xe KMD gem_create and vm_bind uAPIs
...
Unlike i915, Xe KMD needs the cache parameter in gem_create
then during vm bind it request the PAT index that matches previous
parameter.
The PAT index selected could have more memory caracteristics that KMD
don't need to know.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
d26bd29ab4
iris: Prepare iris_heap_to_pat_entry() for discrete GPUs
...
Xe KMD requires PAT information for discrete GPUs as well.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
05b3967ddc
intel: Enable has_set_pat_uapi for Xe
...
Xe KMD requires that all platforms supported by it set PAT information.
This will be implemented in Iris and ANV in the next patches.
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
183fd14143
intel: Sync xe_drm.h
...
Sync xe_drm.h with commit ebe27e42c0a2 ("drm/xe/uapi: support pat_index selection with vm_bind").
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
500e037661
intel: Add PAT entries for gfx12 and newer
...
Xe KMD requires PAT for all platforms so here adding PAT entries to
all platforms supported by Xe KMD.
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
d491742d19
anv: Add support all possible cached and coherent memory types
...
This changes allow us to support HOST_COHERENT, HOST_CACHED and
HOST_COHERENT + HOST_CACHED memory types for platforms that has
the PAT uAPI.
Be aware that Xe KMD will not be able to support cached only memory
types, anv_xe_physical_device_init_memory_types() will reflect that
but internal usage should not allocate
VK_MEMORY_PROPERTY_HOST_CACHED_BIT only memory, hence the assert
added.
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/25462 >
2023-11-29 14:57:42 +00:00
José Roberto de Souza
3baab9bb38
anv: Rename ANV_BO_ALLOC_SNOOPED to ANV_BO_ALLOC_HOST_CACHED_COHERENT
...
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/25462 >
2023-11-29 14:57:42 +00:00
Alyssa Rosenzweig
d50d9eccad
ac,radv,radeonsi: use common 1D texture lowering
...
It was pulled from ac.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26397 >
2023-11-29 14:04:15 +00:00
Erik Faye-Lund
ba2bbe21b4
ci: opt-out panfrost from clang-format
...
In 0e481bf463 ("ci: Opt out asahi from clang-format"), Alyssa
recommended other drivers to follow suit. Since Panfrost originates from
Alyssa, and I doubt any other of the developers particularly cares too
much about this, let's follow her recommendation.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26062 >
2023-11-29 13:01:08 +00:00
Jan Beich
112093f9e2
intel: make CLOCK_BOOTTIME optional for non-Linux
...
src/intel/common/xe/intel_gem.c:71:9: error: use of undeclared identifier 'CLOCK_BOOTTIME'
case CLOCK_BOOTTIME:
^
Fixes: ae0df368a8 ("intel/common: Add intel_gem_read_correlate_cpu_gpu_timestamp()")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26392 >
2023-11-29 10:14:01 +00:00
Jan Beich
5c32c41f65
intel: make CLOCK_TAI optional for non-Linux
...
src/intel/common/xe/intel_gem.c:72:9: error: use of undeclared identifier 'CLOCK_TAI'
case CLOCK_TAI:
^
Fixes: ae0df368a8 ("intel/common: Add intel_gem_read_correlate_cpu_gpu_timestamp()")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26392 >
2023-11-29 10:14:01 +00:00
Tapani Pälli
ec43c20182
anv: implement dummy blit for Wa_16018063123
...
Insert a dummy blit prior to MI_ARB_CHECK, MI_SEMAPHORE_WAIT,
MI_FLUSH_DW submitted on the copy engine.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26209 >
2023-11-29 08:09:06 +00:00
Tapani Pälli
889d16a43a
iris: implement dummy blit for Wa_16018063123
...
Insert a dummy blit prior to MI_ARB_CHECK, MI_SEMAPHORE_WAIT,
MI_FLUSH_DW submitted on the copy engine.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26209 >
2023-11-29 08:09:06 +00:00
Konstantin Seurer
827b0fa1ef
nir/lower_vars_to_scratch: Remove all unused derefs
...
If the shader passed to nir_lower_vars_to_scratch contains some unused
derefs to a variable that will be lowered, validation will fail because
the variable is not part of the shader after the pass.
cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26271 >
2023-11-29 06:49:48 +00:00
Faith Ekstrand
f9c7f33613
nvk: Enable 8 and 16-bit integer types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
bda208665f
nak: Handle non-DW-aligned UBO loads
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
ed535c9d98
nak: Implement integer conversions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
3b3f251471
nak: Implement more int/float conversions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
9e84e9e44b
nak: Add base support for 8 and 16-bit types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
082c986614
nak: Fix int8/16 lowering
...
Move it into nak_postprocess_nir, after lower_mem_access_bit_sizes.
Also, fix the callback for comparison and conversion ops.
For conversion ops, we don't want to lower any of them right now. We'll
need to lower some 64-bit conversions eventually but we'll figure out
those details when we get to implementing real 64-bit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
dc5cc847dd
nak: Implement nir_op_extract_*
...
This should make a lot of bit twiddling more efficient since NIR can
optimize certain shifts patterns to extract and we can implement it with
a single PRMT instruction.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
c0d0ce4c6b
nak: Rework OpPrmt a bit
...
This renames `selection` to `sel`, adds a source type for sel, adds the
PrmtMode for selecting permute mode, and adds proper legalization.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
7b6103ccc8
nak: Add a builder helper for OpPrmt
...
The builder also has some extra smarts in it for avoiding the PRMT when
the operation happens to exactly select one of the two sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Faith Ekstrand
d5693a590e
nak: Drop the PrmtSelection stuff
...
It's just a very fancy and verbose way to build an immediate. I don't
think it's really gaining us all that much, especially when the
semantics are documented in the PTX docs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26348 >
2023-11-29 02:01:35 +00:00
Lionel Landwerlin
7dff232c09
intel/ds: add trace of buffer markers
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14924 >
2023-11-29 01:16:22 +00:00
Kenneth Graunke
c8e122a738
anv: Implement rudimentary VK_AMD_buffer_marker support
...
This provides a basic implementation of VK_AMD_buffer_marker: we can
write the 32-bit markers from within a command buffer. Unfortunately,
our hardware has several limitations that make this difficult to
implement well:
1. We don't have insight into when specific stages finish (i.e.
all geometry shaders are done, but pixel rasterization may
still be occurring).
2. We cannot perform pipelined writes of 32-bit values to arbitrary
memory locations. PIPE_CONTROL::Write Immediate Value would be
the obvious way to implement this, but it only supports 64-bit
values, and the extension doesn't allow us to do that. We instead
use MI_STORE_DATA_IMM to write 32-bit values, but this requires
hard stalls.
Despite those limitations, the extension may still be useful for tools
to debug GPU hangs. We hope to offer another extension in the future
which offers similar functionality but is more efficient on our GPUs.
v2: Updated by Lionel Landwerlin to fix a number of flushing and
cache coherency issues with these writes.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14924 >
2023-11-29 01:16:22 +00:00
Juston Li
746da376e4
venus: implement vkGet[Device]ImageSparseMemoryRequirements
...
These were left unimplemented despite sparse support being added back to
venus in a55d26b5 ("venus: add back sparse binding support")
Same as vn_GetPhysicalDeviceSparseImageFormatProperties2, venus sparse
support requires queues that also support transfer so any sparse-only
queues are filtered out. If a device only supports sparse with
sparse-only queues, sparse features are disabled and these functions
return count of 0.
Fixes: a55d26b566 ("venus: add back sparse binding support")
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26297 >
2023-11-29 00:22:26 +00:00
Faith Ekstrand
a0355dfcfb
nvk: Advertise Vulkan 1.1 on Turing+
...
We actually trigger on whether or not NAK is used for everything. If
so, we claim 1.1, otherwise claim 1.0. We need NAK for subgroup ops and
other advanced shader features in later Vulkan versions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26383 >
2023-11-28 23:52:27 +00:00
Faith Ekstrand
93acce99f3
vulkan: Default override patch version to VK_HEADER_VERSION
...
The patch version shouldn't matter but, on the off chance it does, we
don't want to be advertising non-existent versions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26383 >
2023-11-28 23:52:27 +00:00
Konstantin Seurer
11897376c7
radv/rt: Skip null checks for small case counts
...
The individual cases make sure the sbt_idx is not null implicitly
because the handles are always != 0.
Totals from 60 (22.56% of 266) affected shaders:
Instrs: 47841 -> 47655 (-0.39%)
CodeSize: 255028 -> 253460 (-0.61%)
Latency: 1179658 -> 1225311 (+3.87%); split: -0.02%, +3.89%
InvThroughput: 224122 -> 232851 (+3.89%); split: -0.02%, +3.92%
Copies: 12049 -> 12043 (-0.05%); split: -0.37%, +0.32%
Branches: 3312 -> 3290 (-0.66%)
PreSGPRs: 3494 -> 3472 (-0.63%)
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25089 >
2023-11-28 22:58:35 +00:00
Konstantin Seurer
fe674f67b1
radv/rt: Use a helper for inlining non-recursive stages
...
So we don't have to write the same logic multiple times.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25089 >
2023-11-28 22:58:35 +00:00
Sagar Ghuge
3f747fcbfc
iris: Init aux map state for compute engine
...
We need to write the aux map address during the batch initialization for
compute engine as well otherwise we would run into gpu hang with
compression enabled.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10194
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26342 >
2023-11-28 21:27:59 +00:00
Alyssa Rosenzweig
d5e0901fd5
agx: fix 1D texture sampling
...
fixes texwrap 1d bordercolor cases.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26377 >
2023-11-28 20:32:03 +00:00
Alyssa Rosenzweig
e14633fa7d
nir/lower_tex: Add 1D lowering
...
From amd/common.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26377 >
2023-11-28 20:32:03 +00:00
Caio Oliveira
5de5a0d475
intel/compiler: Don't use fs_visitor::bld in thread payload classes
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26301 >
2023-11-28 19:53:51 +00:00
Caio Oliveira
2d6240ab14
intel/compiler: Don't use fs_visitor::bld in fs_reg_alloc
...
Just set up the builder without relying on the pre-existing one. Moves
one step close to remove bld from fs_visitor.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26301 >
2023-11-28 19:53:51 +00:00
Caio Oliveira
f55867b56c
intel/compiler: Don't use fs_visitor::bld in tests
...
Tests create their own fs_builder now. Moves one step closer to remove
bld from fs_visitor.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26301 >
2023-11-28 19:53:51 +00:00
Caio Oliveira
9540259e1c
intel/compiler: Prefer ctor/dtors in some Google Tests
...
Per Google Test FAQ recommendation, prefer consutrctors and destructors
unless there's a need to use SetUp/TearDown.
We will take advantage of this later to initialize an fs_builder.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26301 >
2023-11-28 19:53:51 +00:00
José Roberto de Souza
d0db92b52d
iris: Check for maximum allowed priority in Xe KMD
...
Previous code was settting whatever priority was requested even if
Xe KMD would not allow it causing warnings in dmesg:
xe 0000:00:02.0: [drm:exec_queue_set_priority [xe]] Ioctl argument check failed at drivers/gpu/drm/xe/xe_exec_queue.c:235: value > xe_exec_queue_device_get_max_priority(xe)
xe 0000:00:02.0: [drm:xe_exec_queue_set_property_ioctl [xe]] Ioctl argument check failed at drivers/gpu/drm/xe/xe_exec_queue.c:912: ret
Now it will query the maximum allowed priority and set the priority
closed to what application requested.
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/26325 >
2023-11-28 18:17:45 +00:00
José Roberto de Souza
6a245e4eea
intel: Share function to do device query in Xe KMD
...
A "dance" is required with this uAPI, first we need to ask KMD what is
the size of the giving query id, then memory needs to be allocated to
match that size and then query again with the memory address set and
at this time Xe KMD will copy the query data to memory.
This dance was being duplicated in xe_engine_get_info() and
anv_xe_physical_device_get_parameters() and the next patch will also
use it in Iris, so here adding it common/xe and re-using as much
as possible.
There is one more implementation of this function in intel/dev but
due to how libs are linked intel/dev can't depend on to intel/common.
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/26325 >
2023-11-28 18:17:45 +00:00
Marek Olšák
c5e37e7c39
radeonsi: only expose GL_AMD_performance_monitor on gfx7-10.3
...
It's only implemented for those generations.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26262 >
2023-11-28 17:34:26 +00:00
Marek Olšák
c7729effa6
radeonsi: group equal CAP cases
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26262 >
2023-11-28 17:34:26 +00:00
Marek Olšák
7a7285bc69
gallium: add PIPE_CAP_PERFORMANCE_MONITOR for GL_AMD_performance_monitor
...
Use a CAP instead of guessing it. radeonsi won't expose it.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26262 >
2023-11-28 17:34:26 +00:00
Marek Olšák
6073a149b9
gallium/docs: make CAP doc order match definition order
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26262 >
2023-11-28 17:34:26 +00:00
Christian Gmeiner
0d6803feb0
docs: Update etnaviv extensions
...
Next round of feature updates.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26189 >
2023-11-28 16:55:51 +00:00
Raphaël Gallais-Pou
5c92ef9116
gallium: add sti DRM entry point
...
stih418-b2264 implements an ARM Mali 400 GPU[1]. Add an entry point for sti
DRM vendor, so mesa can be used with it.
[1]: https://lore.kernel.org/lkml/20230727215141.53910-14-avolmat@me.com
Signed-off-by: Raphaël Gallais-Pou <rgallaispou@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26189 >
2023-11-28 16:55:51 +00:00
Lionel Landwerlin
b18006397b
anv: remove heuristic preferring dedicated allocations
...
This heuristic doesn't show much difference when you have a beafy
processor but on lower end skus, it increase the number of buffers in
the execbuffer ioctl, adding significant overhead in i915.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 4cdd3178fb ("anv: Meet CCS alignment reqs with dedicated allocs")
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26335 >
2023-11-28 16:13:11 +00:00
Lionel Landwerlin
7b87e1afbc
anv: track & unbind image aux-tt binding
...
This solves a problem when you have a big memory chunk of which some
regions are bound to images. If the image is destroyed, currently the
aux-tt mapping stays and prevent any new image aux-tt mapping within
that region, until the memory is freed.
This maps & unmaps the aux-tt region at respectively bind & destroy
time, so that the memory chunks can be map through aux-tt.
If there is aliasing of memory to 2 different images, then the first
one "wins" the aux mapping and gets compression support. The second
one doesn´t.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: ee6e2bc4a3 ("anv: Place images into the aux-map when safe to do so")
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26335 >
2023-11-28 16:13:11 +00:00
Lionel Landwerlin
b09db9d823
anv: use main image address to determine ccs compatibility
...
The BO address is not really a good criteria since we can bind an
image at an offset inside a BO.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: ee6e2bc4a3 ("anv: Place images into the aux-map when safe to do so")
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26335 >
2023-11-28 16:13:11 +00:00
Lionel Landwerlin
7c6faa1efe
intel/aux_map: introduce ref count of L1 entries
...
To implement this feature, we need to do CPU side tracking of all
L3/L2/L1 entries. This does add a little bit of CPU allocations, but
the advantage is that the traversal of the page table tree is faster.
No more need for the linear seach of find_buffer().
With this feature, we can have multiple VkImage bind to the same main
memory address, as long as they share exact same mapping parameters.
The AUX mapping will be removed when the last VkImage is destroyed.
As previously, if the L1 mapping entry parameters don't match, the
mapping fails. Anv handles this nicely by just disabling AUX on the
image.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26335 >
2023-11-28 16:13:11 +00:00
Samuel Pitoiset
02ef01fa95
radv: enable DGC preprocessing for IBO
...
This seems to improve performance for Starfield by +1% and Halo Infinite
by +15%!
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10025
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26172 >
2023-11-28 14:07:37 +00:00
Samuel Pitoiset
e59a16bbb8
radv: use an indirect draw when IBO isn't updated as part of DGC
...
To remove the dependency on the cmd buffer state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26172 >
2023-11-28 14:07:37 +00:00
Samuel Pitoiset
2807e27231
radv: set the stream VA for DGC graphics
...
This will be used to emit indirect draws when needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26172 >
2023-11-28 14:07:37 +00:00
Samuel Pitoiset
88bbdfd23e
radv: remove useless NIR instructions when emitting IBO with DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26172 >
2023-11-28 14:07:37 +00:00
Lionel Landwerlin
e22e88f8ce
intel/fs: reuse set_predicate()
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26306 >
2023-11-28 13:40:07 +00:00
Lionel Landwerlin
83a1657b6c
intel/fs: fix incorrect register flag interaction with dynamic interpolator mode
...
Once NIR code is lowered and a few optimization passes have run, there
might be flag register interactions between instructions quite far
away from one another.
In the following case :
f0 = and r0, r1
...
fs_interpolate r2, r3
...
if f0
...
endif
If we lower fs_inteporlate while using the f0 register, we completely
garble the value meant for the if block.
To fix this, emit the predication for fs_interpolate in brw_fs_nir.cpp
when doing the NIR translation to the backend IR. This will guarantee
that the flag register interactions are visible to the optimization
passes, avoiding the problem above.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 68027bd38e ("intel/fs: implement dynamic interpolation mode for dynamic persample shaders")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9757
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26306 >
2023-11-28 13:40:07 +00:00
Georg Lehmann
4b9618ceec
aco: add test for post-ra DPP clobbered in linear cfg
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26373 >
2023-11-28 12:48:56 +00:00
Georg Lehmann
576afa8540
aco: don't optimize DPP across more than one block
...
Register write tracking doesn't work for inactive lanes, so this was unsafe.
Foz-DB Navi31:
Totals from 8 (0.01% of 78196) affected shaders:
Instrs: 11513 -> 11515 (+0.02%)
CodeSize: 61056 -> 61064 (+0.01%)
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10197
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26373 >
2023-11-28 12:48:56 +00:00
Samuel Pitoiset
06c9e69f44
radv/ci: add new flakes for VEGA10
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26384 >
2023-11-28 09:04:08 +01:00
Jesse Natalie
f843b14c17
d3d12: Fix hevc encoder 32-bit build (uint64_t -> size_t)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26363 >
2023-11-27 21:15:24 +00:00
Jesse Natalie
ae62fc01fa
d3d12: Fix h264 encoder 32-bit build (uint64_t -> size_t)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26363 >
2023-11-27 21:15:24 +00:00
Faith Ekstrand
500955b6cb
nak: Only insert barriers around ifs if they actually re-converge
...
We don't care about patterns like
loop {
...
if (...) {
break;
} else {
...
}
...
}
In that case, we don't need to sync after the if because there's nothing
to re-converge. Every path except one will end up breaking out of it
anyway.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26382 >
2023-11-27 20:59:34 +00:00
Faith Ekstrand
804201a3d7
nak: Run rustfmt
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26382 >
2023-11-27 20:59:34 +00:00
Faith Ekstrand
e93935dd04
nvk: Limit shader stages to supported stages
...
Fixes: c7c73d6d17 ("nvk: Enable subgroups features")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26382 >
2023-11-27 20:59:34 +00:00
Iván Briano
6f9be9a2a0
hasvk: ensure we reapply always pipeline dynamic state in runtime state
...
Backport of 24631d308c
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26341 >
2023-11-27 20:36:07 +00:00
Rhys Perry
2d98236dd5
ac/nir: fix partial mesh shader output writes on GFX11
...
Fixes dEQP-VK.mesh_shader.ext.smoke.monolithic.mesh_shader_triangle with
nir_opt_combine_stores disabled.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Fixes: 240e16fc8e ("ac/nir/ngg: Use attribute ring for mesh shader params.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25530 >
2023-11-27 20:11:03 +00:00
Mary Guillemard
f59665bb62
venus: Do not submit batch manually when no feedback is required
...
This fixes hangs with Zink on piglit spec@arb_sparse_buffer tests caused by the double submission.
Fixes: a55d26b566 ("venus: add back sparse binding support")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26375 >
2023-11-27 19:53:09 +00:00
Jesse Natalie
1924cdc289
d3d12: Fix multidimensional array ordering
...
Apparently my C multimensional array syntax was rusty.
Fixes: a6740ee7 ("d3d12: Fix indexing of local_reference_state")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26362 >
2023-11-27 19:36:16 +00:00
Samuel Pitoiset
da3f3a46b1
ci: uprev vkd3d-proton to 2.11
...
This contains many new tests.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26376 >
2023-11-27 15:18:19 +00:00
Eric Engestrom
cf510e38a5
intel/ci: fix .hasvk-manual-rules
...
Fixes: 570acf5655 ("ci: Add a manual full and 1/10th hasvk CTS runs.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26259 >
2023-11-27 12:55:18 +00:00
Eric Engestrom
1942073112
intel/perf: fix regex escaping
...
`\$` is interpreted before being passed to `re.search()`, but luckily
for us the escape is also invalid and because of that, python 3.12+
warns us about it.
Use a raw string instead, so that the `\` is passed untouched to
`re.search()`.
Fixes: aa04b47c6e ("intel/perf: add support for GtSlice/GtSliceXDualsubsliceY variables")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26355 >
2023-11-27 11:58:03 +00:00
Eric Engestrom
1492d24f89
lp: make sure 0xff is unsigned before shifting it past signed int range
...
src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c:2446:82: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26368 >
2023-11-27 09:51:01 +00:00
Christian Gmeiner
023fa0aa5d
etnaviv: Mark etna_rs_gen_clear_surface(..) private
...
There are no users outside of etnaviv_rs.c.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Tested-by: Marek Vasut <marex@denx.de >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26096 >
2023-11-27 06:59:05 +00:00
Christian Gmeiner
9342544ca5
etnaviv: rs: Call etna_rs_gen_clear_surface(..) when needed
...
Calling etna_rs_gen_clear_surface(..) during surface creation could end
in the following assert:
etna_rs_gen_clear_surface: Assertion `!"" "bpp not supported for clear by RS"'
Lets call etna_rs_gen_clear_surface(..) only when it is needed.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Tested-by: Marek Vasut <marex@denx.de >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26096 >
2023-11-27 06:59:05 +00:00
Pierre-Eric Pelloux-Prayer
945288ffae
radeonsi: check sctx->tess_rings is valid before using it
...
Fixes: c89ca3b47f ("radeonsi: change si_emit_derived_tess_state into a state atom")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10015
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26190 >
2023-11-25 15:33:03 +00:00
Marek Olšák
b6e98677c3
nir/print: print PATCH0 and VARn_16BIT names instead of numbers for TCS and TES
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26275 >
2023-11-25 09:50:19 -05:00
Marek Olšák
5c8730ebe8
nir: don't declare illegal varyings in nir_create_passthrough_tcs
...
I called it accidentally with LAYER.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26275 >
2023-11-25 09:50:19 -05:00
Marek Olšák
7a9b73fcb8
nir: fix gathering TESS_LEVEL_INNER/OUTER usage with lowered IO
...
Those varyings shouldn't flag patch_inputs_read/patch_outputs_written.
Fixes: 10be706778 - nir: gather indirect info from lowered IO intrinsics
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26275 >
2023-11-25 09:50:19 -05:00
Eric Engestrom
827bbe4829
ci: use released version of meson
...
This was needed before 1.3.0 was released, but now we can use 1.3.0 :)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26289 >
2023-11-24 20:45:45 +00:00
Jesse Natalie
698344b93c
d3d12/driconf: Force on ARB_texture_view for Blender
...
Reviewed-by: Anthony Roberts <anthony.roberts@linaro.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26326 >
2023-11-24 20:03:22 +00:00
Eric Engestrom
9feecda201
docs: add another -rc
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26361 >
2023-11-24 19:51:01 +00:00
Eric Engestrom
69d1e29dc3
docs: update calendar for 23.0.0-rc5
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26361 >
2023-11-24 19:51:01 +00:00
Faith Ekstrand
28ae3210e1
nvk: Wire up MESA_VK_VERSION_OVERRIDE
...
We'll probably drop this once we have Vulkan 1.3 but this makes it a bit
easier to test stuff right now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26359 >
2023-11-24 19:33:15 +00:00
Marek Olšák
b07a58157d
radeonsi: remove the LAYER output if the framebuffer state has only 1 layer
...
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
3a0a3a5c35
radeonsi: implement gl_Layer in FS as a system value
...
This replaces the vec4 FS input with the Ancillary VGPR input.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
130428e758
radeonsi: don't allocate output space for LAYER/VIEWPORT before TES and GS
...
The outputs are ignored according GL_ARB_shader_viewport_layer_array.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
0cd3d58227
radeonsi: clean up si_nir_kill_outputs
...
Use a switch statement for sysval outputs and simplify code.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
17c38eb9a5
st/mesa: set pipe_framebuffer_state::layers for PBO blits
...
It only worked with drivers that ignored it.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
e0a24c7fe0
ac/nir: add kill_layer flag to VS/GS/NGG lowering
...
When the framebuffer state has only 1 layer, the output has no effect.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
27a9ddad28
nir: return progress from nir_remove_sysval_output
...
Changing IO semantics doesn't affect the SSA structure.
Same as nir_remove_varying.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Marek Olšák
32ee6376ad
nir: add lowering from FS LAYER input to LAYER_ID sysval
...
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26274 >
2023-11-24 15:37:24 +00:00
Juan A. Suarez Romero
a181c86e73
broadcom/ci: separate hiden jobs to -inc.yml files
...
make it easier to re-use the hidden jobs by other project (e.g. linux)
without enabling the executable jobs.
Inspired on 9442571664 ("ci: separate hiden jobs to -inc.yml files").
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26350 >
2023-11-24 15:09:30 +00:00
Kai Wasserbäch
bc7e363f8e
fix: ac/llvm: LLVM 18: remove useless passes, partially removed upstream
...
Upstream removed llvm::createLoopSinkPass() in commit
<b9975cec0e >
and there is no useful alternative except moving to the new pass
manager.
On top of that, the usage of this optimisation pass and
PromoteMemoryToRegisterPass were just useless, according to the
upstream developer of the commit named above. Therefore the easiest
solution is, as him, Marek and Dave suggested, to just remove these two
passes from the pipeline for now.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10192
Reference: https://github.com/llvm/llvm-project/pull/72811
Reference: b9975cec0e
Suggested-by: Dave Airlie <airlied@redhat.com >
Suggested-by: Aiden Grossman <agrossman154@yahoo.com >
Suggested-by: Marek Olšák <maraeo@gmail.com >
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26336 >
2023-11-24 14:11:09 +00:00
José Expósito
fff3fc45a0
zink: initialize drm_fd to -1
...
The `zink_internal_create_screen()` function initializes
`screen->drm_fd` to 0, a valid file descriptor value, via `rzalloc`.
If an error is found during initialization, the `zink_destroy_screen()`
function is invoked in the `fail` label and the `screen->drm_fd` is
closed because its value is 0 and `screen->drm_fd != -1` is checked.
Initialize `screen->drm_fd` to -1 to avoid this issue.
Resolves: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10191
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Signed-off-by: José Expósito <jexposit@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26332 >
2023-11-24 13:45:25 +00:00
David Heidelberg
268ab0cead
ci: disable Anholt farm
...
Currently farm proxy seems to be down.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26351 >
2023-11-24 11:59:15 +00:00
Robert Mader
2404483706
v3d/resource: Support offset query for multi-planar planes
...
This is required in order to return the correct value for
`gbm_dri_bo_get_offset()` for e.g. the second plane of a NV12 image.
Use the newly introduced `util_resource` helper and, while on it, also
add support for `gbm_bo_get_plane_count()`.
Cc: mesa-stable
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26283 >
2023-11-24 08:37:00 +00:00
Robert Mader
cb8cdab928
vc4/resource: Support offset query for multi-planar planes
...
This is required in order to return the correct value for
`gbm_dri_bo_get_offset()` for e.g. the second plane of a NV12 image.
Use the newly introduced `util_resource` helper and, while on it, also
add support for `gbm_bo_get_plane_count()`.
Cc: mesa-stable
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26283 >
2023-11-24 08:37:00 +00:00
Kenneth Graunke
b5bcb658b4
iris: Ensure virtual addresses are aligned to 2MB for 2MB+ blocks
...
When allocating 2MB chunks of memory, the kernel can use 64K pages if
both the virtual and physical addresses are aligned to 2MB. While we
can't control the physical allocation, we can ensure the virtual address
we use with softpin meets the requirements.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:19 +00:00
Kenneth Graunke
0b6693a3a1
iris: Align fresh BO allocations to 2MB in size
...
This should allow us to use 64K pages in more cases, and since the
suballocator is typically used for BOs smaller than 2MB, it probably
isn't going to waste a horrendous amount of memory.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Kenneth Graunke
6932827a47
iris: Use 64K BOs for the shader uploader
...
16K was apparently a little unrealistic - Unigine Superposition has
individual shaders that are larger than 16K. Yikes. Moving to 64K
also puts shaders into the same cache bucket as other allocations.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Kenneth Graunke
21170a58d8
iris: Split system memory heap into cached-coherent and uncached heaps
...
On non-LLC systems, most system memory isn't coherent between the CPU
and GPU by default. However, we can enable snooping or 1-way coherency
at a performance cost. In the old days, we maintained one set of cache
buckets and toggled coherency as needed via I915_GEM_SET_CACHING. But
in the modern uAPI (GEM_CREATE_EXT_SET_PAT) we have to select coherency
up front at BO creation time. So this doesn't work out well anymore.
This patch splits system memory into two distinct heaps:
- IRIS_HEAP_SYSTEM_MEMORY_CACHED_COHERENT
- IRIS_HEAP_SYSTEM_MEMORY_UNCACHED
The flags_to_heap() function will select a heap for a given allocation
based on the coherency/scanout requirements, as well as the hardware
configuration (LLC integrated, non-LLC integrated, or discrete card).
Once a heap is selected, it completely determines the cacheability and
coherency settings. A given heap will always have the same mmap mode
and PAT index. This enables us to simplify a lot of code.
Because each heap also has its own bucket cache, we no longer have to
disable bucket caching based on flags, cacheability, coherency, mmap
modes, or so on, as all BOs in each cache have matching settings.
This effectively enables bucket-caching for non-LLC systems.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Kenneth Graunke
81ebb6a10a
iris: Rename heap_flags -> heap in i915_gem_create
...
The heap is not a bitfield of flags, it's an enum of exclusive choices.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Kenneth Graunke
7a67ea0a6e
iris: Make an iris_heap_is_device_local() helper
...
We're going to have two system memory heaps and two device local heaps
shortly. Make a helper to avoid having to check for both every time.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Kenneth Graunke
e27e5ee55c
iris: Make an iris_bucket_cache structure and array per heap
...
Originally we only had a single bucket cache, and it was the main
allocation mechanism. Later on, we added one for device-local memory,
and then a third one for device-local-preferred. Each time, we just
copy and pasted the fields, keeping them all as direct members of the
bufmgr struct. This is getting a bit unwieldy.
This patch introduces an iris_bucket_cache structure to contain the
list of buckets and the number of buckets. It then replaces the three
inline copies with a bufmgr->bucket_cache[heap] array. This lets us
drop a bunch of copy and pasted code in favor of a loop over heaps.
This will also make it easier to add more heaps.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
José Roberto de Souza
7046a9e280
intel: Rename PAT entries
...
Here renaming the PAT entries to a name that better express each
entry.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
José Roberto de Souza
76aad457a1
iris: Change default PAT entry to WC
...
Iris doesn't make any call to intel_flush_range*() functions so all BOs
created without BO_ALLOC_COHERENT are not coherent between CPU writes
and GPU reads.
A lot of places don't set BO_ALLOC_COHERENT not even command buffers
have it.
And this incoherency is causing most of tests to fail after
the patch that extracted("iris: Calculate iris_mmap_mode using
intel_device_info_pat_entry when possible") the mmap mode from the PAT
entry.
Before that patch MTL was creating BO with a WB PAT index but then
mmaping as WC.
So to fix this for now making the default PAT entry for Iris a WC one.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25447 >
2023-11-23 21:19:18 +00:00
Pavel Ondračka
f1c9e90146
r300: add late vectorization after nir_move_vec_src_uses_to_dest
...
Turns out that besides the benefits from nir_move_vec_src_uses_to_dest
itself, it also creates new opportunities for vectorization. Enable it
for vertex shaders, there is a clear instruction win and the only
downside is some increased register presure. However this is mostly
concerning few Unigine Tropics and Sanctiary shaders where we go
11->14 or 10->13 used registers. According to the docs, the increased
register usage would only lower vertex processing concurency if we go
over 15 (R300) or 25 (R500) registers, so we should be safe here.
Fragment shaders are a mixed bag so leave them be for now.
Shader-db RV530
total instructions in shared programs: 129303 -> 128762 (-0.42%)
instructions in affected programs: 13887 -> 13346 (-3.90%)
helped: 99
HURT: 0
total temps in shared programs: 17355 -> 17543 (1.08%)
temps in affected programs: 730 -> 918 (25.75%)
helped: 4
HURT: 66
total cycles in shared programs: 197190 -> 196984 (-0.10%)
cycles in affected programs: 9998 -> 9792 (-2.06%)
helped: 65
HURT: 0
Shader-db RV370:
total instructions in shared programs: 84807 -> 84225 (-0.69%)
instructions in affected programs: 10203 -> 9621 (-5.70%)
helped: 92
HURT: 0
total temps in shared programs: 13036 -> 13231 (1.50%)
temps in affected programs: 787 -> 982 (24.78%)
helped: 4
HURT: 73
total cycles in shared programs: 133178 -> 132946 (-0.17%)
cycles in affected programs: 5911 -> 5679 (-3.92%)
helped: 58
HURT: 0
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25417 >
2023-11-23 18:14:56 +00:00
Samuel Pitoiset
ad7efdea6e
radv: do not set OREO_MODE to fix rare corruption on GFX11
...
Ported from RadeonSI 3f108e7615 .
Seems to be a recommendation from the AMD hw team.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26333 >
2023-11-23 17:22:04 +00:00
Samuel Pitoiset
d9f312b86a
radv: set radv_invariant_geom=true for War Thunder
...
War Thunder has native Vulkan support.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10186
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26334 >
2023-11-23 16:50:39 +00:00
Samuel Pitoiset
46cc7ffb79
radv: add missing FDCC_CONTROL bits for GFX1103 R2
...
Ported from RadeonSI.
Found by inspection, untested.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26318 >
2023-11-23 13:56:53 +00:00
Samuel Pitoiset
ab34603115
radv: disable TC-compatible HTILE on Tonga and Iceland
...
According to RadeonSI, TC-compat HTILE have issues on Tonga/Iceland
(first GFX8 chips) and a bunch of games seem to have issues.
Let's disable it instead of using a feature that is known broken.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7101
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3894
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26204 >
2023-11-23 12:55:47 +00:00
Timothy Arceri
1b7107efe4
glsl: drop ir_binop_ubo_load
...
This was missed in e566b54a59
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26330 >
2023-11-22 22:17:17 +00:00
Sil Vilerino
9528d050a4
d3d12: fix usage of GetAdapterLuid() in mingw/GCC using ABI helper
...
Fixes: e7204d0224 ("d3d12: Allow creating d3d12_dxcore_screen from existing ID3D12Device")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26338 >
2023-11-22 21:41:52 +00:00
Iván Briano
43cb4cb6dd
anv: use the right vertexOffset on CmdDrawMultiIndexed
...
Fixes: c70ef757e6 ("anv: Use extended parameters on Gen11+")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26327 >
2023-11-22 13:11:34 -08:00
Alexander von Gluck IV
bb0ad6f0f5
egl/haiku: Remove some dead cleanup code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26322 >
2023-11-22 19:38:59 +00:00
Alexander von Gluck IV
c9e33f3545
hgl: Redefine visual options in hgl_context.h
...
* For now, move the visual mask flags into hgl_context.h
* This removes an un-needed dependency on GLView.h from glvnd
* Eventually, these need converted into normal EGL parameters
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26322 >
2023-11-22 19:38:59 +00:00
Alexander von Gluck IV
af90199fd8
egl/haiku: Cleanup includes; minor build fix
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26322 >
2023-11-22 19:38:59 +00:00
Marek Olšák
2f0ed0680c
glsl/nir: return failure from link_varyings if there is a linker error
...
Some linker errors are set very deep inside link_varyings. Don't return
a success if we can't continue.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26310 >
2023-11-22 18:49:52 +00:00
Marek Olšák
a141b52641
st/mesa: disable light_twoside if back faces are culled
...
This potentially improves performance.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26308 >
2023-11-22 18:18:29 +00:00
Sagar Ghuge
2d3f0a834a
anv: Add comment to copy image code block
...
Anybody will be tempted to factor out the if-else block code since it
looks like duplication but else block actually handles the ycbcr images
where the aspect masks are compatible but don't need to be the same.
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/26294 >
2023-11-22 17:42:43 +00:00
David Rosca
73d69ef1e6
util/rbsp: Fill bits twice if reading more than 16 bits
...
vl_rbsp_fillbits may fill less than 32 bits if it removes emulation
prevention bytes, but will fill at least 16 bits. We need to call it
twice when reading more than 16 bits.
This fixes parsing H264 SPS packed header in va frontend when emulation
prevention bytes are at position where 32 bit values are read.
Cc: mesa-stable
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26276 >
2023-11-22 13:04:06 +00:00
Zhang Ning
db208af967
lima: Support parameter queries for PIPE_RESOURCE_PARAM_NPLANES
...
use helper to get lima_resource
and support PIPE_RESOURCE_PARAM_NPLANES
Signed-off-by: Zhang Ning <zhangn1985@outlook.com >
Reviewed-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26311 >
2023-11-22 12:42:16 +00:00
Daniel Schürmann
3b10547e67
aco: enable helper lanes if shader->info.fs.require_full_quads
...
This enables helper invocations also for lowered quad group operations.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26026 >
2023-11-22 11:32:53 +01:00
Daniel Schürmann
f1110576d9
nir: add info.fs.require_full_quads
...
This flag indicates the requirement of helper invocations
in fragment shaders, independent from any present instructions.
This fixes the lowering of OpGroupNonUniformQuad* instructions.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26026 >
2023-11-22 11:31:52 +01:00
Daniel Schürmann
2db0507b5d
nir/gather_info: add missing wide subgroup operations
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26026 >
2023-11-22 11:31:46 +01:00
Daniel Schürmann
1179d83a89
nir: remove info.fs.needs_all_helper_invocations
...
Use info.uses_wide_subgroup_intrinsics instead.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26026 >
2023-11-22 11:31:11 +01:00
Samuel Pitoiset
f39ed0063b
radv/ci: add missing expected failures for mesh queries on VANGOGH
...
Forgot to add them.
Fixes: b975d4e800 ("radv: enable meshShaderQueries on GFX10.3")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26331 >
2023-11-22 08:35:54 +01:00
Tapani Pälli
d3e3c30d36
anv: implement Wa_18020335297
...
Set some state and implement dummy draws whenever viewport pointer
is being reprogrammed.
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/25987 >
2023-11-22 05:23:12 +00:00
Tapani Pälli
418299c120
anv: refactor state emission
...
Add a helper that only emits hw_state, this makes it easier to modify
dirty state and call helper to emit only wanted state.
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/25987 >
2023-11-22 05:23:12 +00:00
Tapani Pälli
4031443a4a
iris: implement Wa_18020335297
...
Set some state and implement dummy draws whenever viewport pointer
is being reprogrammed.
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/25987 >
2023-11-22 05:23:12 +00:00
Thomas H.P. Andersen
73317bb706
nvk: use nvk_pipeline_zalloc
...
3b3b157961 removed setting the pipeline type
assuming that it was already set by nvk_pipeline_zalloc. That helper was
not actually being used, so this patch updates it to do so.
This does not fix anything as the NVK_PIPELINE_GRAPHICS = 0 anyway, so it
is just a code cleanup.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26329 >
2023-11-22 04:19:35 +00:00
Qiang Yu
90dc83fc9f
radeonsi: add missing args in spi_ps_input_ena when fbfetch output
...
Fixes dEQP tests which uses fbfetch output when using ACO.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26298 >
2023-11-22 02:55:37 +00:00
Mary Guillemard
5b45304624
nvk: Implement VK_EXT_primitives_generated_query
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26324 >
2023-11-21 23:50:41 +00:00
Mary Guillemard
7bda83bdfc
nvk: Disable flush on each queries and flush at the end
...
VTG_PRIMITIVES_OUT (VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT) seems to
always require a FLUSH_PENDING_WRITES.
This changes the behavior of every queries to ensure that we only flush
during end query.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26324 >
2023-11-21 23:50:41 +00:00
Sylvain Munaut
0fa85b983f
mesa/st, dri2, wgl, glx: Restore flush_objects interop backward compat
...
In commit 1396dc1c a new output field was added as a parameter, but this
is a problem since the signature of the function are not versionned.
The flush function didn't have a versionned output struct. So what I'm
proposing here is that if the version of the input argument is new enough
(bumped to 2 here), then we re-use the existing argument, which until now
was directly a pointer to GLsync, and instead use it as a pointer to a
versioned struct.
We're just changing one pointer type to another, so in C, this should
be fine AFAIK.
Fixes: 1396dc1c
Signed-off-by: Sylvain Munaut <tnt@246tNt.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26315 >
2023-11-21 23:15:32 +00:00
Alyssa Rosenzweig
76b751c3b1
mesa/st: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:36 +00:00
Alyssa Rosenzweig
0abf4af443
mesa/st: collapse tgsi deadcode
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
301f57a17c
gallium: drop pipe_shader_state_from_nir
...
It is a bad api and now unused.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
2e56be8e34
panfrost: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
e84302f763
nouveau: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: M Henning <drawoc@darkrefraction.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
de1245417a
zink: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
8d6f4427d2
vc4: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
4698eb3875
asahi: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
f205406264
v3d: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
dfa60b70e6
radeonsi: use pipe_shader_from_nir
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Alyssa Rosenzweig
645ba24e7b
gallium: add pipe_shader_from_nir helper
...
useful for nir-based gallium meta, we have a tgsi equivalent already.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26272 >
2023-11-21 20:14:35 +00:00
Thomas H.P. Andersen
5ec6dcce5f
docs: update nvk extensions
...
I compared the output of vulkaninfo with this list. These are enabled in
the driver but missing here.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26319 >
2023-11-21 19:55:52 +00:00
Jesse Natalie
ea5925461b
microsoft/compiler: Fix lower_mem_access_bit_size callback result
...
When given (e.g.) 3x 16-bit components to store on a device that
isn't using native 16-bit loads and stores, we should be lowering
that into one 32-bit store and one masked store. Instead, the logic
here ends up returning that the best we can do is one 8-byte store,
which is clearly wrong. Stores should round down, loads should
round up.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26293 >
2023-11-21 19:11:40 +00:00
Jesse Natalie
c69ca8c5c1
nir_lower_mem_access_bit_sizes: Fix assert (bit -> byte size)
...
Reviewed-By: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26293 >
2023-11-21 19:11:40 +00:00
Faith Ekstrand
81387ed131
nvk/codegen: Fragment shader builtins are noperspective
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26321 >
2023-11-21 18:55:25 +00:00
Faith Ekstrand
354cf99869
nak: gl_FragCoord and gl_PointCoord are screen-space interpolated
...
This matches what the NVIDIA proprietary driver does. It also fixes
rendering corruptions in Grand Theft Auto 3.
Fixes: c47488341e ("nak: Use load_interpolated_input for frag_coord")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10156
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26321 >
2023-11-21 18:55:25 +00:00
Caio Oliveira
e8220b9319
intel/compiler: Simplify allocation of NIR related arrays
...
Those are not reused, so this will be the first and only allocation, so
no need to use the "realloc" variants.
For the fs_reg arrays, there's currently no particular reason to keep
them uninitialized, so zero-initialize them too -- not ideal but better
than random values.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26302 >
2023-11-21 18:31:05 +00:00
Georg Lehmann
0a5d3ac8d2
aco/sched: treat p_dual_src_export_gfx11 like export
...
This prevents the scheduler from moving the dual source export above mrtz
export, which caused hangs.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10173
Cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26317 >
2023-11-21 18:11:45 +00:00
Samuel Pitoiset
b975d4e800
radv: enable meshShaderQueries on GFX10.3
...
GFX11 support will come later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
6c7265338d
radv: add support for task shader invocations queries on GFX10.3
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
623b7033c5
radv: make some gang functions non-static
...
They will be used to create a gang CS when beginning a query if not
already present.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
1b3efecd56
radv: rework gfx10_copy_gds_query() slightly
...
To prepare for the same function with ACE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
b7d668a819
radv: add support for mesh shader invocations queries on GFX10.3
...
Also emulated with a GDS atomic counter in shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
48aabaf225
radv: do not harcode the pipeline stats mask for query resolves
...
Otherwise, mesh/task shader invocations would be ignored.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
272ad65397
radv: bump the pipeline state query size to 14 on GFX10.3
...
GFX10.3 doesn't natively support mesh/task shader invocations query
and they need to be emulated in shaders. In order to share more code
between GFX10.3 and GFX11, it's easier to use the same size as GFX11.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
7b13500a99
radv: define new pipeline statistics indices for mesh/task on GFX11
...
GFX11 uses pipeline statistics for mesh/task queries but on GFX10.3
they need to be emulated. Though the number of mesh/task shader
invocations would be copied to the pipeline statistics range to
simplify the implementation.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:49 +00:00
Samuel Pitoiset
2b93e9a02b
radv: add support for mesh primitives queries on GFX10.3
...
This query is emulated using a GDS atomic counter in shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:48 +00:00
Samuel Pitoiset
bc6d29b0ca
radv: add radv_physical_device::emulate_mesh_shader_queries for GFX10.3
...
GFX11 supports them natively but not GFX10.3.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25950 >
2023-11-21 15:24:48 +00:00
Martin Roukala (né Peres)
a1609d76ee
Revert "ci/deqp-runner: turn paths in errors into links"
...
This reverts commit d173584b6e , which
inexplicably-but-reliably broke execution of `zink-radv-navi31-valve`[1].
Rather than experimenting for days on how to fix this, let's revert the
commit as it really isn't a critical thing to have. We'll rework it as
time permits.
[1] https://gitlab.freedesktop.org/mesa/mesa/-/jobs/51870356
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26314 >
2023-11-21 15:54:25 +02:00
Connor Abbott
6be6b4ca71
tu: Fix re-emitting VS param state after it is re-enabled
...
We need to always re-emit it if it was disabled. Fixes vertex/instance
offset in a direct draw after an indirect draw.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26148 >
2023-11-21 12:42:02 +00:00
Tapani Pälli
aba00ff391
drirc: Set limit_trig_input_range option for Valheim
...
Fixes ocean rendering in Valheim.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10174
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/26295 >
2023-11-21 09:08:26 +00:00
Samuel Pitoiset
7d1cc5ec3d
radv: rename ps_epilog_inputs to colors for PS epilogs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26231 >
2023-11-21 08:47:50 +00:00
Samuel Pitoiset
e1345c5295
aco: rename color_exports to exports in create_fs_jump_to_epilog()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26231 >
2023-11-21 08:47:50 +00:00
Faith Ekstrand
12f6279c39
nak: Two more print fixes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26299 >
2023-11-20 21:57:01 -06:00
Danylo Piliaiev
eb75be66e9
freedreno,tu: Add env vars to modify fd_dev_info
...
We now have a lot of feature toggles in fd_dev_info. Generate
env var options for all of them to quickly test whether feature
misbehaves or test its impact on the performance.
FD_DEV_FEATURES=%feature_name%=%value%:%feature_name%=%value%:...
e.g.
FD_DEV_FEATURES=has_fs_tex_prefetch=0:max_sets=4
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25939 >
2023-11-21 01:33:01 +00:00
Danylo Piliaiev
17827ef24c
freedreno,tu,ir3: Pass fd_dev_info into ir3_compiler_create
...
We want to modify fd_dev_info with debug options, so we must
have a single source of fd_dev_info.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25939 >
2023-11-21 01:33:01 +00:00
Danylo Piliaiev
e6bfe42b6e
freedreno/devices: Separate device definition into base + gen features
...
After introduction of A7XX it doesn't make sense to define base GPU
properties in A6xxGPUInfo. Now we move to a more clean definition:
- a6xx_base + a6xx_genX - for A6XX
- a7xx_base + a7xx_xxx - for A7XX, there is no sub-gens clearly
identifiable at the moment.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25939 >
2023-11-21 01:33:01 +00:00
Timothy Arceri
4382bd8a34
nir: simplify nir_build_write_masked_store()
...
Suggested-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25860 >
2023-11-21 00:45:21 +00:00
Timothy Arceri
0470f8f737
glsl: remove now unused lower distance pass
...
This has been replaced with a NIR based pass.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25860 >
2023-11-21 00:45:21 +00:00
Timothy Arceri
33c2b64aa3
glsl: switch to NIR distance lowering pass
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25860 >
2023-11-21 00:45:21 +00:00
Timothy Arceri
110887de2b
glsl/nir: implement a nir based lower distance pass
...
This is based off the original GLSL IR pass but it is much much
simpler as it doesn't need to do all of the hackery required in
GLSL IR to achieve the lowering.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25860 >
2023-11-21 00:45:21 +00:00
Timothy Arceri
95da0a9c96
nir: move build_write_masked_stores() to nir builder
...
We will reused this in the following patch.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25860 >
2023-11-21 00:45:21 +00:00
Francisco Jerez
6a810b0ba8
intel: Improve N-way pixel hashing computation to handle pixel pipes with asymmetric processing power.
...
This reworks the intel_compute_pixel_hash_table_nway() pixel pipe
hashing table computation helper to handle cases where some pixel
pipes have processing power different from the others, this is helpful
for Gfx12.7+ platforms where there are pixel pipes with 1 DSS as well
as pixel pipes with 2 DSSes, which currently can lead to a serious
performance bottleneck in the pixel pipes with lower processing power.
In order to avoid such a load imbalance the
intel_compute_pixel_hash_table_nway() function will now take two pixel
pipe bitsets instead of one: Pixel pipes enabled on both bitsets will
appear with twice the frequency on the table as pixel pipes which only
appear on one bitset. See the comments below for more details on the
algorithm used to construct a pixel hashing table with the desired
properties.
With this change rendering performance improves by about 25% on a
fused MTL platform -- The list of specific configs this is expected to
show an improvement on is not included here since the list is rather
long and some of the configs may still be embargoed or may never be
productized, but in order to find out whether your Gfx12.7+ device
could be affected by this you can check the output of the
intel_dev_info tool from the Mesa tree and see if there are multiple
"pixel pipe" entries with different DSS count. That isn't expected to
occur on any DG2 configuration, only on MTL+ platforms, so this change
should have no effect at all on DG2 (it's easy to convince oneself
that it won't since for DG2 mask1 should equal mask2 so mask2 will be
set to zero at the beginning of intel_compute_pixel_hash_table_nway()
and the new swzx[] permutation will be set to the identity).
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26266 >
2023-11-20 23:48:34 +00:00
Faith Ekstrand
9033df070e
nak: Rework printing of texture and image dims
...
They're now printed as part of the op for textures and we've changed the
names to follow the PTX convention. For buffers and cube maps, I had to
come up with my own thing but I think the result is okay.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:04 +00:00
Faith Ekstrand
3a20beab03
nak: Display memory type at the end for load/store ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:04 +00:00
Faith Ekstrand
6f76f4db9f
nak: Make MemAddrType a part of MemSpace
...
This is similar to what we did with scopes and ordering. Shared and
local memory can only have an A32 address type. The only times we can
get A64 is for global or generic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:04 +00:00
Faith Ekstrand
6c861c3cc2
nak: Display memory access bits with the "." prefix
...
This just moves the "." from the caller to the Display implementation on
the actual enum type. This makes it easier to properly handle defaults.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
3d2104dd5d
nak: Align instructions when printing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
32d6720bb0
nak: Only write deps.delay when set
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
3f027f7dcc
nak: Default InstrDeps::delay to 0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
58c8391f97
nak: Implement DisplayOp on Op instead of Display
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
9d1afb7533
nak: Rework opcode printing to use a new trait
...
The new trait has separate fmt functions for dsts and the rest of the
op. There's a generic implementation of Display built on top of it
which just prints `{dsts} = {op}`. The new trait also has a default
implementation of fmt_dsts() which just walks the dsts using
dsts_as_slice() and auto-formats them all. This should be what we want
for 95% of cases and we can hand-implement the rest.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
503c4b1d5d
nak: Make most Display stuff lower-case
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
Faith Ekstrand
2897b9dcee
nak: Rework reg and SSA value printing
...
This makes everything lower-case, unifies on better prefixes, and makes
us take less whitespace for SSA vectors.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26291 >
2023-11-20 21:36:03 +00:00
llyyr
2e3027e7d1
docs: document AMD_DEBUG=noefc and useaco
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25930 >
2023-11-20 20:43:33 +00:00
Chia-I Wu
16a270f646
radv: disable TC-compat htile on GFX9 in some cases
...
Similar to commit a38de4c011 ("radv: disable tc_compatible_cmask on
GFX9 in some cases"), GFX9 seems to have issues with TC-compat htile as
well.
I've only seen this with D16 and sample count 4. But I am not sure
about the exact condition.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10161
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26263 >
2023-11-20 20:09:44 +00:00
Eric Engestrom
d173584b6e
ci/deqp-runner: turn paths in errors into links
...
Suggested-by: Emma Anholt <emma@anholt.net >
Signed-off-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26177 >
2023-11-20 19:26:53 +00:00
Eric Engestrom
1ff4687e86
ci: uprev deqp-runner from 0.16.1 to 0.18.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26270 >
2023-11-20 18:37:18 +00:00
Eric Engestrom
5efa4d56e2
ci: fix kdl commit fetch
...
Doing a `clone --depth 1` of the default branch then checking out
a commit that might not be the latest of that branch cannot work.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26270 >
2023-11-20 18:37:18 +00:00
José Roberto de Souza
205c5874d4
intel: Sync xe_drm.h
...
Sync xe_drm.h with commit 3b8183b7efad ("drm/xe/uapi: Be more specific
about the vm_bind prefetch region").
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26238 >
2023-11-20 17:57:34 +00:00
Sil Vilerino
e4ffb2473b
d3d12: Implement get_feedback with additional metadata
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
8c1ba75f68
d3d12: Support PIPE_VIDEO_CAP_ENC_H264_DISABLE_DBK_FILTER_MODES_SUPPORTED
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
c81967fa89
d3d12: Implement Intra Refresh for H264, HEVC, AV1
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
a560706648
d3d12: Implement HEVC VUI Writer
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
fdc8b7cdc4
d3d12: Implement H264 VUI Writer
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
cf8cbf0647
d3d12: Disable codecs according to meson video-codecs option
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Brian King ((MEDIA))
84c0448b36
d3d12: Add constraint_set1_flag support
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
d6bb4ddc63
d3d12: Video Encode - Remove PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE as not supported
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
151ebf8ec3
d3d12: Use log2_max_frame_num_minus4 and log2_max_pic_order_cnt_lsb_minus4 from pipe_pic_params_h264
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
34961b1118
d3d12: Plumb pipe_h264_enc_picture_desc.dbk.disable_deblocking_filter_idc
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
527def0171
gallium/vl: Check for VP9 and AV1 meson option support flags
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
7b22dd8bfd
meson: add vp9 and av1 codec support options
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
870570ee66
frontend/va: Support VAEncMiscParameterMaxSliceSize
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
ec4021b3c2
frontend/va: Parse VUI HEVC parameters
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:19:00 +00:00
Sil Vilerino
4637f1db48
frontend/va: Parse VUI H264 parameters
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
bee4a3683c
frontend/va: Add log2_max_frame_num_minus4 and log2_max_pic_order_cnt_lsb_minus4 for h264enc
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
9ce17de1fd
pipe: Add max_slice_bytes for H264, HEVC encoding
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
6b4010b906
pipe: Add HEVC VUI encode params
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
0c312c5c59
pipe: Add H264 VUI encode params
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
10eb9296fe
pipe: Add PIPE_VIDEO_CAP_ENC_INTRA_REFRESH_MAX_DURATION
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
44a3bfcc67
pipe: Add PIPE_VIDEO_CAP_ENC_H264_DISABLE_DBK_FILTER_MODES_SUPPORTED
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
be4287c3aa
pipe: Extend get_feedback with additional metadata
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
e6d754f183
gallium/auxiliary: Fix pb_bufmgr_slab.c leak
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
695201fe94
vl/win32: Add vl_win32_screen_create_from_d3d12_device
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Sil Vilerino
e7204d0224
d3d12: Allow creating d3d12_dxcore_screen from existing ID3D12Device
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223 >
2023-11-20 17:18:59 +00:00
Zhang Ning
9657ef95b4
iris: use helper util_resource_at_index
...
Signed-off-by: Zhang Ning <zhangn1985@outlook.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26243 >
2023-11-20 16:57:59 +00:00
Boris Brezillon
bc3bec76c0
panfrost: Add a JOBX() macro to simplify job-frontend selection
...
Common code will soon call job-frontend specific helpers for anything
that's not common to CSF/JM. Let's provide a JOBX() macro that does
the correct prefixing based on the PAN_ARCH value.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
9dd4c5b4e6
panfrost: Move JM helpers to their own source file
...
Before we start adding CSF support, let's move every JM-specific bits
out of pan_cmdstream.c.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
5e5a766a81
panfrost: Prepare things for the common/JM cmdstream split
...
In order to be able to split the code into separate files, we need to
share some common definitions. Create a pan_cmdstream.h file containing
some structs and helpers.
This file is meant to be included from per-gen source files.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
635385a807
panfrost: s/init_batch/jm_init_batch/
...
We will have a CSF-specific implementation.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
a0b38c4827
panfrost: s/preload/jm_preload_fb/
...
We'll have a specific version for CSF.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
2558a12633
panfrost: Rename JM-specific batch submission helpers
...
Prefix them with jm_ so we can easily specialize things for CSF.
panfrost_batch_submit_ioctl is renamed into jm_submit_jc() which
reflects the fact the ioctl() submits one job chain at a time, and
panfrost_batch_submit_jobs() is renamed jm_submit_batch() because it's
shorter and is descriptive enough.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
1dfc9ca3cf
panfrost: s/panfrost_emit_primitive/jm_emit_primitive/
...
This function is JM-specific, let's prefix it accordingly.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
fb2d2410bd
panfrost: s/panfrost_emit_shader/jm_emit_shader_env/
...
Prefix with jm_ so we know this is JM-specific, and emit_shader_env()
to make it clear this is the shader environment descriptor we
emit here.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
50898556e0
panfrost: Rename panfrost_batch_get_bifrost_tiler()
...
Tiler descriptor emission will be different on CSF, so let's just
prefix the function with jm_, and pick a shorter name without bifrost
in it (the function is already conditionally defined if PAN_ARCH >= 6,
which means bifrost or later).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
5225eeb4b1
panfrost: Drop the vertex_count argument passed to panfrost_batch_get_bifrost_tiler()
...
We always pass a non-zero vertex_count. Let's get rid of this argument
and unconditionally emit the heap descriptor.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
e44dae6cdb
panfrost: Move JM specific bits out of panfrost_launch_xfb()
...
Create a jm_launch_xfb() helper that's called from panfrost_launch_xfb()
so we can later specialize things for CSF.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
6ed0968d3d
panfrost: Move JM-specific bits out of panfrost_launch_grid_on_batch()
...
Create a jm_luanch_grid() helper that's called from
panfrost_launch_grid_on_batch() so we can later specialize things for
CSF.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
0e168f2def
panfrost: Use batch->tls.gpu to store the compute TLS descriptor
...
This seems a bit silly, but is needed if we want to move JM/CSF job
emission to their own file without having to pull the
panfrost_emit_shared_memory() function there. It also allows us to
get rid of the thread_storage argument passed to panfrost_emit_shader().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
9592b61883
panfrost: Move all JM-specific bits out of panfrost_direct_draw()
...
Add a jm_launch_draw() helper taking care of the JM descriptor emission,
and call it from panfrost_direct_draw().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
691d9747e5
panfrost: Re-order things in panfrost_direct_draw()
...
Re-order things in panfrost_direct_draw() so we have all non-HW specific
stuff done first, and then the descriptor emission.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
172d4bccd2
panfrost: Factor out the vertex count logic
...
Makes panfrost_direct_draw() shorter and thus easier to read.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
f167e2facf
panfrost: Factor out the point-sprite shader update logic
...
Not strictly needed for CSF, but anything we can do to make
panfrost_direct_draw() shorter is good to take.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
782dc11791
panfrost: Rename several job emission helpers
...
First of all, we want to prefix those with jm_, so we can later add
CSF-specific job emission helpers. We also take this as an opportunity
to clarify what these helpers emit exactly: the draw section of a job
descriptor (suffixed with _draw) or the job descriptor itself (suffixed
with _job).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
e25b8d07b8
panfrost: Move the JM-specific bits out of emit_fragment_job()
...
Add a jm_emit_fragment_job() helper that does the fragment job emission
so we can re-use the rest of emit_fragment_job() for CSF too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
04f4c39a4e
panfrost: s/panfrost_emit_vertex_tiler_jobs/jm_push_vertex_tiler_jobs/
...
Prefix the function with jm_, so it's clear its JM-specific helper.
While at it, replace emit by push, since the descriptor emission
happens before that, all this function does is pushing jobs to the
job chain.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Boris Brezillon
44bd7067b7
panfrost: Move JM specific fields to their own struct
...
In preparation of CSF support addition, we move any JM related bits out
of panfrost_batch into a panfrost_jm_batch struct that's embedded in
panfrost_batch inside an anonymous union. This way, we can easily
specialize things for CSF without polluting the panfrost_batch object
with CSF-specific fields.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:09 +00:00
Alyssa Rosenzweig
9de3ff9a78
panfrost: Add panfrost_get_{position,varying}_shader() helpers
...
We will use those when adding CSF support.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Alyssa Rosenzweig
f53c37892a
panfrost: Factor out vertex attribute stride calculation
...
We will use the new panfrost_vertex_attribute_stride() when adding CSF
support.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Alyssa Rosenzweig
ea72a0bec6
panfrost: Add an allow_rotating_primitives() helper
...
Factor out the logic so we can use the helper when adding CSF support.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
e81f99134e
panfrost: Use u_reduced_prim() to do the is_line check
...
Suggested-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
a183b8c495
panfrost: Store varying related fields in panfrost_batch
...
Store varying pointers in panfrost_batch. This will make the
job-frontend split easier by reducing the number of arguments we pass
to functions.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
19d5963c57
panfrost: Stop passing vertex attribute arrays around
...
They are accessible through
batch->{attribs,attrib_bufs}[PIPE_SHADER_VERTEX], which is updated in
panfrost_update_state_3d(), if needed.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
a0d0e07036
panfrost: Store the index pointer in panfrost_batch
...
So we can later use it from job-frontend specific hooks without having
to pass the pointer around.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
d618a46590
panfrost: Add a submit_batch() hook to panfrost_vtable
...
This per-arch method will take care of preparing the batch for submission
and submitting it.
This allows us to get rid of a bunch of methods in panfrost_vtable, and
turn some indirect function calls into direct calls.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
46fc7d2dc9
panfrost: Get rid of unused fb parameter passed to panfrost_batch_submit_jobs()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
070bdd14ba
panfrost: Get rid of the out_sync parameter in panfrost_batch_submit_jobs()
...
We always pass ctx->syncobj, which can be extracted from the batch
passed to panfrost_batch_submit_jobs(), so let's just kill this
argument.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
34512fabb4
panfrost: Get rid of unused in_sync parameter in panfrost_batch_submit[_ioctl]()
...
in_sync is always zero, so let's just get rid of the parameter.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
7b6e959b73
panfrost: Move the panfrost_emit_tile_map() call around
...
Move the panfrost_emit_tile_map() call before any of the per-gen
calls in panfrost_batch_submit(). This is in preparation of moving
the per-gen batch submission logic to a single hook instead of
having multiple indirect calls, and given the tile map doesn't
depend on any of the states modified by the per-gen calls, moving
it before them shouldn't be an issue.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
037e7a530c
panfrost: Emit the fragment job from panfrost_batch_submit()
...
Now that emit_fragment_job() stores the fragment job GPU pointer
in panfrost_batch, we can move this step in panfrost_batch_submit(),
which will help with v10/CSF support.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
a4f037bd6d
panfrost: Store the fragment job descriptor address in the batch
...
In preparation of v10 support, where the fragment job is not passed
as a descriptor, but issued directly on the command stream, we make
->emit_fragment_job() a void method, and store the fragment job
descriptor in the batch.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
d3b7b8c807
panfrost: Stop using the scoreboard to check the presence of draws/compute
...
Now that we count draws and compute jobs, we can change some of the
tests to be HW-agnostic, so they can be re-used when we introduce
support for CSF hardware.
Anything that's related to job submission keeps using the scoreboard
information, because this code will stay JM-specific.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
9b2e78b003
panfrost: Make panfrost_has_fragment_job() public
...
We want to move the kernel driver specific submission logic to
pan_cmdstream.c where we can define per-gen functions. In order to
do that, we need panfrost_has_fragment_job() to be public.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
ab18d0709a
panfrost: Count the number of compute jobs at the batch level
...
We will use this information to make some helpers HW-agnostic so they can
work on CSF hardware.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
f16312c01b
panfrost: Express the per-batch limit in term of draws
...
We turn the 10000 jobs limit into a 10000 draw limit because:
- on HW supporting IDVS a draw is just a single job, and having a common
limit for all HW is simpler
- draw_count < 10000 fits in the max jobs limit if we assume the worst
case scenario (3 jobs per draw)
- CI seems to be happy (no spurious timeouts after this change)
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
539e5e435c
panfrost: Count draws at the batch level
...
This way we have a HW-agnostic way to know how many draws were issued,
instead of looking into the job chain builder guts.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
948062ee84
panfrost: Inline pan_emit_tiler_ctx()
...
Tiler context emission will differ on v10. Given pan_emit_tiler_ctx()
was only used in the gallium driver, and its implementation is
relatively simple, inline the code in panfrost_batch_get_bifrost_tiler().
This way we will avoid the churn caused by the function prototype change.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
b378cfbc48
panfrost: Inline pan_emit_tiler_heap()
...
Tiler heap emission will differ on v10. Since pan_emit_tiler_heap()
is only used by the gallium driver, and it's simple enough to be
inlined, move the code to panfrost_batch_get_bifrost_tiler().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Boris Brezillon
708a3a33a8
panfrost: Rename panfrost_vtable::context_init
...
We are about to add arch-specific context initialization/cleanup hooks.
Rename the existing context_init hook to avoid confusion (this hook
was just populating the pipe_context vtable).
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Erik Faye-Lund
9a53cca85a
panfrost: do not open-code panfrost_has_fragment_job()
...
panfrost_batch_submit() already has an has_fragment_job() at the
beginning of the function. Store the result in a local has_frag variable
and replace the open-coded test by an 'if (has_frag)'.
Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26249 >
2023-11-20 16:38:08 +00:00
Lionel Landwerlin
f9bab3566b
intel/perf: fix querying of configurations
...
Using the unsized data field is incorrect. The data is located behind
the entire drm_i915_query_perf_config structure.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26285 >
2023-11-20 16:00:05 +00:00
Eric Engestrom
46c9128117
amd/ci: track changes to the traces config file as well
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26278 >
2023-11-20 15:23:40 +00:00
Eric Engestrom
4de3ce1f2c
ci/piglit: specify only the traces file in the job config
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26278 >
2023-11-20 15:23:40 +00:00
Dennis Bonke
653405ee08
mesa: add managarm support
...
Co-authored-by: Alexander Richards <electrodeyt@gmail.com >
Signed-off-by: Alexander Richards <electrodeyt@gmail.com >
Signed-off-by: Dennis Bonke <dennis@managarm.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25818 >
2023-11-20 13:35:19 +00:00
Tapani Pälli
0e68dd1a52
drirc: use fake_sparse for Armored Core 6
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9808
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/25217 >
2023-11-20 13:06:24 +00:00
Helen Koike
2999091287
ci/ci_run_n_monitor: abort when target gets skipped
...
when a target receives skipped state it is because some of the
dependencies failed, abort the script and print the reason
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26155 >
2023-11-20 13:03:09 +00:00
Eric Engestrom
3d53022e68
asahi: use util_resource_num() instead of open-coding it
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26287 >
2023-11-20 11:58:59 +00:00
Alejandro Piñeiro
8191acd41e
broadcom/compiler: update image store lowering to use v71 new packing/conversion instructions
...
Vulkan shaderdb stats with pattern dEQP-VK.image.*.with_format.*.*:
total instructions in shared programs: 35993 -> 33245 (-7.63%)
instructions in affected programs: 21153 -> 18405 (-12.99%)
helped: 394
HURT: 1
Instructions are helped.
total uniforms in shared programs: 8550 -> 7418 (-13.24%)
uniforms in affected programs: 5136 -> 4004 (-22.04%)
helped: 399
HURT: 0
Uniforms are helped.
total max-temps in shared programs: 6014 -> 5905 (-1.81%)
max-temps in affected programs: 473 -> 364 (-23.04%)
helped: 58
HURT: 0
Max-temps are helped.
total nops in shared programs: 1515 -> 1504 (-0.73%)
nops in affected programs: 46 -> 35 (-23.91%)
helped: 14
HURT: 2
Inconclusive result (%-change mean confidence interval includes 0).
FWIW, that one HURT on the instructions count is for just one
instruction.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25726 >
2023-11-20 08:20:31 +00:00
Alejandro Piñeiro
c0cfa4f53b
nir: add new opcodes to map new v71 packing/conversion instructions
...
Since v71, broadcom hw include specific packing/conversion
instructions, so this commit adds opcodes to be able to make use of
them, specially for image stores:
* pack_2x16_to_unorm_2x8 (on backend vftounorm8/vftosnorm8):
2x16-bit floating point to 2x8-bit unorm/snorm
* f2unorm_16/f2snorm_16 (on backend ftounorm16/ftosnorm16):
floating point to 16-bit unorm/snorm
* pack_2x16_to_unorm_2x10/pack_2x16_to_unorm_10_2 (on backend
vftounorm10lo/vftounorm10hi): used to convert a floating point to
a r10g10b10a2 unorm
* pack_32_to_r11g11b10 (on backend v11fpack): packs 2 2x16 FP into
R11G11B10.
* pack_uint_32_to_r10g10b10a2 (on backend v10pack): pack 2 2x16
integer into R10G10B10A2
* pack_4x16_to_4x8 (on backend v8pack): packs 2 2x16 bit integer
into 4x8 bits.
* pack_2x32_to_2x16 (on backend vpack): 2x32 bit to 2x16 integer
pack
For the latter, it can be easly confused with the existing
pack_32_2x16_split. But note that this one receives two 16bit integer,
and packs them on a 32bit integer. But broadcom opcode takes two 32bit
integer, takes the lower halfword, and packs them as 2x16 on a 32bit
integer.
Interestingly broadcom also defines a similar one that packs the
higher halfword. Not used yet.
Note that at this point we use agnostic names, even if we add a _v3d
suffix as they are only available for broadcom, in order to follow
current NIR conventions.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25726 >
2023-11-20 08:20:31 +00:00
Samuel Pitoiset
fc044928b2
radv: re-enable sparseResidencyImage3D on POLARIS10+
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7214
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26260 >
2023-11-20 08:30:05 +01:00
Samuel Pitoiset
e02a1f0a44
ac/surface: change tile mode for 3D PRT surfaces with bpp < 64 on GFX6-8
...
This is loosely based on PAL. This seems to fix 3D PRT support with
RADV on Polaris10. THIN means the tile is a 2D slice. THICK means the
tile is a 3D box.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26260 >
2023-11-20 08:29:19 +01:00
Vinson Lee
e3afbd5c28
nir: Fix decomposed_prmcnt copy-paste error
...
Fix defect reported by Coverity Scan.
Copy-paste error (COPY_PASTE_ERROR)
copy_paste_error: prmcnt in prmcnt = -1 looks like a copy-paste error.
Fixes: cc3f20ca6c ("nir: Also gather decomposed primitive count")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26159 >
2023-11-20 03:27:26 +00:00
Qiang Yu
1fabf535fa
aco: handle GL_TEXTURE_RECTANGLE in tg4_integer_workarounds
...
Ported from LLVM side lower_gather4_integer().
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26244 >
2023-11-20 02:59:23 +00:00
Qiang Yu
695fc67baa
aco: set MIMG unrm for GL_TEXTURE_RECTANGLE
...
This fixes VDPAU compositor shaders compiled by ACO.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26244 >
2023-11-20 02:59:23 +00:00
Qiang Yu
dbbf566588
aco,ac/llvm,radeonsi: lower f2f16 to f2f16_rtz in nir
...
No need to handle f2f16 specially for OpenGL, and we can vectorize
f2f16 when using ACO.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25990 >
2023-11-20 02:20:17 +00:00
Qiang Yu
7e4aac46ad
nir: add force_f2f16_rtz option to lower f2f16 to f2f16_rtz
...
Used by OpenGL driver like radeonsi which has undefined rounding mode.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25990 >
2023-11-20 02:20:17 +00:00
Qiang Yu
5696790420
ac/llvm: remove nir_op_*2*mp ops handling
...
They have been lowered to *2*16 in nir.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25990 >
2023-11-20 02:20:17 +00:00
Qiang Yu
909895ae2a
radeonsi: only vectorize nir ops that aco support
...
To fix si_compute_blit created nir code compilation with ACO.
Two 16bit vector ops are used in it:
con 16x2 %11 = u2u16 %10.xy
con 16x2 %25 = f2f16 %22.xy
which is not supported by ACO yet.
PS. now ACO supports vec2 f2f16.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25990 >
2023-11-20 02:20:17 +00:00
Qiang Yu
5932990e08
aco,radv: add aco_is_nir_op_support_packed_math_16bit
...
To be shared by radeonsi and radv.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25990 >
2023-11-20 02:20:17 +00:00
Lucas Fryzek
10367618da
gallivm/nir: Load all inputs into indirect inputs array
...
The code in `emit_load_var` that will attempt to read indirect inputs
expects the entire array of inputs to be there. Additionally the code
that populates `bld->inputs_array` will populate the array using the count
of `inputs_read`, without ensuring the inputs it copies are the ones read.
This change populates `bld->inputs_array` with the entire contents of bld->inputs
so indirect reads will always match up.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26153 >
2023-11-20 01:54:41 +00:00
Erico Nunes
898700ca64
v3dv: Rework to remove drm authentication for wsi
...
For Wayland wsi allocations, v3dv used the wl_drm protocol, which is now
being phased out in favor of dmabuf feedback.
wl_drm is used to figure out the display device (in v3dv assumed to be
vc4) and then to authenticate with the Wayland compositor in order to
allocate scanout-able buffers (in this case, dumb buffers) directly at
the display device.
Recent commit 88c03ddd34 changed the behavior of the wsi code, and
wl_drm is now passing the render device instead, which broke Wayland
wsi.
It turns out that the authentication code is not really needed and since
we would like to remove wl_drm usage and the master device is assumed to
be vc4 anyway, we can just remove some unneeded device-specific wsi code
and get Vulkan Wayland wsi back to work.
Fixes: 88c03ddd34 ("egl/drm: get compatible render-only device fd for kms-only device")
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26200 >
2023-11-19 17:00:49 +00:00
Janne Grunau
2091515a70
gallium: Do not create pipe-loader version scripts for disabled drivers
...
They are not going to be used without shared library to build.
Fixes: 667de678a0 ("gallium: Fix undefined symbols in version scripts")
Signed-off-by: Janne Grunau <j@jannau.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26273 >
2023-11-19 09:34:59 +01:00
Janne Grunau
b2da38413f
gallium: Fix i915 pipe-loader build
...
'i915' was missing from the list of drivers for the 'driver_descriptor'
descriptor symbol. Rather than maintaining a second list of drivers add
the 'driver_descriptor' symbol for all drivers except swrast.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10171
Fixes: 667de678a0 ("gallium: Fix undefined symbols in version scripts")
Signed-off-by: Janne Grunau <j@jannau.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26273 >
2023-11-19 09:22:43 +01:00
Matt Turner
f05688aa32
util: Provide DRM_DEVICE_GET_PCI_REVISION definition
...
This allows src/intel/dev/intel_device_info.c to build with libdrm
stubbed out.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26265 >
2023-11-18 17:01:24 +00:00
Matt Turner
5022a26b50
util: Include stdint.h in libdrm.h
...
drmGetDevices2()'s first parameter is a uint32_t.
Fixes: e05abb1345 ("util: Add a simple no-op libdrm shim")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26265 >
2023-11-18 17:01:24 +00:00
Timur Kristóf
d487d9d05b
radv: Use SDMA version instead of gfx_level where possible.
...
The SDMA IP is independent from the GFX IP, so it is technically
wrong to program it based on the GFX level.
This patch changes the RADV SDMA code to use SDMA IP versions
where possible.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110 >
2023-11-18 17:11:18 +01:00
Timur Kristóf
24022d5680
radv: Use GPU info for determining SDMA metadata support.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110 >
2023-11-18 17:11:15 +01:00
Timur Kristóf
fd3cdf28ac
ac: Add sdma_version enum and use it for SDMA features.
...
The SDMA IP is independent from the GFX IP, so it is technically
wrong to program it based on the GFX level.
This patch adds a new enum for SDMA IP version and uses that
to determine functionality such as compression and sparse
support.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110 >
2023-11-18 17:11:11 +01:00
Timur Kristóf
d09ad16fd4
ac: Remove CIK prefix from SDMA opcodes.
...
The vast majority of AMD GPUs (except the very first GCN) have
the same SDMA packet format, so let's just call it SDMA instead
of CIK_SDMA.
(And leave the oldest GPUs with SI_SDMA as they are now.)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110 >
2023-11-18 17:11:00 +01:00
Timur Kristóf
6413b860c4
ac: Rename SDMA max copy size macros to reflect SDMA version.
...
This naming is more accurate and closer to the HW.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110 >
2023-11-18 17:10:56 +01:00
Janne Grunau
be9953ac2c
gallium: Avoid empty version scripts in pipe-loader
...
Meson produces version scripts with an empty global node for disabled
drivers. This is reported as syntax error by the linker.
The root cause of the problem is that the version scripts are
accumulated in the out of foreach `pipe_loader_link_args` variable
although they should be only used once for their driver specific loader
library.
Fixes build errors when some of the drivers are disabled like on arm64
which disables i915 due to missing dependencies.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10166
Fixes: 667de678a0 ("gallium: Fix undefined symbols in version scripts")
Signed-off-by: Janne Grunau <j@jannau.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26268 >
2023-11-18 13:05:48 +00:00
Simon Ser
0f978c3441
egl: ensure a render node is passed to _eglFindDevice()
...
_eglFindDevice() will fail if it's not provided a render node:
the EGLDevice list only contains one entry per render node, plus
the special software device. Passing a primary node for a
display-only device will not work.
Signed-off-by: Simon Ser <contact@emersion.fr >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10142
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Tested-by: Iago Toral Quiroga <itoral@igalia.com >
Tested-by: Alejandro Piñeiro <apinheiro@igalia.com >
Fixes: 2be404f557 ("egl: error out if we can't find an EGLDevice in _eglFindDevice()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26205 >
2023-11-18 13:19:53 +01:00
Simon Ser
9b70096f5e
egl: move dri2_setup_device() after dri2_setup_extensions()
...
dri2_setup_device() will depend on the extensions being set up in
the next commit.
None of the code in-between depends on disp->Device AFAIU.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Tested-by: Iago Toral Quiroga <itoral@igalia.com >
Tested-by: Alejandro Piñeiro <apinheiro@igalia.com >
Backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26205 >
2023-11-18 13:19:05 +01:00
Simon Ser
b4ec0b51ce
egl: extract EGLDevice setup in dedicated function
...
Extract the logic responsible for populating disp->Device via
_eglFindDevice(). This isn't much for now but will grow in a
following commit.
No functional changes.
Signed-off-by: Simon Ser <contact@emersion.fr >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Leandro Ribeiro <leandro.ribeiro@collabora.com >
Tested-by: Iago Toral Quiroga <itoral@igalia.com >
Tested-by: Alejandro Piñeiro <apinheiro@igalia.com >
Backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26205 >
2023-11-18 13:19:04 +01:00
Shuicheng Lin
dddab9fa77
intel/xe: Correct DRM_XE_EXEC_QUEUE_SET_PROPERTY's ioctl
...
DRM_XE_EXEC_QUEUE_SET_PROPERTY is the offset,
while DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY is the real number.
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26253 >
2023-11-18 10:17:45 +00:00
Mary Guillemard
275afe73f7
nvk: Implement VK_KHR_fragment_shader_barycentric
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9619
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26224 >
2023-11-18 02:46:47 +00:00
Mary Guillemard
7fb91f22d5
nak: Add more bits discovered in SPH
...
This adds barycentric related bits and various others.
We still need to figure out the bits between 640..672, 800..1024 and checks
some "reserved" bits. (especially around the GS passthrough bit)
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26224 >
2023-11-18 02:46:47 +00:00
Mary Guillemard
60544cae07
nir: Add a ldtram_nv intrinsic
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26224 >
2023-11-18 02:46:47 +00:00
Faith Ekstrand
62006c2f96
nvk: Advertise the rest of the subgroup ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
1bc865ca8a
nak: Implement quad ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
cca40086c6
nak: Lower scan/reduce in NIR
...
We can probably do slightly better than this if we take advantage of the
predicate destination in SHFL but not by much. All of the insanity is
still required (nvidia basically emits this), we just might be able to
save ourslves a few comparison ops.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
11bcce9461
nak: Use c == 0x0 for shuffle_up
...
The bounds check on SHFL.UP is from below, so we actually want
maxLane == 0.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
8c79d616bd
nak: Add builder helpers for a few ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
c874db9381
nak: Add the predicate destination to OpShfl
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Faith Ekstrand
3cc389f3da
nvk: Set the right API version in the ICD json files
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26264 >
2023-11-18 01:09:33 +00:00
Eric Engestrom
f011410c1c
egl/dri2: increase NUM_ATTRIBS to fit all the attributes
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26234 >
2023-11-17 22:54:28 +00:00
Ganesh Belgur Ramachandra
4dd287308f
radeonsi: "get_blitter_vs" shader in nir
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25782 >
2023-11-17 22:19:39 +00:00
Ganesh Belgur Ramachandra
4a3cebaffc
radeonsi: "create_fmask_expand_cs" shader in nir
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25782 >
2023-11-17 22:19:39 +00:00
Ganesh Belgur Ramachandra
6584088cd5
radeonsi: "create_dma_compute" shader in nir
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25782 >
2023-11-17 22:19:39 +00:00
Juston Li
d54c140eb6
venus: disable unsupported ExtendedDynamicState3Features
...
Fixes: 49e5b583 ("venus: enable VK_EXT_extended_dynamic_state3")
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26261 >
2023-11-17 22:00:27 +00:00
Ian Romanick
52ee4cf229
nir/builder: Teach nir_pack_bits and nir_unpack_bits about 32_4x8
...
Also teach it how to pack and unpack 32-bits to or from 32-bits.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24741 >
2023-11-17 21:00:59 +00:00
Ian Romanick
25743209c4
nir/lower_packing: Add lowering for nir_op_unpack_32_4x8
...
Nothing should currently hit this path.
The next commit adds code to nir_pack_bits and nir_unpack_bits that can
lead to this path being hit.
v2: Change nir_u2uN(..., 8) to nir_u2u8(...). Suggested by Alyssa.
v3: Don't generate nir_extract_u8 if the driver has set
lower_extract_byte. These instructions were causing some problems for
dozen.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io > [v2]
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com > [v2]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24741 >
2023-11-17 21:00:59 +00:00
Ian Romanick
7a1a9fb287
nir/lower_packing: Don't generate nir_pack_32_4x8_split on drivers that can't handle it
...
It should not be possible for this to happen now as the nir_pack_32_4x8
instruction that is being lowered shouldn't exist. A later commit will
change this.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24741 >
2023-11-17 21:00:59 +00:00
Anthony Roberts
a76cb87602
glsl: Use unsigned instead of enum type in ir_variable_data
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26254 >
2023-11-17 20:08:49 +00:00
Jesse Natalie
cb019ff926
d3d12: GL4.6
...
This enables pipeline stats and SO overflow queries
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26210 >
2023-11-17 19:19:11 +00:00
Jesse Natalie
b0ba671446
d3d12: Enable some 4.6 extensions that were already implemented
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26210 >
2023-11-17 19:19:11 +00:00
Jesse Natalie
eac2ce6e3b
d3d12: Fixes for QBO shaders
...
Output offset for resolves was wrong, and we can't use a double for the
timestamp multiplier, because doubles might be emulated, and that emulation
is only handled by shaders that go through the GL frontend.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26210 >
2023-11-17 19:19:11 +00:00
Jesse Natalie
df4fc66649
nir: Add a flag to opt_if to prevent fighting with splitting 64bit phis
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26210 >
2023-11-17 19:19:11 +00:00
Andrew Gazizov
bafc27583c
venus: Make sure that guest allocated blobs from hostmem are mappable
...
For guest-based blob allocations from hostmem (Host visible memory),
to make sure that virtio-gpu driver will send to the host the address
(offset in the region) of the allocated blob using RESOURCE_MAP_BLOB
command a flag VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT must be set.
Otherwise, if the upper layers didn't set it, host can't import memory
and guest allocation from Host visible memory region makes no sense.
Signed-off-by: Andrew D. Gazizov <andrew.gazizov@opensynergy.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26130 >
2023-11-17 18:24:20 +00:00
Andrew Gazizov
8929889563
venus: Tighten the conditions for guest_vram device memory alloc
...
In addition to the platform requirement (use_guest_vram), device memory
allocations from dedicated heap (guest_vram) are necessary only when:
1. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT is set and it indicates that
memory is host visible and assumed to be accessed by CPU (vkMapMemory).
2. One of external memory handle types is set, that indicates memory
can be exported with external handle.
In other cases it's not necessary to create virtgpu_bo object in the
guest and enough just perform vkAllocateMemory on host side without
memory import from dedicated heap.
Reported-by: Yiwei Zhang <zzyiwei@chromium.org >
Signed-off-by: Andrew D. Gazizov <andrew.gazizov@opensynergy.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26130 >
2023-11-17 18:24:20 +00:00
Andrew Gazizov
816f66cdfd
venus: Use vk_object_id as blob_id for guest_vram device memory alloc
...
blob_id == 0 does not refer to an existing VkDeviceMemory and implies
a shmem allocation. So for guest_vram device memory allocations, 0 is
not a valid blob id and must be greater than 0.
Therefore, set vk_object_id as blob_id for guest_vram device memory
allocations. Considering that vk_object_id made from valid pointer, it
will be always greater than 0.
Signed-off-by: Andrew D. Gazizov <andrew.gazizov@opensynergy.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26130 >
2023-11-17 18:24:20 +00:00
Paulo Zanoni
c853e259ab
anv+zink/ci: document new sparse failures
...
Now that we have sparse resources on Anv these tests are finally
running, but they're failing. We'll eventually fix them, but let's not
make Zink gatekeep the entirety of sparse resource on Anv.
v2: KHR-GL46.sparse_buffer_tests.BufferStorageTest was initially
reported as Crash by Mesa CI. On my second run in Mesa CI it gave me a
Timeout. On my machine it passes but takes about 4 minutes to finish,
so skip it entirely.
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
563678f310
anv/sparse: don't support YCBCR 2x1 compressed formats
...
Regarding supporting these formats, the spec says:
"A sparse image created using VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
supports all non-compressed color formats with power-of-two element
size that non-sparse usage supports. Additional formats may also be
supported and can be queried via
vkGetPhysicalDeviceSparseImageFormatProperties.
VK_IMAGE_TILING_LINEAR tiling is not supported."
Regarding the formats themselves, the spec says:
"VK_FORMAT_B8G8R8G8_422_UNORM specifies a four-component, 32-bit
format containing a pair of G components, an R component, and a B
component, collectively encoding a 2×1 rectangle of unsigned
normalized RGB texel data. One G value is present at each i
coordinate, with the B and R values shared across both G values and
thus recorded at half the horizontal resolution of the image. This
format has an 8-bit B component in byte 0, an 8-bit G component for
the even i coordinate in byte 1, an 8-bit R component in byte 2,
and an 8-bit G component for the odd i coordinate in byte 3. This
format only supports images with a width that is a multiple of two.
For the purposes of the constraints on copy extents, this format is
treated as a compressed format with a 2×1 compressed texel block."
Since these formats are to be considered compressed 2x1 blocks and we
don't necessarily have to support non-compressed formats that
non-sparse support, we can claim them as not supported with sparse.
In addition to all of that, if you look at isl_gfx125_filter_tiling()
you'll see that we don't even support Tile64 for these formats, so
sparse residency (i.e., non-opaque image binds) doesn't really make
sense for them yet.
The Vulkan spec defines 4 other YCBCR "2x1 compressed" formats like
the ones we have in this commit, but we don't support them even
without sparse, so there's no reason to check them here.
A recent change in VK-GL-CTS made tests that use these formats go from
unsupported to failures:
7ecc7716a983 ("Do not use and check for STORAGE image support, when
it is not used in the test")
This commit "fixes" the following VK-GL-CTS failures (by making them
return NotSupported):
dEQP-VK.sparse_resources.image_block_shapes.2d.b8g8r8g8_422_unorm.samples_1
dEQP-VK.sparse_resources.image_block_shapes.2d.g8b8g8r8_422_unorm.samples_1
dEQP-VK.sparse_resources.image_block_shapes.2d_array.b8g8r8g8_422_unorm.samples_1
dEQP-VK.sparse_resources.image_block_shapes.2d_array.g8b8g8r8_422_unorm.samples_1
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
a0559768db
anv: enable sparse by default on i915.ko
...
On i915.ko we don't have the vm_bind ioctl, so sparse requires TR-TT.
Unfortunately, on gfx < 20 TR-TT is not compatible with non-render
queues, so we have to disable those when sparse is enabled. Notice
that although we don't have TR-TT for non-render queues on gfx >= 20,
vm_bind is the default, and it doesn't have this restriction.
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
fda5163f34
anv/trtt: properly handle the lifetime of TR-TT batch BOs
...
We need to wait for the batches to complete before we return the BOs
to the pool. We were previously doing this completely synchronously,
which made the code unnecessarily wait. Now we have a timeline syncobj
that signals completion of the previous BOs, so sometimes we check
where we are in the timeline and then return the BOs that we know are
unused.
This, in addition to the previous patch that made us wait for the
other syncobjs through the execbuf ioctl instead of through the CPU,
makes TR-TT batches at least an order of magnitude faster. Still, I
don't think we'll notice any changes in games's FPS as they don't bind
sparse resources that often.
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
0f21836272
anv/trtt: add support for queue->sync to the TR-TT batches
...
At this moment this patch won't buy us anything since we're already
being completely synchronous, but the next patch is going to change
this and so queue->sync will start making sense.
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
1534ee46b8
anv/trtt: add struct anv_trtt_batch_bo and pass it around
...
For now it just wraps the bo and size, so there's really no value to
having it. In the next commit we'll add more elements to the struct.
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/25512 >
2023-11-17 17:58:29 +00:00
Paulo Zanoni
18bd00c024
anv/trtt: don't wait/signal syncobjs using the CPU anymore
...
Pass them as part of the TR-TT batch. This is what a lot of the
previous commits were building up to.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
f2206a0eb1
anv/xe: allow passing extra syncs to xe_exec_process_syncs()
...
We're going to use this in two different patches.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
4b435d6983
anv/i915: extract setup_execbuf_fence_params()
...
I'm about to add a 3rd caller for it.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
d797d9233d
anv/sparse: process image binds before opaque image binds
...
When sparse images are being used, applications normally use
non-opaque binds and leave opaque binds just for the miptail part.
Since miptails are always at the end of the array layers, processing
the opaque binds after processing the non-opaque binds increases the
chance that anv_sparse_submission_add() will join the miptail bind
operation with the last non-opaque opreration, especially if the user
is trying to bind the last few non-miptail levels and the miptail in
the same vkQueueBindSparse opration.
In the real world this case does happen, so we're able to save a bind
operation every once in a while in Steam games.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
040063c156
anv/sparse: move waiting/signaling syncobjs to the backends
...
Move waiting/signaling to the backends so we can fix each backend
separately.
As I write this patch the vm_bind backend is back to using synchronous
vm_binds so we can't pass syncobjs to the synchronous vm_bind ioctl
anymore. We'll need more discussions and possibly some rework before
we go back to asynchronous vm_binds. This commit should allow us to
fix the TR-TT backend in the next commit and leave vm_bind for later.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
cbf09b4254
anv/trtt: use 'queue' from anv_sparse_submission in the backend
...
Don't pass it as a parameter when it's also part of a struct. Have to
touch 9 files just for that...
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
f6d28bec6d
anv/sparse: add 'queue' to anv_sparse_submission
...
If we're going to move syncobj waiting/signaling down to the backend
we're going to need a queue to signal as lost in case those operations
fail.
In some places of the stack we don't have a queue available, such as
when we're creating or destroying resources. For those, for vm_bind
cases we don't use the queue for anything so passing it as NULL is
fine. For TR-TT we are already using device->trtt.queue.
For TR-TT specifically this also means we're going to start using the
actual queues from the call stack instead of trtt->queue, but that
shouldn't make any difference since we only ever have one queue.
Still, this is more technigally correct.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
576275907a
anv/sparse: pass anv_sparse_submission to the backend functions
...
Our ultimate goal is to have the backend functions deal with the wait
and signal syncobjs instead of waiting for them on the CPU inside
anv_queue_submit_sparse_bind_locked(). For that, we'll need waits and
signals parameters to be passed all the way to the backend functions
that actually make the submission, and this is what this patch does,
through struct anv_sparse_submission.
This patch just deals with passing the parameters to the functions,
nothing is using the new variables yet. There should be no functional
changes here. The goal here is to make code review easier.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
6c7753ee0b
anv/sparse: join all submissions into a single anv_sparse_bind() call
...
Currently, a single vkQueueBindSparse() call may lead to multiple bind
calls in the backend (either a vm_bind ioctl or a command submission
that updates the TR-TT page tables). These operations can be quite
slow so it's better for us if we try to emit as few of them as
possible.
On top of that, this gives our "just extend the last operation's size
if possible" code a little more chance to act and save us real time.
Our ultimate goal here is to also pass submit->waits and
submit->signals to the backend so we can avoid doing CPU waits, so
having a single call to the backend helps simplify things a little
too, and we just created the structure to carry these extra pointers
forward.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
11e9a700f6
anv/sparse: drop anv_sparse_binding_data from dump_anv_vm_bind()
...
Having it helped us printing the resource offset, which made debugging
some situations easier. The problem is that we want to rework the code
a little bit and we won't have a 'sparse' struct anymore to pass
around. Since it's all debug code drop it for now so it doesn't get in
the way of the rework. If we need it later we can find a way to add it
back, or we find another way to print the value.
Drive-by drop the DEBUG_SPARSE check that's already in the caller.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
b4fef9a745
anv/trtt: also join the L3/L2 writes into a single MI_STORE_DATA_IMM
...
Same as the L1 case, but this one deals with 64bit entry addresses and
pte addresses.
Consecutive L3/L2 writes are much rarer than L1 writes since they
require some pretty big buffers, but we can still those cases in the
wild. I just don't think any change will be noticeable though.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
31f720fd6e
anv/trtt: join L1 writes into a single MI_STORE_DATA_IMM when possible
...
If the addresses are sequential, we can emit only a single
MI_STORE_DATA_IMM instruction. This is a very common case, it should
save us some space: 4 bytes per extra_write.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
ccb30ae0cd
anv/sparse: fix limits.sparseAddressSpaceSize when using vm_bind
...
When using vm_bind (not TR-TT), in practice sparse addresses will be
allocated from the high_heap, so narrow down the available
sparseAddressSpaceSize from the whole address space to the part we can
actually allocate things from.
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/25512 >
2023-11-17 17:58:28 +00:00
Paulo Zanoni
04bfe828db
anv/sparse: allow sparse resouces to use TR-TT as its backend
...
TR-TT is a hardware feature supported by both i915.ko and xe.ko, which
means we can now finally have Sparse Resources on i915.ko and we also
have 2 options for xe.ko (and whatever is the best should be the
default).
In this patch we use batch commands to write the page tables and
forever keep them in device memory. We maintain a mirror of both the
L3 and and L2 tables because that helps us never having to read the
tables that are in device memory.
We still have some things to improve, but with this commit, workloads
that didn't work at all due to the lack of sparse resources should
at least run.
This is still all disabled by default in i915.ko, you can turn it on
by exporting ANV_SPARSE=1 before launching the applications. For
xe.ko, switch the default with ANV_SPARSE_USE_TRTT=1.
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/25512 >
2023-11-17 17:58:28 +00:00
Rhys Perry
a279767424
ac/gpu_info: update conformant_trunc_coord comment
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25911 >
2023-11-17 15:15:28 +00:00
Rhys Perry
9e9eb87dd3
radv: enable radv_disable_trunc_coord for vkd3d-proton/DXVK
...
This fixes diagonal SSAO artifacts in some games.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9253
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6395
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25911 >
2023-11-17 15:15:28 +00:00
Rhys Perry
4d2a3b9573
radv: add radv_disable_trunc_coord option
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25911 >
2023-11-17 15:15:27 +00:00
Eric Engestrom
1b18ca83fa
amd/ci: avoid re-running all the test jobs when changing the expectations for only one of them
...
Previously, any change to any job would trigger every job.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26127 >
2023-11-17 14:22:46 +00:00
Alyssa Rosenzweig
0f0f6c6227
nir/validate: Specialize if source validation
...
Yet another bit of branchiness we should tame. 99% of the time, sources are not
for if's, so we shouldn't need to do the extra checking to handle that 1%.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
88d0fd03d6
nir/validate: Split out validate_sized_src
...
We don't check the sizes for ALU srcs, which is the hot path here, so split out
that simplified version for ALU instructions to use, while deriving a sized
version for other kinds of instructions.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
bfcc323954
nir/validate: Inline validate_ssa_src
...
There's no more nir_register.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
bfdb2862d6
nir/validate: Drop stale todo
...
We have dominance validation elsewhere in the file.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
9f341cefbb
nir/validate: Don't check dimensions in validate_def
...
Instead, check it at the call sites when actually required (basically just
intrinsics), reducing the branching required when not (ALU validation, the
hottest of hot paths for CI).
IMHO this is more obvious too.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
d2b1e6bed0
nir/validate: Use unlikely for validate_assert
...
No apparent performance difference, but documents the intention.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
e9d185dccf
nir/validate: Don't validate out-of-bounds channels
...
Nothing should ever be reading them, they logically do not exist. So there's no
point validating them, especially when the validation in question is so useless
(just checking the bit width, without any semantic awareness). Yet now that we
support vec16, this loop is quite hot even on scalar ISAs, and rather
pointlessly so. Just remove it and bring the ALU src validation complexity to
O(# of channels in source) instead of O(max # of channels in NIR).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
8d5a1e5a77
nir/validate: Don't spam nir_alu_instr_channels
...
It doesn't inline and so is about 1% of M1 CTS time. Expand out the definition
and simplify the logic. Honestly, I think this is clearer too.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
1786032029
nir/validate: Optimize ssa_srcs set
...
Profiling showed that maintaining this ssa_srcs set consumes ~3% of CTS time
with a debugoptimized build. Unfortunately, we really do benefit from getting
this coverage in CI. So rather than remove the validation, let's optimize the
data structure used so we can keep the coverage at a fraction of the cost.
The expensive piece is the pointer set, which is backed by a relatively
expensive hash table. It would be much cheaper to use an invasive set instead,
with a single "present" bit. We don't want to bloat nir_src for this, however
there's an easy solution: use a tagged pointer to steal a bit in the nir_src for
the job. We untag everything at the end of validation (and this meta-invariant
is asserted with an auxiliary counter), so while we mutate the IR while
validating, the mutations do not escape nir_validate.
We tag the parent pointer and not the def pointer, because it is dramatically
less used and therefore has far fewer disrupted call sites.
The M1 job is improved from 3:03 to 2:55 of deqp-runner reported time, which is
excellent.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Alyssa Rosenzweig
6d73f62e42
nir: Simplify nir_alu_instr_channel_used definition
...
Deduplicates the "get # of channels" logic which was the same between the
helpers.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26084 >
2023-11-17 09:36:08 -04:00
Violet Purcell
667de678a0
gallium: Fix undefined symbols in version scripts
...
Currently, multiple version scripts unconditionally use symbols from gallium
drivers that may not be enabled, which causes linking to fail with
--no-undefined-version (as is default in LLD 17), and can cause issues
with LTO. This commit adds logic to generate version scripts based on the
enabled gallium drivers, ensuring only defined symbols are used.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8003
Signed-off-by: Violet Purcell <vimproved@inventati.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25551 >
2023-11-17 12:35:24 +00:00
Lionel Landwerlin
c76cb19b01
anv/blorp: move helper function about BTI changes to blorp
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
1b6fe35ec8
anv: get rid of the duplicate pipeline fields in command buffer state
...
This can be error prone if you forget to update one.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
ec3f8c0d42
intel/blorp: move Wa_18019816803 out of blorp code
...
The driver already need to track this WA for blorp. We can completely
remove any blorp code dealing with this and instead have the flush
required by the workaround be combined with potential other flushes
the driver already has to insert before blorp operations.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
6e85fa8a80
intel/decoder: handle 3DPRIMITIVE_EXTENDED in accumulated prints
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
9689607f10
anv: fix dirty state tracking for 3DSTATE_PUSH_CONSTANT_ALLOC
...
ANV_CMD_DIRTY_PIPELINE also includes reprogramming of
3DSTATE_PUSH_CONSTANT_ALLOC_* instructions.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
1257d08bcb
anv: fix CC_VIEWPORT pointer dirty after blorp/simple-shaders
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
e517b1e095
anv: fix missing naming for dirty bit
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Lionel Landwerlin
1a1747712c
anv: fix source_hash propagation with libraries
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26247 >
2023-11-17 10:17:51 +00:00
Daniel Schürmann
f2bb7b185d
aco: delete instruction selection for boolean subgroup operations
...
These are now lowered in NIR.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Daniel Schürmann
88afbbba11
nir: optimize open-coded quadVote* directly to new nir_quad intrinsics
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Connor Abbott
0d186d356c
amd: Enable boolean subgroup lowering
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Connor Abbott
1dab2c5bd2
nir/subgroups: Add option to lower Boolean subgroup reductions
...
This will be useful for AMD, and probably Intel as well.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Connor Abbott
387e698bde
amd: Implement quad_vote intrinsics
...
Co-authored-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Connor Abbott
1cfb0ae92c
nir: Add quad vote intrinsics
...
Both Intel and AMD have special hardware support for these.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Daniel Schürmann
27734c52eb
nir/lower_subgroups: optimize reductions with cluster_size == 1
...
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/218 >
2023-11-17 09:45:40 +00:00
Boris Brezillon
9ac3117e3e
panfrost: Emit image attribs for compute in panfrost_update_shader_state()
...
This will make the job-frontend split easier, and it also makes sense
to update image attributes here for compute.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:11 +00:00
Boris Brezillon
3db963a135
panfrost: Emit attribs in panfrost_update_state_3d() on bifrost/midgard
...
The dirty state tracking should allow us to conditionally re-emit the
vertex attribute and attribute buffer arrays if something relevant
changed.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
ac486a0115
panfrost: Kill unused panfrost_batch::polygon_list field
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
8ed471a339
panfrost: Flag the right shader when updating images
...
Fixes: fab1fabb4f ("panfrost: Dirty track fragment images")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
1d4fa05b78
pan/decode: Fix the pan_unpack() call for JUMP instruction unpacking
...
We are unpacking a CALL instead of JUMP instruction. It doesn't
make a difference because the instruction layout is the same,
but let's fix that for the sake of correctness.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
238f9a4498
pan/decode: Make CSF decoding more robust to NULL pointers
...
Some staging registers might be NULL, either because some arguments are
optional, or because the command stream is malformed. In any case, being
robust to such situations it probably a good thing.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
7dd610f908
pan/decode: Print the resource table label
...
Useful to quickly spot which stage of the pipeline is using a resource
table.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
408b3f3ced
pan/genxml: Fix 'Shader Program' descriptor definition on v9 and v10
...
Bit 8 in the descriptor is not encoding the primary/secondary shader
information. It's a per shader-type field.
For fragment shader descriptors, it describes what the coverage bitmask
contains for per-sample execution:
- DX-style: bits for all covered samples are set
- GL-style: only the bit for the sample the shader is executed on is set
For vertex shader, it encodes the warp limit we want to apply to the
shader execution.
Patch the existing code to match the new semantics.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
790d4422b2
pan/bo: Make sure we catch refcnt underflows
...
Recently had to debug an unbalanced ref/unref situation in some
code I added, and having an assert(refcnt > 0) in
panfrost_bo_unreference() would have made this simpler, so let's
add one.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
46d2748a93
panfrost: Fix format_minimum_alignment() for v6-
...
Alignment should be power of two, so I suspect we meant 64 not 63.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Boris Brezillon
6e166af59e
pan/genxml: Fix "{Last,First} Heap Chunk" field position
...
Those two fields were swapped.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26221 >
2023-11-17 09:29:10 +00:00
Samuel Pitoiset
c5e6edcddf
radv: check earlier if a graphics pipeline can force VRS per vertex
...
When a graphics pipeline already enables VRS, forcing VRS isn't
possible, check this earlier.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26248 >
2023-11-17 08:39:48 +00:00
Samuel Pitoiset
61c3796a95
radv: remove redundant check when forcing VRS rates
...
If force_vrs_per_vertex is TRUE, the primitive shading rate varying is
always written.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26248 >
2023-11-17 08:39:48 +00:00
Samuel Pitoiset
d679d12359
aco: remove useless nir_intrinsic_load_force_vrs_rates_amd
...
It's lowered earlier.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26248 >
2023-11-17 08:39:48 +00:00
Samuel Pitoiset
d01b7b0fd4
zink/ci: add a manual job on radv-navi31
...
The run is sequential for now because otherwise a lot of AMDGPU errors
are reported.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25459 >
2023-11-17 08:14:59 +00:00
Eric Engestrom
a5e20a5c31
ci_run_n_monitor: require user to add an explicit .* at the end if jobs like *-full are wanted
...
Most of the time, these jobs are not wanted, so let's make this a full
match instead of prefix match so that users only get what they ask for.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26066 >
2023-11-17 08:12:31 +00:00
Eric Engestrom
ce7cda417f
intel/dev: use libdrm.h wrapper to support builds without libdrm
...
Fixes part of: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10159
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26236 >
2023-11-17 07:38:33 +00:00
Lionel Landwerlin
4eb4197d27
intel/nir/rt: fix reportIntersection() hitT handling
...
We're currently updating the hitT value in the traversal result with
the hitT value from reportIntersection(), but this is not correct.
First the hitT value of reportIntersection() should update the
gl_RayTmaxEXT value (maps to brw_nir_rt_mem_ray_defs::t_far).
Second the hitT determined by traversal should only be updated if the
reportIntersection() hitT value has updated the gl_RayTmaxEXT and that
the new gl_RayTmaxEXT is smaller than the determined hitT value from
traversal.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Fixes: 303378e1dd ("intel/rt: Add lowering for combined intersection/any-hit shaders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25146 >
2023-11-17 07:06:30 +00:00
Lionel Landwerlin
6dbb5f1e07
intel/fs: rerun divergence analysis prior to convert_from_ssa
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9964
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26235 >
2023-11-17 06:40:49 +00:00
Faith Ekstrand
cd543c94fd
nvk: Advertise VK_KHR_synchronization2
...
We've already got everything, we just need to turn it on.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9657
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26245 >
2023-11-17 05:32:55 +00:00
Faith Ekstrand
7f6d3b82c8
nvk: Implement bufferDeviceAddressCaptureReplay
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10158
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26242 >
2023-11-17 03:07:02 +00:00
Faith Ekstrand
b4cfac64c8
nvk: Add a separate VMA heap for BDA capture/replay
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26242 >
2023-11-17 03:07:02 +00:00
Faith Ekstrand
78eee47471
nvk: Handle VMA allocation failure
...
The chances of these happening is slim to none right now but, the moment
we throw VK_KHR_buffer_device_address into the mix, failure becomes much
more of a real possibility.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26242 >
2023-11-17 03:07:02 +00:00
Faith Ekstrand
0052f1a6fe
nvk: Rework error handling in nouveau_ws_bo_new() and from_dma_buf()
...
Add static _locked versions of both functions which can do the usual
goto cascade for error handling and wrap them in exported functions
which take a lock, call _locked, drop the lock, and return.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26242 >
2023-11-17 03:07:02 +00:00
Faith Ekstrand
ce1cccea98
nvk: Drop nouveau_ws_bo_new_tiled()
...
It's no longer used.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26242 >
2023-11-17 03:07:02 +00:00
Hyunjun Ko
fbc9811241
vulkan/video: fix a typo
...
Fixes: d46162981a ("vulkan/video: add h264 headers encode")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26139 >
2023-11-17 00:45:55 +00:00
Faith Ekstrand
7e00380445
nvk: Implement VK_KHR_pipeline_executable_properties
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9621
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26241 >
2023-11-17 00:12:36 +00:00
Faith Ekstrand
3b3b157961
nvk: Don't set pipeline->base.type manually
...
It's already set by nvk_pipeline_zalloc().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26241 >
2023-11-17 00:12:36 +00:00
Faith Ekstrand
faadac57d5
nak: Support dumping shader assembly as part of compile
...
This dumps it to a string that gets attached to the nak_shader_bin.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26241 >
2023-11-17 00:12:36 +00:00
Mary Guillemard
ae17145882
nak: Rewrite nir_intrinsic_load_sample_pos and implement nir_intrinsic_load_barycentric_at_sample
...
nir_intrinsic_load_sample_pos was causing failures on barycentric CTS tests.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26239 >
2023-11-16 22:12:29 +00:00
Mary Guillemard
8d8d93fab9
nak: Pass offset to load_frag_w
...
This fix IPA.OFFSET getting an undef for the offset and restore previous
behavior.
Fixes: 618bdb8571 ("nak: Rework FS input interpolation")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26239 >
2023-11-16 22:12:29 +00:00
Faith Ekstrand
1f582bad0a
nak: Stop passing undefs to ipa_nv
...
The undefs get ignored so they technically don't hurt anything. This
mostly just lets them CSE better
Fixes: 618bdb8571 ("nak: Rework FS input interpolation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26239 >
2023-11-16 22:12:29 +00:00
Eric Engestrom
5499e857a3
intel/ci: fix gl/vk dependencies in hsw jobs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26237 >
2023-11-16 21:01:50 +00:00
Erik Faye-Lund
a08d33abff
docs: apply permanent redirect
...
The HTTP URL now redirects to the HTTPS URL, so let's update our link.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26222 >
2023-11-16 20:30:08 +00:00
José Roberto de Souza
014e51251e
intel: Sync xe_drm.h
...
Sync xe_drm.h with commit 6253cfa4c324 ("drm/xe/pmu: Drop interrupt pmu event").
No changes in code need, it is just removing uAPIs that are not used
by any UMD but it still breaks the uAPIs as uAPI numbers changed.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26151 >
2023-11-16 19:54:44 +00:00
Tatsuyuki Ishi
e1cf75b411
zink: Remove now unused dead_framebuffers.
...
These were deleted in fe8212791f ("zink: delete all non-imageless
framebuffer code").
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26168 >
2023-11-16 17:40:14 +00:00
José Expósito
2a71f06f29
zink: allow software rendering only if selected
...
In environments where 3D acceleration is not available, like in a VM,
the behavior before commit 8cd44b8843 ("egl: add automatic zink
fallback loading between hw and sw drivers") was to fallback to swrast.
This was the output of `eglinfo` in that situation:
$ eglinfo
[...]
Wayland platform:
EGL driver name: swrast
OpenGL core profile renderer: llvmpipe (LLVM 17.0.4, 256 bits)
However, after commit 8cd44b8843 ("egl: add automatic zink fallback
loading between hw and sw drivers") Zink support is tested before
falling back to swrast.
Since the system doesn't support 3D acceleration, Zink + software
rendering is used instead of swrast causing issues like the ones
described in #10146 .
In this case, `eglinfo` prints:
$ eglinfo
[...]
Wayland platform:
EGL driver name: zink
OpenGL core profile renderer: zink Vulkan 1.3(llvmpipe (LLVM 17.0.4,
256 bits) (MESA_LLVMPIPE))
This patch ensures that Zink + software rendering is used only when the
user opts-in by setting `LIBGL_ALWAYS_SOFTWARE` or `D3D_ALWAYS_SOFTWARE`
and swrast is used otherwise.
After the patch, the output of `eglinfo` is identical to the one before
the regression:
$ eglinfo
[...]
Wayland platform:
EGL driver name: swrast
OpenGL core profile renderer: llvmpipe (LLVM 17.0.4, 256 bits)
Resolves: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10146
Fixes: 8cd44b8843 ("egl: add automatic zink fallback loading between
hw and sw drivers")
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Signed-off-by: José Expósito <jexposit@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26220 >
2023-11-16 17:18:34 +00:00
Eric Engestrom
99fed1f9b3
lima: drop unused lima_get_absolute_timeout()
...
If someone wants that functionality in the future, use
`os_time_get_absolute_timeout()` instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26229 >
2023-11-16 16:52:10 +00:00
Eric Engestrom
9c62aee027
util/xmlconfig: drop default SYSCONFDIR & DATADIR values
...
The only build system left is meson, which always defines these.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26228 >
2023-11-16 15:55:02 +00:00
Robert Mader
5f4253e096
panfrost: Support parameter queries for main planes
...
In order to return correct offsets, strides and possibly other
parameters. This is relevant for formats like NV12 and P010 where
the second plane, when produced by the V4L2 decoder, uses the
same FD like the first one, but with an offset.
Analogous to 7a7e577d .
Also use the new helper to get the number of planes.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10094
Cc: mesa-stable
Reviewed-by: Italo Nicola <italonicola@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26109 >
2023-11-16 14:28:45 +00:00
Robert Mader
d679154dc0
util: Add new helpers for pipe resources
...
They will be handy for drivers supporting multi-planar formats.
Cc: mesa-stable
Reviewed-by: Italo Nicola <italonicola@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26109 >
2023-11-16 14:28:45 +00:00
Tatsuyuki Ishi
94e867e4a6
zink: Fix waiting for texture commit semaphores.
...
The commit was always being treated as failed...
Fixes: d1456a6b0a ("zink: add semaphore handling for sparse binds")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26171 >
2023-11-16 13:38:07 +00:00
Tatsuyuki Ishi
729ce08815
zink: Defer freeing sparse backing buffers.
...
Sparse backing buffers were destroyed immediately after issuing the
unbind call, which was against the Vulkan spec which requires the
destroy call to not happen before the unbind semaphore was signaled.
To tackle this, keep a reference against buffers we are unbinding within
the batch. This will keep the backing buffer long enough to not cause
use-after-free. As described in comments, we don't need to reference
every backing page used in the batch, as the resource usually keeps
references to them until they are unbound, which is now correctly
handled.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26171 >
2023-11-16 13:38:06 +00:00
Tatsuyuki Ishi
3ee283e455
zink: Fix missing sparse buffer bind synchronization.
...
goto oopsies.
Fixes: d1456a6b0a ("zink: add semaphore handling for sparse binds")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26171 >
2023-11-16 13:38:06 +00:00
Lionel Landwerlin
8b36d230bb
anv: workaround XeSS for Satisfactory
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10152
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26217 >
2023-11-16 13:08:01 +00:00
José Expósito
83ed419cd0
zink: fix dereference before NULL check
...
The `sv->image_view` pointer is dereference before checking whether it's
NULL or not.
Check for NULL before dereferencing it to avoid a possible crash.
Fixes: 9de455bc43 ("zink: check for sampler view existence during
zink_rebind_all_images()")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Signed-off-by: José Expósito <jexposit@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26140 >
2023-11-16 12:22:14 +00:00
Samuel Pitoiset
ec82b42944
radv: add a missing async compute workaround for Tonga/Iceland
...
After digging into PAL code again, I figured that Tonga/Iceland are
both affected by a hw bug related to async compute dispatches.
The solution is to change the "threadgroup" dimension mode to the
"thread" dimension mode unconditionally.
This should fix a bunch of issues related to RADV_DEBUG=nocompute on
these GPUs.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7551
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6334
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4679
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26207 >
2023-11-16 11:37:43 +00:00
Rhys Perry
f695a9fed2
intel/compiler: use nir_lower_fp16_casts
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:31 +00:00
Rhys Perry
ae30edd2a7
aco: remove f16<->f64 conversions
...
radeonsi and RADV now use nir_lower_fp16_casts.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:31 +00:00
Rhys Perry
a31c928c4f
radv: use nir_lower_fp16_casts
...
This correctly implements RTNE f64->f16.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:30 +00:00
Rhys Perry
0e1e6c244b
radeonsi: use nir_lower_fp16_casts
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:30 +00:00
Rhys Perry
288e9db053
nir/lower_fp16_casts: add option to split fp64 casts
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:30 +00:00
Rhys Perry
fce434818a
nir/lower_fp16_casts: correctly round RTNE f64->f16 casts
...
Based on brw_nir_lower_conversions.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25566 >
2023-11-16 11:02:30 +00:00
Samuel Pitoiset
4239e13ff6
radv: fix a descriptor leak with debug names and host base descriptor set
...
vk_object_base_finish() needs to be called on the descriptor set in
order to free the debug names.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10098
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26088 >
2023-11-16 09:11:06 +00:00
Vinson Lee
904015ae85
ac/surface/tests: Remove duplicate variable block_size_bits
...
Fix defect reported by Coverity Scan.
Evaluation order violation (EVALUATION_ORDER)
write_write_typo: In block_size_bits = block_size_bits = ((surf.u.gfx9.swizzle_mode >= ADDR_SW_256KB_Z_X) ? 18 : 16),
block_size_bits is written twice with the same value.
Fixes: 44eaf50a34 ("ac/surface/tests: cosmetic changes")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26160 >
2023-11-15 19:22:06 -08:00
Juston Li
49e5b58315
venus: enable VK_EXT_extended_dynamic_state3
...
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25921 >
2023-11-15 23:30:14 +00:00
Juston Li
417437c715
venus: pipeline fixes for VK_EXT_extended_dynamic_state3
...
- pMultisampleState->pSampleMask should be ignored when
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT is used.
- pRasterizationState can be null now
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25921 >
2023-11-15 23:30:14 +00:00
Juston Li
e3de4a9852
venus: sync protocol for VK_EXT_extended_dynamic_state3
...
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25921 >
2023-11-15 23:30:14 +00:00
Eric Engestrom
d5efa3f204
docs: update calendar for 23.3.0-rc{2,3,4} and add another release candidate
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26215 >
2023-11-15 21:40:21 +00:00
Chia-I Wu
c905aeb4e4
ac: be careful with stencil_offset override
...
Check surf->has_stencil first to avoid trashing surf->u.gfx9.color.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26106 >
2023-11-15 20:29:03 +00:00
Chia-I Wu
7718bad474
radv: minor clean up to image view extent override
...
Use the correct image plane consistently. Compressed formats are
single-planar unless emulated. This makes no difference in either case
but makes the code more concise.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26106 >
2023-11-15 20:29:03 +00:00
Chia-I Wu
2533d0a0e2
radv: fix image view extent override for astc
...
When doing ASTC decoding, the image has format VK_FORMAT_ASTC_*, the
internal plane 1 has format VK_FORMAT_R8G8B8A8_UNORM, and the view has
format VK_FORMAT_R8G8B8A8_UINT. It does not need the override for
compressed formats.
Fixes: f97b449e9e ("radv: integrate meta astc compute decoder to radv")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26106 >
2023-11-15 20:29:03 +00:00
Lionel Landwerlin
295734bf88
intel/fs: fix residency handling on Xe2
...
We're missing a few reg_unit() scaling when dealing with residency data.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26208 >
2023-11-15 20:06:12 +00:00
Faith Ekstrand
0bd23d6263
nak: Enable SM70 for Volta
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26212 >
2023-11-15 13:38:04 -06:00
Tapani Pälli
01046cd6ad
anv/drirc: add option to disable FCV optimization
...
There are rendering issues with FCV on DG2 and Unreal engine 5.1,
patch adds option to disable fcv in drirc.
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26169 >
2023-11-15 18:16:56 +00:00
M Henning
aedf9113c4
nak: Set "evict first" from ACCESS_NON_TEMPORAL
...
This matches the way ptxas sets this hint.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26201 >
2023-11-15 17:48:29 +00:00
M Henning
adc3fd4c99
nak: Add encodings for cache eviction priorities
...
We were previously setting "evict first" everywhere, which could
possibly be a perf issue on machines that are also running shaders
compiled with codegen, which sets "evict normal" on everything.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26201 >
2023-11-15 17:48:29 +00:00
David Rosca
df9a95a813
gallium/auxiliary/vl: NIR compute shaders
...
Remove drawn area check and instead adjust grid layout so that this check
is not needed.
Change crop_x/crop_y from int to float to avoid converting it in shaders,
also all shaders now supports cropping.
Acked-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25562 >
2023-11-15 16:06:38 +00:00
David Rosca
848811f98a
gallium/auxiliary: NIR blit_compute_shader
...
Acked-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25562 >
2023-11-15 16:06:37 +00:00
Friedrich Vock
03a7cb2618
ac/gpu_info: Manually compute L3 size for Navi33
...
The firmware reports no MALL cache being present, which is wrong. We
later depend on correct L3 cache size values for choosing the attribute
ring size, so fall back to manually computing the size.
Fixes: 355242f055 ("ac/gpu_info: adjust attribute ring size for gfx11")
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26147 >
2023-11-15 14:09:50 +00:00
Konstantin Seurer
90f8cf0f36
radv/sqtt: Handle monolithic RT pipelines
...
This marks them as Unified in the RGP UI and shows the compute shader
view.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26158 >
2023-11-15 13:46:50 +00:00
Konstantin Seurer
b6e09dd521
radv/sqtt: Fix tracing acceleration structure commands
...
ApiRayTracingSeparateCompiled can only used by trace commands.
Fixes: bfb55d0 ("ac/sqtt,radv/sqtt: Add and use marker for separate RT compilation")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26158 >
2023-11-15 13:46:50 +00:00
Mark Collins
fa0476fa6e
meson: Update lua wrap to 5.4.6-4
...
This version of the lua wrap fixes installation of the library which
was previously causing liblua SOs to be missing when Mesa was installed
using `meson install`.
Signed-off-by: Mark Collins <pixelyion@protonmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26185 >
2023-11-15 13:29:20 +00:00
David Heidelberg
1eff68dd2a
ci/traces: drop the freedoom-phase2-gl-high.trace
...
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/8080#note_2154467
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8080
Cc: mesa-stable
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26199 >
2023-11-15 12:56:01 +00:00
Georg Lehmann
b12d7f10d4
aco: validate ALU operands and defs
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
91539713bb
aco: add src/def count and size for all ALU opcodes
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
d9c3ba3b90
aco: use correct operand size for int tg4 wa
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
1d167d187e
aco/gfx10+: don't use v_cmpx with VCC def
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
509ce19643
aco: add missing scc def for SALU quad broadcast
...
Cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
18f6c2328f
aco: use lm for carry out in vsub32
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
9acd9c0100
aco/tests: use correct operand size for some 64bit ops
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
6a136b4e05
aco/tests: add some missing scc defs
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
2f4e53b22a
aco: fix detecting sgprs read by SMEM hazard
...
s_waitcnt_lgkmcnt is SOPK, not SOPP and there are other SOPK instructions
that don't mitigate the hazard.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Georg Lehmann
e49c413a86
aco: use null operand for SOPK s_waitcnt
...
Both null def and op result in the same correct encoding, but these
instructions optionally read a sgpr, so it makes more sense to use an operand.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26163 >
2023-11-15 12:35:32 +00:00
Job Noorman
bcf0425f7f
ir3: correctly set bit size for 64b constant @load_ubo
...
When lowering @load_constant to @load_ubo, the bit size is currently
hard-coded to 32. This causes validation errors when lowering a constant
with a 64b bit size.
This patch fixes this by setting the @load_ubo bit size correctly for
64b constants. This 64b load is later lowered to a 32b load by
ir3_nir_lower_64b_intrinsics.
Fixes Piglit test:
- spec@arb_gpu_shader_fp64@execution@fs-indirect-temp-double-src
This patch has no impact on shader-db.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26191 >
2023-11-15 11:58:22 +00:00
Samuel Pitoiset
bb92c34c28
radv: set radv_zero_vram=true for Unreal Engine 4/5
...
Unreal Engine seems to rely on uninitialized memory and
RADV_DEBUG=zerovram fixes a bunch of issues.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9025
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9380
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9026
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26188 >
2023-11-15 11:24:31 +00:00
Samuel Pitoiset
627d593443
radv: fix registering queues for RGP with compute only
...
This crashes if the graphics queue isn't created.
Fixes: 930e77e903 ("radv/sqtt: add support for queue info")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10136
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26183 >
2023-11-15 10:41:50 +00:00
Matt Turner
b66b299eda
r600: Add missing dep on git_sha1.h
...
Bug: https://bugs.gentoo.org/917116
Fixes: 3ab51c7ebd ("r600: Add callbacks for get_driver_uuid and get_device_uuid")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26195 >
2023-11-15 10:17:05 +00:00
Karol Herbst
3916ee05b0
rusticl/api: workaround DPCPP fetching clSetProgramSpecializationConstant
...
Nobody has to advertize it as an extension, but here we are.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25701 >
2023-11-15 08:34:57 +00:00
Karol Herbst
924c8e7bcd
vtn: add hack for system values placed in CrossWorkgroup memory
...
Upstream bug: https://github.com/intel/llvm/issues/6703
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25701 >
2023-11-15 08:34:57 +00:00
Karol Herbst
41f814df6f
nir: allow vec derefs on system values
...
There is no real reason to prevent this as far as I know. And some of the
SPIR-V generated by DPCPP is running into this.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25701 >
2023-11-15 08:34:57 +00:00
Faith Ekstrand
23e1f3c373
nvk: Use nak_shader_info natively
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:13 +00:00
Faith Ekstrand
c074ea6215
nak: Handle the num_gpr offsetting inside nak
...
This makes the thing in the nak_shader_info exactly the thing that gets
plugged into the hardware. Makes the driver a bit simpler.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:13 +00:00
Faith Ekstrand
d8551cd328
nak: Add a writes_layer bit to nak_shader_info::vtg
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
a232050204
nak: Move clip, cull, and XFB into a nak_shader_info.vtg
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
440adf7970
nak: Properly prefix nak_xfb_info
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
4e6e814f5e
nak: Rename TLS to SLM
...
Shader Local Memory is what NVIDIA calls it in the shader header docs as
well as the command stream headers. Better to be consistent even if it
gets my Intel brain confused. (Intel uses SLM for shared memory.)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
a946071546
nvk: Use nak_fs_key instead of rolling our own
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
0f086401e3
nvk: Move even more lowering into nvk_codegen.c
...
At this point, we're fully trusting NAK to do its own lowering and we
only lower stuff in nvk_shader.c if it's relevant for Vulkan. This also
assumes that NAK is already doing the right thing everywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
67bb8e8165
nvk: Move the guts of nvk_compile_nir() to nvk_codegen.c
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
0405f494e8
nvk: Move the optimization loop to the nvk_codegen.c
...
We also call it from nak_preprocess_nir and lower var copies there. NAK
should already be doing this for us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
7f8fbacb8a
nvk: Move a bunch of codegen-specific lowering to helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
c3a44f6264
nvk: Add a codegen helper for nir_shader_compiler_options
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
845e7d2911
nvk: Only lower outputs to temporaries
...
Also, move it up to right after we parse the SPIR-V and remove some now
unnecessary clean-up passes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
26bb5f4972
nak/nir: Lower indirect FS inputs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
e507d70333
nvk: Handle load_first_vertex in nvk_nir_lower_descriptors()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
Faith Ekstrand
82061b1b9d
nvk: Only advertise VK_KHR_shader_terminate_invocation if using NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26197 >
2023-11-15 02:24:12 +00:00
David Rosca
fcfa68a632
Revert "frontends/va: Alloc interlaced surface for interlaced pics"
...
This reverts commit 578e10e157 .
The only reason for reallocating surfaces as interlaced (on drivers
that supports both progressive and interlaced) was deinterlacing
with postproc filter, but that now also supports interleaved surfaces.
With this change interlaced surfaces are no longer used on radeonsi.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26174 >
2023-11-15 01:44:29 +00:00
David Rosca
eafeff6302
gallium/auxiliary/vl: Support interleaved input in deinterlace filter
...
This adds support for deinterlacing interleaved surfaces (both fields
interleaved together instead of as separate layers).
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26174 >
2023-11-15 01:44:29 +00:00
David Rosca
35b0ccd855
gallium/auxiliary/vl: Scale dst_rect x0/y0 when rendering chroma plane
...
This fixes incorrect chroma plane position when x0/y0 is not zero.
Fixes: 001358a97c ("vl/compositor: add a new function for YUV deint")
Acked-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26123 >
2023-11-15 01:12:01 +00:00
David Rosca
e9091b1f5c
gallium/auxiliary: Fix coordinates clamp in util_compute_blit
...
Fixes: 7c8e1596d6 ("gallium/auxiliary: Fix util_compute_blit half texel offset with scaling")
Acked-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26123 >
2023-11-15 01:12:01 +00:00
David Rosca
ef0546152f
gallium/auxiliary/vl: Fix coordinates clamp in compute shaders
...
Fixes: a6a43963ed ("gallium/auxiliary/vl: Clamp coordinates in compute shaders")
Acked-by: Thong Thai <thong.thai@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26123 >
2023-11-15 01:12:01 +00:00
Jesse Natalie
cd0cff951a
nir_lower_mem_access_bit_sizes: Fix write-mask-constrained 3-byte stores as atomics
...
The code here handled stores of actual 3-byte values (8-bit, 3-component), but didn't
correctly handle stores of larger 8-bit vectors that were constrained by write mask to
just 3 bytes. In that case, the pad-to-vec4 step was unnecessary and problematic.
Seen in CL CTS test_basic vector_swizzle test group for char3 with CLOn12.
Fixes: c70d94a8 ("nir_lower_mem_access_bit_sizes: Support unaligned stores via a pair of atomics")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26034 >
2023-11-14 21:10:30 +00:00
Helen Koike
bff7e4b69d
ci/zink: add spec@ext_timer_query@time-elapsed to flakes
...
Add the following flake to zink-anv-tgl-flakes.txt
spec@ext_timer_query@time-elapsed
See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25861#note_2140498
Signed-off-by: Helen Koike <helen.koike@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25885 >
2023-11-14 17:29:30 +00:00
Faith Ekstrand
618bdb8571
nak: Rework FS input interpolation
...
This gives FS I/O the same treatment as we did for vertex attributes in
that we now have a NIR intrinsic which pretty closely matches the
hardware and we lower to that before going into NAK. This gives us a
bit more control in the NIR.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:03 +00:00
Faith Ekstrand
d3c5688cf5
nak: Plumb the nak_compiler through to lower_fs_input_intrin
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Faith Ekstrand
f5ba0751e2
nak: Make encode_sm75 a method of Shader
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Faith Ekstrand
a6376705e4
nak: Make ALD/AST.PHYS a boolean
...
The generic flags field was originally copied from codegen but a boolean
makes way more sense.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Faith Ekstrand
8e00ee6fe8
nak: Drop OpAtomCas in favor of OpAtom with atom_op == CmpExch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Faith Ekstrand
ea453b373d
nak: Fix copy-prop for OpPLop3 sources
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Faith Ekstrand
a65518b625
nvk: Free NAK shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181 >
2023-11-14 16:38:02 +00:00
Rhys Perry
c4ee639ca0
docs: fix RADV_THREAD_TRACE_CACHE_COUNTERS default
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: dbab98d9d6 ("radv: enable RADV_THREAD_TRACE_CACHE_COUNTERS by default")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26193 >
2023-11-14 16:24:11 +00:00
Jesse Natalie
2f1cb79968
d3d12: GL4.5
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26180 >
2023-11-14 16:04:58 +00:00
Jesse Natalie
5a5178d5a4
d3d12: Fix MSAA-disabling pass; sample mask should be 0 for helper lanes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26180 >
2023-11-14 16:04:58 +00:00
Jesse Natalie
ba06542c7b
d3d12: Handle cull distance as an XFB target
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26180 >
2023-11-14 16:04:58 +00:00
Jesse Natalie
263b56051d
d3d12: PRIMITIVES_GENERATED for stream > 0 should only be an SO query
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26180 >
2023-11-14 16:04:58 +00:00
Tatsuyuki Ishi
538ca7801a
radv: Use shader part caching helpers for VS prolog and PS/TCS epilog.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26028 >
2023-11-14 13:45:22 +00:00
Tatsuyuki Ishi
611545fbfe
radv: Implement helpers for shader part caching.
...
Currently, shader part caching logic is duplicated between VS prolog and
PS/TCS epilogs. This commit introduces a common abstraction to
deduplicate the code.
Additionally, there are a few design decisions that diverts from the
current implementation:
1. A simple mutex is used instead of reader-writer lock. Prolog/epilog
constructions are serialized, removing the need to free duplicate
objects in case of a race.
2. A CS-local cache is used to quickly lookup an entry without holding a
lock. This eliminates locking in over 99% of cases.
3. A set is used to reduce number of allocations.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26028 >
2023-11-14 13:45:22 +00:00
Danylo Piliaiev
3cd6bb3e5d
tu: Add a725 workaround dispatch at the start of each cmdbuf
...
Blob executes a special compute dispatch at the start of each
command buffers. We copy this dispatch as is. At this point
we don't know what this workaround is for.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25888 >
2023-11-14 13:14:11 +00:00
Danylo Piliaiev
37f11ff1d4
freedreno/devices: Support Adreno 725
...
For 0x07030002 chip id different names are returned on different
phones: Adreno730v3 or Adreno725v1. Settle on 725 to disambiguate
them.
The only difference from base 730 is that it has conditional
execution of compute shader at the start of every command buffer.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25888 >
2023-11-14 13:14:11 +00:00
Danylo Piliaiev
28f187b9a7
tu: Return error when GPU is unsupported
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25888 >
2023-11-14 13:14:11 +00:00
Danylo Piliaiev
a669147689
tu: Always print startup failure messages
...
If we encounter an error during the startup we always want to have
it in the logs to quickly diagnose an issue from user attached logs.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25888 >
2023-11-14 13:14:11 +00:00
LingMan
76996e2a94
rusticl: Use the from_raw_parts wrappers
...
Deduplicates some safety checks and ensures we didn't forget one.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26157 >
2023-11-14 12:31:31 +00:00
LingMan
471d89c4fd
rusticl/api: Add checking wrappers around slice::from_raw_parts{_mut}
...
They check for null, alignment, excessive size, and address space wrapping. If any of the checks
fails, `Err(CL_INVALID_VALUE)` is returned.
The caller still has to uphold the other requirements of the `from_raw_parts` fns.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26157 >
2023-11-14 12:31:31 +00:00
LingMan
572a96aa59
rusticl: Turn pointers in enqueue_svm_memcpy_impl into slices
...
Allows the closure to implement `Send` and `Sync`, which we want for `EventSig`.
Includes detailed documentation on the casts and unsafe operations.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26157 >
2023-11-14 12:31:31 +00:00
LingMan
7dd5a22735
rusticl: Turn pointers in enqueue_svm_mem_fill_impl into proper Rust types
...
Raw pointers have bad ergonomics and by using them we opt out of a lot of Rust safety guarantees.
The closure we create modifies the memory behind `svm_ptr`. Make that clear to the compiler by
representing it as slice. `pattern` could also be represented by a slice but then we'd create
overly generic code not exploiting the guarantees given to us be the OpenCL spec.
Namely that there's only a few possible sizes - all of them a power of two - and that `svm_ptr` is
aligned to that size.
Thus, represent `pattern` as one struct per possible size and have the compiler generate optimized
code paths for filling the buffer with each of them. There's one unsafe operation less and the
remaining ones as well as the casts have been documented in detail.
Based on that additional checks of the provided `size` have been added. While it's unlikely that
any application will ever run into them, the old pointer arithmetic already silently relied on
these properties.
Furthermore, since raw pointers are neither `Send` or `Sync` but the Rust types we now use are the
closure can now implement `Send` and `Sync`. That's one step toward marking `EventSig` `Send`.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26157 >
2023-11-14 12:31:31 +00:00
Eric Engestrom
fdbb5d5898
ci/valve-infra: ensure the correct farm picks up the job
...
Until now, any farm that has a DUT that matches could have picked up the
job.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25821 >
2023-11-14 10:25:24 +00:00
Pierre-Eric Pelloux-Prayer
898ccf7711
radeonsi/ci: update failures
...
Remove GTF-GL46.gtf21.GLCoverage.CoverageGL21 from failing tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25956 >
2023-11-14 09:28:00 +00:00
Pierre-Eric Pelloux-Prayer
64352ae8e4
mesa: restore call to _mesa_set_varying_vp_inputs from set_vertex_processing_mode
...
Otherwise ctx->VertexProgram._VaryingInputs might not be up to date.
We can't do this in update_program because this breaks vbo_save_playback_vertex_list_gallium:
const GLbitfield enabled = node->enabled_attribs[mode];
_mesa_set_varying_vp_inputs(ctx, enabled); <-- update _VaryingInputs
if (ctx->NewState)
_mesa_update_state(ctx); <-- calls update_program, reverting the
change made above
Fixes: c97961a855 ("mesa: fix 38% decrease in display list performance of Viewperf2020/NX8_StudioAA")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9441
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25956 >
2023-11-14 09:28:00 +00:00
Samuel Pitoiset
dfc125d423
radv: fix VRS subpass attachment when HTILE can't be enabled on GFX10.3
...
On GFX10.3, VRS rates need to be copied to the HTILE buffer but in some
situations, like for mips, it's not always possible to enable HTILE.
In this case, we can fallback to our internal HTILE buffer and tweak
the depth/stencil registers to use this HTILE buffer.
This fixes a bunch of VRS crashes on GFX10.3.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26025 >
2023-11-14 09:02:46 +00:00
Sagar Ghuge
648c0c159d
anv: Flush data cache while clearing depth using HIZ_CCS_WT
...
Patch fxes ESO shadow pass ground corruption on Arc A750. In the colour
pass where the rendering corruption first appears, the depth resource
was used as a "PS - Texture". Immediately afterwards there's a Barrier
where it goes from
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL =>
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
immediately following that there's a Clear from vkCmdBeginRendering
which appears to be a HiZ clear. Things work when using AUX_USAGE_HIZ
but AUX_USAGE_HIZ_CCS_WT (XXX: and AUX_USAGE_HIZ_CCS?) doesn't work.
current thinking is this is related to 14015264727 where we had to add
HDC and DC flushes to CCS and MCS fast clears. Maybe HiZ clears with
CCS also have similar problems? The docs don't appear to indicate that
but the docs were also wrong for color clears until recently...
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9277
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9444
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22717 >
2023-11-14 08:30:59 +00:00
Tapani Pälli
e4db19afa7
iris: add data cache flush for pre hiz op
...
This fixes various failing Piglit tests on DG2.
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22717 >
2023-11-14 08:30:59 +00:00
Maíra Canal
4d95b4861e
v3dv: implement VK_EXT_multi_draw
...
Implement the Vulkan extension VK_EXT_multi_draw. It was tested with
deqp-vk -n dEQP-VK.draw.*multi_draw*.
Signed-off-by: Maíra Canal <mcanal@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26138 >
2023-11-14 06:20:21 +00:00
Lionel Landwerlin
794b0496e9
anv: enable protected memory
...
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Lionel Landwerlin
fd40134487
anv: allow protected GEM context creation
...
v2: Update new anv_gem_create_context_engines()
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Lionel Landwerlin
be201008ca
anv: Emit protection + session ID on protected command buffers
...
v2: Add the missing PIPE_CONTROL enable/disable bits
v3: Use new I915_PROTECTED_CONTENT_DEFAULT_SESSION
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Lionel Landwerlin
be327b1452
anv: allow creation of protected queues
...
v2: Add helper for getting queue properties
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Lionel Landwerlin
5f2c77a10a
anv: handle protected memory allocation
...
v2: Add assert on VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT in vkMapMemory
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Lionel Landwerlin
5ef8587b1e
intel: fix PXP status check
...
Current check doesn't work on older kernels.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8064 >
2023-11-14 05:55:54 +00:00
Faith Ekstrand
ade73d2e7f
nvk: Stop asserting 11-bit storage image handles
...
Now that NAK is the default for Turing+, we can just chalk any storage
image descriptor handle overruns up to codegen bugs. We could plumb
shader stages all the way through to here and only assert when codegen
is in use but that's a lot of work just for an assert.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
92cb4cc7f6
nvk: Default to NAK on Turing+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
M Henning
f2495f47a7
nvk: Use load_global_constant for ubo loads
...
and support load_global_constant in nak
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
M Henning
1d7e051a7f
nak: Add MemOrder::Constant
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
M Henning
2a02a0d0b3
nak: Bind nir_intrinsic_access
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
M Henning
dfb6260483
nak: Specify MemScope on MemOrder::Strong
...
The scope isn't relevant on MemOrder::Weak. In fact, ptxas refuses
any input that specifies a scope on weak loads. So, don't make those
combinations representable in our IR.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
94ea8a5883
ci: Update the python env for ci_run_n_monitor.py
...
Without this, it blows up on Fedora 39 because of changes introduced by
Python 3.12 which break a a couple of our dependencies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
6b8cdf84f0
ci: Add syn to --force-fallback-for
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
07e860d3a2
ci: Bump container images for NAK dependencies
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
f54b1f1e77
meson: Set build.rust_std
...
This is needed because meson currently makes rust_std part of the build
environment and therefore per-arch. This is a bit nonsense but it's not
too hard to work around.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
e43e8f3f78
nak: Require meson 1.3.0 and clean up a couple bits
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
7feba721c5
nak: Rely on Rust 1.73 for next_multiple_of() and div_ceil()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
c7c73d6d17
nvk: Enable subgroups features
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
4bd9c99ca0
nak: Document a bit in encode_lds()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
0177373e2d
nak: Insert an OpNop after OpBar
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
e111bfdb5c
nak: Emit MemBar before Bar
...
This is what NVIDIA does. I'm not sure why this order but it seems
necessary to pass some of the 1.1 memory model tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
bc58620e1e
nak: Use the simplified BAR.SYNC encoding
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
4f2f9c6ab3
nak: Use strong ordering for Image load/store
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
ec2c866a77
nak: Emit CCtl in barriers with acq/rel semantics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
8781acba18
nak: Allow 1-component image load/store
...
We get these when we get an atomic image load/store
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
ee11b473b5
nak: Implement read_invocation and shuffle_*
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
edf015eb7f
nak: Fix the encoding of OpShfl
...
We weren't handling Zero. Also, we need to mask immediates or else the
encoder blows up. The hardware automatically masks them when they come
in as sources but when we get immediates, they're not guaranteed to fit
in the bitfield.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
5dd7a76c8b
nak: Implement vote and ballot
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
3df9065296
nak/nir: Zero-pad subgroup masks
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
37de14e2e2
nak/nir: Allow boolean vote_ieq
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
143d88dcc3
nak: Lower subgroup_id and num_subgroups
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
42a305416a
nak: Use nir_shader_intrinsics_pass for system values
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
ce40d81d46
nak: Call nir_lower_subgroups()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
bf8642e984
nak: Remove unnecessary control barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
3468f70ca1
nak: Use barriers for re-convergence
...
Now that we're getting total re-convergence through barriers, we can
drop our OpWarpSyncs in front of barriers and derivatives
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
22468439ff
nak: Handle control-flow barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
95f368a105
nak: Add OpBreak
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:15 +00:00
Faith Ekstrand
3957124492
nak/nir: Add a pass for adding convergence barriers
...
This should give us maximum re-convergence
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
eb0d9a1b88
nir: Add nvidia barrier intrinsics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
4ec66f3e5c
nak: Don't print a range for one register
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
f29b714ec9
nak: Drop the final calc_max_live() after GPR spilling
...
It's dead code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
ea27d57882
nak: Get rid of warnings in nak_sph.rs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
bf04914315
nak: Get rid of dead code warnings in RegFileSet
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
9166b3354c
nak: Drop some unused helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
d0b724aaac
nak: Add some #[allow(dead_code)]
...
All this is either enums where we want all of them for the sake of
documentation or where I'm pretty sure we want them in the future.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
eb8f907855
nak: Upgrade to more modern meson
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Mary Guillemard
f757508d65
nak: Move nir_lower_int64 after I/O lowering
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Mary Guillemard
09d3871267
nak: Implement VK_KHR_shader_terminate_invocation
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
c32b73fdf2
nak: A quick rustfmt fix
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
2b4621b9d8
nak: Use Src::From<u32> and Src::From<bool>
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
0616003de9
nak: Rename lower_vec_split() to lower_ineg()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
a43e6addca
nak: Fix fneg to do fadd(-0, x)
...
Thanks to floating point sillyness, fadd(0, x) isn't a no-op but
fadd(-0, x) is.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
2c1cc06d03
nak: Support encoding -Zero
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Mary Guillemard
a0b517ba3f
nak: Ensure we allocate one barrier when using BAR.SYNC
...
Fix "Illegal Instruction Parameter" when using barrier() on compute
shaders.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
29804bfd26
nak/nir: Don't lower 1-bit phis
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
8d802553a2
nak: Fix to_cssa()
...
I somehow got the dominance check backwards so it's not actually
inserting parallel copies most of the places it should.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
ed187b6e51
nak: Fix parallel copy handling in spilling
...
Only consider copies with the right file. Otherwise, the spill chooser
will blow up looking for the next use. Also, we were marking
destinations as spilled when I ment to mark them as being in W. This
was a right mess. God thing to_cssa() was also broken so it wasn't
inserting nearly as many parallel copies as it was supposed to. 🙃
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
2ff6a36e2a
nak: Fix repair_ssa() for back-edges
...
In the presence of nested loops, there is no guarantee that we can
handle back-edges in a single pass. Instead, use a bitset as a worlist
and repair until we're out of missing sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
5839be3c4d
nak/sph: Round tls_size up to a multiple of 16
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
009ae6e7f5
nak/bitset: Fix next_set()
...
It was resetting mask to 0 instead of u32::MAX. This is a copy+paste
error from when I copied it from next_unset() and tweaked it to find set
bits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
2cc51639ab
nak/bitset: Add an is_empty() helepr
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
0f6d8640e1
nak/bitset: Improve set_words()
...
Only set the bits requested and don't clobber other bits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
5b355ff25a
nak: Fix opt_out
...
It was converting instructions to/from Op which throws away predicates.
This meant that any instruction immediately after an OUT.EMIT would
loose its predicate (if any). If an OUT.EMIT comes right before a BRA,
this results in the branch always getting taken.
While reworking things, I also totally reformatted the pass to make it
more readable IMO.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Mary Guillemard
950db58132
nak: Add geometry shader support
...
Tested on SM75 and SM86.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
c87693a700
nak: Fix a bunch of warnings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
M Henning
09d78e8572
nak: Memory order/scope encodings for Ampere
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
M Henning
ad0743c948
nak: Remove MemScope::Cluster
...
because
* ptxas refuses inputs with .cluster before sm90
* on sm90 ptxas encodes .cluster as .gpu
* nvdisasm calls this encoding on sm75 .SM
so I don't think we have an actual .cluster on any released gpus
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
M Henning
93f83a948f
nak: Fix a warn(unused_must_use) by calling drop
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Daniel Almeida
590133b28d
nak: add support for atomic cmpxcgh on images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
f85069ed57
nak: Use nak_nir_lower_vtg_io
...
This massively simplifies nak_from_nir.rs because it lets us do all the
annoying NIR fiddling in NIR and not in the back-end.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
7ece220f96
nak/nir: Lower systm values before lowering I/O
...
This way I/O lowering can lower the stuff we generate in
lower_system_values().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
abe9c1fea2
nak: Add NIR lowering for attribute I/O
...
This adds 4 NIR intrinsics for attribute I/O which match the Turing
hardware instructions as well as a lowering pass to lower
load/store[_per_vertex]_input/output to thewe intrinsics. This greatly
simplifies nak_to_nir.rs. Also, this pass is able to handle a bunch of
cases that the current code in nak_from_nir.rs can't:
- Misaligned access (i.e., a vec3 load at 0x0f4)
- Write masks on store[_per_vertex]_output
- Indirect load/store where we need to use AL2P to get physical
addresses, including scalarizing those cases
It also handles the casses where we need to use ISBERD on vertex indices
in the same pass. When we switch to this, we'll rip out the dedicated
per_vertex lowering pass.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
c1ffdb3ee9
nak/nir: Use count_vec4_slots instead of count_attribute_slots
...
This will give us the correct behavior in for doubles when the time
comes. The count_attribute_slots() helper is for GL attributes where a
dvec4 countes as one slot.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
498afcdb88
HACK: Only emit OpBar in compute shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
611fe837bb
nak: Fix lowering for patch_vertices_in
...
We have to grab the 2nd byte of the sysval for some reason.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
efbbc3ed93
nak: Implement load_tess_coord
...
We could lower this to load_per_vertex_output in NIR but then it
confuses all sorts of NIR passes which assume load_*output only
happens in control shaders. We could also add a magic NIR intrinsic
but it's probably easier to just special-case this one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
b5cb508523
nak,nvk: Plumb through tessellation info
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
bd90031b5b
nak/nir: Lower load_primitive_id
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
c2768736c9
nak: Implement more attribute I/O
...
This commits implement load/store_per_vertex* and load_output which are
required for tessellation shaders. Because things are getting a bit
complicated, it's easier to combine all the attribute load/store ops in
a single case in the match.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
091410c708
nak: Add lowering for per-vertex I/O
...
NVIDIA hardware doesn't take a vertex index for per-vertex I/O.
Instead, it takes an offset into the primitive. This has to be fetched
using a combination of SR_INVOCATION_INFO and the ISBERD instruction.
To keep things simple and allow for maximum CSE, we do the lowering in
NIR and patch the load/store_per_vertex_input/output intrinsic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
aa76c86042
nak: Handle location_frac for FS outputs in nak_from_nir.rs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
1251bb7588
nak: Set per patch attribute count both places in the SPH
...
This is what codegen does and it seems to be required. Maybe it's an
SPH version thing?
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
f097303a99
nak: Rework OpALd and OpASt a bit
...
Replace the out_load flag with an output flag which we now require to be
set for OpASt. Also, improve printing so we add .O and .P qualifiers as
needed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:14 +00:00
Faith Ekstrand
f5805dadab
nak: NVIDIA calls them tessellation init shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
dfbc03fa88
spirv: Fix locations for per-patch varyings
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
c6c2c1b2b2
nak/nir: Lower tessellation and geometry I/O
...
We also need to call nir_lower_indirect_derefs. Even though we're not
lowering anything away, we need to call it so that it will lower clip
distance arrays. The pass always lowers compact array derfs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
93db2c1254
nak: Plumb clip/cull enables through nak
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
d4d7f26151
nak: Add enums for sysvals and attributes
...
It's much nicer to have a canonical place for all these things to live
which gives them actual names.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
a4c1ec3892
nak: Implement From for SrcRef for more types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
0d725cccbd
nak: Implement NIR control barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
5e6dd0412b
nak/builder: Return the instruction from push_*()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
9b6a4aab8d
nak: Add barrier instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
2514058c82
nak: Allow encoding Dst::None
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
cc6f26b005
nak: Break indirect offset encoding into a helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
2a61e59bba
nak: Add OpNop which can have a label
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
e3fa6f3557
nak: Add a Label struct for branch targets
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
f2e07cbab9
nvk: Plumb through XFB info from NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
30f01c47c2
nak: Translate XFB info
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
62ac73d5e3
nouveau/parser: Dump SET_STREAM_OUT_CONTROL_* properly
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
c2c010055a
nak: Handle non-constant I/O offsets
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
827dba398d
nak: Don't allocate bitsets in liveness data-flow
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
04658a2a11
nak/bitset: Add a helper for modifying in-place
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
19e0c52837
nak: Run simple liveness data-flow bottom-up
...
Rookie mistake... The liveness algorithm propagates information from
later blocks to earlier blocks so if you run bottom-up it's exactly two
passes when there aren't loops. If you run top-down, it's quadratic in
the number of blocks.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
046a2d5004
nvk: Set clip/cull_enable for NAK shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
a4ff5a9fc6
nak: Simplify I/O gathering
...
This adds mark_attrs_(read|written)() helpers to VtgIoInfo which take a
range of attribute addresses and mark the range as-needed. It adds a
similar mark_attr_read() helper to FragmentIoInfo which only marks a
single address and takes a PixelImap. This gets us down to only needing
to duplicate the address range if ladder twice. For VTG I/O, having it
take ranges will be more ergonamic when it comes time to handle non-
constant I/O offsets.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
32910d3016
nak: rustfmt fixes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
40ec7efa07
nak: Move NIR enum translation out of nak_sph.rs
...
Better to keep all the NIR stuff together.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
145213fd2c
nak: Restructure ShaderInfo
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
267a4f07d0
nak: Remove encode_hdr_for_nir
...
Now unused as nak_sph::encode_header handles it.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
a926c67335
nak: Collect information to create SPH
...
This should cover everything except tesselation.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
8d07d033ae
nak: Add a complete wrapper around SPH
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
97c249a353
nak: Fix printing of OpASt
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
a7eb42119a
nak: Take component into account in store_output
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
330f3e6fa8
nvk: Lower more draw system values
...
In codegen, these are handled by the backend by passing in cbuf numbers
and offsets. NAK expects us to lower these in the driver.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
263dfd4838
nvk: Add a helper for lowering system values to root table loads
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
1a2bed819d
nak: Fix ALD/AST encoding for vtx and offset
...
The bit offsets were inverted compared to gv100 codegen.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
66c9c40f68
nak: Handle modifiers in dedup_srcs() in opt_lop()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
1b6962eb7e
nak: Provide more detail when printing IR after passes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
5654366a55
nak: Fold source modifiers in legalize
...
We were smashing them to None later but didn't actually take them into
account in fold_lop_src() to ensure the smash was valid.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
6da06bf7d7
nak/nir: Return one sample for gl_SampleMaskIn[0] when sample shading
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
0e393f0d58
nak/nir: Interpolate gl_PointCoord
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
062735c1cc
nak/nir: Add a load_frag_w helper
...
Also, rework things a bit. The one functional change is that we now put
1/w in gl_FragCoord.w which should fix a CTS test.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
8ec753749a
nak/nir: Fix sample vs. pixel input interpolation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
1ab35afc26
nak/nir: Move frag_coord/sample_pos lowering to FS input lowering
...
It monkeys about with interpolation so it makes more sense to keep all
that stuff together.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
460a0d8a4c
nak/nir: Plumb the FS key into lower_fs_input_intrin
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
580b98f353
nak: Gather global memory usage for ShaderInfo
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
0afc6fa880
nak: Add for_each_instr in Shader
...
Allows to visit each instructions without remapping every functions.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
e9bad677af
nak: Plumb uses_kill through from nak_from_nir
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
274d521c22
nak: Take components into account in load_*input
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
543eebb272
nak: Handle interpolate_at_offset
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
f5c41151f2
nak/nir: Use nir_shader_intrinsics_pass for FS inputs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Mary Guillemard
04911df940
nak: Add support for fddx and fddy
...
This uses SHFL in combination with FSWZADD.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
e174fc9ab3
nak/nir: Fix helper invocations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:13 +00:00
Faith Ekstrand
4e14cefa70
nak: Add support for gl_FrontFace
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
2c91587ac5
nak: Saturate depth writes
...
Otherwise, they get may clipped away. This seems wrong in light of
unrestricted depth but it fixes a bunch of CTS tests for now so let's go
with it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
6abbef04b0
nvk/nak: Translate our new FS flags from NAK to nvk_shader
...
Eventually, we want to drop all this garbage from nvk_shader and just
use nak_shader_info directly but, for now, it's less disruptive to just
translate from new to old.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
34cc225070
nak: Plumb more FS info through to the C API
...
These are needed for state setup, not the shader header so we have to
plumb them all the way through to the driver.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
0ec283083c
nak: Re-plumb compute shader info
...
Put the stuff in nak_shader_info in nak.h into a union so we can have
other stage info exported as well. Then plumb local_size and smem_size
through ShaderInfo like we do for a bunch of the FS things. While we're
shuffling things around, pull nak_shader_info::cs into a union.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
9eeda9dd6d
nak: Rework FS outputs again
...
This time we map them to a consistent output address space like we do
for all other I/O and system values and do the remap in nak_from_nir.
This lets us know very precise usage information and more robustly build
the OMask in the shader header. We also handle location_frac now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
7ce8470bd4
nak: Stash a ShaderInfo in ShaderFromNir
...
We're going to want to gather data into this struct as we go.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
3cdc26c157
nak: Pull sm, num_gprs, and tls_size into a ShaderInfo struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
141137ad14
nak: Use count_attribute_slots for FS input var sizes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
64168e58cd
nvk,nak: Plumb through the zs_self_dep key bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
c54f622a93
nak: Set TLS size properly in the shader header
...
We were only accounting for load/store_scratch before, not spilling.
Pull the value from the Shader, that one's accurate.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
cbb05f0e6b
nak: Implement discard and demote
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
24c2728ca5
nak: Implement load_sample_id and load_sample_mask_in
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
595f03957c
nak/nir: Several FS output fixes
...
1. Lower arrays to elements
2. Multiply locations by 4 to get GPR numbers
3. Fix dual-src blend
4. Sample mask and depth both consume slots if either is used
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ea750f1ffd
nak: Handle empty OpFSOut
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ecf5c4c13b
nak: Properly handle OpFSOut in RA and liveness
...
That one's a bit magic because it exists to ensure that each output GPR
ends up in the right register at the end of the shader. We tried to
handle it as a simple lowering before but it's easier and safer to
handle it directly in RA and liveness.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
c47488341e
nak: Use load_interpolated_input for frag_coord
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Dave Airlie
0e327167a2
nak: do perspective divide for interp none as well
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ab80e1189f
nak: Add support for centroid and sample interp modes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Dave Airlie
850668c942
nak: make ipa encoding match the order in codegen gv100
...
78 has interp mode
76 has sample mode
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
dadc79d96f
nak: Handle flat FS inputs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ea6057deb4
nvk: Use sysvals for fragcoord etc. with NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
073b2257dd
nak: Emit FS_OUT before EXIT
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
a07aa29f61
nak: Re-work Instr::get_latency()
...
We re-order and re-arrange the whole thing by instruction type. Also,
instead of returning an Option<u32>, have a has_fixed_latench() method
to check the instruction and then get_dst_latench() to get the latency
from instruction launch to the given destination index being available.
This lets us handle predicates properly which have a different number of
cycles for some reason. Oh, it's now just as correct as the estimates
in nv50_ir_target_gm107.cpp.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
3ad3f1376c
nak: Rework calc_delay.rs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
2288b33a48
nak: Rework the barrier insert pass
...
This is mostly a refactor but it does tuck in a three functional
changes:
1. We no lonter insert read barriers for sources that we immediately
overwrite in the instruction.
2. We track read and write barriers separately so we don't wait for
read-after-read hazards but do for write-after-read.
3. Wait on all barriers in branch instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
91ea23103a
nak: Use the right number of predicates in RegTracker
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
57dde7f217
nak: Implement Index[Mut] for RegTracker
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Mary Guillemard
405a9ccca8
nak: Make PRMT selection a Src
...
On SM50, because of immediate form limitations to 20 bits, we need to
use a register to use PRMT.
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Mary Guillemard
c38c456270
nak: sm75: Fix panic when encoding MUFU with SQRT and TANH
...
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
1b869d2db5
nak: Rename OpBFind to OpFlo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
eb10a778fd
nak: Fix instruction ordering in nak_ir.rs
...
I'm trying to stick to the ordering in the NVIDIA docs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
3e8344a4c8
nak: Remap GLSL_SAMPLER_DIM_SUBPASS and SUBPASS_MS to 2D and MS
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
80230731ec
nak: IMAD also has a destination predicate
...
Also use set_pred_dst(.., Dst::None) for IMAD64
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ab7a4b531d
nak: Disable lower_image_size_to_txs for NAK
...
We don't need it for NAK and it actually screws up cubes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
86c7bcc9e3
nak/legalize: Fix too many IADD3 source modifiers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
0222107699
nak: Move all the IADD3 insanity to a new OpIAdd3X opcode
...
Because of its crazy behavior around overflow, we don't want the full
IADD3 opcode to support any sort of source modifier propagation. This
makes us a new OpIAdd3X opcode which contains all the crazy and lets
IAdd3 remain the usual 32-bit integer thing everyone knows and loves.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
c5b9d42ac2
nak: Add an alloc_vec() to SSAValueAllocator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
52acb12f75
nak: Document spilling and RA
...
This isn't full documentation but it at least sprinkles paper citations
all over as well as descriptions of where we diverge from said papers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
a0bf406057
nak/spill: Tweak the construction of S sets
...
Instead of just taking live-in \ W, consider anything previously spilled
to be spilled. This lets us avoid a bunch of redundant spills because
we now allow spills to persist across blocks even if the value is in W.
In the loop header case, however, we still need to add in live-in \ W or
else we can end up in cases where a value is neither in W nor S.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
ea0ae395a9
nak/ra: Improve coalescing
...
We now delete OpParCopy src/dst pairs when they get coalesced. We
can also coalesce OpCopy which is potentially useful given they are
generated by spilling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
46d489fa4d
nak: Implement shader clock
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
84d1765690
nak: Add a debug flag to test spilling
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
07b9465b5d
nak: Spill registers before RA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
aa93578915
nak: Use the correct number of GPRs on Turing+
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
bcad2add47
nak: Add a spilling pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
a502a994e8
nak: Add more NextUseLiveness helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
72a4721412
nak: Add a RegFileSet filter to NextUseLiveness::for_function()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
002ee9e40e
nak: Expose LiveSet for incremental liveness tracking
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:12 +00:00
Faith Ekstrand
8c04737a6a
nak/ra: Don't free killed for OpPhiSrcs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
efee3264b2
nak/ra: Handle parallel copies as a special case
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
4d5bf265b0
nak/ra: Drop the pointless AssignRegs struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
57a7932bb5
nak: Union find
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
4a08105922
nak: Add an SSA repair pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
214b7e4b88
nak: Add a to-CSSA pass
...
Conventional SSA (also called CSSA) requires phi nodes be isolated by
parallel copies such that there is no interference between SSA values.
This is required for many out-of-SSA algorithms and, in our case, a
prerequisite for spilling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
d574d29102
nak: Add helpers to BasicBlock to get phis
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
2f9565e725
nak: Add a dominance check to CFG
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
bef6c1095e
nak: Add interference helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
0fd3510166
nak: Restructure liveness construction
...
Drop the for_block() stuff and instead have the parent add defs and uses
one at a time.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
2c3eb239f8
nak: Allow DCE on functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
002022a0b1
nak: Handle RegFile::Mem in parallel copy lowering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
4f05308ad9
nak: Add a Mem register file
...
For spilling, we want to be able to treat TLS as if it were a register
file. It unifies and makes everything easier. Also add support to
OpCopy to for copying between GPR and Mem. We cannot, however copy
directly from Mem to Mem.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
fe7ac83a94
nak: Use more OpCopy
...
Instead of using OpMov or OpParCopy, use OpCopy directly. This reserves
OpParCopy for RA type things and OpMOv for actual codegen. We can also
drop OpMov from copy propagation now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
8185f3064e
nak: Use OpCopy in legalize
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
fc35dd6aba
nak: Use the builder for the legalize pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
4c798afb25
nak: Add a new OpCopy instruction for parallel copy lowering
...
This is different from OpMov because OpMov is an actual hardware
instruction and we want OpCopy to be able to do magic.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
b78ccebf4b
nak: Rework map_instrs()
...
Consume a FnMut so that we can pass in mutable references to things. If
we don't want mutable references, we can also pass a whole closure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
72f4cd3300
nak: Use u32 for register indices
...
This increases the size of RegRef to 32 bits but that's fine given that
it's usually in a union with SSARef which is 128 bits. The real
advantage is that it allows us to start treating memory as a register
type which will come in really useful for spilling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
5c3e7bf0b7
nak: Refactor nak_assign_regs a bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
e6b0c3e220
nak: Add a phi allocator
...
We need to be able to add phis later. If we want phi numbers to be
unique, we need to be able to allocate them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
741f7067f1
nak: Add loop detection to the CFG
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
a560356b71
nak: Base liveness on CFG indices
...
This gets rid of most of the per-block hash maps and replaces them all
with vectors. This is both simpler and should be quite a bit more
efficient (though block lookup isn't common).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
ea9390cd21
nak: Store the blocks in the CFG
...
This renames CFG to CFG2 and moves to storing the blocks in a CFG
instead of a Vec. This should let us make a bunch of other data
structures drop to a vec instead of a hash map now that we can rely on
the CFG instead of BasicBlock::id.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
7ce3dfa43b
nak: Add a more awesome CFG data structure
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
c1b62f1d15
nak: Emit if branches in the predecessor block
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
0143f4566f
nak/nir: Add more helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
756d0c0ba3
nak: Add a new VecPair type
...
This is a pair of vectors but it acts a bit like a vector of a pair.
Everything is inserted, removed, iterated, etc. in tandem to ensure that
we never mismatch between the two vectors. However, because they're two
separate vectors, we ensure that it can be used to store Src and Dst and
keep everything contiguous.
Of particular interest is the new retain() method which is equivalent to
Vec::retain() which allows filtering a VecPair. This tricky operation
is performed three different times by DCE and will be needed in spilling
as well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
67c13aea9e
nak: Add more SSA iterator options
...
This should make things like liveness a bit more reliable as it ensures
we won't accidentally miss anything. It also makes them a bit simpler
to iterate.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
dc26c826b9
nak: Add a RegFileSet struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
2fd0a2e207
nak: Accurately set num_gprs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
e25bbc9b7b
nak: Add mum_gprs and tls_size to Shader
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
8e9f5416bb
nak: Bring back bitset-based liveness
...
This one is much faster to compute because we can use bitops for the
fixed-point data-flow algorithm rather than the clumsy walking of hash
sets. The faster version is sufficient for RA and checking for register
pressure. We only need to fall back to the slower version for spilling.
Thanks to traits, we can get some of the same behavior with both.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
26748d6fbf
nak: Make calc_max_live a function of the Liveness trait
...
If we rework things a bit to compute live-out hash sets internally to
the pass we can make it work with just the information provided by the
trait.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
80d58b3521
nak: Handle dead destinations in RA
...
It's possible for a destination component to be killed immediately if
it's never used. To handle this, we need to track killed destinations
as well as killed sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
865d6c303f
nak: Require Rust 1.70.0
...
This is when std::sync::OnceLock gets stabilized which we require for
parsing debug options.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
71c5bbc5a8
nak: Break guts of liveness into traits
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
f1cb99d06b
nak: Separate the CFG from liveness
...
One could argue that this should go in the function and not be an
on-demand analysis pass but we can do that later. For now, we just
break it out into a separate data structure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
497046412e
nak: Allocate the minimum number of GPRs.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
d9c606fb08
nak/ra: Pass a PerRegFile num_regs into the allocator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
7b3d62e51a
nak: Print to stderr
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Dave Airlie
2a7df0a03e
nak: fix backtrace crash running computeheadless
...
Doesn't fix the example, but stops the crash.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
d7d330754b
nak: add support for nir_op_unpack_half_2x16_split_{x|y}
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
59c05e16e4
nak: add support for packhalf2x16_split
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
1f10cdbbbe
nak: add support for findmsb,findlsb
...
These all map into OpBFind, which is sourced from PTX and NV50.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
e887c4d07a
nak: add support for nir_op_bitfield_reverse
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
d27e271ba5
nak: Add support for nir_op_bitcount
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
d133603c7d
nak: add support for nir_op_isign
...
Fixes dEQP-VK.glsl.builtin.function.common.sign.*
Notice that ISel support appears not to be wired up in the old compiler, so
ISetP + Sel was chosen.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
22b4d1c559
nak: change ishl data type to I32
...
This matches NV50 as getDType always returns nv50_ir::TYPE_S32 for
nir_op_ishl
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
30824fa6a5
nak: more lowerings
...
Add more lowerings based on nv50.
Fixes
dEQP-VK.glsl.builtin.precision.ldexp.highp.scalar
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Faith Ekstrand
e03cc1f542
nak: Add some documentation for SSA values
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:11 +00:00
Daniel Almeida
11ca78f923
nak: run nir_lower_frexp and nir_opt_algebraic_late
...
These two are needed to get dEQP-VK.glsl.builtin.precision.frexp.* to pass.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Daniel Almeida
394bd770bc
nak: add support for floor, ceil and trunc
...
These instructions are not supported and this shows when running the CTS.
Add support for them.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
4dd277e233
nak: Rework RA a bit
...
Instead of tracking pinned things in the register allocator, we split
the register allocator into RegAllocator and PinnedRegAllocator. The
RegAllocator struct only allows for very simple single-SSA allocations
and frees. It tracks locations of everything, what's used, etc. but
otherwise knows nothing about pinning or vectors.
The new PinnedRegAllocator struct wraps a RegAllocator by taking a
mutable reference to it. It provides support for pinning and all the
vector stuff. To destroy a PinnedRegAllocator, finish() is called which
re-places any evicted SSA values and populates an OpParCopy with any
needed copies. Because PinnedRegAllocator owns a mutable reference to
the RegAllocator, it's impossible to mix uses of PinnedRegAllocator and
RegAllocator. This ensures that, for as long as the pinned version
exists, nothing can be allocated which migh escape the pinning.
This fixes a bunch of corner cases when register pressure gets tight.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
c9a6073754
nak: Use pcopy.push() in RA
...
This version guarantees that the source and destination vector stay in
sync.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
c0e6d80063
nak: Use num_regs instead of max_reg in RA
...
Since the top value is always the default register, we don't need to
worry about overflowing a u8. What we do need to worry about is
register files with zero registers which is a thing pre-Turing for
uniform register files. Use num instead of max so we don't end up
subtracting 1 from 0.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
19806cc9e4
nak: Initialize RA with only live registers
...
While coping the entire RA struct from the predecessor is probably
faster, it may contain values which are not live in the current block.
We could purge those but the iteration gets tricky with Rust. It's far
clearer and more rust-friendly to deal with it as an initialization
problem.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
ec47843cca
nak: Record register pressure in liveness
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
7c98dd8bfd
nak: Add a PerRegFile helper struct
...
Sometimes it's useful to have something that's per-register-file like we
do for register allocation. Since this is generally useful, add a
struct for it. In future, it might be neat to pull in the enum_map
crate which basically does this generically.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
b661279e6e
nak: Rework liveness to add next-use information
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
f67fecf196
nak: Compute liveness in reverse block order
...
If we walk the blocks forwards, we end up having a minimum O(n^2)
algorithm because everything has to propagate bottom to top. Looping
over the blocks bacwards ensures that all the liveness information is
propgated in the first pass in the absence of back edges.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
82f0c6cf77
nak: Use the builder in some lowering passes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
2d69a2c1d7
nak: Add a builder
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
063c9f41fa
nak: Work in terms of bits for type sizes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
ced6b44ba6
nak: Follow memcpy semantics with OpParCopy
...
Destination first followed by source. Otherwise, we'll screw ourselves
up endlessly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Daniel Almeida
831d1ee2d6
nak: Do not allocate vectors needlessly in optimization passes
...
All passes allocate a Vec per Instr during map(). This is wasteful,
because most instances of map() produce a single instruction (by
mapping one instruction to another instruction) or no instructions at
all.
In such cases, they return an empty Vec, or a Vec with a single entry.
Rework the signatures so that a Vec is only when mapping one instruction
into many.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Daniel Almeida
5014b4697d
nak: Heap-allocate Instrs
...
Heap-allocate Instrs to avoid copying them around whenever they are
mutated by a pass. This lowers the amount of copies in detriment of
cache-locality.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
fa0891d37c
nak: Implement nir_op_b2b1 and nir_op_b2b32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
3bf0882ea8
nak: Implement indirect UBO loads
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
0ff7fbf093
nak: Rework cbufs a bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
86684fa9aa
nak: Legalize everything
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
9fcc0eaa8a
nak: Fix multisampled textureing
...
Needed to handle txf_ms a few places and force LOD_MODE_ZERO
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
cc88a1c78e
nak: Add a Pred struct move the enum to PredRef
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
38c9d6dfbb
nak: Add accum predicates to Op[FI]Setp
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
c6edf43f70
nak: Delete unused imports and dead code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
d48bea6638
nak: Fold fsat into FAdd/FFma/FMul
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
4c3a5b16e9
nak: Rework source modifiers instructions a bit
...
Instead of I/D/FMov instructions, just use [DF]Add instead. For ineg, we
add a new INeg instruction which we can lower to IADD3 later. The
reason for this is that IAdd3 is complicated and makes detecting an ineg
rather annoying. Also, if we ever bring NAK up on older hardware, not
all hardware has IAdd3 and INeg will be lowerable everywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
8ba1429216
nak: DCE things with constant false predicates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
818ec3242b
nak: Optimize OpLop3 and OpPLop3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
59f6d657f3
nak: Fix the 2nd predicate on LOP3
...
I put it in the wrong spot. Also, it's a source so we should use
set_pred_src() for it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
4367e0786b
nak: Implement image atomics
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
82e5b0dd93
nak: Implement global/shared_atomic_comp_swap
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
d359c64b2a
nak: Implement nir_intrinsic_shared_atomic_*
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
d1c56b12b9
nak: Implement nir_intrinsic_global_atomic_*
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
18a11aa449
nak: Rework copy-prop to use soruce type decorations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
9bc2bdd78f
nak: Add a Src::supports_src_type() helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
42d31b4bfd
nak: Rework source modifiers a bit
...
They now carry some type informaiton so FNeg and INeg are different
modifiers. Since only INeg exists in hardware, we don't need IAbs or
INegAbs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
a2390fdbc1
nak: Only divide FS inputs by .w for smooth interpolation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
7398a262da
nak: Decorate sources with types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
4def64545a
nak: Add a mechanism for decorating sources with types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
3207f29a09
nak: Integers don't have abs() source modifiers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
2a2103d73b
nak: Implement load/store_shared
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
73976c3f31
nvk: Plumb num_barriers through from NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
4c2ce288f9
nak: Implement barriers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
53a372ec3d
nak: Add F2F and implement fquantize16
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
dc3b2c7d10
nak: sin() and cos() require we divide by 2pi
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
a6e1167a83
nak: Don't allow r255 in texture or surface ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Daniel Almeida
b70d998180
nak: compiler: replace Instr::new(..) with OpFoo {}.into()
...
As Instr now implements From<T: Into<Op>>, replace
Instr::new(Op::Foo(OpFoo {})) with OpFoo {}.into() to improve
readability.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Daniel Almeida
ab9cf27c02
nak: compiler: add From<T:Into<Op>> for Instr
...
Adding this From implementation makes it possible to clean up
the code in the next commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
e8f220f7a1
nak: Legalize Op[FI]Setp
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
3bd42dd254
nak: Improve [FI]SETP encoding
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
3ac03b043e
nak/nir: Lower image size and samples to txq
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:10 +00:00
Faith Ekstrand
6750d21e65
nak: Legalize more stuff
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
854b4c0817
nak: Only put actually live SSA values in the ra.live_in sets
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
49f8fb0c03
nak: Legalize OpShf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
4e4548afc9
nak: Improve RA failure messages
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
3c7a837c51
nak: Add a smarter new_lop2 helper
...
The new helper automatically detects whether you're working with
predicates or GPRs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
a36a614583
nak: Implement nir_intrinsic_load/store_scratch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
a4ea83777b
nak: Wire up OpLd and OpSt for local and shared
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
840c0281ce
nak: Implement image load/store
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
9d2b81e71d
nak: Implement undef instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
2387dfdf6b
nak: Implement nir_op_ixor
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
6ab0d7ee23
Revert "HACK: nak: Lower iadd64 again"
...
This reverts commit 88b14e4ab9e272bfb33bea4057aacbdd5a16ae5b.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
6e5c960434
nak: Implement nir_op[iu]mul_2x32_64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
392d3791a8
nak: Much more believable try_find_unused_reg_range()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
f3e1379bdf
nak: Add a use tracker to RA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
10deb1d62b
nak: Legalize vector sources
...
It is possible for a single scalar to show up in any number of vector
components, including twice in the same vector. Add a bit to the
legalization pass to deal with this possibility.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
9ef47c8921
nak: Rework vector handling
...
Previously, we handled vectors by giving each SSAValue a number of
components which we assume matches in all uses. To deal with swizzles
and component selection, we had OpVec and OpSplit instructions to
convert vectors to/from scalars as-needed. This is fine as an SSA
representation but it leads to a lot of redundant values when it comes
time for assigning registers. There are strategies for dealing with
this such as ensuring that splits always kill the whole vector and then
re-combining into a new vector for later uses. It's possible by doing
this to ensure that each component only ever exists exactly once at the
cost of a LOT of vec/split instructions.
Another possible solution is to naievely emit vec/split but teach
liveness analysis and RA bout the duplicated values. Instead of RA
working on individual SSA values, it can work on equivalence classes of
components.
This takes a different (and currently novel to Mesa) approach of making
each SSAValue a single component but having an SSARef type which can
reference up to 4 SSAValues as a vector. Register allocation then works
on individual components and only ensures that the components of a
vector are contiguous when it's used as a vector. This isn't very
different from how it worked before. If anything, it's a bit more
straightforward now because the component/vector split uses the same
types as the rest of the IR and the SSAComp is gone.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
a9e79994a7
nak: Add a debug flag to assign worst-case instruction deps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
e3222b2227
nvk: Pass NAK flags through to shader cache UUIDs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
a41ab7535e
nvk: Drop printing of NAK shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
9daa595ee3
nak: Add a NAK_DEBUG environment variable
...
Also, hide printing behind it and clean up the print code a bit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
4c81f87670
HACK: spirv: Add a MESA_SPIRV_DUMP_PATH environment variable
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
145f43a9a1
nak: Simplify the (Srcs|Dsts)AsSlice proc macro
...
Instead of building a token stream for the size, just parse it as a
usize. This is way simpler.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Daniel Almeida
09216cd9f4
nak: make Instr::new() generic
...
The previous signature for Instr::new() was too restrictive in that it
would create a new Instr from Op, but not from T: Into<Op>.
Fix that by introducing a generic version instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
b448151925
nak: Simplify the FromVariants proc macro
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Daniel Almeida
fc3ef0a251
nak: derive From<OpFoo> for Op through a proc macro
...
Derive From<OpFoo> for Op through a proc macro. This is much less
verbose than adding a manual impl From {..} for all Ops in the
NAK IR.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
a70423944b
nak: Wire up texture ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
9d7e1d515f
nak: Use more core NIR texture lowering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
ad01fbdda0
nak: Add a NIR texture lowering pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
31ecffa3a3
nak: Enable nir_lower_idiv
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
c21550e596
nak: Implement nir_op_[iu]mul[_high]
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
1825f54d79
nak: Implement right-shifts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
90a05b5591
nak: Add more legalization
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
b6596b0a53
nak: Wire up ffma
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
c2f72a5782
nak: Implement f2[iu]32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
0943da1a37
nak: Implement OpFSOut with an OpParCopy
...
This prevents ordering issues among the sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
d6912622f5
nak: Use immediage offsets for load/store_global
...
In order to facilitate this, we add a little helper in C which uses
nir_ssa_scalar chasing to find an iadd of a thing and an immediate.
This should be reliable as long as we're not lowering iadd64.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
871bd62fe5
nak: Handle multiple vector destinations in RA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
8c358ce105
nak: Implement input interpolation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
6595abc1e0
nak: Move nak_sysval_attr_addr/sysval_idx higher in the file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
88f7056d09
nak: Implement MuFu and a bunch of float unops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
f9f9399773
nak: Implement nir_op_vecN
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:09 +00:00
Faith Ekstrand
0c23df7da2
nak: Implement nir_op_u2f
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
3acb1f80b8
nak: Implement nir_op_(fmin|fmax)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
d86e75e507
nak: Implement nir_op_fmul
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
f2a7cda75a
nak: Implement nir_op_[iu](min|max)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
63dcc7c75a
nak: Predicates default to true
...
The one exception to this is IADD3 where the carry bit default to false
when the default reg (P7) is provided.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
0cbab15de5
nak: Fold [P]Lop3 sources
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
ed42571e83
nak: Implement nir_op_i(eq|ne) for booleans
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
3fd47a68a1
nak: Handle token re-use in dep tracking
...
When we run out of tokens, instead of panicing, grab the oldest token
and re-use it, adding it to the wait list for the instruction.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
991fa18f6e
nak: Improve the dependency tracker
...
Break the bar/dep allocator out into a helper struct for better
encapsulation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
af752f73dc
nak: Add a non-trivial register allocator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
40fbf6bed2
nak: Add a liveness analysis pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
3b39778fdd
nak: Add a space to the end of vec and split arg lists
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
8004416e38
nak: Rework phis
...
Have a single phi src/dest instruction per block which handles all the
phis at one go. This makes phis very similar to parallel copies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
15a4b620b9
nak: Rework dead-code
...
It can now handle loops and parallel copies are handled one copy at a
time instead of being handled as a whole instruction.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
ef45379bfa
nak: Add an SSAComp struct
...
This is useful in RA for referring to a single component of an SSA
value.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
552faf2864
nak: Add a BitSet struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
d10ff2bdcd
nak: Rename BitSetView to BitView
...
We're about to add a BitSet struct which is like a HashSet and it's an
entirely different concept.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
e1be53e266
nak: Get rid of the BitSet and BitSetMut traits
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
dadf34c620
nak: Use OpParCopy for OpVec and OpSplit lowering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
df11e232d6
nak: Add a parallel copy in struction with lowering
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
90c098e286
HACK: nak: Lower iadd64 again
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
c68989e49c
nak: Don't emit MOVs for overlapping vec and split src/dst
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
b142347797
nak: Drop the special cases for single-component vec/split
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
3fee98d290
nak: Support both destinations in PLOP3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
9261de6927
nak: Handle phis with non-SSA sources
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
548cb292cf
nak: Add separate True and False source types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
29ecb7acf1
nak: Rename Imm to Imm32
...
It's always 32-bit as far as I can tell. We'll do something else for
booleans.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
43e2f1080e
WIP: nak: Add a legalization pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
63707b37d6
nak: Handle fadd funnyness in the emit code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
df07dd4996
nak: Pass an SSAValueAllocator through to map methods
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
9704772021
nak: Add an SSAValueAllocator struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
2b3a883e97
WIP: nak: Rework the barrier assignment pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
d0e0e02db7
nak: Implement unpack_64_2x32_split_*
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
2bd71dd0f0
nak: Print names of missing instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
cb50296e3d
nak: Lower global access to scalars as needed
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
10efdb47a7
nak: Add a union-find implementation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
020a7ba8f5
nak: Implement phis
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
520ad0f4a7
nak: Implement iadd64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
cf533663c1
nak: Implement b2i32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
05ba3f8144
nvk: Pull the NIR options from NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
0e4480d8b3
nak: Add a nir_shader_compiler_options to nak_compiler
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
5a86cf2b80
nak: Move nak_compiler to nak_private.h
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
2bf9cafbe7
nak: Implement basic control-flow
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:08 +00:00
Faith Ekstrand
1b3382b861
nak: Add modifier propagation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
495b64be2b
nak: Make Dst its own type
...
Instead of having Src::src_ref and Dst share a type, make them separate
enums. We're not really getting any benefit from them being the same
enum type anymore and this means we avoid things like immediates in
destinations. We can't make the type system do all our work for us but
this seems tractable.
While we're reworking things we also implement From<> for stuff instead
of having quite as many new_*() constructor variants.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
ea2c6c8ebe
nak: Implement Display for SSAValue
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
f26228fca3
nak: One of the predicates in IADD3 is a destination
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
9541036507
nak: Rework source modifiers
...
Just put modifiers on every source. It's too complicated to try and
make the type system work for us here. When the time comes that we
write a validator, we'll just validate them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
fa8782733d
nak: Rework ALUSrc in emit code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
f4c0ea24e5
nak: Implement fsign
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
5ad06de4d3
nak: Allow iadd3 to take an immediate in srcs[2]
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
811ccc6917
nak: Implement unary float and integer ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
4c057423e8
nak: Implement nir_op_b2f32
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
708d928fbf
nak: Implement float comparisons
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
d11c8268a2
nak: Rework integer compare ops
...
Rename to IntCmpOp and make it trivially copyable. While we're at it,
rename and rework set_int_cmp_op() in the emit code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
3a17c943da
nak: Implement fadd
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
5935c62d4e
nak: Implement i2f
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
8adeae1dc2
nak: Handle zeroes at emit time
...
Rework our helpers to take Src and Dst and handle zeros inside the
helpers. This is better because, at emit time, we actually have the
information about which register file to use.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
1730600943
nak: Use Src::Zero for load_const(0)
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
b41b4bd7f5
nak: Use a different inner struct type for each opcode
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
e994acdb36
nak: Add a SrcModsAsSlice trait
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
6e5f6476e3
nak: Add SrcAsSlice and DstAsSlice traits
...
We also add a proc macro which auto-derives these traits for structs for
which all sources/destinations are contiguous.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
5a80c2e89a
meson: Pull in syn from crates.io
...
We don't have real crates.io support yet so this uses a hack where it
pulls wraps from my personal github.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
384f4448e1
nak: Get rid of meta instructions
...
They're mostly in the way at this point. Instead, make map_instrs return
a Vec<Instr>. We can reaplace that with a None, One, Some enum type
later if we want.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
438c67c1cb
nak: Use Instr::num_srcs/dsts() less
...
Instead use Iterator::enumerate() and is_empty().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
fafb72e2be
HACK: Support old meson
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
44243c4741
nak: Lower 8 and 16-bit types
...
We can do some of these on some hardware but we'll lower them all for
now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
8f121036ea
nak: Implement boolean logic ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
871bb59875
nak: Rework instruction encoding
...
Use a struct to store the temporary data and the SM number and over-all
reduce the amount of stuff we have to pass around. Also, rename
everything from tu102 to sm75 which is a more apt description.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
5207d9e3a0
nak: Encode load/store correctly on SM80
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
5daff0876f
nak: Plumb the SM through to nak::Shader
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
611ed96557
nvk: Pass an actual nak_compiler to nak_compile_shader()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
bf72e78e0a
nak: Add nak_compiler_create/destroy
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
c10aa56efb
nak/meson: Use bindgen dependencies
...
These are new in meson 1.0 and lets us avoid all that manual include
directory mangling which was going to break one of these days anyway.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
e69a30cecb
nak: Rework ALU instruction encode
...
Instead of pulling sources from fixed locations in the instruction, take
a bunch of Option<&Ref> and let the individual encode func take care of
it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
0e755f9964
nak: Implement bcsel
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
b3d6dafc7d
nak: Implement integer comparisons
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
ac2a56f56f
nak: Add support for instruction predicates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
de073a10e6
nak: Implement 32-bit logic ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
8cf12d6a3f
nak: Add a pass for computing instruction dependencies
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
93eb2f884a
nak: Implement iadd and ishl
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
241caaf5ff
nak: Add an instruction fuzzing tool
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
90d3fd10e1
nak: Zero out the .w component of descriptors
...
This saves us from having to constantly add it in as we compute
addresses.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
c212506771
nak: Implement load/store_global
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
c76331fb51
nak: Implement load_ubo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
62f5e65c80
nak: Implement load_sysval_nv as S2R
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
fb96aaf3fa
nak: Lower system values to a new load_sysval_nak intrinsic
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
481a29a912
nak: Header stuff
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
80376146ed
nak: Encode program headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
50b1deefa7
nak: Add encoding for a few instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
83f8d6e2a7
nak: Add bitset infrastructure
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
812255fc79
nak: Add a lowering pass for ZERO sources and destinations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
f694f1f8a8
nak: Add a lowering pass for VEC and SPLIT instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
d44b31f3bf
nak: Add a trivial register allocator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
08eb906111
nak: Add a util library
...
Currently, all we do here is implement div_ceil() and next_multiple_of()
because these helpers are super useful but currently an experimental
Rust feature. This should be a drop-in for the feature so we can delete
it once the feature stabilizes with little to no effect.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
4e95cb908f
nak: Add a dead-code pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
9769f19c7e
nak: Add a copy-prop pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
5585f57c5c
nak: Add initial translation from NIR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
a4a5fe2270
nak: Add Rust bindings for NIR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
771d9c8856
nak: Add the core IR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
62695614d7
nvk: Run shaders through NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
79ff2d9a33
nak: Add initial stubs for rust code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
c778d39fa4
nak: Add a bunch of shader lowering code in NIR
...
The nifty thing about the way NVIDIA hardware does inputs and outputs is
that it maps really well to how we do them in NIR. We can make the
driver_locations match exactly to the attribute address space. For
fragment shader outputs, we make them register numbers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
1b70f39ef6
nak: Copy the optimization loop from Intel
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
40f9327c8a
nouveau: Add initial headers and meson for the new compoiler
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Jesse Natalie
9ef621ec2e
d3d12: ARB_query_buffer_object and GL4.4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
6384ccd1cd
d3d12: Reference count queries in a batch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
9caea4c3e9
d3d12: Enable ARB_enhanced_layouts and ARB_texture_mirror_clamp_to_edge
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
707cdac7e7
d3d12: Fix GS variant I/O slot counts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
9fe88dd9b9
d3d12: Support enhanced layouts for VS inputs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
72341747f4
d3d12: Split dvec3 interpolatns into devc2 and double
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
1aa56d486c
d3d12: Fix location_frac_mask bitfield size
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
c77f8b4db0
microsoft/compiler: Stop lowering all I/O to temps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
d6dea13231
microsoft/compiler: When packing fractional inputs, find a row with space for it
...
Enables vertex attributes to overlap (as GL requires) when using
enhanced layouts with explicit component packing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
d7bc277726
microsoft/compiler: Don't use 64-bit types for signature entries
...
HLSL can't declare these, and the DXIL accesses them as i32 anyway.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
2334ff67b7
microsoft/compiler: Don't declare PS output registers split across variables
...
DXIL doesn't support that. Color targets need to be float4s.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
adc7caa3ec
microsoft/compiler: Bump signature limits for 32 rows of 4 components
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Sagar Ghuge
ee48b12a8f
anv: Avoid emitting PIPE_CONTROL command for copy/video queue
...
Avoid emitting PIPE_CONTROL instruction since Copy/Video doesn't support
it.
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/26121 >
2023-11-13 23:43:27 +00:00
Sagar Ghuge
8c9a7f7730
anv: Write timestamp using MI_FLUSH_DW on blitter
...
On Blitter engine, we don't support PIPE_CONTROL, we have to update
memory locations using the MI_FLUSH_DW command.
v2:
- Handle video queue (Lionel)
Fixes: 056b0cb87f ("anv: add video engine support in various places")
Fixes: 5112b42146 ("anv: Handle end of pipe with MI_FLUSH_DW on transfer queue")
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/26121 >
2023-11-13 23:43:27 +00:00
Caio Oliveira
dcb68de656
intel/compiler: Clear up block instructions before re-adding them
...
Avoids fixing up list pointers that we don't care about anymore -- since
all the instructions will be re-added in a different order anyway.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
a9f95bf687
intel/compiler: Reuse same scheduler for all pre-RA scheduling modes
...
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
0dd5378ffe
intel/compiler: Make scheduler classes take an external mem_ctx
...
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
04aa2df461
intel/compiler: Separate schedule_node temporary data
...
Some fields in schedule_node will need to be reset each time they are
used. The `cand_generation` needs to be back to zero, and both
`unblocked_time` and `parent_count` need to be back to their initial
values, which were pre-calculated.
Rename the initial data fields and add new ones for the temporary data.
Note the helper function is `per node` to allow it "tag along" with an
existing loops.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
81594d0db1
intel/compiler: Move earlier scheduler code that is not mode-specific
...
This will be useful later on when we reuse the same scheduler for
multiple modes.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
73d4e4118a
intel/compiler: Tidy up code in scheduler related to reads_remaining
...
- Just assert in functions we expect it to exist
- Predicate usage with `!post_reg_alloc` to avoid suggest there are more
combinations.
- Reuse an existing loop to call the count function.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
4f246cf4e7
intel/compiler: Merge child/latency arrays in schedule_node
...
Values are used together, saves one pointer in schedule_node,
reduces amount of reallocations when children count grows.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
e59a054203
intel/compiler: Move FS specific fields to fs_instruction_scheduler
...
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
a6297d05ca
intel/compiler: Remove virtual calls from scheduler
...
Pull run() and schedule_instructions() for fs, and pull a very
simplified version of those into a run() for vec4. Because of the
previous patches the duplication is small.
Since we are touching these, change run() implementations to use the
cfg from the existing reference to the visitor/shader instead of taking
one as argument.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
d76d58cf50
intel/compiler: Cache issue_time information
...
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
ecd7ffcf78
intel/compiler: Extract scheduling related basic functions
...
Those will be used in multiple places later.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
8a8dd2db0c
intel/compiler: Add only available instructions to scheduling list
...
The list was used for iterating through all instructions and then
later also to track the available ones. Now that the array iteration
is used, change how we fill it and rename it to reflect its only job.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
ddff6428c5
intel/compiler: Use array to iterate the scheduler nodes
...
For all the preparation data collection before the scheduling
actually happens, it is possible to walk the schedule nodes
in order by iterating on the range of the array dedicated to
a given block.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
fe6ac5a184
intel/compiler: Allocate all schedule_nodes at once
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
be012055da
intel/compiler: Remove reference to brw_isa_info from schedule_node
...
It is always the same for all nodes, so use the one available in the
scheduler itself.
Also, per Matt's suggestion, collect is_haswell from devinfo instead of
from a function argument.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
6987571737
intel/compiler: Use linear allocator in parts of brw_schedule_instructions
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Friedrich Vock
61203f6078
radv/ci: Update skips comments
...
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
doesn't fail anymore, but it takes nearly 5 minutes to run, so keep
skipping it.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26164 >
2023-11-13 20:09:31 +00:00
Friedrich Vock
8ffdad731c
vulkan: Don't use set_foreach_remove when destroying pipeline caches
...
set_foreach_remove assumes no entries have been removed. That assumption
only holds if no errors occur, since pipeline cache objects can get
removed if an error occurs during deserialization.
This fixes
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
crashing on RADV.
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26164 >
2023-11-13 20:09:31 +00:00
Eric Engestrom
1cb3c349ff
bin/gitlab_gql: give a better name to the --print-job-manifest argument value than PRINT_JOB_MANIFEST
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26143 >
2023-11-13 20:03:44 +00:00
Eric Engestrom
22961fc45a
bin/gitlab_gql: deduplicate fetch_merged_yaml() logic between print branches
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26143 >
2023-11-13 20:03:44 +00:00
Eric Engestrom
ef63cc6017
bin/gitlab_gql: rename get_job_final_definition() to print_...() since that's what it actually does
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26143 >
2023-11-13 20:03:44 +00:00
Eric Engestrom
c6ef161bc1
bin/gitlab_gql: only allow a single --print-* argument per invocation
...
Printing multiple things as the same time is not really usable, so let's
be explicit and only allow one at a time, which allows a few cleanups in
the code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26143 >
2023-11-13 20:03:44 +00:00
José Roberto de Souza
08f851f436
anv: Bring back the non optimized version of build_load_render_surface_state_address()
...
Commit 50c29e1ffa ("anv: simplify buffer address+size loads from descriptor buffer")
is making use of AuxiliarySurfaceBaseAddress field to store buffer
lenght as it was not used but a LNL workaround will make use of it
so we need to bring back this non optimized version of
build_load_render_surface_state_address().
There is some conflicts so a simple revert do not works.
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/26152 >
2023-11-13 18:11:39 +00:00
Eric Engestrom
c5ccd55a8e
v3d/ci: add new failures
...
Possibly a regression from 56451ce773 ("v3d: Don't implicitly
clear the content of the imported buffer"), but not bisected to confirm.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26176 >
2023-11-13 16:10:41 +00:00
Ruijing Dong
8e03c18914
frontends/va: add intra-refresh in VAAPI interface
...
Row and column modes are enabled, not the mixed mode,
application should have a logic of sending a period
of intra-refresh sequence to complete the intra-refresh
cycle.
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26133 >
2023-11-13 14:29:40 +00:00
Ruijing Dong
7fae1c46ad
radonesi/vcn: enable intra-refresh in vcn encoders
...
Enable intra-fresh in vcn encoders and support avc/hevc/av1 codecs.
Just if B frames is enabled or the number of temporal layers is
larger than 1, intra-refresh will be disabled, because it doesn't
support intra-refresh on B frames, and on sub-temporal layers.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26133 >
2023-11-13 14:29:40 +00:00
Ruijing Dong
5524faa22c
radeonsi/vcn: change intra-ref name
...
1. change structure name from intra-ref to intra-refresh
2. add need_sequence_header variable
3. add intra-refresh cap enum
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26133 >
2023-11-13 14:29:40 +00:00
Ruijing Dong
66c75b0ca2
radeonsi/vcn: preparation for enc intra-refresh
...
This is a prepration for adding intra-refresh
in vcn encoders. Intra-refresh is a feature for
smoothing out fluctuation in bitrate by replacing
a whole intra frame by several intra strips distributed
in several continous frames, it is also used in
suppressing error propagation situation.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26133 >
2023-11-13 14:29:40 +00:00
Hans-Kristian Arntzen
f69863fd5a
radv/radeonsi: Forward correct GPU instance to umr.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24578 >
2023-11-13 13:37:27 +00:00
Rhys Perry
fd80140723
radv: set prolog as_ls if has_ls_vgpr_init_bug=true
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26111 >
2023-11-13 12:09:55 +00:00
Rhys Perry
b70c235e4a
aco: skip LS VGPR initialization bug workaround if the prolog exists
...
Otherwise, we would do this twice.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26111 >
2023-11-13 12:09:55 +00:00
Rhys Perry
967c52097e
aco: workaround LS VGPR initialization bug in RADV prologs
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26111 >
2023-11-13 12:09:53 +00:00
Tatsuyuki Ishi
ad4b82e192
radv: Pre-mask misaligned_mask for VS prolog.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26023 >
2023-11-13 11:47:42 +00:00
Tatsuyuki Ishi
55d21f2f12
radv, aco: Inline struct aco_vs_input_state.
...
Now that we no longer use the radv_vs_input_state pointer, we can simply
inline all the state-related fields.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26023 >
2023-11-13 11:47:42 +00:00
Tatsuyuki Ishi
3fc3a94bce
radv, aco: Rework VS prolog key handling.
...
The main change is to use struct radv_vs_prolog_key directly instead of
the compressed representation to simplify an upcoming rework in prolog /
epilog caching. In doing so the state struct pointer was replaced with
an inline struct.
Care was also taken to pre-mask all the states with the active attribute
mask and other masks when it makes sense; this ensures that we don't
accidentally use information not hashed into the key during compilation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26023 >
2023-11-13 11:47:42 +00:00
Tatsuyuki Ishi
5cc7f54f15
radv: Remove last VS prolog reuse logic.
...
This was broken as the field was never assigned to. This will also be
dropped from the upcoming prolog/epilog lookup rework, as it adds to
code complexity while the benefit of saving one hash table memory access
seems questionable.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26023 >
2023-11-13 11:47:41 +00:00
Tatsuyuki Ishi
d8a5b76307
aco: Replace aco_vs_input_state.divisors with bitfields.
...
Instead of concrete divisor value, we only pass down the information
whether the divisor is zero or nontrivial (>1).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26023 >
2023-11-13 11:47:41 +00:00
Samuel Pitoiset
9b840df9f6
radv: add drirc options to force re-compilation of shaders when needed
...
On Steam Deck, shaders are pre-compiled for better performance (less
stuttering, less CPU usage, etc). But when a compiler fix needs to be
backported, there is currently no way to handle this properly.
This introduces 3 drirc options
radv_override_{graphics,compute,ray_tracing}_shader_version in order to
force the driver to re-compile pipelines when needed. By default, the
shader version is 0 for all pipelines.
When one drirc is set for a specific game, RADV will re-compile all
pipelines only once with the compiler fix included (because the
pipeline key would be different).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26094 >
2023-11-13 10:47:26 +00:00
Mary Guillemard
fe159c85de
zink: Check for VK_EXT_extended_dynamic_state3 before setting A2C
...
Fix crashes for piglit alpha-to-coverage tests when
VK_EXT_extended_dynamic_state3 is not supported (like on Venus)
Fixes: 736577871b ("zink: check for cbuf0 writes before setting A2C")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26003 >
2023-11-13 10:18:54 +00:00
Samuel Pitoiset
88cbe32048
radv: add support for RGP queue events
...
This can be used for analysing queue submissions.
This is still experimental and it can be disabled with
RADV_THREAD_TRACE_QUEUE_EVENT=false if you have issues with it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22779 >
2023-11-13 08:53:10 +00:00
Samuel Pitoiset
33f4307796
radv: add radv_write_timestamp() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22779 >
2023-11-13 08:53:10 +00:00
Samuel Pitoiset
aa75538674
ac/rgp: update dumping queue event records to the capture
...
GPU timestamps are emitted by the GPU to a BO with CPU-access which
means the driver needs to read them back when the submission is done.
Fix this by passing a pointer to that BO, like some other records.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22779 >
2023-11-13 08:53:09 +00:00
Samuel Pitoiset
661d28cfec
radv: restore sampling CPU/GPU clocks before starting SQTT trace
...
This was removed by mistake in "radv/rgp: Use common trace trigger"
and it introduced a regression with RGP queue events.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22779 >
2023-11-13 08:53:09 +00:00
Samuel Pitoiset
55e48d7e0f
radv: enable DGC preprocessing when all push constants are inlined
...
It's not possible when they aren't all inlined because they need to be
copied to the upload BO and the DGC shader also copies the ones that
come from the indirect layout.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25935 >
2023-11-13 08:28:53 +00:00
Samuel Pitoiset
d067413a72
radv: optimize emitting inlined push constants with DGC
...
With DGC, push constants can be set from the cmdbuf (CmdPushConstants())
or from the indirect layout. Instead of always emitting inlined push
constants from the DGC shader, just update the ones that come from the
indirect layout and rely on cmdbuf updates for the other ones.
With that, it should be possible to preprocess push constants with
graphics when all can be inlined in shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25935 >
2023-11-13 08:28:53 +00:00
Samuel Pitoiset
c8140e4c0e
radv: emit individual SET_SH_REG for inlined push constants with DGC
...
This should allow to preprocess if everything is inlined.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25935 >
2023-11-13 08:28:53 +00:00
Samuel Pitoiset
0112a245f5
radv: add a helper to determine if it's possible to preprocess DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25935 >
2023-11-13 08:28:53 +00:00
Iago Toral Quiroga
d04538653b
v3d: implement support for PIPE_CAP_NATIVE_FENCE_FD
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Tested-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20602 >
2023-11-13 06:55:23 +01:00
Mart Raudsepp
a8d6f250d1
docs: Fix typo in OpenGL 3.3 support on Asahi
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26166 >
2023-11-12 23:42:50 +00:00
Rob Clark
4807c1e173
freedreno: Always attach bo to submit
...
Even if app triggers undefined behaviour by using a rsc on multiple
contexts without a flush, we still should attach the bo to the batch.
Fixes: b43e5aec0d ("freedreno/batch: Move submit bo tracking to batch")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26162 >
2023-11-12 23:06:27 +00:00
Rob Clark
3ca5f3bf00
freedreno/drm: Fix mmap leak
...
In the fd_bo_upload() path, we don't want to trigger duplicate mmap's.
Fixes: 53ccb421a2 ("freedreno/drm: Simplify backend mmap impl")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26162 >
2023-11-12 23:06:27 +00:00
Rob Clark
3f3fa5ee0c
freedreno/a6xx: Rework wave input size
...
Rework to match tu.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7464
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26149 >
2023-11-12 19:53:01 +00:00
Rob Clark
a07705def6
freedreno/a6xx: Don't set patch_vertices if no tess
...
Don't pollute the cache key with unused fields to avoid potentially
generating pointless shader variants.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26149 >
2023-11-12 19:53:01 +00:00
antonino
0976dfeca2
nir/zink: drop NIH helper in favor of mesa_vertices_per_prim
...
`lower_pv_mode_vertices_for_prim` and `decomposed_primitive_size` return
the same values as `mesa_vertices_per_prim` for the primitives that can
be used as output in geometry shaders.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26117 >
2023-11-11 10:27:21 +00:00
Eric Engestrom
f4f4d80096
bin/gitlab_gql: only get the pipeline when a pipeline is needed
...
Otherwise, options like --print-merged-yaml are broken when their
commit's push didn't create a pipeline.
Fixes: b87e092489 ("ci/bin: Fix gitlab_gql methods that uses needs DAG")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26142 >
2023-11-11 06:19:44 +00:00
Tatsuyuki Ishi
325d650c6e
radv: Use sizeof(flags) instead of hardcoded size in radv_hash_shaders.
...
For consistency.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26145 >
2023-11-11 05:26:27 +00:00
Tatsuyuki Ishi
ef414a8231
radv: Fix mis-sizing of pipeline_flags in radv_hash_rt_shaders.
...
pipeline_flags was 64-bit yet only the first 4 bytes were hashed.
Luckily, the mask included no flag above the 32nd bit, so this was
technically working fine. Still, it's better to use explicit sizeof
constructs to be more resilient to accidental type changes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26145 >
2023-11-11 05:26:26 +00:00
Qiang Yu
768c5934d0
radeonsi: fix piglit image coherency test when use aco
...
spec@arb_shader_image_load_store@coherency will write to coherent
image in tess shader and read it in fragmant shader. There is a
geometry shader in between.
When lower ngg for the geometry shader, it will wait memory writes
before pos0 export if there's no param output to prevent fragment
shader start early and read any previous memory writes.
We need to update the memory writes info of GS with ES ones because
ES and GS is merged into one shader but when nir they are separated.
LLVM does not have this problem because it will add memory write
wait at the beginning of GS automatically.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26122 >
2023-11-11 03:55:22 +00:00
Phillip Pearson
7dcca9d0ef
radeonsi: use PRIu64 instead of %lu for uint64_t formatting
...
This unbreaks 32-bit builds (i386 and armhf).
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26083 >
2023-11-11 00:07:43 +00:00
Marek Olšák
aff7df717d
radeonsi/ci: update failures for gfx103
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25941 >
2023-11-10 18:03:57 -05:00
Marek Olšák
09c513a31a
radeonsi: don't dma-upload shaders on APUs
...
We don't have VRAM on APUs, so it's useless.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25941 >
2023-11-10 18:03:57 -05:00
Marek Olšák
3f108e7615
radeonsi/gfx11: don't set OREO_MODE to fix rare corruption
...
This is recommended by hw people.
Fixes: 19a59f05a4 - radeonsi/gfx11: program db render control register
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25941 >
2023-11-10 18:03:57 -05:00
Marek Olšák
2ac6816b70
radeonsi/gfx11: use SET_CONTEXT_REG_PAIRS_PACKED for other states
...
It's used where registers are non-contiguous.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25941 >
2023-11-10 18:03:57 -05:00
Marek Olšák
9579503bef
radeonsi: adjust the total viewport area
...
I think these are the correct numbers.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25941 >
2023-11-10 18:03:57 -05:00
Faith Ekstrand
3af5af429e
nir: Optimize boolean ieq/ine with an immediate
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26120 >
2023-11-10 21:46:55 +00:00
antonino
2d49f834b2
vulkan: use instance allocator for object_name in some objects
...
The allocator passed to VkDevice won't be available once it is destroyed
and thefore it cannot be used to allocate `object_name` for instance
level objects such as `VkInstance` or `VkPhysicalDevice` or else there
would be no way of deallocating it when those objects are destroyed.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26085 >
2023-11-10 20:57:19 +00:00
Caio Oliveira
fcd025c1ce
intel/compiler: Remove is_tex()
...
The current name doesn't cover all the tex related instructions and
in all usages, we already have a switch statement to dispatch
per instruction type, so is more natural to list the instructions we
care there.
In fs::is_send_from_grf() we can simply ignore them since the
instructions are either lowered directly to SEND (Gfx7+) or use
MRF (Gfx6-).
With this change, the fs_inst::size_read() generated code gets
simplified (the "tex" entries get added to the switch jump table
in gcc) and the default case loses the conditional handling tex.
This reduces shader compilation time, as illustrated by replaying
fossils (tested on my TGL laptop):
```
// Rise of the Tomb Raider (N=13)
Difference at 95.0% confidence
-1.32231 +/- 0.0170138
-4.37605% +/- 0.0563054%
(Student's t, pooled s = 0.0210159)
// Cyberpunk 2077 (N=7)
Difference at 95.0% confidence
-3.64 +/- 0.114993
-2.95188% +/- 0.0932544%
(Student's t, pooled s = 0.09873)
```
Suggested-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25721 >
2023-11-10 15:43:31 +00:00
Molly Sophia
424df6a68d
tu: Fix KHR_present_id and KHR_present_wait being used without initialization
...
KHR_present_id and KHR_present_wait were set in get_device_extensions() but uninitialized
in tu_get_features(). This causes presentId and presentWait to be false at all times. Fix it.
Signed-off-by: Molly Sophia <mollysophia379@gmail.com >
Co-Authored-By: Xilin Wu <wuxilin123@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26097 >
2023-11-10 14:13:06 +00:00
Roman Stratiienko
56451ce773
v3d: Don't implicitly clear the content of the imported buffer
...
v3d driver will implicitly clear the buffer's content on the first write
operation. This clearing operation is helpful for allocated buffers,
initializing them with zeros instead of having memory garbage.
Also, this avoids reading the buffer from the RAM to the GPU cache
before rendering, making the first write operation slightly faster.
The clearing operation should not happen for imported buffers where
the buffer may already contain valuable data and the user may want
to render into the buffer only partially.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26136 >
2023-11-10 11:16:53 +00:00
Eric Engestrom
656afd8ede
bin/gitlab_gql: fix command in example
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26141 >
2023-11-10 10:37:07 +00:00
Eric Engestrom
2cf031155b
gitlab_gql: make --rev optional, defaulting to HEAD
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26073 >
2023-11-10 10:05:46 +00:00
Eric Engestrom
cc37af8fbc
bin/gitlab_gql: resolve sha locally to be able to use things like HEAD
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26073 >
2023-11-10 10:05:46 +00:00
Martin Roukala (né Peres)
781e1a34cf
radv/ci: fix vkcts-navi21-valve execution
...
Fixes: 5e44cee47d ("ci: inject gfx-ci/linux S3 artifacts without rebuilding containers")
Suggested-by: David Heidelberg <david.heidelberg@collabora.com >
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26134 >
2023-11-10 04:37:56 +00:00
Mauro Rossi
05fb6b9c7d
Android.mk: be able to build radeonsi without llvm
...
Android.mk rules for radeonsi are updated according to commit
0a56417 "meson: be able to build radeonsi without llvm"
cflag -DFORCE_BUILD_AMDGPU is required when building radeonsi with llvm support
based on android-x86 downstream LLVM fork that follows the AOSP llvm build rules.
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26049 >
2023-11-10 01:28:16 +01:00
Connor Abbott
04ffef15da
ir3/ra: Don't swap killed sources for early-clobber destination
...
We have an optimization to try to swap regular live intervals with
killed sources when evicting them fails in order to make a contiguous
space for the destination to fit in, but this doesn't work when the
destination is early-clobber.
Fixes
dEQP-GLES31.functional.synchronization.inter_invocation.image_atomic_read_write
on a650+.
Fixes: d4b5d2a ("ir3/ra: Use killed sources in register eviction")
Closes : #8886
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26004 >
2023-11-09 21:27:10 +00:00
Eric Engestrom
aba837ef71
radv+zink/ci: add navi10 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26135 >
2023-11-09 20:59:36 +00:00
Eric Engestrom
5819e0a527
radv+zink/ci: add polaris10 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26135 >
2023-11-09 20:59:36 +00:00
Eric Engestrom
37c7ffb958
radv/ci: add polaris10 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26135 >
2023-11-09 20:59:36 +00:00
Eric Engestrom
3af19432e9
radv/ci: add vega10 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26135 >
2023-11-09 20:59:36 +00:00
Eric Engestrom
d42d2ee3a5
radv/ci: add navi21 flakes
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26135 >
2023-11-09 20:59:36 +00:00
Lionel Landwerlin
d4499c4cb2
isl: disable MCS compression on R9G9B9E5
...
Not supported according to the docs and will trigger an assert
isl_get_render_compression_format().
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26112 >
2023-11-09 20:20:43 +00:00
Tele42
631dc5b5e6
drirc: enable vk_wsi_force_swapchain_to_current_extent for "The Talos Principle VR"
...
The Talos Principle VR shares the same engine quirk as its non-VR counterpart.
Backport-to: 23.2
Backport-to: 23.3
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26047 >
2023-11-09 19:42:07 +00:00
Connor Abbott
29400a56d5
tu: Fix getting VkDescriptorSetVariableDescriptorCountLayoutSupport
...
Fix the same mistake that 882fd3c5 fixed which we inherited from radv.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26069 >
2023-11-09 19:06:04 +00:00
Paulo Zanoni
17e135d3d4
vulkan: fix potential memory leak in create_rect_list_pipeline()
...
I was playing around with possible improvements to STACK_ARRAY(), and
one of my experiments made gcc point us that we were not freeing
'stages'.
Fixes: 514c10344e ("vulkan/meta: Add a concept of rect pipelines")
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26041 >
2023-11-09 18:22:36 +00:00
David Heidelberg
7d85656fa7
ci: tag sanity, rustfmt and clang-format job as a "placeholder" job
...
There is close to zero work needed to execute this job.
Should speed up the initial process of entering into pipeline tree
and also provide an opportunity for `aarch64` runners to engage sooner,
even when x86_64 machines are loaded.
Acked-by: Daniel Stone <daniels@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26125 >
2023-11-09 17:30:07 +00:00
David Heidelberg
b89467b1a5
gitlab: make commit more commit-like formatted
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26125 >
2023-11-09 17:30:07 +00:00
Dave Stevenson
4b9e80a925
gallium: Add udl (DisplayLink) to the list of kmsro drivers
...
The udl is a simple render only driver, so configure it
appropriately in gallium.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26129 >
2023-11-09 16:57:08 +00:00
Dave Stevenson
720c829341
gallium: Add more TinyDRM drivers to the list of kmsro drivers
...
As a follow-up to
8cfc17bdda ("kmsro: Add the rest of the current set of tinydrm drivers.")
and
0a42d5b98b ("kmsro: add _dri.so to two of the kmsro drivers.")
add even more TinyDRM drivers that have been added to the kernel but not
to gallium.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26129 >
2023-11-09 16:57:08 +00:00
Connor Abbott
b380363938
tu: Make sure copies to half-float formats are bit exact
...
We previously used the 2d path for single-sampled copies which seems to
canonicalize NaNs when the source format is a 16-bit floating point
format, likely because it implicitly converts to 32 bits. The current 3d
path also implicitly converts and has the same problem. Add a new shader
variant for half-float copies and switch to using it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26042 >
2023-11-09 16:24:45 +00:00
Danylo Piliaiev
3d3176aa17
tu/a7xx: Fix occlusion queries on pre-A740 GPUs
...
CP_EVENT_WRITE7::WRITE_SAMPLE_COUNT is supported only starting from
a740, previous GPUs use RB_SAMPLE_COUNT_ADDR.
See: https://github.com/yuzu-emu/yuzu/issues/11958
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26124 >
2023-11-09 15:36:37 +00:00
Eric Engestrom
cca5a4191d
ci: disable lima farm as it appears to be down
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26132 >
2023-11-09 15:32:32 +00:00
Connor Abbott
8e7df505fc
tu: Fix order of rasterizer_discard check
...
Don't check the rasterization state if it might be NULL.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26076 >
2023-11-09 15:41:32 +01:00
Connor Abbott
40e74ed5d3
tu: Assume no raster-order attachment access with NULL DS/blend state
...
The spec isn't explicit on this point, but I believe the intent is that
if the state is NULL then we're supposed to behave as-if the flags field
is 0.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26076 >
2023-11-09 15:41:32 +01:00
José Roberto de Souza
236da520f4
intel/common/xe: Re implement xe_gem_read_render_timestamp() with xe_gem_read_correlate_cpu_gpu_timestamp()
...
With the removal of DRM_IOCTL_XE_MMIO xe_gem_read_render_timestamp()
was always returning false but with DRM_XE_DEVICE_QUERY_ENGINE_CYCLES
it can be re implemented making use of
xe_gem_read_correlate_cpu_gpu_timestamp().
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24591 >
2023-11-09 13:22:49 +00:00
Lionel Landwerlin
feae70f608
intel/ds: use improved timestamp correlation if available
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24591 >
2023-11-09 13:22:49 +00:00
Lionel Landwerlin
b2bf141b6a
perfetto/pps-producer: add optimized cpu/gpu timestamp correlation support
...
The Intel Xe driver added the ability to do cpu/gpu timestamp
correlation giving a much better alignment of timestamps (we use to
have ~20us delta between the 2 samples, just because of the ioctl
barrier potentially sneaking in some work).
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24591 >
2023-11-09 13:22:48 +00:00
José Roberto de Souza
fdec724bd1
anv: Make use of intel_gem_read_correlate_cpu_gpu_timestamp()
...
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/24591 >
2023-11-09 13:22:48 +00:00
José Roberto de Souza
01aafa14d4
anv: Reduce ifdefs in anv_GetCalibratedTimestampsEXT()
...
Add anv_get_default_cpu_clock_id() to return the default cpu clock
id to be used in the begin and end time captures of
anv_GetCalibratedTimestampsEXT().
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/24591 >
2023-11-09 13:22:48 +00:00
José Roberto de Souza
ae0df368a8
intel/common: Add intel_gem_read_correlate_cpu_gpu_timestamp()
...
This function will make use of Xe DRM_XE_DEVICE_QUERY_ENGINE_CYCLES by
returning correlate CPU ang GPU timestamp to be used by Intel drives.
This correlate timestamps gives us more accuracy.
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/24591 >
2023-11-09 13:22:48 +00:00
Eric Engestrom
b6dbbd3ff7
radeonsi/ci: document new failures and flakes
...
These seem to have appeared between cd0a01522f and 106acbbed9
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26126 >
2023-11-09 11:14:14 +00:00
Friedrich Vock
02942d6e7e
aco: Update printed block kinds
...
Two were missing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26103 >
2023-11-09 09:58:28 +00:00
Francisco Jerez
073b876539
intel/fs/xe2+: Don't special case SEL_EXEC in inferred_exec_pipe().
...
This is lowered to 32-bit integer execution type by the regioning
lowering pass now, so the existing special casing is redudant for
Gfx12 and buggy for Xe2+, since SEL_EXEC is now emitted without
lowering for 64-bit integers.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:17:42 -08:00
Francisco Jerez
23e14a6c27
intel/eu/xe2+: Add definition for size of GRF space on Xe2.
...
And use it in various places in the compiler that require knowledge
about the size of the register file.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:17:24 -08:00
Francisco Jerez
ff3814abdd
intel/fs/xe2+: Handle extended math instructions as in-order in SWSB pass.
...
Extended math instructions are now synchronized as in-order
instructions like other ALU operations, which is more efficient than
the out-of-order tracking we had to do in previous generations, and
avoids false dependencies introduced due to SBID aliasing.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:17:12 -08:00
Francisco Jerez
5fb6760f11
intel/fs/xe2+: Teach SWSB pass about the behavior of double precision instructions.
...
Xe2 hardware has a "long" EU pipeline specifically for FP64
instructions, so these are handled as in-order instructions which
require RegDist synchronization. 64-bit integer instructions are now
handled by the normal integer pipeline, so the existing special-casing
inherited from ATS needs to be disabled.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:17:03 -08:00
Francisco Jerez
9e446c9282
intel/fs/xe2+: Add comment reminding us to take advantage of the 32 SBID tokens.
...
The additional SBID tokens will be useful when large GRF mode is implemented.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:16:54 -08:00
Francisco Jerez
15d6c6ab11
intel/eu/xe2+: Add support for 10-bit SWSB representation on Xe2+ platforms.
...
This implements the extended 10-bit encoding of the software
scoreboard information used by Xe2 platforms. The new encoding is
different enough that there are few opportunities for sharing code
during translation to machine code, but the high-level tgl_swsb
representation remains roughly the same.
Among other changes the 10-bit SWSB format provides 5 bits worth of
SBID tokens (though they're only usable in large GRF mode) instead of
4 bits, the extended math pipeline is handled as an in-order (RegDist)
pipeline instead of as an out-of-order one, and the dual-argument
encodings support additional combinations of RegDist and SBID
synchronization modes. A new encoding is introduced for preventing
the accumulator hardware scoreboard from being updated, but this is
currently not needed.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25514 >
2023-11-08 23:12:32 -08:00
Caio Oliveira
40416850f1
intel/compiler: Re-enable opt_zero_samples() in many cases for Gfx12.5
...
The workaround applies specifically to Cube and Cube Arrays, so we can
still apply the optimization for the others.
Ideally we would like to pull opt_zero_samples logic into the lowering
sends -- to avoid adding a bit to communicate between passes. However
the texture coordinates for the LOGICAL backend instructions, which
are a common target for the optimization, are combined into offsets over
a single VGRF, so we can't easily identify the constant cases. The
copy-prop pass make this more visible for opt_zero_samples.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25742 >
2023-11-09 03:56:28 +00:00
Caio Oliveira
daeab51a62
intel/compiler: Re-enable opt_zero_samples() for Gfx7+
...
Inadvertently, because of a sequence of changes elsewhere, this pass
ended up not having any effect:
- Before Gfx5 the optimization is not applicable.
- On Gfx5-6 it doesn't apply because it sampler operations don't
currently use LOAD_PAYLOAD, but write the MOVs directly. Not clear to
me whether they ever did.
- On Gfx7+ it doesn't apply anymore because now the logical sampler
operations are now lowered directly to SENDs, and the is_tex() check
would skip them.
Since the LOAD_PAYLOAD implementation applies for Gfx7+ only, rework the
pass to work again by handling SEND instructions. To make the pass
easier, the optimization will happen before opt_split_sends() so only
one LOAD_PAYLOAD needs to be cared for.
Update the code to accept BAD_FILE sources in addition to zeros, these
are added in some cases as padding and effectively are don't care
values, so we can assume them zeros.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25742 >
2023-11-09 03:56:28 +00:00
Caio Oliveira
ef8553082e
intel/compiler: Rework opt_split_sends to not rely/modify LOAD_PAYLOAD
...
This is a preparation to (re-)enable opt_zero_samples(), which will reduce
a SEND mlen before we split it. When that happen, opt_split_sends()
won't be able to rely on the fact that mlen covers the entire
LOAD_PAYLOAD.
Since we are changing that, take the opportunity to also not modify the
existing LOAD_PAYLOAD, just create two new ones with the exact set of
sources. This allows the pass to be further simplified by iterating
forward and not require live_variables analysis.
The helper function was added so can be used later for
opt_zero_samples().
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25742 >
2023-11-09 03:56:28 +00:00
Caio Oliveira
e017bcae59
intel/compiler: Clarify the asserts in nir_load_workgroup_id lowering
...
For Task/Mesh WorkgroupID is now lowered to WorkgroupIndex by the
generic NIR pass, so we shouldn't hit this. We can now simplify the
asserting code in emit_work_group_id_setup().
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25977 >
2023-11-08 17:18:36 -08:00
David Heidelberg
534323f2af
ci/zink: disable nheko trace, as it sometimes crashes
...
See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10099
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26119 >
2023-11-09 00:28:59 +01:00
Rob Clark
fa7ec4226b
Revert "ci/freedreno: disable antichambers trace"
...
This reverts commit f562e37c93 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26086 >
2023-11-08 22:27:00 +00:00
Rob Clark
b1fc5390c6
freedreno/a6xx: Fix antichamber trace replay assert
...
This app is generating viewports with scale[0]==0, so that is not a good
condition for testing viewport validity. It would result in skipping
the only viewport, and ending up with gb x/y being ~0. Triggering an
assert in the register builder.
The main reason this was done previously was to avoid an assert in
fd_calc_guardband(). Lets just flip it around and return 0x1ff on
errors instead of asserting. This also makes it more consistent with
the other error cases.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7628
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26086 >
2023-11-08 22:27:00 +00:00
Georg Lehmann
b33aa7b01a
aco: don't CSE v_permlane across exec
...
With bc=1 and fi=0 it needs to return 0 for inactive lanes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26045 >
2023-11-08 22:02:20 +00:00
Rob Clark
a9bdf58c36
freedreno/a6xx: Assume MOD_INVALID imports are linear
...
Without !25945 we must assume imports with invalid modifier are linear.
When both sides support metadata, we can promote the modifier.
Fixes: 33de58154f ("freedreno: Handle DRM_FORMAT_MOD_QCOM_TILED3 import")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26115 >
2023-11-08 19:12:47 +00:00
Caio Oliveira
f4601d82c1
intel/compiler: Remove unused parameter from brw_nir_analyze_ubo_ranges()
...
This parameter was used by i965 driver that is now gone.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25986 >
2023-11-08 18:10:31 +00:00
Caio Oliveira
d2125dac85
intel/compiler: Take more precise params in brw_nir_optimize()
...
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25986 >
2023-11-08 18:10:31 +00:00
Caio Oliveira
c4be90b4ba
intel/compiler: Remove unused parameter from brw_nir_adjust_payload()
...
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25986 >
2023-11-08 18:10:31 +00:00
Rohan Garg
a77ea9555a
blorp: WA 16014538804 for DG2, MTL A0
...
Send empty/dummy PIPE_CONTROL after every third 3DPRIMITIVE command.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039 >
2023-11-08 11:00:55 +00:00
Rohan Garg
de6653dc5d
anv: WA 16014538804 for DG2, MTL A0
...
Send empty/dummy PIPE_CONTROL after every third 3DPRIMITIVE command.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039 >
2023-11-08 11:00:55 +00:00
Rohan Garg
1da1bcd038
iris: pull WA 22014412737 into emit_3dprimitive_was
...
Consolidate 3DPRIMITIVE WA's into a single function for iris
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039 >
2023-11-08 11:00:55 +00:00
Rohan Garg
8ce3b99bc1
iris: Wa 16014538804 for DG2, MTL A0
...
Send empty/dummy PIPE_CONTROL after every third 3DPRIMITIVE command.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039 >
2023-11-08 11:00:55 +00:00
Rohan Garg
1b03acb26b
blorp,anv,iris: refactor blorp functions into something more generic
...
Refactor some of the blorp code into something more generic that we can
reuse for functionality needed post 3DPRIMITIVE emission.
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039 >
2023-11-08 11:00:54 +00:00
Rhys Perry
09eb6e3106
aco/tests: fix tests with LLVM 18
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26092 >
2023-11-08 10:40:17 +00:00
Rhys Perry
e4d9f6fb50
aco/tests: fix tests with LLVM 17
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10106
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26092 >
2023-11-08 10:40:17 +00:00
Tatsuyuki Ishi
9f7e57ce98
fast_urem_by_const: #ifdef DEBUG an assertion.
...
util_fast_urem32 is used in the hot path of hashmap lookups and this
asserts causes noticeable overhead. The correctness of this code should
be well exercised both from testing and mathematical proofs, so gate
this assertion behind #ifdef DEBUG.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14168 >
2023-11-08 07:41:00 +00:00
Samuel Pitoiset
c2e6569b46
ci: re-apply two mesh/task query fixes for VKCTS
...
These are needed by RADV to enable mesh/task shader queries.
My last attempt was broken, for obscur reasons I used invalid hashes
and the dEQP build script didn't reject them. Hopefully now it should
fail if a hash is invalid.
The dEQP list changes introduced even more failures with some drivers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26079 >
2023-11-08 07:02:27 +00:00
Guilherme Gallo
f8b8352022
ci/bin: Print a summary list of dependency and target jobs
...
We already print all the detected target jobs from regex and its
dependencies. But for more complex regexes the list can be cumbersome,
and an aggregate list of dependencies and targets can be more value, so
add these prints as well.
This is what looks like:
```
Running 10 dependency jobs:
alpine/x86_64_lava_ssh_client, clang-format, debian-arm64,
debian-testing, debian/arm64_build, debian/x86_64_build,
debian/x86_64_build-base, kernel+rootfs_arm64, kernel+rootfs_x86_64,
rustfmt
Running 15 target jobs:
a618_gl 1/4, a660_gl 1/2, intel-tgl-skqp, iris-amly-egl, iris-apl-deqp
1/3, iris-cml-deqp 1/4, iris-glk-deqp 1/2, iris-kbl-deqp 1/3,
lima-mali450-deqp:arm64, lima-mali450-piglit:arm64 1/2,
panfrost-g52-gl:arm64 1/3, panfrost-g72-gl:arm64 1/3,
panfrost-t720-gles2:arm64, panfrost-t860-egl:arm64, zink-anv-tgl
```
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
e74238af42
ci/bin: Fix mypy errors in gitlab_gql.py
...
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
b87e092489
ci/bin: Fix gitlab_gql methods that uses needs DAG
...
Some gitlab_gql.py features like `--print-dag` were affected by recent
changes. Update those functions with the refactored data.
Fixes: c7b67d8619
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
278fc1c22a
ci/bin: gql: Improve queries for jobs/stages retrieval
...
Modify the GraphQL query used to fetch all jobs within a pipeline,
transitioning from fetching data via stage nodes to a direct job
retrieval approach.
The prior method was not paginated, potentially overloading the server
and complicating result parsing due to the structure of stage nodes. The
new approach simplifies data interpretation and handles job lists
exceeding 100 elements by implementing pagination with helper functions
to concatenate paginated results.
- Transitioned from extracting jobs from stage nodes to a direct query
for all jobs in the pipeline, improving data readability and server
performance.
- With the enhanced data clarity from the updated query, removed the
Dag+JobMetadata tuple as it's now redundant. The refined query
provides a more comprehensive job data including job name, stage, and
dependencies.
- The previous graph query relied on a graph node that will (or should)
be paginated anyway.
Closes : #10050
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
664e6addea
ci/bin: gql: Implement pagination
...
Make query support pagination by supplying the paginated key.
In the following toy example, the paginated key is:
["levels", "cars"]
```graphql
query vehicle_store($location: ID!) {
levels {
cars {
pageInfo {
hasNextPage
endCursor
}
...
}
}
}
```
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
c4b8c03012
ci/bin: gql: Log the caching errors
...
When using cache and it fails, log the errors, clear the cache and retry
the query bypassing the cache
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
aa2586b315
ci/bin: gql: make the query cache optional
...
Make the caching optional, as it can fail in some complex queries where
the transport middleware uses non-pickle-able objects.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
609b4bfef8
ci/bin: Replace AIOHTTPTransport with RequestsHTTPTransport
...
For some reason AIOHTTPTransport started to use MultiDict after doing
some adjustments in the GraphQL query, which made `filecache` fail
because MultiDict object are not pickle-able.
Changing the transport strategy from AIOHTTPTransport to
RequestsHTTPTransport, which dropped one requirement. We aren't doing
async anyway, all the calls were sync before.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
Guilherme Gallo
46b033a9bf
ci/bin: Fix find_dependency function calls
...
`find_dependency` signature changed, so we need to update their callings
correctly.
Fixes: 94655ff811
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25940 >
2023-11-08 02:18:17 +00:00
José Roberto de Souza
533082f384
iris: Add iris_bufmgr_get_pat_entry_for_bo_flags()
...
Next patches will make of intel_device_info_pat_entry parameters other
than index, so here adding a function to return it.
While at it also renaming and adjusting parameter of
iris_pat_index_for_bo_flags() to match other functions in
iris_bufmgr.c/h.
No changes in behavior expected here.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
f25043feb4
anv: Remove anv_bo flags that can be inferred from alloc_flags
...
Now that alloc_flags is stored in anv_bo we can get rid of is_external,
has_fixed_address and has_client_visible_address flags that can
be inferred from alloc_flags.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
7bdfabb641
anv: Calculate mmap mode based on alloc_flags
...
When anv_device_map_bo() is called from anv_device_alloc_bo() it gets
VkMemoryPropertyFlags set to 0 so it ends up with a write-combine
caching for integrated platforms with LLC, see 'if (!(property_flags &
VK_MEMORY_PROPERTY_HOST_CACHED_BIT)))'.
Current approach also has issues when mapping with anv_MapMemory2KHR()
as it would not have information to know that BO is a scanout.
It was also not properly calculating mmap mode for platforms with PAT
uAPI before "anv: Change default PAT entry to WC".
So here storing alloc_flags to anv_bo so there is no mismatches
between different code paths then using it to properly
calculate the mmap mode.
alloc_flags in anv_bo will also be used to calculate PAT index in
future patches.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
58301c00da
anv: Change default PAT entry to WC
...
i915 mmap_calc_flags() is calculating WC caching for all MTL memory
types.
It will be fixed in the next patch but doing so causes tests to
fail due to incoherency in BOs not allocated with
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.
So here switching the default/non-coherent BO allocation to a WC
PAT entry.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
ccde1dc18e
anv: Move PAT entry selection to common code
...
PAT entry will be needed to calculate mmap mode and also will be
used during BO creating in Xe KMD when PAT uAPi lands.
So here moving the PAT entry selection to common code.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
66dce74d74
anv: Honor memory coherency of the memory type selected
...
Integrated GPUs almost always works with write-back caching(only
scanout and external bos works in write-combine) but in platforms
without LLC the coherency is broken if not explict asked to KMD.
vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges()
don't do any flushing or invalidate for memory allocated with
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT.
So if an application asked for a memory coherent, the
ANV_BO_ALLOC_SNOOPED flag needs to be set in alloc_flags and that
will be passed to KMD backends to properly ask to KMD for coherent
buffer.
The other chunk here removes the assert(alloc_flags & ANV_BO_ALLOC_MAPPED),
that is needed otherwise application can't ask for a coherent and
mapped memory.
Tried to find a reason for that assert in git history but did not
found what was the reasoning of this assert.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
740e596c62
intel: Add a write combining PAT entry
...
Iris and ANV will need to switch to this PAT entry for BOs without
special needs.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
0d668f50dc
intel: Update MTL scanout PAT entry
...
Previous integrated platforms had GT and Display caches not coherent
and there is nothing proven that it changed in MTL, so here
changing the PAT entry for scanout bos.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
29d4d26406
intel: Add more information about the PAT entry used
...
mmap mode information will be used to properly calculate the mmap flags
in the i915 mmap uAPI and also will be used for BO creation when the
PAT uAPI lands in Xe KMD.
Xe KMD will also require the coherency mode during the BO creation.
So to avoid information duplication, adding this information to
intel_device_info platform entries.
No changes in behavior here.
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/26099 >
2023-11-08 01:20:42 +00:00
José Roberto de Souza
72ba0677f8
anv: Add missing ANV_BO_ALLOC_EXTERNAL flags when calling anv_device_import_bo()
...
This flag is required to properly calculate the PAT index of the
imported BO.
Cc: mesa-stable
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/26099 >
2023-11-08 01:20:42 +00:00
Corentin Noël
f4ed92a823
frontends/va: Remove wrong use of ProfileToPipe
...
The `context->templat.profile` variable is already of enum pipe_video_profile.
Fixes: 0996ec3fc6 ("frontends/va: Add profile param when querying PIPE_VIDEO_CAP_ENC_QUALITY_LEVEL")
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26067 >
2023-11-08 00:14:11 +00:00
Corentin Noël
8e196214a0
mesa: Use a switch for state_iter and be more precise about its type
...
Even if this technically won't change anything, it prevents a false-positive of
uninitialized use of variables with clang.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26067 >
2023-11-08 00:14:11 +00:00
Corentin Noël
9c78a3f5ae
gallivm/lp_bld_nir_aos: Use TGSI instead of PIPE enum
...
Use the value from the correct enumeration.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26067 >
2023-11-08 00:14:11 +00:00
Corentin Noël
91761006f6
gallivm: Initialize indir_index to NULL before use
...
In the case `if (var)` is false, the value will still be used but uninitialized.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26067 >
2023-11-08 00:14:11 +00:00
Corentin Noël
5f2f75aa67
mesa/ffvs: Use gl_state_index16 in helpers directly
...
register_state_var will have to convert everything to gl_state_index16 and the
values given to it are already either gl_state_index or any short integer which
are covered by the gl_state_index16 type.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26067 >
2023-11-08 00:14:11 +00:00
Jesse Natalie
e61287888d
d3d12: GL4.3
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26108 >
2023-11-07 23:56:23 +00:00
Sagar Ghuge
2a9f8a256a
isl: Enable MCS compression on ACM platform
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26043 >
2023-11-07 23:00:18 +00:00
Sagar Ghuge
4de0264010
iris: Disable CCS compression on top of MSAA compression on ACM
...
We need to manually resolve the CCS surface when it's available along
with the MSAA compression, currently we don't handle that so disable the
CCS compression for now.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26043 >
2023-11-07 23:00:18 +00:00
Sagar Ghuge
e71a9e14f7
iris: Disable auxiliary buffer if MSRT is bound as texture
...
This change introduce the full resolve of MCS data by copying compressed
surface to uncompressed surface and also disables the auxiliary buffer
if MSRT is bound as texture on ACM platform.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26043 >
2023-11-07 23:00:18 +00:00
Jesse Natalie
ba5c4da5da
d3d12: Use format casting for shader images
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
438be4f9a0
d3d12: Support ARB_texture_view
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
56589cb02c
d3d12: Change memory barrier implementation
...
Normally, we insert barriers automatically based on bind points. If
a resource is bound as both a shader image/SSBO (UAV) and other read-only
bind points, we'll choose the UAV state. This behavior is modified by
the memory barrier API - if the memory barrier indicates that a read
is desired, previously, we would've just not put any barriers to UAV
states. Now, we just use that state to disambiguate between read states
vs write states for a resource that's bound as both.
This turns out to be problematic in some circumstances, e.g.:
* PBO download, which does a memory barrier afterwards, since it uses
shader images to write, and those might be accessed immediately as
a texture afterwards.
* A user-issued draw that writes to a SSBO. This should indicate in the
state tracker that the SSBO is in the UAV state.
* Some other op, like a copy, that writes to the SSBO.
Before, the "pending memory barrier" state would cause the user draw to
not be put in the UAV state, which means that the copy wouldn't issue a
barrier *out* of the UAV state, resulting in the copy being unsynchronized.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
3e36be7afe
d3d12: Binding buffers as SSBO/storage image needs to add buffer ranges
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
a3899c4530
d3d12: Add a fallback for int clears where value can't be cast to float
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
a07bdf0152
d3d12: Initialize shader key swizzle for non-int textures
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
8d04efcc67
d3d12: Disable common state promotion for non-simultaneous-access textures
...
Work around a debug layer crash when mixing enhanced barrier layout with
non-enhanced barrier states.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:20 +00:00
Jesse Natalie
405dead1b7
microsoft/compiler: Set src/dest nir types on image intrinsics when deducing format
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26104 >
2023-11-07 22:31:19 +00:00
Rhys Perry
2011b678c5
radv: disable gs_fast_launch=2 by default
...
This currently causes severe performance problems in Remnant 2 and
Alan Wake 2.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: 28ebe62af2 ("radv: enable mesh shader gs_fast_launch=2 and multi-row export")
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10071
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26090 >
2023-11-07 19:54:47 +00:00
Marek Olšák
6a31c7a841
radeonsi: move SPI_SHADER_IDX_FORMAT into the preamble (it's immutable)
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
15293217e2
radeonsi: remove num_params variable from gfx10_shader_ngg
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
8edb0c7038
radeonsi: move emitting VGT_TF_PARAM into gfx10_emit_shader_ngg
...
so that it's next to other registers instead of separated
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
870568b512
radeonsi: prettify code around PA_SC_LINE_STIPPLE
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
02f52bbca0
radeonsi: cosmetic changes in si_emit_db_render_state
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
34b68c9017
radeonsi: don't check DCC compatibility on chips where it's no-op
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
ba6595e41f
radeonsi: don't call nir_lower_compute_system_values too many times
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
6725edbd2a
radeonsi/gfx11: use PKT3_SET_CONTEXT_REG_PAIRS_PACKED for PM4 states
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
308d3ad5c2
radeonsi: restructure blocks in si_emit_graphics_{shader,compute}_pointers
...
Make "if (sctx->screen->info.has_set_sh_pairs_packed) {" the outermost
condition instead of the innermost.
si_emit_consecutive_shader_pointers is split into:
- si_emit_consecutive_shader_pointers
- gfx11_push_consecutive_shader_pointers
si_emit_global_shader_pointers is split into:
- si_emit_global_shader_pointers
- gfx11_push_global_shader_pointers
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
7ead9c4bb1
radeonsi: restructure blocks in si_setup_nir_user_data
...
From:
if (sel->info.uses_grid_size) {
if (sctx->screen->info.has_set_sh_pairs_packed) ...
... else ...
}
if (sel->info.uses_variable_block_size) {
if (sctx->screen->info.has_set_sh_pairs_packed) ...
... else ...
}
if (sel->info.base.cs.user_data_components_amd) {
if (sctx->screen->info.has_set_sh_pairs_packed) ...
... else ...
}
To:
if (sctx->screen->info.has_set_sh_pairs_packed) {
if (sel->info.uses_grid_size) ...
if (sel->info.uses_variable_block_size) ...
if (sel->info.base.cs.user_data_components_amd) ...
} else {
if (sel->info.uses_grid_size) ...
if (sel->info.uses_variable_block_size) ...
if (sel->info.base.cs.user_data_components_amd) ...
}
si_cp_copy_data is moved to the beginning because it's shared.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
d26568a675
radeonsi: rewrite gfx11_*push*_sh_reg helpers
...
to allow reusing the macros for context registers later.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
ac22440859
radeonsi: rename radeon_*push_*_sh_reg -> gfx11_*push_*_sh_reg
...
Those will only be used by gfx11.x.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
4659d0dcc2
radeonsi: rename HAS_PAIRS -> HAS_SH_PAIRS_PACKED
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
626e1a01b0
radeonsi: move buffered_xx_regs into a substructure
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
df87c593f8
radeonsi: rewrite PM4 packet building helpers with less duplication
...
First, the following universal helpers are defined:
- radeon_set_reg_seq
- radeon_set_reg
- radeon_opt_set_reg
- radeon_opt_set_reg2
- radeon_opt_set_reg3
- radeon_opt_set_reg4
- radeon_opt_set_reg5
- radeon_opt_set_regn
- gfx11_push_sh_reg
- gfx11_opt_push_sh_reg
Then the config, context, sh, uconfig, push_gfx and push_compute helpers
are implemented calling the above.
A lot of macros were receiving sctx via a parameter, which is changed to
use sctx directly in the macro (and the parameter is renamed to "_unused").
The only functional change is that the perfctr registers that incorrectly
set the predicate bit now correctly set the RESET_FILTER_CAM bit.
The helpers no longer check info.uses_kernel_cu_mask.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
65753fa2f9
radeonsi: upload shaders using a compute queue instead of gfx
...
Use the original context flags when we re-create the aux contexts.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
0c773325bb
radeonsi: clean up si_set_streamout_targets
...
Merge the branches and reorder code.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:44 +00:00
Marek Olšák
e7c8d32bfc
ac/gpu_info,llvm: trivial cosmetic changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:43 +00:00
Marek Olšák
b74d849a29
ac/gpu_info: split has_set_pairs_packets into context and sh flags
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26095 >
2023-11-07 19:27:43 +00:00
Yiwei Zhang
551f61bdb3
zink: apply can_do_invalid_linear_modifier to Venus
...
This unblocks Xwayland with zink-on-venus + sommelier wayland proxy.
- For glamor, zink uses linear modifier.
- For Virgl clients, classic 3d resource is used and sommelier fixes
the modifier and stride infos no matter wl-drm or dma-buf protocol.
- For Venus clients:
- via the legacy wl-drm protocol, invalid modifier is passed via
sommelier, and host recovers the tiling in the way dealing with
modifier unaware clients (e.g. I915_GEM_GET_TILING). For hosts
unable to recover, they assume linear and venus forces linear on
legacy path.
- via the new zwp_linux_dmabuf_feedback_v1 (version 3/4) protocol,
explicit modifier is used, and zink handles that without issues.
This doesn't deserve a driconfig as zink-on-venus to support xserver
itself already requires special enough integration beyond a config.
Reported-by: Igor Torrente <igor.torrente@collabora.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10066
Fixes: 1c3db3e39a ("zink: blow up broken xservers more reliably")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26082 >
2023-11-07 19:00:40 +00:00
Mark Collins
a97cc64c44
meson: Only link libvdrm to Turnip with virtio KMD
...
`libvdrm` is unconditionally linked to `libvulkan_freedreno` which isn't available without the `virtio` subdirectory being included. It has been gated behind the `virtio` KMD to prevent linking errors in other cases as it's not necessary.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26100 >
2023-11-07 18:22:56 +00:00
Mark Collins
cede4e7ac3
meson: Only include virtio when DRM available
...
The unconditional inclusion of the `virtio` subdirectory introduced by !24733 causes a full dependency on DRM, it breaks any systems that have `system_has_kms_drm = false`, including Turnip with just the KGSL KMD. A temporary solution to this is gating the inclusion when `system_has_kms_drm` isn't set but this should be replaced with more specific gating in the future.
Signed-off-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26100 >
2023-11-07 18:22:56 +00:00
Lionel Landwerlin
2dc452ec7c
anv: dynamically allocate utrace batch buffers
...
Estimating the batch space required can be tricky because of all the
workarounds. So implement chaining of batches like we do for command
buffers.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26087 >
2023-11-07 17:48:11 +00:00
Tapani Pälli
9ebb7721b5
anv: skip engine initialization if vm control not supported
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10113
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26091 >
2023-11-07 19:20:28 +02:00
Eric Engestrom
282ba9a467
v3d/ci: run manual jobs in daily pipeline
...
Fixes: f2dfb0f6ee ("broadcom: use `.never-post-merge-rules` for all rpi tests")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26093 >
2023-11-07 16:58:36 +00:00
Erik Faye-Lund
15291cdefa
mesa/ffvs: use unreachable instead of assert
...
Otherwise I trigger a compiler warning here about a potentially
unwritten variable. Let's just make it clear to the compiler what's
going on.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26064 >
2023-11-07 14:35:53 +00:00
Christian Gmeiner
3626d07d66
ci/etnaviv: Update ci expectation
...
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Acked-by: Lucas Stach <l.stach@pengutronix.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26072 >
2023-11-07 13:34:54 +00:00
David Heidelberg
5e44cee47d
ci: inject gfx-ci/linux S3 artifacts without rebuilding containers
...
We need update kernel often. We need test kernel changes often.
Introduced `KERNEL_EXTERNAL_TAG` to differ between `KERNEL_TAG` which is
also used to rebuild the containers. We don't need rebuild containers
for the external kernel, so this way we don't have to.
Updating kernel goes wruuuuuum.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23563 >
2023-11-07 12:22:09 +00:00
David Heidelberg
b23423ce2e
ci/nouveau: define a kernel and dtb, so we can fetch it from external sources
...
Acked-by: Emma Anholt <emma@anholt.net >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23563 >
2023-11-07 12:22:09 +00:00
Sviatoslav Peleshko
aa33ca0a52
nir/loop_analyze: Fix inverted condition handling in iterations calculation
...
In the tagged commit, we stopped actually inverting the condition, and
instead relied on the "invert_cond" flag. But we missed a few places
where this flag should've been handled too.
Also, add a few more tests to make sure this won't regress in the future.
Fixes: 99a7a664 ("nir/loop_analyze: Change invert_cond instead of changing the condition")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10012
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26024 >
2023-11-07 11:44:45 +00:00
Erik Faye-Lund
385b81c8c2
panfrost: use perf_debug instead of open-coding
...
We don't need to open-code perf_debug here...
Fixes: bc55d150a9 ("panfrost: Add support for AFBC packing")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26063 >
2023-11-07 11:07:18 +00:00
Vitaliy Triang3l Kuzmin
054188bff8
vulkan: Fix pipeline layout allocation scope
...
The lifetime of Mesa's vk_pipeline_layout may exceed that of the
VkPipelineLayout object as other objects on the device may hold references
to it. In other places in vk_pipeline_layout and vk_descriptor_set_layout,
the device allocation scope is used with this pattern, but there was an
inconsistency in vk_pipeline_layout_zalloc, which is fixed by this commit.
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24794 >
2023-11-07 10:09:52 +00:00
Vitaliy Triang3l Kuzmin
fd08d90d2a
nir: Don't skip lower_alu if only bit_count needs lowering
...
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26048 >
2023-11-07 08:52:52 +00:00
Lucas Stach
02bd6bea03
etnaviv: drm: don't update cmdstream timestamp when skipping submit
...
When we skip the submit when there is no GPU work queued we must not
update the cmdstream timestamp with the fence from the submit request
as it will never be filled in by the kernel, effectively replacing
the cmdstream timestamp with 0. This causes following fence waits
to fail.
Fixes: 148658638e7f ("etnaviv: drm: Be able to mark end of context init")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26078 >
2023-11-07 08:26:05 +00:00
Jordan Justen
abf8b47e02
intel/dev: Rename mtl-p to mtl-h
...
Ref: bspec 55414
Suggested-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25857 >
2023-11-07 06:37:00 +00:00
Jordan Justen
e04e491cc7
intel/dev: Rename mtl-m to mtl-u
...
Ref: bspec 55414
Suggested-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25857 >
2023-11-07 06:37:00 +00:00
Jordan Justen
f81c84f080
intel/dev/wa: Raise error if mesa_defs.json contains unknown platforms
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25857 >
2023-11-07 06:37:00 +00:00
Eric Engestrom
ba4f6e87c7
ci/gitlab_gql: stop re-compiling regex now that all users pre-compile it
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26070 >
2023-11-07 06:08:44 +00:00
Eric Engestrom
94655ff811
ci_run_n_monitor: compile target_jobs_regex only once
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26070 >
2023-11-07 06:08:44 +00:00
Eric Engestrom
a5cb331c64
gitlab_gql: strip newline at the end of the token file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26075 >
2023-11-07 06:06:22 +00:00
Alyssa Rosenzweig
ea6502d7cc
asahi: Implement ARB_base_instance
...
Now that load_base_instance is wired up (as part of the indirect GS
implementation), this is really easy. Validated with Piglit.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
643428bd7f
agx: Emit stack_adjust in the entrypoint
...
Allocate space to fit scratch space.
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
a5cdc86da0
agx: Add stack adjust opcode
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
588fd6dfd6
agx: Implement scratch load/store
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
c15115de6b
agx: Add stack load and store opcodes
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
67d0f035ae
docs: Mark timer queries as done on asahi
...
Strictly needs uapi support that's not upstream, but so does the rest of the
driver (-:
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
49225db140
asahi: Implement timer queries
...
Everything but the uapi piece.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
bc8232c4a2
asahi: clc: Handle doorbell and stack mapping intrinsics
...
Also move nir_interleave_agx definition to libagx.h
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
514d432e50
agx: Handle doorbell and stack mapping intrinsics
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
ee0e7b8347
agx: Add doorbell and stack mapping opcodes
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Mary Guillemard
0aa4148978
nir: Add AGX-specific doorbell and stack mapping opcodes
...
Signed-off-by: Mary Guillemard <mary@mary.zone >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
5d279ecd04
asahi: Advertise ARB_clip_control
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
c5dddd1d53
asahi: Plumb clip_halfz bit from RS
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
fdb995c204
asahi: Don't use OpenGL clip bit
...
This lets us implement clip control.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
695aef7f5a
asahi: rm unused deqp debug flag
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
3270556eaa
asahi: Advertise geometry shaders
...
and cube arrays.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
c6a118b654
asahi: Wire up geometry shaders
...
- Compile GS with linked VS and auxiliary programs
- Dispatch GS as compute programs + an indirect draw with the GS copy program
- Use passthrough GS to implement XFB, replacing old XFB impl.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
fe7650bcf7
asahi: Add GS lowering pass
...
The big monster.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
43e134b106
asahi: Add helpers for lowering GS
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
6a67e220b8
asahi: Add data structures for geometry shaders
...
Shared between GPU and CPU.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
0b96b62348
asahi: Make encoder_allocate public
...
In order to enqueue CDM and VDM to the same queue.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
c9dd59fef3
asahi: Factor out agx_launch
...
For launching compute kernels on particular batches without dirtying state.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
212f71734e
asahi: Refactor encoder data structure
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
82e3eb4b74
asahi: Don't hazard track fake resources
...
Convenient for meta, which we use for implementing GS.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
949741d4c3
asahi: Upload tex/samplers properly with merged shaders
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
21d3c1e0af
asahi: Use the sampler heap
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
dc44619c62
asahi: Add sampler heap data structure
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
9c575eb18a
asahi: Handle load_sampler_handle
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
df2c145c91
agx: Handle bindless samplers
...
Unified encoding.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
ca42562c7f
agx: Lower LOD bias earlier
...
To make the extra descriptor accesses explicit for drivers.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
972f289740
asahi: Lower samplers to bindless if needed
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
111e526f19
agx: Allow drivers to lower texture handles
...
Rather than hardcoding u0_u1, this lets drivers map texture handles in whatever
way is convenient. In particular, this makes textures work properly with merged
shader stages (provided one of the stages is forced to use bindless access), by
giving each stage an independent texture heap.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
b69ab37bdc
asahi: Pack non-border colour sampler desc
...
Apparently custom border colours don't work properly with bindless. Needs
investigation. Patch this out so we don't fault.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
a74fbb3840
agx: Translate simple subgroup ops
...
We'll use these for optimizing parallel prefix sums.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
77bb446e90
agx: Add scaffolding for subgroup ops
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
5b754410da
agx: Require 32-bit alignment for EOT offset
...
Fixes piles of brokenness.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
7d7f5013f8
agx: Cleanup 8-bit math before lowering
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
3b84f371a8
docs/features: Mark ARB_mdi done on asahi
...
Sync with reality.
I think all gallium drivers support, it's a cpu-only thing unlike gl4.6's
indirect multidraws or the similarly named vk feature.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
b18181d924
agx: Check for spilling in release builds
...
Don't smash stack -- explain to the user what happened.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Alyssa Rosenzweig
7b92c63105
agx: Fix fragment side effects scheduling
...
We can't move discards across side effects, or the side effect might not happen.
Fixes KHR-GLES31.core.shader_image_load_store.basic-allFormats-load-fs
regression. Sigh.
CI is up next.
Fixes: 119e5b9719 ("agx: Schedule for register pressure")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:55 +00:00
Christian Gmeiner
e928f45735
agx: Re-index nir defs to reduce memory usage
...
nir_index_ssa_defs(..) will re-index the function impl and will
update ssa_alloc. In almost all cases this will result in a lower
ctx->alloc number which reduces memory usage in compiler passes
that are using ctx-alloc to allocate memory.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
b6b01aa1f2
agx: Legalize image MS index
...
Fix 2D MSAA Array tests in arb_shader_image_load_store-max-size
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
019a52fff0
asahi: Clamp 8-bit integer RTs
...
Fixes gl-3.0-render-integer.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
8d9d9d0207
nir/print: handle adjacency
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
d0a4a8cda0
nir: Add intrinsics for lowering bindless textures/samplers
...
Needed for merged stages to work properly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
33e80918de
nir: Add intrinsics for lowering GS
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
cc3f20ca6c
nir: Also gather decomposed primitive count
...
Simple extension.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
b65636ca40
nir/lower_gs_intrinsics: Count decomposed primitives too
...
We need both: decomposed primitives for transform feedback and regular
primitives for the sizing the index buffer.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
0a35aa3a2b
nir/lower_gs_intrinsics: Append EndPrimitive
...
This is simpler for generic GS lowering.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
f157a3de4e
nir/lower_gs_intrinsics: Include primitive counts
...
Generic GS lowering needs this, we already calculate it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
a147801f9b
compiler: Make u_decomposed_prims_for_vertices available to CL
...
For indirect geometry shader setup.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
64f7b70763
compiler: Inline mesa_vertices_per_prim
...
Makes it more easily consumable from the gpu.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Alyssa Rosenzweig
7cfe2ecb33
compiler: Make shader_enums.h CL-safe
...
macros.h is not safe for CL for a bunch of reasons but shader_enums.h barely
uses its functionality. Stub out the minimum for CL.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056 >
2023-11-07 00:05:54 +00:00
Karol Herbst
1519ff7ebd
rusticl/memory: fix new clippy::needless-borrow warning
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Antonio Gomes <antoniospg100@gmail.com >
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26051 >
2023-11-06 23:47:18 +00:00
Karol Herbst
98df65a875
rusticl: only support the matching device for gl_sharing
...
Cross vendor is bogus because of modifier screw ups. We could allow it on
all devices from the same vendor, but for that we have to check if the
supported modifiers match.
Also verify the device in questions actually supports gl_sharing.
Fixes: 57dfc013a6 ("rusticl: Add functions to create CL ctxs from GL, and also to query them")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Antonio Gomes <antoniospg100@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26051 >
2023-11-06 23:47:18 +00:00
Georg Lehmann
6cd78281f6
aco: deduplicate Format definition
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25943 >
2023-11-06 23:16:38 +00:00
Georg Lehmann
6e0bf33a89
aco: deduplicate instr_class definition
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25943 >
2023-11-06 23:16:38 +00:00
Georg Lehmann
bdd81c6be7
aco: namespace aco_opcode
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25943 >
2023-11-06 23:16:38 +00:00
Georg Lehmann
1b9a3b7466
aco: stop using cstdint
...
We use stdint.h everywhere else.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25943 >
2023-11-06 23:16:38 +00:00
Georg Lehmann
04956d54ce
aco: force uniform result for LDS load with uniform address if it can be non uniform
...
Because a LDS load is 2 separate loads on gfx10+ with wave64, a different wave
can write LDS in between and cause a non uniform result. Use v_readfirst_lane
instead of p_as_uniform because it cannot be copy propagated.
Fixes a OpenCL CTS test with zink+rusticl.
Totals from 136 (0.17% of 78196) affected shaders:
MaxWaves: 3236 -> 3244 (+0.25%)
Instrs: 130069 -> 131221 (+0.89%)
CodeSize: 698048 -> 703436 (+0.77%)
VGPRs: 5464 -> 5440 (-0.44%)
SpillSGPRs: 94 -> 96 (+2.13%)
Latency: 5361017 -> 5363781 (+0.05%); split: -0.00%, +0.05%
InvThroughput: 883010 -> 884100 (+0.12%)
SClause: 3822 -> 3821 (-0.03%); split: -0.05%, +0.03%
Copies: 14220 -> 14314 (+0.66%); split: -0.01%, +0.68%
Branches: 4549 -> 4551 (+0.04%)
PreSGPRs: 4934 -> 4940 (+0.12%)
PreVGPRs: 4666 -> 4655 (-0.24%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25973 >
2023-11-06 22:43:33 +00:00
Eric Engestrom
a4597777fe
ci: restore sanity (aka. Revert "ci: don't run sanity in Marge pipelines")
...
This reverts commit fac60c140b .
Turns out there are pipelines that do not create any other jobs, and
Marge requires a pipeline to pass, which means a pipeline needs to
exist, which means a job needs to always exist.
There is no reason `sanity` would be the one, but it's there so let's
just use it instead of making another one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26080 >
2023-11-06 21:49:44 +00:00
Georg Lehmann
ab87831ae8
aco, radv: vectorize f2f16 if rounding mode is rtz
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25952 >
2023-11-06 21:05:34 +00:00
Eric Engestrom
b781bd478c
zink+radv/ci: ensure renderer is "zink on radv"
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26065 >
2023-11-06 18:54:37 +00:00
Eric Engestrom
cd600868b4
zink+radv/ci: simplify deqp config
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26065 >
2023-11-06 18:54:37 +00:00
Andrew Gazizov
d1009481c8
venus: Add use_guest_vram capset to enable guest-based blob alloc
...
For hypervisors that do not support host memory injection into the
guest address space, it's necessary to have guest-based blob alloc.
Therefore, use a new 'use_guest_vram' virgl capset to decide on
performing guest blob allocations from dedicated heap (Host visible
memory).
Signed-off-by: Andrew D. Gazizov <andrew.gazizov@opensynergy.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25889 >
2023-11-06 18:33:15 +00:00
Mary Guillemard
f71f5cf856
venus: skip bind sparse info when checking for feedback query
...
Fix an assertion when using vkQueueBindSparse.
Fixes: 7fbf608f2d ("venus: append query feedback at submission time")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com >
Reviewed-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26027 >
2023-11-06 18:15:03 +00:00
Vitaliy Triang3l Kuzmin
bae7538a02
r600/sfn: Remove unused sampler reference in emit_tex_lod
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26068 >
2023-11-06 16:47:29 +00:00
Vitaliy Triang3l Kuzmin
4f86353f4f
r600/sfn: Change sampler_index to texture_index in buffer txs
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26068 >
2023-11-06 16:47:29 +00:00
Connor Abbott
2e83aed8b3
vk/graphics_state: Add vk_pipeline_flags_feedback_loops helper
...
This will be useful for combining dynamic and static feedback loop
state.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436 >
2023-11-06 14:33:51 +00:00
Connor Abbott
a02d1cfa9e
vk/graphics_state: Support VK_EXT_attachment_feedback_loop_dynamic_state
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436 >
2023-11-06 14:33:51 +00:00
Connor Abbott
55f3f952aa
vk/graphics_state, tu: Rewrite renderpass flags handling
...
Before this, the render pass code or the driver combined the pipeline
create flags and the implicit flags from the render pass, but the
pipeline create flags will need to be sanitized when they are dynamic
state, so we need to do it in vk_graphics_state where we know that
information.
We also weren't combining pipeline flags correctly when linking, which
on turnip was being hidden by the lack of sanitizing for driver-provided
flags. We can't combine them correctly if they're part of the render
pass state, so they need to be pulled out into the overall pipeline
state.
For drivers using emulated renderpasses or tracking feedback loop
information themselves, this won't make a difference, but we have to
adapt turnip to not pass pipeline flags. This also means that we can
drop all handling of feedback_loop_input_only in turnip and just set it
in the runtime.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436 >
2023-11-06 14:33:51 +00:00
Connor Abbott
2b62d90158
vk/graphics_state: Support VK_KHR_maintenance5
...
Switch to using VkPipelineCreateFlags2KHR, and use the new common helper
to get the right flags.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436 >
2023-11-06 14:33:51 +00:00
Connor Abbott
e6f5d7222c
vk,lvp,tu,radv,anv: Add common vk_*_pipeline_create_flags() helper
...
And replace the various homegrown or copy-pasted helpers in drivers.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436 >
2023-11-06 14:33:51 +00:00
Erik Faye-Lund
cac194ff38
panfrost: look at correct blendable format version
...
We're currently looking at a mixture of v7 only and v6 and v7 versions
of the blendable formats. Let's use the one we have stored, so we always
use the most recent definition.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25968 >
2023-11-06 14:30:34 +01:00
Erik Faye-Lund
f277124544
panfrost: store blendable_formats in panfrost_device
...
This way, we don't need to look at the generation to find the right
version. It's also less code to update when we're adding new hardware
generations.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25968 >
2023-11-06 14:30:31 +01:00
Erik Faye-Lund
40656b6fa0
panfrost: pass blendable formats to pan_pack_color
...
This allows us to specify the correct array later on, while still being
able to use the function as-is from call-sites that doesn't have a
panfrost_device.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25968 >
2023-11-06 14:30:28 +01:00
Erik Faye-Lund
f69b573dfc
panfrost: bypass format-table for null-textures
...
We directly look up in the format arrays here to save indirections. But
do you know what's even faster than a single indirection? Assigning a
compile-time constant!
So let's use the newly available pack-helper to pack directly what we
want here.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25968 >
2023-11-06 14:30:20 +01:00
Erik Faye-Lund
7d3ef1a057
panfrost: allow packing formats outside of pan_format.c
...
This is useful when we want to avoid looking up a format in the format
table.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25968 >
2023-11-06 14:30:14 +01:00
Eric Engestrom
ac342f6851
rpi4/ci: skip more timing out tests in the dEQP-VK.ssbo.layout.* group
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:50 +00:00
Eric Engestrom
208f94f7ec
vc4/ci: add piglit "full run" variant of vc4-rpi3-gl:arm32 as a manual job
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:50 +00:00
Eric Engestrom
4c00cff2d2
v3dv/ci: add "full run" variant of v3dv-rpi4-vk:arm64 as a manual job
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:50 +00:00
Eric Engestrom
725a4338fc
v3d/ci: add "full run" variant of v3d-rpi4-gl:arm64 as a manual job
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:50 +00:00
Eric Engestrom
85ecf9d487
v3dv/ci: add manual variant of .v3dv-rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:49 +00:00
Eric Engestrom
8ca683fb12
vc4/ci: add manual variant of .vc4-rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:49 +00:00
Eric Engestrom
8803d6d9d9
broadcom/ci: split broadcom-common manual rules to .broadcom-common-manual-rules
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:49 +00:00
Eric Engestrom
692b779f67
broadcom/ci: fix list indentation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975 >
2023-11-06 12:45:49 +00:00
Sergi Blanch Torne
be1eb0f6d2
Revert "ci: disable Collabora's LAVA lab for maintance"
...
This reverts commit 7d6f9ccfbe
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26060 >
2023-11-06 12:03:20 +00:00
Eric Engestrom
9349b7d2fb
broadcom/ci: merge gl test lists to use a single deqp instance
...
This makes the config file easier to read, and also shaves 5-10 seconds
of deqp-run per job, but that's cancelled out by all the random network
delays of everything else in the job so we'll never actually notice the
difference.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26039 >
2023-11-06 11:13:10 +00:00
Samuel Pitoiset
790fabd38e
radv: advertise VK_EXT_device_fault
...
This is only exposed if the kernel supports GPUVM fault query.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25875 >
2023-11-06 10:35:05 +00:00
Samuel Pitoiset
8097becc7f
radv: add initial VK_EXT_device_fault support
...
This implementation only returns VM faults information for now, but
vendor crash dumps will be adder later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25875 >
2023-11-06 10:35:05 +00:00
Vlad Schiller
1dd1c9d610
pvr: Fix VK_EXT_texel_buffer_alignment
...
In the commit that enabled the extension, I forgot to add the required
properties, which made some tests to fail.
Fixes: 649ebbb0fb ("pvr: Implement VK_EXT_texel_buffer_alignment")
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/26002 >
2023-11-06 09:58:07 +00:00
Samuel Pitoiset
abfd208cb0
nir: fix inserting the break instruction for partial loop unrolling
...
If the break in the original loop isn't in the first top-level if,
this would have re-inserted it in the wrong block.
Fixes this by re-inserting the break block to the corresponding break
block in the new loop by using the remap hashtable.
fossils-db (NAVI21):
Totals from 88 (0.11% of 79330) affected shaders:
Instrs: 109602 -> 109929 (+0.30%); split: -0.10%, +0.40%
CodeSize: 570968 -> 573332 (+0.41%); split: -0.08%, +0.49%
Latency: 1682510 -> 1682505 (-0.00%); split: -0.01%, +0.01%
Copies: 12832 -> 12746 (-0.67%); split: -1.54%, +0.87%
Branches: 2879 -> 2930 (+1.77%)
Deathloop and F1 2023 are affected but I'm not aware of any issues
for these two games.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10001
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26009 >
2023-11-06 09:18:09 +00:00
Sergi Blanch Torne
7d6f9ccfbe
ci: disable Collabora's LAVA lab for maintance
...
This is to inform you of some planned downtime in the LAVA lab as follows:
Start: 2023-11-06 08:00 GMT (UTC+0)
End: 2023-11-06 12:00 GMT (UTC+0)
Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26059 >
2023-11-06 09:11:37 +01:00
LingMan
106acbbed9
rusticl: Avoid repeatedly creating Vecs during Platform initialization
...
Creates a Vec once instead of four times.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26050 >
2023-11-06 00:08:52 +00:00
LingMan
b4d052e4cb
rusticl: Only put an Arc around PipeScreen where needed
...
This only delays moving the PipeSceen into the Arc, but makes is clearer where the Arc's properties are needed.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26050 >
2023-11-06 00:08:52 +00:00
LingMan
8103be7faa
rusticl: Directly pass a &Device to Mem::map_image and Mem::map_buffer
...
Until now they took a `&Arc<Queue>` but only ever used it to accessed the `Device`.
Makes it clearer what these methods actually require.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26050 >
2023-11-06 00:08:52 +00:00
Karol Herbst
8cbb84dc42
rusticl/queue: fix implicit flushing of queue dependencies
...
Needed by Davinci Resolve.
There are two parts to this fix:
1. flush dependencies also on flush, not just finish
2. move the dependency checking logic into Queue::flush as otherwise we
miss required implicit flushes.
Fixes: 8616c0a52c ("rusticl/event: flush queues from dependencies")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26053 >
2023-11-05 23:53:20 +00:00
Karol Herbst
52e41d4c97
rusticl/queue: do not send empty lists of event to worker queue
...
This saves us a few CPU cycles and makes properly fixing implicit flushes
less expensive.
Fixes: 8616c0a52c ("rusticl/event: flush queues from dependencies")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26053 >
2023-11-05 23:53:20 +00:00
David Rosca
bf364cbdb4
radeonsi: Fix offset for linear surfaces on GFX < 9
...
Fixes: 86262b6eac ("radeonsi,radv: fix usages of surf_pitch")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9949
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10073
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25970 >
2023-11-05 19:36:48 +00:00
Marek Olšák
d2a025ab2b
radeonsi: move setting registers at the end of si_emit_cb_render_state
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Marek Olšák
c21bcfd34f
radeonsi: cosmetic changes in si_state_binning.c, si_state_msaa.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Marek Olšák
6455aaab07
radeonsi: cosmetic changes in si_state_viewport.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Marek Olšák
43cdb51402
radeonsi: move max_dist for MSAA into si_state_msaa.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Marek Olšák
12c239f829
radeonsi: various isolated cosmetic changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:56 -05:00
Marek Olšák
ca1d37e1db
radeonsi: adjust setting PA_SC_EDGERULE once more
...
based on PAL.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 14:06:52 -05:00
Marek Olšák
4dfff0f1b7
radeonsi: use si_shader_uses_streamout properly
...
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:43:11 -05:00
Marek Olšák
2a83532ed6
radeonsi: split setting num_threads in si_emit_dispatch_packets
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:42:52 -05:00
Marek Olšák
5a38757fcf
radeonsi: cosmetic changes in si_pm4.c
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:42:33 -05:00
Marek Olšák
03353bd752
radeonsi: decrease PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS to 1024
...
to match PAL-based drivers. This is also the OpenGL minimum.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:41:57 -05:00
Marek Olšák
6708ccd3bf
radeonsi: remove and inline si_shader::ngg::prim_amp_factor
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
e98a4f3820
radeonsi: rename ctx -> sctx in si_emit_guardband
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
a61d74ed27
radeonsi: remove AMD_DEBUG=nogfx
...
it doesn't work - it uses the CDNA codepath for preamble, which surely
hangs on non-CDNA
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
00b716cb83
radeonsi: remove redundant VS_PARTIAL_FLUSH for streamout
...
si_emit_streamout_end does this already.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
17de5dd1c4
radeonsi: inline si_screen_clear_buffer
...
it has only one use
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
738babc67a
radeonsi: inline si_allocate_gds and si_add_gds_to_buffer_list
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
f841a5b991
radeonsi: don't use nir_optimization_barrier_vgpr_amd with ACO
...
It's unimplemented.
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
44eaf50a34
ac/surface/tests: cosmetic changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
dfcc7f83a4
ac/surface: cosmetic changes
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:39:42 -05:00
Marek Olšák
355242f055
ac/gpu_info: adjust attribute ring size for gfx11
...
these are better numbers
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:36:52 -05:00
Marek Olšák
bd57630885
ac: add missing gfx11.5 bits
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26055 >
2023-11-05 12:34:55 -05:00
Alyssa Rosenzweig
cd0a01522f
ttn: Set sample shading for sample ID reads
...
Fixes on asahi arb_stencil_texturing-blit_corrupts_state -auto
GL_TEXTURE_2D_MULTISAMPLE.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26011 >
2023-11-05 00:31:22 +00:00
Mauro Rossi
95ad0c750c
Android.mk: disable android-libbacktrace to build with Android 14
...
Android libbacktrace is not available in Android 14
Fixes the following build error:
FAILED: src/util/libmesa_util.a.p/u_debug_stack_android.cpp.o
...
../src/util/u_debug_stack_android.cpp:28:10: fatal error: 'backtrace/Backtrace.h' file not found
^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Cc: mesa-stable
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25963 >
2023-11-04 21:37:24 +01:00
Mauro Rossi
520e79a3b5
Android.mk: filter out cflags to build with Android 14 bundled clang
...
Android 14 uses prebuild clang version 17.0.2
By filtering these cflags there are no building errors on previous Android releases.
Fixes the following building errors:
../src/c11/time.h:54:8: error: redefinition of 'timespec'
struct timespec
^
/media/bigblissdrive/u-x86/out/soong/.intermediates/bionic/libc/libc/android_vendor.34_x86_x86_64_shared/gen/include/bits/timespec.h:46:8: note: previous definition is here
struct timespec {
^
1 error generated.
In file included from ../src/util/disk_cache.c:50:
../src/util/disk_cache.h:86:4: error: use of undeclared identifier 'Dl_info'
Dl_info info;
^
...
./src/util/disk_cache.h:114:30: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion]
_mesa_sha1_update(ctx, build_id_data(note), build_id_length(note));
^~~~~~~~~~~~~~~~~~~
10 errors generated.
../src/intel/perf/intel_perf.c:91:10: error: call to undeclared function 'major'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
maj = major(sb.st_rdev);
^
../src/intel/perf/intel_perf.c:92:10: error: call to undeclared function 'minor'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
min = minor(sb.st_rdev);
^
2 errors generated.
../src/intel/vulkan/anv_allocator.c:295:13: error: call to undeclared function 'futex_wake'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
futex_wake(&table->state.end, INT_MAX);
^
...
../src/intel/vulkan/anv_allocator.c:711:7: error: call to undeclared function 'futex_wait'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
futex_wait(&pool->block.end, block.end, NULL);
^
6 errors generated.
Cc: mesa-stable
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25963 >
2023-11-04 21:36:55 +01:00
Alyssa Rosenzweig
0e481bf463
ci: Opt out asahi from clang-format
...
I'm still 100% a believer in clang-format enforcement, but given the difficult
constraints upstream CI has, I no longer believe it is productive or fair to do
this enforcement upstream. Instead, it can be (and effectively is) enforced much
more inexpensively in the Asahi tree. It is far better for me to insert a
"reformat asahi" commit once in a while when I rebase the Asahi tree, than to
shoot down an unrelated upstream MR because someone forgot to ninja
clang-format.
I regret adding the clang-format lint to CI. To those who have lost merges over
it, I am sorry. I'm learning from my mistakes and trying to do better.
I would encourage other drivers in the clang-format include to follow suit, but
doing this effectively requires a driver/hardware tree to do the enforcement. (I
would also encourage that, as it is much friendlier to upstream CI, but that's a
different discussion.)
For now, let's opt out asahi at the least.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26030 >
2023-11-04 14:13:09 +00:00
LingMan
1f1ec1c6bc
rusticl: Show an error message if the version of bindgen can't be detected
...
bindgen 0.69.0 broke the `--version` switch, resulting in misleading errors about requiring at
least bindgen 0.62 or about unexpected arguments.
Ideally the build system would fetch the correct bindgen version automatically like cargo does.
Until then, provide a hopefully more helpful error message to the user.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26046 >
2023-11-04 13:47:49 +00:00
Eric Engestrom
e9f725c741
ci/rules: add missing clang-format files to what needs containers to build
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:37 +00:00
Eric Engestrom
5be1972f61
ci: bump image tags to rebuild deqp
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:37 +00:00
Eric Engestrom
37970fa703
ci/build-deqp: print more detailed information about what deqp version is running
...
`git describe` tells you that you have N patches on top of tag T, but
not what these patches are, and the commit hash is useless as it is only
valid during the container build.
Replace this with:
- the tag that we are checking out
- the list of patches applied on top of it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:36 +00:00
Eric Engestrom
124b4097f3
ci/build-deqp: move mkdir earlier
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:36 +00:00
Eric Engestrom
a61dcdd4b1
ci/build-deqp: split deqp version into a variable
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:36 +00:00
Eric Engestrom
22f4ca2cf3
ci/build-deqp: stop ignoring failures while fetching patches
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:36 +00:00
Eric Engestrom
be18be9deb
Revert "ci: backport two mesh/task query fixes for VKCTS"
...
This reverts commit dcc4e1b4d7 .
The hashes added there are incorrect, and fixing them regresses a bunch
of drivers, so let's just revert for now, and the next commit fixes the
bug that allowed incorrect backports to go in undetected.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26013 >
2023-11-04 12:44:36 +00:00
Karol Herbst
655cbf203d
docs/features: mark rusticl gl_sharing as done
...
It seems at the moment only iris and radeonsi expose other drivers aren't
fulfilling all prerequisites.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26044 >
2023-11-04 10:30:56 +01:00
Rob Clark
d67d501af4
tu/drm/virtio: Switch to vdrm helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Rob Clark
0e3584df44
freedreno/drm/virtio: Switch to vdrm helper
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Rob Clark
06e57e3231
virtio: Add vdrm native-context helper
...
Add a helper to de-duplicate some of the virtgpu native-context support
between turnip and freedreno. This should make things easier for other
drivers adding virtgpu support.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com > # virtio-intel
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Rob Clark
53ccb421a2
freedreno/drm: Simplify backend mmap impl
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Lucas Fryzek
6f467fc6a3
freedreno/drm: Add more APIs to per backend API
...
Add bo_map, bo_from_dmabuf, and bo_close_handle to the per backend
APIs for freedreno/drm. These changes are required to implement
a KGSL backend as part of freedreno/drm.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Rob Clark
b90244776a
virtio/drm: Split out common virtgpu drm structs
...
Since these all ended up the same with (not yet merged) intel and amd
implementation of drm native context, split these out so they can be
shared. This will also make it easier to extract out a shared helper
that can be re-used across native-context drivers.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com > # virtio-intel
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733 >
2023-11-04 03:00:04 +00:00
Juan A. Suarez Romero
9bdee8cd39
vc4/ci: comment why piglit is disabled
...
We disabled piglit testsuite some time ago because it is causing GPU
hangs from time to time, and we didn't find out yet what are the tests
causing such issue.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26021 >
2023-11-04 02:41:21 +00:00
Paulo Zanoni
c2db19f496
anv: setup the TR-TT vma heap
...
"16TB ought to be enough for anybody."
- Probably some Intel graphics hardware engineer
TR-TT addresses are fixed regardless of the platform's gtt_size.
Unconditionally reserve this space for it: our total 48bit address
space is 256tb and TR-TT takes 16tb out of it (1/16th).
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/26036 >
2023-11-04 02:06:53 +00:00
Paulo Zanoni
0a120edfb8
anv/sparse: extract anv_sparse_bind()
...
This function will be able to transparently handle sparse binding
regardless of the backend: vm_bind ioctls or TR-TT. For now we only
support the vm_bind ioctls, but soon we'll have anv_sparse_bind_trtt()
as an option.
It is important to notice that even backends that support the vm_bind
ioctl may choose to do Sparse binding via TR-TT, that's why we're
adding the indirection at this specific point.
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/26036 >
2023-11-04 02:06:53 +00:00
Paulo Zanoni
544c5c006c
intel/genxml: add the Gen12+ TR-TT registers
...
These are the registers we're going to use for now.
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/26036 >
2023-11-04 02:06:52 +00:00
Paulo Zanoni
1af1426542
anv/sparse: also print bind->address at dump_anv_vm_bind
...
This helped tracking down xe.ko bug #746 .
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/26036 >
2023-11-04 02:06:52 +00:00
Paulo Zanoni
b94d7dbe66
anv/sparse: join multiple NULL binds when possible
...
When it's a NULL bind we always set the bo_offset (aka memory offset)
to zero, so we have to avoid the "bind.offset == prev.offset + size"
check.
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/26036 >
2023-11-04 02:06:52 +00:00
Paulo Zanoni
2fc0bbe814
anv/sparse: join multiple bind operations when possible
...
If the next bind is just an extension of the previous one, join both
in the same bind operation. Due to how mip levels are laid in memory,
this can only happen for mip level 0.
As of today xe.ko doesn't try to join contiguous operations for us.
Due to how rebinds happen each additional rebind operation may end up
resulting in many extra things done, so these simple checks end up
saving us a lot of cycles the Kernel would otherwise waste. This will
be true even after we issue all binds in a single ioctl.
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/26036 >
2023-11-04 02:06:52 +00:00
Paulo Zanoni
2883c6ddaa
anv: alloc client visible addresses at the bottom of vma_hi
...
Kill vma_cva and just toggle heap->alloc_high instead. This way,
client visible addresses will remain isolated in their own little
corner, except we have one less vma to deal with.
For TR-TT we'll need a special vma, and if we don't use the trick
above we'll need yet another trtt_cva_vma, increasing complexity even
more.
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/26036 >
2023-11-04 02:06:52 +00:00
Paulo Zanoni
e1b50074fe
anv: don't forget to destroy device->vma_mutex
...
This actually doesn't fix any bugs or leaks, because according to the
man page:
"In the LinuxThreads implementation, no resources are associated
with mutex objects, thus pthread_mutex_destroy actually does
nothing except checking that the mutex is unlocked.
still, it's better to have it than not to have it, especially since
other implementations may do something.
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/26036 >
2023-11-04 02:06:52 +00:00
Karol Herbst
0a072bb31c
rusticl/context: fix importing gl cube maps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:43 +00:00
Karol Herbst
06a2258b4b
radeonsi: hack for importing 3D textures
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:43 +00:00
Karol Herbst
56f934103d
radeonsi: support importing arbitrary resources
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:43 +00:00
Antonio Gomes
7e031078dd
rusticl: Advertise cl_khr_gl_sharing extension
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
59287a1223
rusticl: Flush objects just before importing them
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
1c3dde7ba6
rusticl: Add support for cube maps
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
2645003bdc
rusticl: Create CL mem objects from GL
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
0bafe8be2c
rusticl/format: Add conversion table for GL->CL
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
57dfc013a6
rusticl: Add functions to create CL ctxs from GL, and also to query them
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
425d7acd4a
rusticl/device: Enable gl_sharing only if create_fence_fd is implemented
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
7bb131964b
rusticl/device: Function to check for gl interop support
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
c4c58aa26f
rusticl: Add xplat helpers to dynamic link interop functions
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
1396dc1c38
mesa/st, dri2, wgl, glx: Modify flush_objects interop func to export a fence_fd
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
663cef26d0
mesa/st: Add new data to mesa_glinterop
...
* Version 3 of mesa_glinterop_device_info
* Export device uuid
* Version 2 of mesa_glinterop_export_out
* Export texture sizes
* Export whandle.modifier
* Export whandle.stride
* Add PIPE_HANDLE_USAGE_EXPLICIT_FLUSH in interop_export_objects
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
d52f35fa1a
iris: Fixups in resource_get_handle and resource_from_handle
...
* Add support for PIPE_BUFFER in resource_from_handle.
* Flush batches after reallocate_resource_inplace:
If we're dealing with a PIPE_BUFFER, iris_flush_resource doesn't
flush the batch and we export the resource with pending commands.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
df0623e51a
rusticl, meson: Add gl/egl/glx bindings
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Antonio Gomes
bcd7538d03
rusticl, meson: Move libc functions to their own crate
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21305 >
2023-11-04 01:28:42 +00:00
Yonggang Luo
84db4d5698
micosoft: decouple microsoft vulkan driver and compiler from gallium
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24440 >
2023-11-04 00:02:59 +00:00
Yonggang Luo
8bcb996a88
micosoft: define enum dxil_tex_wrap to avoid the usage of enum pipe_tex_wrap
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24440 >
2023-11-04 00:02:59 +00:00
Yonggang Luo
a36ad49e0e
microsoft/clc: Use 128 instead of PIPE_MAX_SHADER_SAMPLER_VIEWS
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24440 >
2023-11-04 00:02:59 +00:00
Yonggang Luo
1181c2509d
microsoft/clc: Using sampler_id instead PIPE_MAX_SHADER_SAMPLER_VIEWS for dxil_lower_sample_to_txf_for_integer_tex
...
Because sampler_id is the real number of samples.
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24440 >
2023-11-04 00:02:59 +00:00
Jesse Natalie
e51acb65ac
dzn: Fix memory type sorting
...
For a dGPU, we should have:
1. RAM
2. RAM + write-combined CPU access
3. RAM + cached CPU access
4. VRAM
Eventually there'll be VRAM + write-combined CPU access after 4, using "GPU upload heaps"
For an iGPU, we should have:
1. RAM (declared as device-local)
2. RAM + write-combined CPU access (declared as device-local)
3. RAM + cached CPU access (declared as device-local)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26037 >
2023-11-03 23:33:02 +00:00
Dave Airlie
c8e39683da
vulkan/video: add h265 header encoders.
...
Vulkan video has parameter overrides, where the driver can override the
driver provided parameters with an encoded bitstream where it has made
changes.
This is the support code to encode the bitstream headers for h265
from parameters (vps/sps/pps).
Acked-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:37 +00:00
Dave Airlie
d46162981a
vulkan/video: add h264 headers encode
...
Vulkan video has parameter overrides, where the driver can override the
driver provided parameters with an encoded bitstream where it has made
changes.
This is the support code to encode the bitstream headers for h264
from parameters (sps/pps).
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:37 +00:00
Dave Airlie
8243145f02
vulkan/video: add a h265 level translator.
...
This just converts the protocol level to the spec level encoding.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:37 +00:00
Dave Airlie
5542b51aff
vulkan/video: add h264 level idc convertor utility
...
This converts vulkan level to the bitstream encoding.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:37 +00:00
Dave Airlie
1782ab4d8b
util: add a bitstream encoder for video stream headers.
...
This is based on the d3d12 code, and is mostly a rewrite in C,
these are just some helpers to use for writing h264 and h265
headers for vulkan encode.
Acked-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
Dave Airlie
72f52329cd
vulkan/video: add a nal_unit lookup for hevc
...
This is needed to by drivers to get a nal unit type
for the picture type.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
Dave Airlie
fee258de27
vulkan/video: add h264 nal enum
...
This will be used later for header encoding.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
Dave Airlie
8dd97080d8
vulkan/video: add h265 encode support
...
This just adds the session and parameter handling for h265 encode.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
Dave Airlie
5cb46f1ce7
vulkan/video: add support for h264 encode to common code
...
This adds support for the h264 encode session and parameter storage.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
Dave Airlie
b84c58d727
vulkan: update video headers
...
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25874 >
2023-11-03 22:59:36 +00:00
José Expósito
8a635e516e
zink: Fix crash on zink_create_screen error path
...
The `zink_internal_create_screen()` function can fail before
`screen->loader_lib` and/or `screen->instance` are initialized.
The `zink_destroy_screen()` doesn't check those cases and crashes.
The error was found by Fedora's CI. The back trace is available at [1].
[1] https://bodhi.fedoraproject.org/updates/FEDORA-2023-c39f82c465
Fixes: 0c2045553f ("zink: use screen destructor for creation fails")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Signed-off-by: José Expósito <jexposit@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26029 >
2023-11-03 22:37:43 +00:00
Faith Ekstrand
5a85f67fa4
nvk: Assert no storage images on Kepler
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26035 >
2023-11-03 21:53:33 +00:00
Faith Ekstrand
d5753a89a6
nvk: Drop a bogus assert
...
We've supported storageImageReadWithoutFormat for a while. Also, thanks
to the fact that the assert assumed image_deref_load and happened after
nir_rewrite_image_intrinsic, it would never trigger.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26035 >
2023-11-03 21:53:33 +00:00
Faith Ekstrand
0ce49d4347
nvk: Fix nvk_heap_free() for contiguous heaps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26035 >
2023-11-03 21:53:33 +00:00
Faith Ekstrand
57d6722d79
nvk: Force all mappable BOs into GART pre-Maxwell
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26035 >
2023-11-03 21:53:33 +00:00
Yonggang Luo
5e9dcffffd
nvk: Should use alignment instead of align
...
align is a function, don't know why align > 0 is working
Fixes: 87686a2220 ("nvk: Rework side-band data upload")
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26035 >
2023-11-03 21:53:33 +00:00
Daniel Stone
80b87c18d1
ci: Try really hard to print final result string
...
a630 has been completing jobs, and then corrupting the very last line of
UART output - the one where we pass the overall result back from the DUT
to the job. The bare-metal monitor will wait for this line to appear,
never see it, and then the job times out.
Since this line is the most critical one of all to get out, just spam
the prints to try to make sure they get through.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26032 >
2023-11-03 21:17:42 +00:00
Eric Engestrom
c826f70c37
rpi4/ci: remove spec@!opengl 1.1@depthstencil-default_fb-drawpixels-32f_24_8_rev samples=2 from fails as it's a flaky test and already marked as such
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974 >
2023-11-03 20:57:31 +00:00
Eric Engestrom
ed90430027
rpi4/ci: move spec@!opengl 1.1@depthstencil-default_fb-drawpixels-24_8 samples=2 from fails for flakes after an UnexpectedPass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974 >
2023-11-03 20:57:31 +00:00
Eric Engestrom
9f281899dc
rpi4/ci: add more known dEQP-EGL.functional.*.*_context.gles*.other failures
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974 >
2023-11-03 20:57:31 +00:00
Jesse Natalie
67df2f29eb
vulkan: Support loader interface v7
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998 >
2023-11-03 20:01:14 +00:00
Jesse Natalie
228329f4da
vulkan: Consolidate common ICD methods
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998 >
2023-11-03 20:01:14 +00:00
Jesse Natalie
32f0034ec9
vulkan: Remove no-longer-needed prototypes for ICD entrypoints
...
The comment around these is no longer true, vk_icd.h does in fact
have prototypes for these functions.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998 >
2023-11-03 20:01:14 +00:00
David Rosca
af2980e5b9
radeonsi/uvd_enc: Add VUI parameters in output bitstream
...
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:01 +00:00
David Rosca
72fadf5faf
radeonsi/vce: Add VUI parameters in output bitstream
...
This enables VUI parameters and sets aspect ratio, video format,
video full range, colour description and chroma location.
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:01 +00:00
David Rosca
5f70379e0d
radeonsi/vce: Tweak motion estimation params for better quality
...
This gives better video quality while not slowing down the encoding
speed too much (less than 10% slower).
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:01 +00:00
David Rosca
8dda860f83
Revert "radeon/radeon_vce: fix out of target bitrate in CBR mode (H.264)"
...
This reverts commit f7e7cf637e .
It is now possible to change the buffer size from VA frontend, so this
is no longer needed and instead it's up to applications to set
appropriate value.
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:00 +00:00
David Rosca
bf95000d74
radeonsi/uvd_enc: Fix leaking session info buffer
...
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:00 +00:00
David Rosca
9feff3d695
radeonsi/uvd_enc: Implement destroy_fence vfunc
...
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:00 +00:00
David Rosca
007ff4ea00
radeonsi/uvd: Implement destroy_fence vfunc
...
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:00 +00:00
David Rosca
fdc8da6eb4
radeonsi/vce: Implement destroy_fence vfunc
...
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991 >
2023-11-03 19:35:00 +00:00
Juan A. Suarez Romero
8f621174da
v3d: use kmsro to create drm screen on real hw
...
When using `MESA_LOADER_DRIVER_OVERRIDE=v3d` in real hw, use kmsro to
create the drm screen, which is actually what happens when not exporting
such variable.
This avoids confusions when using the envvar in real hardware and starts
to fail.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26007 >
2023-11-03 18:50:37 +00:00
Chia-I Wu
ef724ab695
vulkan, tu, pvr: remove vk_render_pass_state::render_pass
...
The spec says
A VkRenderPass or VkPipelineLayout object passed as a parameter to
create another object is not further accessed by that object after the
duration of the command it is passed into.
The object could have been destroyed if we get the pointer from a
pipeline library. Since it has no user now, let's remove it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26000 >
2023-11-03 17:23:30 +00:00
Chia-I Wu
227300345e
radv: stop using vk_render_pass_state::render_pass
...
vk_render_pass_state::pipeline_flags is derived from
vk_get_pipeline_rendering_flags and has the info we need.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10074
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26000 >
2023-11-03 17:23:30 +00:00
David Rosca
c638e61ef5
frontends/va: Map decoder and postproc surfaces for reading
...
If application requests to map surface that was most recently used
as decoder or postproc target and also doesn't explicitly set the
map flags (vaMapBuffer2) it's very likely the intent is to read from
this surface, so we need to map it as such.
This fixes regression on radeonsi where mapping NV12 surfaces for
reading would fail with applications using vaDeriveImage. The reason
for this is that the VA frontend doesn't allow vaDeriveImage for
interlaced surfaces so the applications would use vaGetImage fallback,
but radeonsi doesn't allocate NV12 surfaces as interlaced anymore.
This also fixes mapping other formats surfaces (P010, RGBx, ...)
for reading, which never worked before.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9935
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10048
Reviewed-by: Leo Liu <leo.liu@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26008 >
2023-11-03 17:04:00 +00:00
Rob Clark
33de58154f
freedreno: Handle DRM_FORMAT_MOD_QCOM_TILED3 import
...
This is something that we could allocate and export. So we must import
them as well.
Fixes import failures in spec@ext_image_dma_buf_import@ext_image_dma_buf_import-modifiers
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25995 >
2023-11-03 15:43:09 +00:00
Rob Clark
a95ea2b6d6
freedreno: Fix modifier determination
...
Now that we have TILED2 and TILED3 modifiers, we should handle those
cases.
Fixes assert that modifier != INVALID in
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-modifiers
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25995 >
2023-11-03 15:43:09 +00:00
Rob Clark
6ac133c646
freedreno/drm: Fix race in zombie import
...
The check for the zombie case (racing with final unref of the bo vs
removal from table) must be atomic.
Fixes spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread
Fixes: a192923f99 ("freedreno/drm: Restart import on zombie race")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25995 >
2023-11-03 15:43:08 +00:00
antonino
4a627af0e3
nir: don't take the derivative of the array index in nir_lower_tex
...
Previosuly when lowering to txd for sampler array the index would be
derived as well, therefore the resulting derivative would have been a
vec with one more component than what the txd instruction expects.
This patch truncates the coordinate vector in this case to make sure the
index is not derived.
Fixes: b154a4154b ("nir/lower_tex: rewrite tex/txb -> txd/txl before saturating srcs")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26012 >
2023-11-03 12:53:11 +00:00
Gert Wollny
28b79b2ea5
r600/sfn: Fixup component count only if intrinsic has it
...
Fixes: 33d878e
r600/sfn: Handle load_global in 64 to vec2 lowering
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24229 >
2023-11-03 12:25:39 +00:00
Gert Wollny
1662897294
r600: Link with libgalliumvl, when enabling rusticl this is needed
...
Fixes: 33673bcc2a
rusticl: stop linking with libgalliumvl
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24229 >
2023-11-03 12:25:39 +00:00
Gert Wollny
022850ed05
r600: Add experimental get_compute_state_info
...
This callback is needed for rusticl, but the values that are returned
may be completely off.
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7420
v2: use r600_wavefront_size value
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24229 >
2023-11-03 12:25:39 +00:00
Karol Herbst
7b41921504
nvc0: implement PIPE_CAP_TIMER_RESOLUTION
...
This allows rusticl to create profiling queues.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10042
Fixes: 660f2eabe1 ("gallium: add PIPE_CAP_TIMER_RESOLUTION")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26016 >
2023-11-03 11:13:44 +00:00
duncan.hopkins
1039da1400
vulkan: 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.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26022 >
2023-11-03 10:46:27 +00:00
Eric Engestrom
47398c65ee
ci/radeonsi: add another flake
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26020 >
2023-11-03 09:20:32 +00:00
Samuel Pitoiset
fc9bab73a9
radv/ci: document one more flake test
...
This test consistently fails on some GPUs (already documented) but on
some others it's a flake. It's a known issue that should be fixed soon
in RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26019 >
2023-11-03 09:16:54 +01:00
Jesse Natalie
5550c1daf4
dzn: Use vk_properties helper
...
Addresses part of https://gitlab.freedesktop.org/mesa/mesa/-/issues/9521
Required for https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998
to actually work correctly for Dozen
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26014 >
2023-11-03 00:00:13 +00:00
Alyssa Rosenzweig
0038f95b66
asahi: Fix tools=all builds
...
don't need clc here.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26017 >
2023-11-02 18:51:57 -04:00
Connor Abbott
2313a517d2
v3d/ci: Remove minetest trace
...
For the same reason as the previous commit. For examples of commits
causing spurious changes see 8019a1b9 and d89ca14e .
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25864 >
2023-11-02 21:46:55 +00:00
Connor Abbott
16214710ca
freedreno/ci: Remove minetest trace
...
I've repeatedly seen minor pixel changes due to changes that only affect
RA decisions, most recently in !22072 . We changed the trace to hopefully
remove a use of texture() in control flow, but it seems there are more,
or the problem is something slightly different like reading
uninitialized values. On the other hand minetest has never actually
caught an issue for me that some other trace hasn't also caught. Just
remove it.
Cc: mesa-stable
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25864 >
2023-11-02 21:46:55 +00:00
Connor Abbott
e8b3006bfd
util/rb_tree: Add augmented trees and interval trees
...
An "augmented tree" is a tree with extra data attached which flows from
the leaves to the root. An "interval tree" is a datastructure of
(potentially-overlapping) intervals where, in addition to inserting and
removing intervals, we can quickly lookup all the intervals which
overlap a given interval.
After describing red-black trees, CLRS explains how it's possible to
implement an interval tree using an augmented red-black tree where the
nodes are ordered by interval start and each node also stores the
maximum interval end for its entire subtree.
Implement the interval tree extension described by CLRS. Iterating over
all overlapping intervals is actually an exercise, so we have to solve
the exercise. The recursive solution has been re-written to use the
parent pointers to avoid needing a stack, similarly to rb_tree_first()
and rb_node_next().
For now, we only implement unsigned intervals, but the core algorithms
are all abstracted to allow other types. There's still some boilerplate,
but it's the best that can be done in C.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22071 >
2023-11-02 21:03:46 +00:00
Connor Abbott
767e68972e
util/rb_tree: Fix editorconfig
...
rb_tree has 4 space tabs, unlike everything else in util. We should
probably retab it, but for now add an editorconfig so that at least
people's editors aren't messed up.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22071 >
2023-11-02 21:03:46 +00:00
Faith Ekstrand
1793adbd3a
nir/validate: Allow array derefs on vectors on function/shader_temp
...
This is required by OpenCL.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
0b3b4da82a
nir: Handle array-deref-of-vec in var split passes
...
The changes are pretty straightforward. For vector splitting, we just
ignore those vectors for now. We could potentially handle array derefs
with a constant index (and probably should) but that's left for later.
For now, I'm mostly concerned with correctness of the pass.
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
6bc8567bb9
nir: Handle array-deref-of-vec in vars_to_ssa
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7746
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
68c54c994a
nir/types: Support vectors in glsl_get_length()
...
This makes it consistent with glsl_get_array_element() which returns the
scalar type for vectors, column type for matrices, and array element
type for arrays.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
1e1c450659
nir/lower_io_to_vector: Only call glsl_get_length() on arrays
...
We assumed that calling it on vectors would return 0 and then did a
MAX2(length, 1) to get 1 for vectors. Instead, use a ternary so we
don't make assumptions about non-sensical values.
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Karol Herbst
5db458eb2d
ir2: Stop assuming glsl_get_length() returns 0 for vectors
...
Signed-off-by: Karol Herbst <git@karolherbst.de >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
2db20af82e
v3d: Stop assuming glsl_get_length() returns 0 for vectors
...
Checking for whether or not it's a plain vector is actually what we want
anyway. There's no point in handling arays of length 1.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
ed79690196
vc4: Stop assuming glsl_get_length() returns 0 for vectors
...
Instead, check if it's a vector or scalar and use 1 explicitly. In FS
output case where we were only using it assert we don't have any arrays,
assert that directly.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Karol Herbst
d17dc3e9cd
nir: Stop assuming glsl_get_length() returns 0 for vectors
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
a1f3c5eea7
nir: Add asserts to nir_phi_builder_value_set_block_def
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
5adb335507
nir: Use nir_builder to insert movs
...
Also, leave a big comment about why we're inserting movs and not just
propagating SSA values directly. Hopefully this will prevent idiots
like me from getting clever and thinking they can delete that mov. 😅
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Faith Ekstrand
15ab4d397f
nir: Handle wildcards with casts in copy_prop_vars
...
If we're propagating a copy from a cast where the copy copies an entire
array, we end up with something like &((S *)ssa_N)->f[*] in the source
where a wildcard has a cast in its parent chain. If we then try to
propagate the read into a non-wildcard array load, we have to specialize
the wildcard. This breaks because nir_build_deref_follower() doesn't
handle casts. Since we know a priori that, because wildcards are only
generated by copy_deref on arrays, we cannot have a cast with a wildcard
parent so simply chasing the source deref to the first wildcard will
ensure that any casts in the deref are handled properly.
Fixes: ba2bd20f87 ("nir: Rework opt_copy_prop_vars to use deref instructions")
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 >
2023-11-02 20:28:46 +00:00
Yiwei Zhang
ae3b022fa0
venus: fix query feedback batch leak and race upon submission
...
Summary:
- fixed the combined query batches leak
- fixed the race condition of accessing feedback cmd pool
- very scoped code refactor
Cc: 23.3 <mesa-stable>
Fixes: 5b24ab91e4 ("venus: switch to unconditionally deferred query feedback")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25988 >
2023-11-02 17:46:32 +00:00
Jesse Natalie
d9fada16b9
d3d12: Don't support displaytargets that can't be supported by GDI/DXGI
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25979 >
2023-11-02 17:11:33 +00:00
Jesse Natalie
d4ed1ea31e
winsys/gdi: Update is_displaytarget_format_supported to reflect reality
...
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Reviewed-by: Neha Bhende <bhenden@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25979 >
2023-11-02 17:11:33 +00:00
Jesse Natalie
823d40db4a
winsys/gdi: Handle 4444 and 1010102 texture formats
...
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Reviewed-by: Neha Bhende <bhenden@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25979 >
2023-11-02 17:11:33 +00:00
Jesse Natalie
87c5589605
wgl: Take pixelformat color channels into account for choosing a PFD
...
Otherwise there's no way to target PIPE_FORMAT_B4G4R4A4_UNORM instead
of the B5G6R5 or B5G5R5A1 if those are supported. This gets the behavior
closer to the Windows PFD selection.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Reviewed-by: Neha Bhende <bhenden@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25979 >
2023-11-02 17:11:33 +00:00
Rohan Garg
2444a3cd46
intel/compiler: migrate WA 14013672992 to use WA framework
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26006 >
2023-11-02 16:39:25 +00:00
Konstantin Seurer
11282598e6
radv: Add radv_nir_lower_hit_attrib_derefs_tests
...
Tests hit attrib lowering for various variable/type configurations.
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
f51227d253
radv/clang-format: Do not indent C++ modifiers
...
Turns
class asd {
private:
};
into
class asd {
private:
};
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
ba8d3afa56
radv/nir: Handle boolean hit attribs
...
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
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
a2d3c74094
meson: Require clc for asahi
...
By the end of the series, this will become a hard dependency for the driver.
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
01d0d94319
meson: Simplify clc expression
...
To make it easier to add more clc users later.
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
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
Alyssa Rosenzweig
103d20e657
gitlab: Highlight .cl as C
...
It is close enough, and a lot better than the defaults when gitlab doesn't
recognize the file format as currently happens for .cl
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
b509446c2c
docs/v3d: update v3d documentation
...
In order to include a reference to the Raspberry Pi 5, and that the
support for 3.3 and 4.1 got dropped.
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
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
Samuel Pitoiset
dcc4e1b4d7
ci: backport two mesh/task query fixes for VKCTS
...
RADV would need these fixes to avoid skipping a ton of tests.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25953 >
2023-11-02 08:22:26 +01:00
Guilherme Gallo
60cd0af06c
ci/lava: Add unit tests covering job definition
...
Add two unit tests related to the LAVA job definition.
test_generate_lava_job_definition_sanity checks for the most important
fields, deploy actions, namespaces etc.
test_lava_job_definition compares the generated definition with static
skeleton YAML files committed inside tests/data folder.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
fdd51ef584
ci/lava: Enable SSH by default in fastboot devices
...
It is only applied in Collabora farm, since we still haven't seen many
UART hangs in Lima farm.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
654f7f783f
ci/lava: Make SSH definition wrap the UART one
...
Simplify both UART and SSH job definitions module to share common
building blocks themselves.
- generate_lava_yaml_payload is now a LAVAJobDefinition method, so
dropped the Strategy pattern between both modules
- if SSH is supported and UART is not enforced, default to SSH
- when SSH is enabled, wrap the last deploy action to run the SSH server
and rewrite the test actions, which should not change due to the boot
method
- create a constants module to load environment variables
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
76922f8404
ci/lava: Create LAVAJobDefinition
...
To absorb complexity from the building blocks to generate job
definitions for each mode:
- fastboot-uart
- uboot-uart
- uboot-ssh
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
77c3091fdd
ci/lava: Refactor UART definition building blocks
...
Break it to smaller pieces with variable size (fastboot has 3 deploy
actions and uboot only one) to build the base definition nicely in the
end.
Extract kernel/dtb attachment and init_stage1 extraction into functions
to be later reused by SSH job definition.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
af9273eb4f
ci/lava: Fix imports formatting
...
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:50 +00:00
Guilherme Gallo
f7f2d26e3b
ci/lava: Use project_name instead of hardcoded mesa
...
The LAVA job submitter is being used by other fd.o projects, such as
`drm/ci`, so let's make it generate more generic job definitions and
test cases.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25912 >
2023-11-02 03:31:49 +00: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
4ddfc4503d
ci: fixup section names
...
Copy-paste typo + missed section_end update.
Fixes: 2815e5c94d ("ci: hide Mesa install phase")
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
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
fdb58f5b6c
ci: Uprev virglrenderer
...
Include the latest virglrenderer version.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25947 >
2023-11-01 20:33:01 +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
Tapani Pälli
faed5d647f
iris: handle tile case where cso width, height is zero
...
Patch adds a fallback to calculate_tile_dimensions if such case is hit,
this happened when running CTS tests on simulation.
Fixes: d13c81a2c3 ("iris/xehp: Implement TBIMR tile pass setup and pipeline bandwidth estimation.")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25989 >
2023-11-01 13:48:59 +00:00
Timur Kristóf
a19e46f5d0
radv: Implement workaround for unaligned buffer/image copies.
...
When the pitch or slice pitch isn't properly aligned,
the SDMA HW is unable to copy between tiled images and buffers.
To work around this, we process the image chunk by chunk,
copying the data to a temporary buffer which uses supported
pitches, and then copy it to the intended destination.
The implementation assumes that at least one pixel row of the
image will fit into the temporary buffer, and will try to copy
as many rows at once as possible. Sadly, this still results in
a lot of packets being generated for large images.
A possibe future improvement is to copy the image slice by slice
when only the slice pitch is misaligned. However, that is out
of scope for this commit.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25831 >
2023-11-01 13:21:01 +00:00
Timur Kristóf
ec0605ff72
radv: Add temporary BO for transfer queues.
...
Some copy operations are poorly supported by the SDMA hardware,
meaning that the built-in packets don't support them, so we will
need to work around that by copying to and from a temporary BO.
The size of the temporary buffer was chosen so that it can fit
at least one full pixel row of the largest possible image.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25831 >
2023-11-01 13:21:01 +00:00
Timur Kristóf
8156c923ee
radv: Implement buffer/image copies on transfer queues.
...
Previously, RADV only had a simple implementation of
image to buffer copies using the SDMA for the PRIME copy.
This commit replaces that with a full-featured implementation
that includes buffer to image and image to buffer copies and
removes the assumptions that the PRIME copy had, as well as
adds new helper functions which will be shared with other copy
functions in upcoming commits.
Unaligned buffer/image copies require a workaround, which
will be implemented by a future commit.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25831 >
2023-11-01 13:21:01 +00:00
Timur Kristóf
ed21f1c962
radv: Expose radv_get_dcc_max_uncompressed_block_size function.
...
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/25831 >
2023-11-01 13:21:01 +00:00
Timur Kristóf
848f2f2b99
radv: Remove always false tmz variables from SDMA functions.
...
We can re-add them later as-needed.
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/25831 >
2023-11-01 13:21:00 +00:00
Samuel Pitoiset
17daa08dff
radv: emit COMPUTE_PIPELINESTAT_ENABLE for CS invocations on ACE
...
This register seems needed to enable compute shader shader invocations
on GFX7. On GFX8+ it's working fine without emitting this register but
I think it doesn't hurt.
This fixes dEQP-VK.query_pool.statistics_query.*_cq on GFX7.
Fixes: a9945216ba ("radv: fix COMPUTE_SHADER_INVOCATIONS query on compute queue")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25957 >
2023-11-01 12:46:17 +00:00
Samuel Pitoiset
9a0a77cb53
radv: fix compute shader invocations query on compute queue on GFX6
...
Looks like GFX6 always writes the number of compute shader invocations
at offset 0 when used on compute queue.
This fixes dEQP-VK.query_pool.statistics_query.*_cq on GFX6.
Fixes: a9945216ba ("radv: fix COMPUTE_SHADER_INVOCATIONS query on compute queue")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25957 >
2023-11-01 12:46:17 +00:00
Samuel Pitoiset
46dc02354a
radv: adjust binning settings to improve performance on GFX9
...
This partially reverts 74ab940156 which
was a fix for random GPU hangs with binning on GFX10+. Though,
according to RadeonSI, only GFX10+ is affected and this reduced perf
on GFX9 chips.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25951 >
2023-11-01 12:24:45 +00:00
Samuel Pitoiset
e4a1bc70dd
radv: bind the non-dynamic graphics state from the pipeline unconditionally
...
The following sequence is valid (although weird) but many other drivers
(including RADV) were broken:
- bind pipeline with some static state
- set state command for that static state (to a bad value)
- bind the same pipeline again
- draw
Fixes new dEQP-VK.dynamic_state.*.double_static_bind.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25954 >
2023-11-01 09:44:13 +00:00
Sarah Walker
4e912c972b
pvr: Update AM62 DSS compatible string to match upstream
...
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com >
Reviewed-by: Matt Coster <matt.coster@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25978 >
2023-11-01 09:23:25 +00:00
Samuel Pitoiset
024dab650e
radv/ci: enable RADV_DEBUG=nomeshshader for vkcts-navi31-valve
...
To make VKCTS on NAVI31 stable until the task shader issue is
resolved.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25969 >
2023-11-01 08:50:06 +01:00
Samuel Pitoiset
a97160cad8
radv: add RADV_DEBUG=nomeshshader
...
This option will be used to disable VK_EXT_mesh_shader in Mesa CI
for GFX11 because running task shader tests in parallel can hang the
GPU.
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10051
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25969 >
2023-11-01 08:49:35 +01:00
Samuel Pitoiset
15f92c3b2c
radv/ci: update list of expected failures/flakes for NAVI31
...
Let's clean the flakes list, it might be needed to re-add some of them
but we will track those.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25969 >
2023-11-01 08:49:35 +01:00
Bas Nieuwenhuizen
da7e6f303b
radv: Add some initial graphics DGC preprocessing support.
...
Just the bits that obviously need no adjustment in the DGC
preprocessing code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25835 >
2023-11-01 00:06:10 +00:00
Bas Nieuwenhuizen
c4fb827441
radv: Add compute DGC preprocessing support.
...
This should reduce the overhead due to reduced syncs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25835 >
2023-11-01 00:06:10 +00:00
Bas Nieuwenhuizen
108227a84e
radv: Add DGC preprocessing barrier support.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25835 >
2023-11-01 00:06:09 +00:00
Karol Herbst
f7830240ac
rusticl/mesa/screen: do not derefence the entire pipe_screen struct
...
Apparently the dereferences made tsan report data races on the pipe_screen
object.
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25944 >
2023-10-31 22:09:56 +00:00
Casey Bowman
71064879d1
anv: Override vendorID for Diablo IV
...
Another case of a game assuming XeSS is available since an
Intel ARC GPU is discovered by the game's executable binary.
With this, a warning will appear that GPU is unstable/not supported,
but a warning is preferable over the game crashing.
No other issues observed upon starting & playing the game.
Signed-off-by: Casey Bowman <casey.g.bowman@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25965 >
2023-10-31 21:32:48 +00:00
Vitaliy Triang3l Kuzmin
03705f37bf
r600: Replace TGSI I/O semantics with shader_enums
...
Removes the link-time dependency on tgsi_get_gl_varying_semantic from
Gallium auxiliary.
ps_prim_id_input linkage removed due to redundancy - the SPI SID is
calculated for VARYING_SLOT_PRIMITIVE_ID on both sides.
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
29c544abc0
r600: Fix outputs typo in print_pipe_info
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
5419f52967
r600/sfn: Split r600_shader_from_nir into common and Gallium parts
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
c78aa6a417
r600/sfn: Make r600 header include paths relative
...
Fixes building SFN without the R600 Gallium driver in the #include paths
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
03d102f576
r600: Split r600_shader.h into common and Gallium parts
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
bcb34884c2
r600: Remove Gallium dependencies in r600_asm
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
b7e5a8b5ca
r600: Replace R600_ERR with R600_ASM_ERR in shader code
...
Doesn't depend on r600_pipe, thus usable outside Gallium
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
10ef3b7fe3
r600: Remove Gallium dependencies in r600_isa
...
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Vitaliy Triang3l Kuzmin
564b972196
r600: Move r600_create_vertex_fetch_shader to r600_shader.c
...
For r600_asm to be usable outside Gallium
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25695 >
2023-10-31 21:15:27 +00:00
Rob Clark
5521840cbc
ci: Only strip debug symbols
...
Hopefully this will get us more useful backtraces in CI (for ex, with
traces replay) while maintaining _most_ of the artifact size benefits of
stripping:
-rwxr-xr-x 1 robclark robclark 50M Oct 30 11:47 msm_dri.so.strip-debug
-rwxr-xr-x 1 robclark robclark 40M Oct 30 11:47 msm_dri.so.strip
-rwxr-xr-x 1 robclark robclark 129M Oct 30 11:47 msm_dri.so.orig
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25962 >
2023-10-31 20:13:30 +00:00
Giancarlo Devich
7d0ae38ef7
nir: Workaround MSVC internal compiler error in ARM64 build
...
Changes a variable type from `nir_component_mask_t` to `uint32_t`. The
variable's name suggests it may have been meant to be a 32-bit integer
anyway.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25691 >
2023-10-31 19:33:40 +00:00
Jesse Natalie
97553affc6
microsoft: Disable post-merge CI for Windows
...
Addresses part of https://gitlab.freedesktop.org/mesa/mesa/-/issues/10072
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25976 >
2023-10-31 19:10:30 +00:00
Frank Binns
122ed7cd80
pvr: rename some more instances of 'reserved' to 'carveout' for consistency
...
Signed-off-by: Frank Binns <frank.binns@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25910 >
2023-10-31 15:50:27 +00:00
Eric Engestrom
f2dfb0f6ee
broadcom: use .never-post-merge-rules for all rpi tests
...
We never want to re-run these tests after merging an MR; this is
entirely unnecessary and a 2x waste of resources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25960 >
2023-10-31 14:42:54 +00:00
Eric Engestrom
163c6fe4c4
ci: add .never-post-merge-rules to avoid re-running pre-merge jobs after merging
...
This is entirely unnecessary and a 2x waste of resources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25960 >
2023-10-31 14:42:54 +00:00
Gert Wollny
4cdd094ae1
virgl: Use host reported limits for max outputs
...
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24136 >
2023-10-31 13:03:29 +00:00
Alejandro Piñeiro
c24a635d1c
broadcom/compiler: add v3d_pack_unnormalized_coordinates helper
...
So far we were packing by hand unnormalized coordinates at the
V3D41_TMU_CONFIG_PARAMETER_1 pack structure. To get this working we
hardcoded V3D_VERSION to 41 at v3dv_uniforms, that works for v71
because the structure are the same. But that is somewhat ugly, and
will not work if a new hw generation have a different structure.
Additionally, we found that for v3d this will be also needed.
So this commit adds a helper on the compiler. For now, and to simplify
it also use just one method for both generations. This solves the
problem of the same code needed on both v3d and v3dv.
But the idea is that in the future we need a similar need, but the
structure different on each generation, it would have used a similar
approach to other generation dependent function calls (like
v3d40_vir_emit_tex), having the implementation on a source file that
can safely include the hw generation headers.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25544 >
2023-10-31 13:00:34 +01:00
David Heidelberg
5e4ba9b166
ci/lava: add wine into the amd64 ephemeral container packages
...
We don't have to install DXVK in chroot.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
81aaeb80f7
Revert "ci/wine: move wine configuration into rootfs where is wine available"
...
This reverts commit 63b42e4007fec8746f7a3848b3816d36124dcbfd.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
1e13c7ca46
ci/wine: move wine configuration into rootfs where is wine available
...
As we removed wine from builds, we need to use the one installed in rootfs.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
35c7b5e159
ci/alpine: do not store apk cache
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
3669ca159f
ci/venus: reduce pre-merge to fit under 15 min
...
Currently the run takes ~ 35 minutes, which is too much.
Reported-by: default avatarDaniel Stone <daniels@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
f6dd808d68
ci/panfrost: run T860 traces as intended (nightly job)
...
Also split extends from the HW definitions.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
17d6baff82
ci: drop debootstrap, unused
...
Most likely was historically used there, but not recently.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
e4d6da5ba3
ci: bashify scripts, use arrays
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
e678483ecd
ci: always cleanup pip and cargo leftovers
...
This is leftovers from the compilation/installation phase.
In the build containers this took around ~ 400 MB.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
c6928a4e6e
ci: drop mingw and wine from the x86_64 build container
...
MinGW is currently disabled and new implementation will handle things
differently anyway.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
ef217a9221
ci: simplify debian-rusticl-testing definition
...
This was originally split due testing both rusticl and clover.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
1f2b50fbc2
ci: drop clover from release builds and remove rusticl build
...
Let's hope we don't see Clover in next release.
For rusticl, drop debian-rusticl and keep the debian-rusticl-testing.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
2815e5c94d
ci: hide Mesa install phase
...
So far we show installation part together with meson tests.
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
68e8e40163
ci/zink: reduce premerge testing on a618 to ~ 12 minutes
...
Currently is run around 20 minutes.
Except this, also use Weston (more likely use for zink+a618)
as an effort to stop testing X11 bugs instead of Mesa.
Rest will get covered by nightly job.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
David Heidelberg
fa7ca1f70a
ci: bump tags
...
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25843 >
2023-10-31 01:00:25 +00:00
Kenneth Graunke
fddad4d5f9
intel/compiler: Assert that FS_OPCODE_[REP_]FB_WRITE is for pre-Gfx7
...
We use SHADER_OPCODE_SEND directly instead of FS_OPCODE_FB_WRITE (for a
while now) and FS_OPCODE_REP_FB_WRITE (since the previous commit).
Assert that it isn't used on Gfx7+.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Kenneth Graunke
48f60f4c4b
intel/compiler: Convert the repclear shader to use send-from-GRF
...
Sandybridge uses this code and needs MRFs, but all other platforms send
from GRFs. Do that directly rather than relying on the MRF hack.
Ivybridge and later also use SHADER_OPCODE_SEND directly rather than
a virtual opcode that's handled in the generator, so we follow suit.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Kenneth Graunke
ef7d1b5f44
intel/compiler: Drop unused saturate handling in repclear shader
...
We never set key->clamp_fragment_color when compiling the BLORP fast
clear shaders. Besides, we were setting saturate on an FB write opcode,
which...isn't even a thing. We would need it on the MOV, and weren't
setting it there. So it wouldn't have even worked.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Kenneth Graunke
e6d9267d4f
intel/compiler: Delete repclear shader's special case for 1 color target
...
This is basically just once through the loop but copy and pasted. One
difference is that the single render target case used a headerless
message, and the multiple render target case always used headers.
Now we use headerless messages for the first render target, even in the
multiple render target case. While we already have it set up for the
other RTs, it's still 2 fewer registers to send. Minor improvement.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Kenneth Graunke
e6460fe66b
intel/compiler: Delete unused repclear shader uniform handling
...
A long time ago, we used a uniform for the clear color. Back in 2014,
we added support for using a flat input instead, as this was easier for
Vulkan, but we left the option of using a uniform for OpenGL.
Eventually nobody used the uniform approach anymore, but the compiler
code to handle it remained. Drop the dead code.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Kenneth Graunke
b35f1fc910
intel/compiler: Delete unused emit_dummy_fs()
...
This code is compiled out, but has been left in place in case we wanted
to use it for debugging something. In the olden days, we'd use it for
platform enabling. I can't think of the last time we did that, though.
I also used to use it for debugging. If something was misrendering, I'd
iterate through shaders 0..N, replacing them with "draw hot pink" until
whatever shader was drawing the bad stuff was brightly illuminated.
Once it was identified, I'd start investigating that shader.
These days, we have frameretrace and renderdoc which are like, actual
tools that let you highlight draws and replace shaders. So we don't
need to resort iterative driver hacks anymore. Again, I can't think of
the last time I actually did that.
So, this code is basically just dead. And it's using legacy MRF paths,
which we could update...or we could just delete it.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20172 >
2023-10-30 23:03:23 +00:00
Juston Li
5b24ab91e4
venus: switch to unconditionally deferred query feedback
...
All commands that make queries available have feedback cmds batched
and stored during recording. At submission time, for each batch
(SubmitInfo) these feedback cmds are recorded in a cmd buffer that is
appended after the last original cmd buffer (but before
semaphore/fence feedback).
Query reset cmds are deferred as well and also remove any prior feedback
cmds for queries its resetting within the batch.
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
Juston Li
7fbf608f2d
venus: append query feedback at submission time
...
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
Juston Li
d2a626787e
venus: track/recycle appended query feedback cmds
...
Link the query feedback cmd lifecycle to a cmd in the batch so that when
that last cmd gets reset/freed, we assert its safe to reset the query
feedback cmd. The cmd is then placed on the free list for reuse.
Some edge cases if the the last cmd is simultaneous or gets resubmitted.
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
Juston Li
6dcf033dc3
venus: support deferred query feedback recording
...
Add function to alloc a cmd buffer and record all the deferred query
feedback cmds into it at submission time.
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
Juston Li
99807b3db6
venus: refactor out common cmd feedback functions
...
defered query feedback cmds have similaries with timeline semaphore
feedback so refactor out some common functions for reuse
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
Juston Li
2ea6f935ce
venus: add helper function to get cmd handle
...
rename previous vn_get_cmd_handle as that was getting cmd
handles from the temp storage cmd_handle buffer.
Cc: 23.3 <mesa-stable>
Signed-off-by: Juston Li <justonli@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25413 >
2023-10-30 22:22:10 +00:00
David Heidelberg
180cb30986
ci/docs: add coreutils
...
Needed for correct GitLab CI `date` variable parsing.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10041
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25917 >
2023-10-30 19:16:19 +00:00
Lionel Landwerlin
cdca0b2ce4
anv: fix corner case of mutable descriptor pool creation
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 63e91148b7 ("anv: Enable VK_VALVE_mutable_descriptor_type")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10065
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25958 >
2023-10-30 18:29:46 +00:00
Eric Engestrom
fac60c140b
ci: don't run sanity in Marge pipelines
...
This check is intended for the MR author; for everyone else, there's
nothing they can do if the job fails so it's pointless to run it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25920 >
2023-10-30 17:50:56 +00:00
Eric Engestrom
49395b4aa4
docs/ci: allow sanity job to be missing
...
The rules of both jobs never matched, so there was always the potential
for the job to be missing, but it's about to get worse with the next
commit, so fix that now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25920 >
2023-10-30 17:50:56 +00:00
Eric Engestrom
3f64b12c1e
ci: drop confusing fake rules, if and when on the list of rules strings
...
These are not real rules, they are just strings that have an anchor that
can be referenced elsewhere in this file.
Having these fake bits in here is confusing, as revealed by the
reactions from the first version of this commit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25920 >
2023-10-30 17:50:55 +00:00
Eric Engestrom
9669334b41
ci/zink+radv: add another flake on polaris
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25959 >
2023-10-30 17:19:26 +00:00
Lionel Landwerlin
e64a97694a
anv: use anv_state_pool_state_address for blorp vertex buffer address
...
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
8d813a90d6
anv: fail pool allocation when over the maximal size
...
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
8fc42d83be
anv: make sure pools can handle more than 2Gb
...
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
cc67bd48d9
anv: add max_size argument for block & state pools
...
Not enforced yet.
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
b30428416a
anv: deal with state stream allocation failures
...
In case we run out of space, all the parts of the driver that rely on
this should deal with failure. The helpers will set the batch in error
state so that it cannot be submitted by the application.
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
ed83d1415c
anv: rename internal heaps
...
Some of the names are a bit confusing. The main change is to introduce
the "indirect_" prefix.
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
Lionel Landwerlin
f9753488ec
blorp: handle binding table & surface state allocation failures
...
The embedding driver could be failing the allocation for whatever
reason, in which case we should skip the surface state writes.
Signed-off-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/25955 >
2023-10-30 14:47:18 +00:00
LingMan
1cc26e8b66
rusticl: Show an error message if the build is attempted with an outdated bindgen version
...
Ideally the build system would fetch the correct bindgen version automatically like cargo does.
Until then, provide an error message that is hopefully more helpful than whatever cryptic error the
build runs into otherwise.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9457
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10029
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25859 >
2023-10-30 13:12:51 +00:00
Erik Faye-Lund
e350193eb5
util: remove unused lut
...
This was added in 153c714f2a ("util: add softfloat functions to
operate with doubles and floats"), but never used. Let's just drop it.
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25746 >
2023-10-30 12:35:07 +00:00
Tapani Pälli
2833d1ade1
intel/dev: fix intel_device_info_is_adln check
...
We cannot compare pointer, patch adds is_adl_n to devinfo for detection.
Fixes: 3cf71ddfac ("intel/dev: provide intel_device_info_is_adln helper")
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/25934 >
2023-10-30 11:20:41 +00:00
Jordan Justen
9bd47aabaf
anv: Add more space for init_render_queue_state() batch (MTL regression)
...
It may be some MTL specific code paths, but 7cdacaf493 is triggering
anvil to run out of space when initializing the render batch.
Fixes: 7cdacaf493 ("intel/xehp: Adjust TBIMR performance chicken bits.")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25949 >
2023-10-30 10:05:10 +00:00
Danylo Piliaiev
117f81585e
tu/a6xx: Exclude REG_A6XX_TPL1_UNKNOWN_B602 from reg stomping
...
Not used on A6XX but causes failures when set
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25918 >
2023-10-30 09:39:21 +00:00
Danylo Piliaiev
069797c708
tu/a7xx: Zero out A7XX_VPC_PRIMITIVE_CNTL_0 in 3d blits
...
Same as we are doing with A6XX_PC_PRIMITIVE_CNTL_0.
No issues were seen but it should be a right thing to do.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25918 >
2023-10-30 09:39:21 +00:00
Danylo Piliaiev
cdbb8b5412
tu: Fix reading of stale (V)PC_PRIMITIVE_CNTL_0
...
PC_PRIMITIVE_CNTL_0 is not set in a draw state and may be changed
by 3d blits, so we have to re-emit it a the start of a renderpass.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9941
Fixes: 7be8d0f7f4
("tu: Use common dirty tracking for PC_PRIMITIVE_CNTL_0")
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25918 >
2023-10-30 09:39:21 +00:00
Samuel Pitoiset
0477346c0b
aco: remove dead code in nir_intrinsic_xfb_counter_{add,sub}_amd
...
This code path is only used by GFX11 now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25903 >
2023-10-30 08:51:51 +00:00
Samuel Pitoiset
d390cd7c5d
ac/nir: remove dead code in nir_intrinsic_xfb_counter_{add,sub}_amd
...
This code path is only used by GFX11 now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25903 >
2023-10-30 08:51:51 +00:00
Samuel Pitoiset
5176f75e0d
radv: remove unnecessary VS_PARTIAL_FLUSH for NGG streamout
...
This used to be a PS_PARTIAL_FLUSH to fix synchronization issues with
NGG streamout on RDNA2 but it's no longer needed for RDNA3. It's
already synchronized in CmdEndTransformFeedbackEXT().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25903 >
2023-10-30 08:51:51 +00:00
Samuel Pitoiset
eb47e07782
radv: remove NGG streamout support for RDNA1-2
...
This was useful for experimenting it on RDNA2 and during RNDA3 bringup,
but now the support is rock solid on RDNA3 and it's useless to keep the
RADV_PERFTEST=ngg_streamout option.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25903 >
2023-10-30 08:51:51 +00:00
Samuel Pitoiset
7beddd4f5c
radv: use the GPUVM fault protection status helper
...
To print more useful information when a fault happens.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25855 >
2023-10-30 08:10:23 +00:00
Samuel Pitoiset
e18c4bca31
ac/debug: add a helper to print GPUVM fault protection status
...
This basically prints the same info as dmesg.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25855 >
2023-10-30 08:10:22 +00:00
Samuel Pitoiset
bc09932ec3
ac/registers: allow to parse GCVM_L2_PROTECTION_FAULT_STATUS
...
To have defined bitfields for this register.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25855 >
2023-10-30 08:10:22 +00:00
Samuel Pitoiset
7d96fe853e
radv: fix a synchronization issue with primitives generated query on RDNA1-2
...
Only RDNA1-2 are affected because RADV needs to handle the legacy vs
NGG path for this query, and the NGG results are stored with 2 extra
64-bit values.
Fixes flakes with
dEQP-VK.transform_feedback.primitives_generated_query.* since VKCTS
1.3.7.0.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25862 >
2023-10-30 07:33:06 +00:00
Iago Toral Quiroga
82bef62c17
v3d,v3dv: fix MMU error from hardware prefetch after ldunifa
...
ldunifa works exactly the same as ldunif: the hw will prefetch the
next 4 bytes after a read, so if a buffer is exactly a multiple of
a page size and a shader uses ldunifa to read exactly the last 4 bytes
the prefetch will read out of bounds and spam the error on the kernel
log. Avoid that by allocating extra bytes in this scenario.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25752 >
2023-10-30 08:14:05 +01:00
Etaash Mathamsetty
830018abfa
driconf: add a workaround for Rainbow Six Siege
...
Acked-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25734 >
2023-10-30 06:05:17 +00:00
Julia Zhang
78edaa2a9a
radeonsi: modify binning settings to improve performance
...
Existing binning settings which are required for gfx10.3 and newer cause
performance drop. Keep existing settings for gfx10.3 and newer version
and follow previous rules to set values for gfx9 to improve performance
of gfx9.
Signed-off-by: Julia Zhang <julia.zhang@amd.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25933 >
2023-10-30 12:02:53 +08:00
Karol Herbst
4f892ecc1e
zink: emit MemoryAccess flags for coherent global load/stores
...
Makes global load/stores coherent on a device level if requested by the
shader.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:55 +02:00
Karol Herbst
2f34a1db58
zink: deallocate global_bindings array
...
Fixes: a6e9e0f0d7 ("zink: add set_global_binding")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:55 +02:00
Karol Herbst
6afa1b3bad
zink: handle denorm preserve execution modes
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:55 +02:00
Karol Herbst
049af04341
zink: validate pointer alignment in resource_from_user_memory
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:55 +02:00
Karol Herbst
5e3b7bef1e
rusticl: handle failed maps gracefully
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:55 +02:00
Karol Herbst
7f08036abc
rusticl/mesa: pass PIPE_BIND_LINEAR in resource_create_texture_from_user
...
Host pointer allocations are all linear laid out, so just tell the drivers
in case they don't assume this implicitly.
Fixes: 71a9af4910 ("rusticl/mem: support read/write/copy ops for images")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:28 +02:00
Karol Herbst
398fadf1cf
rusticl/device: restrict const max size to 1 << 26 bytes
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25937 >
2023-10-28 14:38:25 +02:00
Yiwei Zhang
38deb97d10
venus: use vk_device_memory tracked memory_type_index
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:40 +00:00
Yiwei Zhang
99b716c64d
venus: use vk_device_memory tracked size
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:40 +00:00
Yiwei Zhang
73267e38c9
venus: use vk_device_memory tracked export and import handle types
...
Meanwhile, we merge the export and non-external allocate paths since
export alloc will be rejected by vn_device_memory_should_suballocate.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:40 +00:00
Yiwei Zhang
a47992734a
venus: use common AHB management and export impl
...
vk_device_memory_create handles AHB export alloc and import tracking.
Also use common GetMemoryAndroidHardwareBufferANDROID impl.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:40 +00:00
Yiwei Zhang
6418a93510
venus: use common vk_device_memory as vn_device_memory base
...
This change only updates the handle object creation to use common vk
device memory.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Yiwei Zhang
35a3a6338f
venus: use common vk_image as vn_image base
...
This change only switches the object base, and is to prepare for using
vk_alloc_ahardware_buffer. Large refactor via leveraging existing common
vk_image state tracking will be followed.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Yiwei Zhang
a8b2cfe877
venus: avoid modifier prop query in vn_android_get_image_builder
...
AHB prop query would check the memory plane count match instead. This
reduces vn_android_get_image_builder overhead and simplifies the AHB
import api to prepare for later common vk ahb adoption.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Yiwei Zhang
7b76e1f62c
venus: tiny refactor of device memory report interface
...
Pass type and handle directly instead of vn_object_base to prepare for
device level objects using corresponding common vk objects.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Yiwei Zhang
bf0a5ebca8
venus: use common vk_image_usage_to_ahb_usage helper
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Yiwei Zhang
1547cf137e
venus: use common vk_image_format_to_ahb_format helper
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184 >
2023-10-28 00:28:39 +00:00
Marek Olšák
276b9b13cf
radeonsi: initialize perfetto in the right place
...
Compute contexts don't execute the second half of the function.
Fixes: a164e147e9 - radeonsi: Add perfetto support in radeonsi
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10043
Tested-by: Mike Lothian <mike@fireburn.co.uk >
Tested-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25873 >
2023-10-27 23:03:04 +00:00
Francisco Jerez
57decad976
intel/xehp: Enable TBIMR by default.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
ed9886321c
intel/xehp+: Use TBIMR tile box check in order to avoid performance regressions.
...
This allows the hardware to behave as if TBIMR was disabled until a
polygon is processed which spans at least one tile. This is a rather
heavy-handed heuristic meant to prevent regressions in heavily
geometry-bound workloads that render large numbers of tiny primitives
much smaller than a TBIMR tile.
A particularly bad example of this was observed in SoTR, where certain
draw calls with a long-running VS and a mostly trivial PS render more
triangles than pixels, filling up the URB and TBIMR batch pretty
quickly, which causes EU utilization to tank (since once the URB has
filled up the parallelism of the VS is limited by the number of
polygons that fit in a TBIMR batch at the completion of each tile
walk, which isn't a lot in relation to the total EU count of a DG2),
and causes the bottleneck to be the rate at which the tile sequencer
performs additional tile passes, each one processing a small number
(<1024 polygons) of the hundreds of thousands of triangles of the
draw call.
Enabling this heuristic seems effective at avoiding that scenario in
SoTR among other titles (e.g. Total War Warhammer 3), but it's a bit
of a compromise since one could imagine cases where TBIMR is helpful
even if the geometry doesn't pass the box check, so a better heuristic
or a driconf rule may be useful in the future.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
f0d24b155b
intel/xehp+: Adjust TBIMR batch size based on slice count.
...
This programs a TBIMR batch size equal to 128 polygons per slice in
order to match the hardware spec recommendation (BSpec 68436). This
has been confirmed to improve performance slightly relative to the
hardware default batch size of 256 polygons.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
7cdacaf493
intel/xehp: Adjust TBIMR performance chicken bits.
...
This enables a couple of TBIMR performance tunables in
CHICKEN_RASTER_2 that default to disabled. TBIMR fast clip appears to
help slightly with some geometry-bound workloads. TBIMR open batch
allows the rasterizer to start working immediately on the first tile
of the framebuffer, even before the batch has been closed, which helps
reduce the latency cost of the tile walk.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
08fd259b5b
anv/xehp+: Enable TBIMR in generated draw calls.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
65bbe58b25
anv/xehp: Implement TBIMR tile pass setup and pipeline bandwidth estimation.
...
This sets up the basic parameters needed for tiled rendering based on
a back-of-the-envelope estimate of the amount of memory used by the
pixel pipeline during the tile pass. The actual cache footprint of a
tile can vary wildly based on runtime factors which aren't easily
predictable based on static analysis, so this is only intended to
provide a rough approximation within the right order of magnitude.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:50:42 -07:00
Francisco Jerez
d13c81a2c3
iris/xehp: Implement TBIMR tile pass setup and pipeline bandwidth estimation.
...
This sets up the basic parameters needed for tiled rendering based on
a back-of-the-envelope estimate of the amount of memory used by the
pixel pipeline during the tile pass. The actual cache footprint of a
tile can vary wildly based on runtime factors which aren't easily
predictable based on static analysis, so this is only intended to
provide a rough approximation within the right order of magnitude.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:29 -07:00
Francisco Jerez
694d64188b
intel/xehp+: Define driconf option for selectively disabling TBIMR.
...
This may help debugging performance problems in the possible case that
TBIMR negatively impacts the performance of some application. It could
also allow applying application-specific band-aid fixes in the XML file
until a more general workaround is implemented.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:29 -07:00
Francisco Jerez
da28582eec
intel/xehp+: Add dynamic state flags controlling whether TBIMR is enabled during 3D primitives.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:29 -07:00
Francisco Jerez
622c2498d4
intel/xehp+: Import algorithm for TBIMR tiling parameter calculation.
...
This implements a minimalistic algorithm that can be used to obtain an
approximate solution for the integer programming problem of finding
the optimal tile dimensions based on an estimate of the tile cache
consumption per pixel of the current graphics pipeline -- Including
the TC footprint of render targets, depth and stencil buffers and
their auxiliary surfaces. Considering other (less local) memory
accesses performed by the pipeline (like texturing and shader storage)
would be useful (and could be considered by this algorithm with little
modification), but it would be pretty difficult to estimate the L3
cache consumption per pixel of such accesses based on static analysis
of the pipeline state alone without some sort of dynamic feedback.
The present algorithm returns a config with tile area large enough to
utilize a target fraction of the L3, which can be adjusted to obtain
greater/lower utilization of the L3 at the cost of higher/lower risk
of L3 cache thrashing respectively. The aspect ratio of the tile
layout returned attempts to minimize the number of poorly utilized
tiles around the boundaries of the framebuffer (due to partial
coverage), since having the tile sequencer process additional tiles
comes at a cost due to the latency of the additional passes, even if
they're mostly empty. Finally, among the solutions with satisfactory
cache footprint and tile count, the tile aspect ratio closest to 1 is
returned where possible, since tiles with very high aspect ratios can
have a negative impact on cache locality.
The algorithm is primarily intended for TBIMR, but it could be used
for PTBR as well with little modifications, since the TBIMR-specific
assumptions are few and noted in comments below.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:29 -07:00
Francisco Jerez
cec5541b02
intel/xehp+: Add TBIMR-related genxml definitions.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:29 -07:00
Francisco Jerez
3e3fd921ac
intel/mtl: Import L3 cache configurations.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Francisco Jerez
468904e833
intel/dg2: Import L3 cache configurations.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Jordan Justen
524996106c
intel/l3: Use devinfo->urb.size when cfg urb-size is 0.
...
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Anuj Phogat
ed5ff8f297
intel/l3: Adjust URB weight calculation for gfx12.5+.
...
Gfx12.5+ devices use special-purpose memory for the URB instead of
requiring a portion of the L3 to be carved out.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Francisco Jerez
6b9583734b
intel/l3: Set up L3FullWayAllocationEnable config if ALL partition has over 126 ways.
...
L3 configurations with an ALL partition of 128 ways per bank or more
cannot be represented with the normal L3ALLOC partitioning mechanism
since the "All L3 client pool" field would overflow, instead the
L3FullWayAllocationEnable bit has to be set, which causes the whole L3
to be used in a unified cache configuration.
That's precisely the configuration we're currently using on recent
platforms, but previously we were relying on the L3 config tables
being empty and the selected L3 configuration being a NULL pointer to
detect this condition. This is about change, the L3 configuration
structure will be defined for gfx12.5+ platforms since they provide
useful information about the cache hierarchy to the drivers. Instead
of checking whether the pointer is NULL in order to apply a unified L3
cache configuration, use it when there is a single ALL partition
larger than can be represented via L3ALLOC.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Francisco Jerez
f36027f389
intel/l3: Define helper for obtaining the size of an L3 partition in KB.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Francisco Jerez
19e62e8fba
intel/l3/gfx11+: Add tile cache partition to intel_l3_config struct.
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25493 >
2023-10-27 14:48:28 -07:00
Caio Oliveira
9d73bfc9cd
anv: Fix leak when compiling internal kernels
...
Cc: mesa-stable
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25928 >
2023-10-27 18:01:24 +00:00
Mike Blumenkrantz
736577871b
zink: check for cbuf0 writes before setting A2C
...
VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919 requires
a cbuf0 write for A2C to be active
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25938 >
2023-10-27 17:33:31 +00:00
Mike Blumenkrantz
d2abb4f975
zink: make (some) vk allocation commands more robust against vram depletion
...
as has recently been exposed by ci, there are some cases where running
lots of tests simultaneously can temporarily result in depleted vram,
which torpedos everything
as this scenario is transient (vram will very soon become available again),
it makes more sense to add some retries at fixed intervals to try soldiering
onward instead of exploding and probably blocking a merge
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25938 >
2023-10-27 17:33:31 +00:00
Mike Blumenkrantz
c4283e32e3
radv: correctly return oom from the device when failing to create a cs
...
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25927 >
2023-10-27 15:29:32 +00:00
Mike Blumenkrantz
f8909e7d55
zink: add more locking for compute pipelines
...
if multiple contexts are accessing this all at once then this needs
more locking to avoid unsynchronized cache access
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25929 >
2023-10-27 15:06:13 +00:00
Karol Herbst
9a3af6e1d8
rusticl/queue: Only take a weak ref to the last Event
...
This resolves a memory leak when the application drops its last reference
to the queue, but never waits explicitly.
The problem was, that the queue was refed by QueueState::last and that ref
only gets dropped on a blocking wait. This is problematic as non user
Event objects also hold a ref on the Queue they are created on, therefore
causing a cyclic ref relation.
In order to resolve it, just use a weak reference. A failure of upgrading
the Weak ref is not an issue as in this case we'd only wait on an already
destroyed or processed event. The worker thread already makes sure
everything stays in sync.
Fixes: 5b3ff7e3f3 ("rusticl/queue: overhaul of the queue+event handling")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: @LingMan <18294-LingMan@users.noreply.gitlab.freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25926 >
2023-10-27 14:47:23 +00:00
Samuel Pitoiset
7ec2544a9b
radv: dump the pipeline hash to the gpu hang report
...
It can be useful to verify that a specific pipeline causes a hang.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25908 >
2023-10-27 12:10:51 +00:00
Alejandro Piñeiro
5cb00f7e77
broadcom/qpu: use back BITFIELD64_RANGE for ANYOPMASK
...
This is the original definition for ANYOPMASK, until we found that
clang raised a warning using the option shift-count-overflow, so we
used an alternative.
That warning was fixed with commit 6e2bb716b0 , so let's restore
previous version.
Note that other good thing of that warning being fixed is that now we
can use without warning OP_RANGE with bit 63 (in the case that any
broadcom opcode used that bit)
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25776 >
2023-10-27 11:45:09 +00:00
Karol Herbst
1c619b668d
radv: fix buffers in vkGetDescriptorEXT with size not aligned to 4
...
The range alignment didn't happen through GetDescriptorEXT as it called
write_buffer_descriptor directly. So simply move the align
from write_buffer_descriptor_impl into write_buffer_descriptor.
Fixes: 46e0c77582 ("radv: implement VK_EXT_descriptor_buffer")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
01b6ccccc6
zink: lower fisnormal as it requires the Kernel Cap
...
I didn't check if it's a valid vulkan SPIR-V opcode and turns out it isn't
Fixes: 82eed326f4 ("zink: support more nir opcodes")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
e3a0df6468
zink: emit float controls
...
This is required by OpenCL who relies on flushing behavior to match the
runtimes advertized feature, but also later once rusticl does support
denorms, to flush them if applications whish to do so.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
700a2dc648
zink: alias nir scratch memory by lowering to common bit_size
...
This aliases each access as required by OpenCL. It's up to the vulkan
driver to vectorize to wider loads/stores if possible.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
ab065d9daa
zink: support CLAMP_TO_BORDER with unnormalized coords
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
abd8ef84ff
rusticl/mem: properly set pipe_image_view::access
...
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:55 +00:00
Karol Herbst
694001eef7
rusticl/device: restrict param_max_size further
...
It's kinda pointless to have it too big, it also causes weird shaders to
be generated and causes stack overflows in `nir_opt_gcm`.
Nothing needs big values here anyway.
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:54 +00:00
Karol Herbst
9b6ac56d72
rusticl/device: restrict image_buffer_size
...
It's pointless to advertise more than CL_DEVICE_MAX_MEM_ALLOC_SIZE and
also the CTS tests against this.
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:54 +00:00
Karol Herbst
d6a48ff402
vtn/opencl: always lower to libclc fmod
...
The nir/spirv variant is simply not precise enough and almost everybody
lowers it anyway.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25837 >
2023-10-27 10:52:54 +00:00
Lionel Landwerlin
7cff4cc9c8
intel/fs: Xe2 fix for ExBSO on UGM
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
BSpec: 56890
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25506 >
2023-10-27 10:58:12 +03:00
Juan A. Suarez Romero
b6fbc4e4dd
v3d/ci: run V3D GL tests in 64-bits
...
The recommended OS flavour for RPI4 and onwards is 64 bits, and just
keep the 32 bits for RPI3 and below.
This makes all the V3D testing to be done with 64 bits.
Acked-by: Iago Toral Quiroga <itoral@igalia.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25904 >
2023-10-27 06:33:04 +00:00
Yonggang Luo
ce5475366e
compiler,vulkan,drm-shim: Remove unused include directories from meson.build
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24462 >
2023-10-27 01:35:10 +00:00
Yonggang Luo
73b639ec5c
nir: #include "util/macros.h" for BITFIELD64_MASK in nir.c
...
There is no neeed #include "main/menums.h" in nir.c,
as it's belongs to gallium code
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24462 >
2023-10-27 01:35:10 +00:00
Mike Blumenkrantz
ee1039877c
mesa/st/texture: match width+height for texture downloads of cube textures
...
some drivers require this
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
df74ea7717
zink: unset explicit_xfb_buffer for non-xfb shaders
...
this catches duplicated xfb when generated geometry shaders are used
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
87e3720b66
aux/u_transfer_helper: set rendertarget bind for msaa staging resource
...
this matches other resources created with staging blit-like mechanics
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
694ebe8c72
zink: only emit xfb execution mode for last vertex stage
...
this is otherwise illegal
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
e8b2680045
zink: clamp resolve extents to src/dst geometry
...
exceeding src/dst extents is illegal
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
009d4a5fda
zink: always set VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT for usermem
...
required by spec
backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
7035b5a8e8
zink: emit SpvCapabilitySampleRateShading with SampleId
...
required by spec
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Mike Blumenkrantz
f2fb2df6a3
ci: bump VVL to 1.3.269
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25914 >
2023-10-27 00:44:49 +00:00
Guilherme Gallo
969ede4521
ci/bin: Refactor create_job_needs_dag
...
The function is getting too big, let's add comments, docstrings to the
most important function, new type hints and extract methods from it to
make it easier to read.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Guilherme Gallo
4e4743ec0a
ci/bin: Do not forget to add early-stage dependencies
...
In Mesa MR pipelines, we have the sanity job. This job is not an
explicit need for any one job, because only jobs with `- needs: []`
ignores previous jobs. If no `needs` is specified, the job will wait
until all the jobs of earlier stages are finished before starting.
See additional details section at:
https://docs.gitlab.com/ee/ci/yaml/index.html#stage-post
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10032
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Guilherme Gallo
c7b67d8619
ci/bin: Use iid instead of SHA in gitlab_gql
...
We were using sha to fetch the pipeline from GraphQL, but that leads to
wrong results when MR and branch pipelines exist. For example,
using pipeline-url as the MR pipeline:
- https://gitlab.freedesktop.org/gallo/mesa/-/pipelines/1017182
This would lead into the branch pipeline:
- https://gitlab.freedesktop.org/gallo/mesa/-/pipelines/1013189
Also simplify the GQL query, it had lots of unused data.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25858 >
2023-10-27 00:36:48 +00:00
Faith Ekstrand
49b3118302
nir/lower_bit_size: Use b2b for boolean subgroup ops
...
Without this, we replace vote_ieq(b) with vote_ieq(u2u32(b)) which is
wonky because we're doing a u2u on a 1-bit type. With this, we now
replace it with vote_ieq(b2b32(b)). For other subgroup ops, we replace
things like *scan[op](b) with *scan[op](b2b32(b)). For scan ops, this
assumes that b2b1(op(b1b32(x), b2b32(y))) = op(x, y) for all of the ops
iand, ior, and ixor. This is true on all the back-ends I'm aware of.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
5014759133
nir: Return b2b ops from nir_type_conversion_op()
...
Without this, nir_type_conversion_op(bool, bool32, RND) will return
u2u32 instead of b2b32 which is pretty unexpected behavior.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
d5c310899a
nir: Split nir_lower_subgroup_options::lower_vote_eq into two bits
...
On NVIDIA, we can do a vote_ieq on bool in one hardware op so we don't
want that lowered. We do want to lower vote_feq and other vote_ieq,
though.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
f10d768a88
nir/lower_bit_size: Use u_intN_min/max()
...
May as well clean it up while we're here.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
5465e5b157
nir/lower_bit_size: Handle vote_feq/ieq separately
...
They're different enough from all the other subgroup ops so it's best to
handle them as their own case.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
5979e74177
nir/lower_bit_size: Fix subgroup lowering for floats
...
Using u2u is always correct for integers, including signed integers,
because we're doing a down-cast. It's wrong for floats, though.
Fixes: f95665cfeb ("nir/lower_bit_size: Add support for lowering subgroup ops")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
16664b74a2
nir: Add a lower_read_first_invocation option to lower_subgroups
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Faith Ekstrand
3d027cca1e
nir: Add a lower_first_invocation_to_ballot option to lower_subgroups
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25894 >
2023-10-26 23:05:44 +00:00
Mike Blumenkrantz
d1d29d4f40
ci: skip zink vram test
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
9a98d6714d
zink: enable unsynchronized texture uploads using staging buffers
...
by not returning busy for non-HIC unsynchronized texture uploads,
the GL frontend will fall through to directly access the unsynchronized
cmdbuf
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
846a5ea224
zink: add locking for batch refs
...
this is needed to handle unsynchronized access
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
cd08b070a3
zink: add flag to restrict unsynchronized texture access
...
this is unset any time a texture is accessed and must be explicitly
re-set to preserve unsynchronized access
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
8ee0d6dd71
zink: add a third cmdbuf for unsynchronized (not reordered) ops
...
this provides functionality for unsynchronized texture uploads without
HIC support by adding a cmdbuf which can only be accessed directly by
the frontend thread
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
8d0eaf97db
zink: rework cmdbuf submission to be more extensible
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:26 +00:00
Mike Blumenkrantz
7d0dbdeca2
zink: assert that transfer_dst is available before doing buf2img
...
the blitter path here was just wishful thinking anyway
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
0b11b41fff
zink: barrier_cmdbuf -> reordered_cmdbuf
...
this is more consistent with the current usage of the cmdbuf
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
00206e01a4
zink: handle unsynchronized image maps from tc
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
9cc06f817c
tc: allow unsynchronized texture_subdata calls where possible
...
if a texture is provably idle, either by never having been used or
by exhaustively checking usage data, a texture subdata can occur
without any synchronization
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
815ed12e3b
tc: use strong refs for fb attachment tracking
...
this is necessary for unsynchronized texture upload tracking
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
b385fa85db
tc: add batch usage tagging to threaded_resource
...
this allows the tc recorder thread to tag resources to determine if
a resource has been previously seen by the current batch
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
39de1ce660
tc: always track fb attachments
...
this should have no measurable impact on perf
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
6d236917a9
tc: add non-definitive tracking for batch completion
...
this is useful as a hint for opportunistic optimizations
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25624 >
2023-10-26 22:31:25 +00:00
Mike Blumenkrantz
782481c429
zink: add copy box locking
...
this can technically be accessed by multiple threads, so ensure
access is serialized
backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25924 >
2023-10-26 21:13:01 +00:00
Ruijing Dong
09a8cc0d6d
radeonsi/vcn: vcn4 encoding interface dummy update
...
Due to some updates in vcn4 interface, add dummy members for further
development.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25898 >
2023-10-26 20:25:01 +00:00
Alyssa Rosenzweig
ef4aa24a15
meson: Add gallium-drivers=all option
...
Again, useful to lint common code changes and for our macbook-wielding rel
manager <3
Omits i915g due to dependency hell, everything else builds on fedora asahi.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882 >
2023-10-26 19:48:20 +00:00
Alyssa Rosenzweig
b70e948886
meson: Add vulkan-drivers=all option
...
To build-test everything, helpful to check common code changes before pounding
CI.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882 >
2023-10-26 19:48:19 +00:00
Alyssa Rosenzweig
2552ac360d
crocus: Support building on non-Intel
...
Ditto.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882 >
2023-10-26 19:48:19 +00:00
Alyssa Rosenzweig
c8192c1c93
hasvk: Support builiding on non-Intel
...
Should help Eric build test releases on their MacBook :-)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Cc: mesa-stable
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25882 >
2023-10-26 19:48:19 +00:00
Sil Vilerino
dfb9516026
d3d12: d3d12_video_buffer_create_impl - Fix resource importing
...
Only align resource dimensions on creation, not when importing existing D3D resource object.
Otherwise importing the resource fails since the resource descriptor does not match the aligned
dimensions passed in the template.
Fixes: 62fded5e4f ("d3d12: Allocate d3d12_video_buffer with higher alignment for compatibility")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25913 >
2023-10-26 19:25:16 +00:00
Ian Romanick
18d8a96a00
nir/split_vars: Don't split arrays of cooperative matrix types
...
glsl_type_is_vector_or_scalar would more accruately be called "can be an
r-value that isn't an array, structure, or matrix. This optimization
pass really shouldn't do anything to cooperative matrices. These
matrices will eventually be lowered to something else (dependent on the
backend), and that thing may (or may not) be handled by this or another
pass.
Fixes: 2d0f4f2c17 ("compiler/types: Add support for Cooperative Matrix types")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25871 >
2023-10-26 18:45:29 +00:00
Lionel Landwerlin
24631d308c
anv: ensure we reapply always pipeline dynamic state in runtime state
...
Doing something like this is allowed :
vkCreateGraphicsPipeline(.., scissorState, &pipeline);
vkCmdBindPipeline(pipeline);
vkCmdSetScissor(...)
vkCmdBindPipeline(pipeline)
If we don't reapply the pipeline dynamic state, the command buffer
runtime state will keep the dynamic state set in between the 2 binds.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25915 >
2023-10-26 18:02:53 +00:00
Martin Roukala (né Peres)
c580d604fb
ci/b2c: fix artifact collection
...
It seems like gitlab puts symlinks in artifacts rather than following
them. Let's fix this by copying the results folder from the job_folder
in an after script.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25902 >
2023-10-26 17:02:39 +00:00
Erik Faye-Lund
ac16f00352
docs: improve readability of c-signatures
...
This does two things:
1. It increases the contrast of the signatures
2. It ensures that there's some spacing when there's two signature
elements back-to-back (which happens when documenting structs, for
instance), making it easier to tell things apart.
Reviewed-by: Jani Nikula <jani@nikula.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Erik Faye-Lund
bbd6ef4d34
docs: remove breathe/doxygen stuff
...
Reviewed-by: Jani Nikula <jani@nikula.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Jani Nikula
ae74d486ad
docs/isl: use hawkmoth instead of doxygen
...
Use the hawkmoth c:auto* directives to incorporate isl documentation.
Convert @param style parameter descriptions to rst info field lists.
Add static stubs for generated headers. Fix a lot of references, in
particular the symbols are now in the Sphinx C domain, not C++
domain. Tweak syntax here and there.
Based on the earlier work by Erik Faye-Lund <kusmabite@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Jani Nikula
eabd93bba8
docs/nir: use hawkmoth instead of doxygen
...
Use the hawkmoth c:auto* directives to incorporate nir documentation.
Convert @param style parameter descriptions to rst info field lists.
Add static stubs for generated headers. Fix a lot of references, in
particular the symbols are now in the Sphinx C domain, not C++
domain. Tweak syntax here and there.
Based on the earlier work by Erik Faye-Lund <kusmabite@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Jani Nikula
082e7d23e7
docs/vulkan: use hawkmoth instead of doxygen
...
Use the hawkmoth c:auto* directives to incorporate vulkan documentation.
Convert @param style parameter descriptions to rst info field lists.
Add static stubs for generated headers. Fix a lot of references, in
particular the symbols are now in the Sphinx C domain, not C++
domain. Tweak syntax here and there.
Based on the earlier work by Erik Faye-Lund <kusmabite@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Jani Nikula
91587326ae
docs: Add docs/header-stubs/README.rst
...
Mesa generates a number of headers during build. To make Clang based
documentation parsing work without depending on the generated headers,
start a directory hierarchy under docs/header-stubs/ for static mock
headers.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:26 +00:00
Erik Faye-Lund
67485efd65
docs: prepare for hawkmoth
...
Hawkmoth is a Sphinx-extension that uses Clang to directly parse C code
for automatic documentation of C/C++ code, similar to what Doxygen does.
However, Doxygen is rather clunky to integrate into the build process,
so let's start switching over to Hawkmoth instead.
As Sphinx does not have syntax for describing parameter direction, add
an rst_prolog with rst replacements for them.
Reviewed-by: Jani Nikula <jani@nikula.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:25 +00:00
Jani Nikula
0ed5b8af01
isl: drop **< style documentation comments
...
Prepare for using Hawkmoth.
Hawkmoth does not support trailing comments using /**< ... */
syntax. Replace with regular documentation comments.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:25 +00:00
Jani Nikula
d407cd8216
nir: drop **< style documentation comments
...
Prepare for using Hawkmoth.
Hawkmoth does not support trailing comments using /**< ... */
syntax. Replace with regular documentation comments.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:25 +00:00
Jani Nikula
4024d0c196
nir: add names to some typedef'd structs/enums
...
In order to document "typedef struct { ... } T;" as a struct in
hawkmoth, the structs need to have names. Similar for enums.
Note: This is no longer required with Hawkmoth 0.16.0+ and Clang 16 and
later. With the next Hawkmoth release, this should be fixed also for
Clang 15 and earlier.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24507 >
2023-10-26 16:13:25 +00:00
Ganesh Belgur Ramachandra
2f7bc06643
radeonsi: Fix clear-render-target shader for 1darrays in NIR
...
There are no GL CTS tests for 1darrays, relying on OpenCL CTS instead.
This patch should fix the `clEnqueueFillImage` tests in OpenCL CTS.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25630 >
2023-10-26 15:33:18 +00:00
Eric Engestrom
63923d5d43
ci/rpi4: add spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yvyu to the list of known failures
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25906 >
2023-10-26 14:56:25 +00:00
Eric Engestrom
e6b4346eee
ci/rpi4: group all spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_* together
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25906 >
2023-10-26 14:56:25 +00:00
Corentin Noël
e95c9b0515
mesa/bufferobj: ensure that very large width+offset are always rejected
...
In the case width+offset is triggering an integer overflow, the checks in place
are not working as the comparison will fail.
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25909 >
2023-10-26 14:18:55 +00:00
Samuel Pitoiset
4f8a225387
ac/gpu_info: remove bogus assertion about number of COMPUTE/SDMA queues
...
For example, my polaris10 GPU now returns 3 compute queues.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25876 >
2023-10-26 13:44:21 +00:00
Samuel Pitoiset
fb64f7c676
radv: advertise VK_EXT_image_compression_control
...
This will be used by vkd3d-proton to disable eg. DCC per image in order
to workaround game bugs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25681 >
2023-10-26 13:04:08 +00:00
Samuel Pitoiset
8a25a9f4dd
radv: implement VK_EXT_image_compression_control
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25681 >
2023-10-26 13:04:08 +00:00
Samuel Pitoiset
8ec0a4c89c
radv: move RADV_DEBUG_NO_HIZ check in radv_use_htile_for_image()
...
To match radv_use_dcc_for_image().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25681 >
2023-10-26 13:04:08 +00:00
Lionel Landwerlin
ce5472137f
anv/meson: add missing dependency on the interface header
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: db335d9b73 ("anv: factor out host/gpu internal shaders interfaces")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25905 >
2023-10-26 12:26:05 +00:00
Tapani Pälli
c945e0777d
anv: add required PC for Wa_14014966230
...
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/25671 >
2023-10-26 11:51:47 +00:00
Tapani Pälli
2254eaa3ae
anv: add current_pipeline for batch_emit_pipe_control
...
This way we can implemented workarounds depending on the pipeline.
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/25671 >
2023-10-26 11:51:47 +00:00
Tapani Pälli
8ffc4bd31c
iris: add required PC for Wa_14014966230
...
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/25671 >
2023-10-26 11:51:47 +00:00
Tapani Pälli
3cf71ddfac
intel/dev: provide intel_device_info_is_adln helper
...
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/25671 >
2023-10-26 11:51:47 +00:00
Yonggang Luo
ffa458ee8f
nir: remove redundant include of gallium headers
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25880 >
2023-10-26 09:35:04 +00:00
Yonggang Luo
43715516fc
treewide: Merge num_mesh_vertices_per_primitive and u_vertices_per_prim into mesa_vertices_per_prim
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25880 >
2023-10-26 09:35:04 +00:00
Yonggang Luo
be431e0dc7
compiler: Implement num_mesh_vertices_per_primitive to match u_vertices_per_prim
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25880 >
2023-10-26 09:35:04 +00:00
Mike Blumenkrantz
d446ccfc81
draw: fix uninit variable false positive
...
In function ‘generate_clipmask’,
inlined from ‘draw_llvm_generate’ at ../src/gallium/auxiliary/draw/draw_llvm.c:1975:24:
../src/gallium/auxiliary/draw/draw_llvm.c:1302:25: warning: ‘sum’ may be used uninitialized [-Wmaybe-uninitialized]
1302 | sum = lp_build_fmuladd(builder, planes,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1303 | (LLVMValueRef[]){cv_x, cv_y, cv_z, cv_w}[i], sum);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/gallium/auxiliary/draw/draw_llvm.c: In function ‘draw_llvm_generate’:
../src/gallium/auxiliary/draw/draw_llvm.c:1149:44: note: ‘sum’ was declared here
1149 | LLVMValueRef plane1, planes, plane_ptr, sum;
| ^~~
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25884 >
2023-10-26 03:20:18 +00:00
Qiang Yu
0a564171f6
meson: be able to build radeonsi without llvm
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
bc59bbd43b
radeonsi: selectively build llvm files
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
cc8e4b321b
radeonsi: change compiler name for aco
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
9db67311cf
radeonsi: does not call llvm init when no llvm available
...
It's still needed when aco asm print.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
ed2e2038de
radeonsi: disk cache remove llvm dependancy when use aco
...
This re-enable disk cache when use aco.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
bad8fbe7f8
radeonsi: include ac_llvm_util.h when llvm available
...
Remove unused include.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
c2e2a78c72
radeonsi: set use_aco when no llvm available
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
18e19a53e9
radeonsi: selectively build llvm compile
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
a5fc880495
radeonsi: selectively build si llvm compiler create/destroy
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
b511edc0d5
radeonsi: move llvm internal header to si_shader_llvm.h
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
032c592619
radeonsi: stop llvm context creation when use aco
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
5bae345fb7
radeonsi: move llvm compiler alloc/free into create/destroy funcntion
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
79009811a2
radeonsi: move use_aco to si_screen
...
It's not per shader any more.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
18f79f4636
radeonsi: enable aco compilation for merged shader parts
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
0f23af5c0a
radeonsi: fill aco shader info for part mode merged shader
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
8cbd52f001
radeonsi: add vs prolog args needed by aco ls vgpr fix
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632 >
2023-10-26 10:27:55 +08:00
Qiang Yu
23cb6768cb
aco: add aco_is_gpu_supported
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Qiang Yu
9c63138ae3
aco: stop emit s_endpgm for first stage of merged shader
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Qiang Yu
14022a3a0e
aco: move end program handling to select_shader
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Qiang Yu
f3f2311d69
aco: extend max operands in a instruction to 128
...
We get more than 64 operands in p_end_with_regs when radeonsi.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Qiang Yu
e2af0b0b3f
aco: add create_end_for_merged_shader
...
For radeonsi merged shader LS/ES part to pass args to next
stage.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Qiang Yu
71fd3c2a35
aco: do not fix_exports when separately compiled ngg vs or es
...
For radeonsi not abort when this case, as it does not jump at
last.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25631 >
2023-10-26 02:01:49 +00:00
Mike Blumenkrantz
895c85ca8f
vulkan/wsi: unify all the image usage flag caps
...
these should be the same for all wsi backends, so make a single
entrypoint to return the flags so it can be modified in a single place
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25291 >
2023-10-26 00:08:57 +00:00
Mike Blumenkrantz
ac6139ad73
zink: don't block large vram allocations
...
I think this was masking some other problem that has long since been fixed
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25893 >
2023-10-25 23:47:29 +00:00
Neha Bhende
8cfb46e27d
ntt: lower indirect tesslevels in ntt
...
Tessellation shader which are using indirect
addressing for tesslevels e.g
gl_TessLevelOuter[gl_InvocationID] = tessLevelOuter;
are crashing because gl_TessLevelOuter is now a
compact array variable and nir expects a constant
array index into the compact array variable.
This patch handles such cases.
This fixes MR 21940
Fixes: 84006587d7 ("glsl: Delete the lower_tess_level pass.")
Tested with glretrace
Reviewed-by: Charmaine Lee <charmainel@vmware.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25773 >
2023-10-25 22:42:38 +00:00
Eric Engestrom
6505f5aade
docs: update calendar for 23.3.0-rc1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25896 >
2023-10-25 22:30:52 +00:00
Martin Roukala (né Peres)
2a65bb292d
zink/ci: drop the concurrency of the zink-radv-vangogh-valve job
...
We seem to be hitting the BAR0 size limit which triggers an amdgpu bug.
Let's drop the concurrency from 8 to 6 to alleviate pressure on BAR0,
and hopefully work around this kernel bug.
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25883 >
2023-10-25 21:46:45 +00:00
Lionel Landwerlin
439b0e8688
intel/fs: fix dynamic interpolation mode selection
...
We can end up in situation where we are dispatched with a multisample
framebuffer but not at per-sample. In this case we would request the
at_sample value with the wrong message configuration.
Relying on the BRW_WM_MSAA_FLAG_MULTISAMPLE_FBO flag superseeds
BRW_WM_MSAA_FLAG_PERSAMPLE_DISPATCH.
Fixes piglit tests :
spec@arb_gpu_shader5@arb_gpu_shader5-interpolateatsample*
With Zink on Anv
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 68027bd38e ("intel/fs: implement dynamic interpolation mode for dynamic persample shaders")
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25854 >
2023-10-25 21:15:48 +00:00
Eric Engestrom
0757ac6527
docs: reset new_features.txt
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25892 >
2023-10-25 19:56:42 +00:00
Eric Engestrom
ed8abf1e2d
VERSION: bump to 24.0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25892 >
2023-10-25 19:56:42 +00:00