Commit graph

205236 commits

Author SHA1 Message Date
Konstantin Seurer
2cdec6238c gallivm/nir/aos: Remove left over debug print
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
3d1072ec26 lavapipe: Implement VK_EXT_fragment_shader_interlock
This is a noop implementation because it is not possible for multiple
threads to access the same pixel during rasterization since it is
tiled.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
94c8a0e820 lavapipe: Implement KHR_shader_quad_control
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
f49ef38701 lavapipe: Advertise shaderResourceMinLod
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
a8b104d9bd llvmpipe: Handle nir_tex_src_min_lod
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
db34e2d540 lavapipe: Advertise VK_EXT_shader_image_atomic_int64
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
2be75cfe63 lavapipe: Implement 64-bit image clears
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
3ecb89c35b gallium: Handle 64bit textures in the SW clear fallback path
64bit clears only work with <=2 component formats because the two
integer clear values are interpreted as one 64bit integer.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
37f4ede8bf llvmpipe: Disable 64-bit integer formats for vertex fetch
draw does not handle them.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
c05e42eaea llvmpipe: Implement 64-bit image operations
LLVM has support and everything should be in place to support them.
There are just a few 32-bit assumptions that have to be removed.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Konstantin Seurer
d49de8f10a util: Add util_format_is_int64
util_format_is_int64 returns true for pure 64-bit integer (sint64 and uint64) formats.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33628>
2025-05-08 19:30:19 +00:00
Samuel Pitoiset
4b76d04f7f radv: ignore conditional rendering with vkCmdTraceRays*
CmdTraceRays is neither a dispatch or a draw command which means it
shouldn't be affected by conditional rendering.

Fixes recent VKCTS coverage.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34868>
2025-05-08 19:08:10 +00:00
Robert Mader
7b68e1da91 llvmpipe: Enable support for multiplanar formats
Stop supporting formats that would cause us to use
lp_build_fetch_subsampled_rgba_aos() for YCbCr->RGB conversion
and always go through the slower emulated paths using
mulitple sampler views.

This not only allows dmabuf imports with EXT_image_dma_buf_import
to succeed for common YCbCr formats, but also ensures hints like
EGL_YUV_COLOR_SPACE_HINT_EXT and EGL_SAMPLE_RANGE_HINT_EXT are
honored.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34775>
2025-05-08 18:47:17 +00:00
Robert Mader
bf126d08ae llvmpipe: Preparations for multiplanar formats
Use the appropriate util functions like many other drivers.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34775>
2025-05-08 18:47:17 +00:00
Robert Mader
4051d4ef59 llvmpipe: Fix dmabuf import paths for DRM_FORMAT_YUYV variants
Right now llvmpipe only successfully supports single-plane formats,
limiting the number of supported YCbCr formats to a relatively small
number.

The implicit support for R8G8_R8B8 style subsampled RGB formats
causes the most common ones, YUYV and its variants, to chain up
to to lp_build_fetch_subsampled_rgba_aos() when importing (u)dmabufs
with EXT_image_dma_buf_import.
This code path currently has at least the following issues:
1. It doesn't support the YVYU/PIPE_FORMAT_R8B8_R8G8_UNORM and
    VYUY/PIPE_FORMAT_B8R8_G8R8_UNORM, resulting in asserts/crashes.
2. The supported cases, YUYV and UYVY, end up with sub-optimal results
    as they always return BT.601/narrow results, ignoring
    EGL_YUV_COLOR_SPACE_HINT_EXT and EGL_SAMPLE_RANGE_HINT_EXT.

Stopping advertising support for those formats, as well as native support
for PIPE_FORMAT_YUYV and PIPE_FORMAT_UYVY, results in all four variants
taking fallback paths which happen to be much better supported.

An additional effect is that YUYV and UYVY are correctly advertised as
external only.

Cc: mesa-stable
Signed-off-by: Robert Mader <robert.mader@collabora.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34775>
2025-05-08 18:47:17 +00:00
Gurchetan Singh
03a35024a6 gfxstream: make sure by default descriptor is negative
Otherwise, another valid fd may be closed.

Cc: mesa-stable
Reviewed-by: Aaron Ruby <aruby@qnx.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34885>
2025-05-08 18:29:03 +00:00
Samuel Pitoiset
b7d2cdd2b4 radv: ignore radv_disable_dcc_stores on GFX12
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
It's not necessary because DCC is completely transparent to the
userspace driver. Also it's causing issues with scanout.

This fixes rendering issues with scanout in Indiana Jones.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12924
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34859>
2025-05-08 17:17:28 +02:00
Sil Vilerino
154c3934d6 d3d12: Add missing offset to encode slice metadata in the get_feedback function
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 10:42:17 -04:00
Sil Vilerino
245be20fa1 d3d12: Add fallback to ID3D12VideoEncodeCommandList2 if ID3D12VideoEncodeCommandList4 not available in underlying OS
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
e30a534f29 d3d12: Add missing D3D12_VIDEO_USE_NEW_ENCODECMDLIST4_INTERFACE guards
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
be33edbdf1 d3d12: Set HEVC slice mode state before calling d3d12_video_encoder_negotiate_requested_features_and_d3d12_driver_caps
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Pohsiang (John) Hsu
2939604248 d3d12: fix configuration flag for D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES
Signed-off-by: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
2ff18b2757 d3d12: Remove more nir dependencies when with_gallium_d3d12_graphics disabled
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
27829d7ffe d3d12: Do not build microsoft/compiler when graphics, gl or vk disabled
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
5051140c32 d3d12: Report pipe_enc_cap_dirty_info.supports_require_sao/loop_filter_disabled
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
64f1a365e5 pipe: Add pipe_enc_cap_dirty_info.supports_require_sao/loop_filter_disabled
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
922f8a7d07 d3d12: Implement H264/HEVC PIPE_VIDEO_SLICE_MODE_AUTO for gallium driver auto-partition
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
0ee4b77ec9 pipe: Add PIPE_VIDEO_SLICE_MODE_AUTO for gallium driver auto-partition
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
7dfc7e1b1d d3d12: Reports pipe_enc_cap_dirty_info.supports_require_auto_slice_mode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
ffe9cec740 pipe: Add pipe_enc_cap_dirty_info.supports_require_auto_slice_mode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
1c31fc3091 d3d12: Implement GPU Input Motion vectors
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
143087dadd d3d12: Make d3d12_video_encode_support_caps in/out param capEncoderSupportData1 pointer members an external allocation to outlive the stack of the method call
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
7312db4827 pipe: Add support for (GPU Input) motion maps
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
2c193547ca d3d12: Implement PIPE_VIDEO_CAP_ENC_QP_MAPS and CPU/GPU input QPMaps
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
5810c39978 pipe: Add (GPU input) PIPE_VIDEO_CAP_ENC_QP_MAPS and input_gpu_qpmap GPU input support
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
5cb4979875 d3d12: Add GPU input dirty rect support
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
86d521db4f pipe: Add (GPU input) PIPE_VIDEO_CAP_ENC_DIRTY_MAPS and pipe_enc_move_rects GPU input support
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
064e07b26a d3d12: deduplicate code with helpers: get_dirty_rects_support, get_move_rects_support, get_gpu_output_stats_support, get_sliced_encode_support
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
19cbb13255 d3d12: Support slice NAL prefixes on slice notifications mode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
df995c9631 d3d12: Implement multi-slice notifications
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
bedd423893 d3d12: Prepare d3d12_video_encoder_encode_bitstream for sliced encoding. Checked working with single slice buffer at this point
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
555a13661a pipe: Add sliced encoding API and caps
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
c5f5ee41c8 d3d12: Add support for QP, SATD and RC bits output stats
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
25726509ff pipe: Add PIPE_VIDEO_CAP_ENC_GPU_STATS_* and pipe_resource textures in H264/H265 encode pic params
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
56bbfb9598 d3d12: Add support for pipe_enc_move_rects for H264/H265 encode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
7c490bb860 pipe: Add PIPE_VIDEO_CAP_ENC_MOVE_RECTS and pipe_enc_move_rects for H264/H265 encode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
6d81bc0cdd d3d12: Add support for pipe_enc_dirty_rects for H264/H265 encode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
700c6fff58 pipe: Add PIPE_VIDEO_CAP_ENC_DIRTY_RECTS and pipe_enc_dirty_rects for H264/H265 encode
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
4e632ed891 d3d12: Use D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 when D3D12_VIDEO_USE_NEW_ENCODECMDLIST4_INTERFACE is set
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00
Sil Vilerino
731bc92e87 d3d12: Add #if guards for using new ID3D12VideoEncodeCommandList4
Reviewed-By: Pohsiang Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34844>
2025-05-08 14:17:22 +00:00