Commit graph

181034 commits

Author SHA1 Message Date
Faith Ekstrand
1b4e100779 nvk: Add an NVK_DEBUG=gart flag
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31295>
2024-09-20 18:15:13 -05:00
Faith Ekstrand
611b0bb73d nvk: Silence a maybe-uninitialized warning
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31295>
2024-09-20 18:15:11 -05:00
Jason Macnak
6b83d49879 gfxstream: fix log levels in descriptor handling
... that potentially were accidentally promoted to info logs in
aosp/3252215 which affects common hot path.

Fixes: 6f0fff4634 ("gfxstream: guest: fully mesa-ify vulkan_enc")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31288>
2024-09-20 20:33:14 +00:00
Marek Olšák
58d5847fe3 radeonsi: don't use VS/PS/CS partial flushes if we use a TS event
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
653bcd85e0 radeonsi: remove barriers around clears using aux_context.compute_resource_init
Nothing else uses that context, so all barriers are unnecessary.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
58b512ddd6 radeonsi: execute clears at resource allocation using compute instead of gfx
This adds an additional aux_context, so that the gfx queue isn't stalled
due to clearing buffers or initializing DCC.

This aux context will only be used by resource_create, which will allow
us to remove all barriers around the clears because there are no others
users of those buffers on that context.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
c99b55092f radeonsi: move barriers out of si_execute_clears
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
36c368d466 radeonsi: move si_execute_clears barrier code into separate functions
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
0112fd7d40 radeonsi/aco: fix asm dumps to debug output via radeonsi_debug_disassembly=true
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
997c39c268 radeonsi: clean up and make corrections to si_create_fmask_expand_cs
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
799a0a980b radeonsi: adjust GFX12 checks in si_compute.c
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:45 +00:00
Marek Olšák
40d9616bd3 radeonsi: don't pad esgs_vertex_stride if it's 0
so that we don't allocate any LDS for ES->GS varyings if it's unused.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
02e9572335 radeonsi: wait for idle after end_query in si_test_blit_perf
end_query writes the timestamp only when everything is finished,
so the extra barrier only adds unnecessary overhead.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
3527d9f81d radeonsi: remove CB sync after FMASK and DCC decompression
It's not needed according to docs.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
a9eb83a15f radeonsi: don't sync CS and PS before rendering if there are no FBO attachments
because CB/DB don't read/write anything in that case

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
58c72e9648 radeonsi: deduplicate code emitting VGT_FLUSH/PIPELINESTAT events
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
d6f54a0551 radeonsi: count VS/PS/CS/L2 flushes in get_reduced_barrier_flags
also it no longer counts PS flushes as VS flushes, which is just for the HUD

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
15e320e970 radeonsi: don't sync VS and PS if they are idle
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Marek Olšák
17e994dab1 radeonsi: check and update compute_is_busy in get_reduced_barrier_flags
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31291>
2024-09-20 19:49:44 +00:00
Mike Blumenkrantz
ac912b3754 mesa: OVR_multiview_multisampled_render_to_texture
this is automatically supported for anyone that supports OVR_multiview
and EXT_multisampled_render_to_texture

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31235>
2024-09-20 18:54:26 +00:00
Mike Blumenkrantz
894b37e060 mesa: fix sample count handling for MSRTT
this extension specifies error checking (which was not implemented)
and also sample count clamping needs to be done since the samples
specified are just min samples and not an exact param

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31235>
2024-09-20 18:54:26 +00:00
Boris Brezillon
157a4dc509 panvk/csf: Fix multi-layer rendering
We assumed a tiler descriptor could handle 256 layers at a time, but
it's actually limited to 8 on v10, so let's adjust the code to take
that into account.

Fixes: 5544d39f44 ("panvk: Add a CSF backend for panvk_queue/cmd_buffer")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11882
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Boris Brezillon
dbfaf15bc1 pan/genxml: Fix layer_offset definition on v9+
The layer offset is a 9-bit signed integer, not an 8-bit unsigned.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Boris Brezillon
8822f5949c pan/desc: Add layer_offset field to pan_tiler_context::valhall
Compared to Bifrost, Valhall slightly improved layered rendering in
that you no longer need one IDVS job per layer. But they didn't quite
unleash things, because tiler descriptors still have a limited amount
of layers they can deal with, forcing us to emit more than one IDVS/tiler
descriptor per draw call if the number of layer exceeds this limit.

In order to specify where the starting point, a
{layer_offset,internal_layer_index} field has been added, so we need to
extend pan_tiler_context to pass this information and let the common
logic adjust the framebuffer internal_layer_index accordingly.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Boris Brezillon
6224a1e4d1 pan/decode: Interpret CS_BRANCH instructions
panvk uses loops and conditional blocks. We need to follow these
conditional branches if we want to dump the right amount of jobs.

Following branching has the annoying side effect of repeating
instructions, so we probably want to dump the CS and jobs separately
at some point, but that's good enough for now.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Boris Brezillon
1e0c502a77 panfrost: Don't turn 3D/cube images into 2D arrays
Instead of special-casing 3D image handling in the gallium driver, use
the actual image type and extend the compiler to deal with cube/3D
image coordinates.

This fixes panvk without resorting to the image type casting that was
in place in the gallium driver.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Boris Brezillon
e171579f51 vk/meta: Make sure texel is 32-bit in build_buffer_to_image_cs()
Just like fragment stores, image stores expect 32-bit values (at least
that's the case of the Bifrost backend), so make sure the value passed
to write_img() is always 32-bit, even when convert_texel() doesn't touch
the texel because the image view format matches the buffer format.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Tested-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31227>
2024-09-20 18:21:50 +00:00
Faith Ekstrand
f36e5dbe60 nvk: Advertise VK_KHR_shader_float_controls2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31170>
2024-09-20 17:09:14 +00:00
Nanley Chery
b3882c4488 intel: Avoid no-op calls to anv_image_clear_color
Whenever we execute a fast-clear due to LOAD_OP_CLEAR, we decrease the
number of layers to clear by one. We then enter the slow clear function
and possibly exit without clearing if the layer count is zero.
Unfortunately, we've already compiled the shader for slow clears by the
time we exit. Skip the slow clear function if there are no layers to
clear.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31167>
2024-09-20 16:34:37 +00:00
Nanley Chery
1c7fe9ad1b anv: Support fast clears in anv_CmdClearColorImage
At least two game traces make use of this path: TWWH3 and Factorio.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31167>
2024-09-20 16:34:37 +00:00
Nanley Chery
46d58583ff anv: Move exec_ccs_op and exec_mcs_op higher up
The next patch will use them in anv_CmdClearColorImage().

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31167>
2024-09-20 16:34:37 +00:00
Nanley Chery
03286117ef anv: Move and rename anv_can_fast_clear_color_view
It's no longer specific to image views.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31167>
2024-09-20 16:34:36 +00:00
Nanley Chery
44351d67f8 anv: Change params of anv_can_fast_clear_color_view
Expand the scope to more than just image views.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31167>
2024-09-20 16:34:36 +00:00
Sil Vilerino
83fdbf8772 d3d12: Plumb H264/HEVC temporal_id from pipe params
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:42 +00:00
Sil Vilerino
1b66866275 d3d12: d3d12_video_encoder_references_manager_h264 to use FrameDecodingOrderNumber as h264Pic->slice.frame_num
Fixes: da2cbfe3bf ("d3d12: Video Encode H264 to use direct DPB from frontend")

Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:42 +00:00
Sil Vilerino
96bf8f5a7d d3d12: H264 Encode - Set SPS.gaps_in_frame_num_value_allowed_flag=1 when num_temporal_layers > 1
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:42 +00:00
Sil Vilerino
fc1a96822d d3d12: Report H264/HEVC support for 4 max temporal layers
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:41 +00:00
Sil Vilerino
e0b84d4af1 d3d12: Support writing H264 temporal scalability prefix slice NAL on demand
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:41 +00:00
Sil Vilerino
06787d947d d3d12: Support writing H264_SEI_SCALABILITY_INFO header on demand
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:41 +00:00
Sil Vilerino
5e22ddacb6 pipe: Add temporal_id to pipe_h26x_enc_dpb_entry
Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
2024-09-20 15:50:41 +00:00
Samuel Pitoiset
80d60acb77 radv: only export KHR_video_maintenance1 with KHR_video_queue
It's required, otherwise dEQP-VK.info.device_extensions fails.

Fixes: b30462535b ("radv/video: add KHR_video_maintenance1 support")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31285>
2024-09-20 15:26:28 +00:00
Mike Blumenkrantz
80344bdc7c va: support zink on Windows
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31240>
2024-09-20 13:25:18 +00:00
Mike Blumenkrantz
e079116cf0 vl: add Windows kopper support
this passes through the LUID when provided by the caller

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31240>
2024-09-20 13:25:18 +00:00
Mike Blumenkrantz
f294b8262b vl: rename/ifdef the x11 kopper functionality
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31240>
2024-09-20 13:25:18 +00:00
Mike Blumenkrantz
62d93a53b4 zink: add screen create to match windows LUID
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31240>
2024-09-20 13:25:18 +00:00
Juan A. Suarez Romero
f364c11a7d v3d/ci: update expected results
Bring new fails and flakes due upreving the piglit version used in the
CI.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31278>
2024-09-20 12:53:06 +00:00
Samuel Pitoiset
cbae7792f9 radv: stop emulating GS invocations for legacy GS on RDNA1-2
This is basically a revert of !24231. This emulation was introduced
to fix counting the number of GS invocations in cases it's VS/TES as
NGG (hw does that), but it's unnecessary.

Since the specification has been clarified and pipeline stat queries
are undefined for stages not present in pipelines.
See https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/6547

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31153>
2024-09-20 12:28:08 +00:00
Samuel Pitoiset
d8be265bd5 zink/ci: update expected list of failures since recent piglit uprev
These are missing.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31271>
2024-09-20 09:46:23 +00:00
Boris Brezillon
15f18c862f panvk: Hook up descriptor array bounds checking
The clamping on the array index was already implemented, but
lower_desc_ctx::add_bounds_checks was always false. Set it based on
the robustness state we're being passed.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31251>
2024-09-20 09:12:42 +00:00
Boris Brezillon
0872c65f13 panvk: Pass the robustness state to nir_lower_descriptors()
Pass the robustness state to nir_lower_descriptors() instead of using
the default robustness set at device creation time.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31251>
2024-09-20 09:12:42 +00:00