Commit graph

66837 commits

Author SHA1 Message Date
Mike Blumenkrantz
f96dc11e41 zink: fix zink_format_is_voidable_rgba_variant()
this should just match whatever X formats are emulated

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31277>
2024-09-25 03:16:27 +00:00
Mike Blumenkrantz
42648508f7 zink: move x8 format function to zink_format.c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31277>
2024-09-25 03:16:26 +00:00
Mike Blumenkrantz
735e402ae4 zink: implement compression control
this just passes the info through to struct creation and returns
previously queried info

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31024>
2024-09-25 02:30:40 +00:00
Mike Blumenkrantz
9696df4132 zink: store compression rate info for formats
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31024>
2024-09-25 02:30:40 +00:00
Mike Blumenkrantz
33c1b940e0 zink: hook up compression control extensions
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31024>
2024-09-25 02:30:40 +00:00
Mike Blumenkrantz
f4aab9984b gallium: delete pipe_screen::is_compression_modifier
this is unused

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31024>
2024-09-25 02:30:40 +00:00
Mike Blumenkrantz
1cb1212823 trace: add get_device_reset_status
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31276>
2024-09-25 01:08:21 +00:00
Timothy Arceri
c1b97415fa ci: disable gimark trace
gimark requires a mesa environment variable to be set to work around
a shader bug, disable it for now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31353>
2024-09-25 09:25:52 +10:00
Konstantin Seurer
466bbaf40f lavapipe: Do not return in report_ray_intersection
report_ray_intersection should not terminate invocations.

Fixes: d99e95e ("lavapipe: Implement VK_KHR_ray_tracing_pipeline")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31186>
2024-09-24 16:18:31 +00:00
Konstantin Seurer
4824bcdd5d lavapipe: Fix report_ray_intersection affecting terminated rays
Fixes dEQP-VK.ray_tracing_pipeline.amber.flags-accept-first.

Fixes: d99e95e ("lavapipe: Implement VK_KHR_ray_tracing_pipeline")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31186>
2024-09-24 16:18:31 +00:00
Hyunjun Ko
a36b17d7a8 zink: walk the chain of resources for multi-planar formats.
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31333>
2024-09-24 11:11:10 +00:00
Michel Dänzer
dc7723f788 radeonsi: Revert to GLSL_SAMPLER_DIM_2D in si_create_fmask_expand_cs
Fixes piglit arb_shader_texture_image_samples-builtin-image hanging
Navi 14.

Fixes: 997c39c268 ("radeonsi: clean up and make corrections to si_create_fmask_expand_cs")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31323>
2024-09-24 07:52:55 +00:00
Michel Dänzer
d69c1ca1a0 Revert "radeonsi: remove CB sync after FMASK and DCC decompression"
This reverts commit 3527d9f81d.

It broke piglit glx@glx-visuals-depth/glx@glx-visuals-stencil on Navi
14.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31323>
2024-09-24 07:52:55 +00:00
David Rosca
712e49f137 radeonsi/vcn: Don't reuse context with multiple VCN instances
Kernel does VCN instance scheduling per context, so when we have
multiple instances we should use new context to be able to utilize
all of them.
Another issue is with AV1, VCN 3 and VCN 4 only support AV1 on
first instance. Kernel parses IBs and switches to first instance when
it detects AV1, but this only works for first submitted IB in context.
The CS would be rejected if we first decode/encode other codecs, kernel
schedules on second instance (default) and then we try to decode/encode AV1.

Cc: mesa-stable

Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31249>
2024-09-24 07:06:32 +00:00
Marek Olšák
f8788b2a38 radeonsi: remove the make_texture_descriptor indirect function call
Call gfx10_make_texture_descriptor from si_make_texture_descriptor and
use si_make_texture_descriptor everywhere.

This is more readable.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
2024-09-23 20:34:13 +00:00
Marek Olšák
a578ca8388 radeonsi: rename hw_level -> view_level
for readability

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
2024-09-23 20:34:13 +00:00
Marek Olšák
f5b0f80de4 radeonsi: don't insert any barrier after the copy for PIPE_MAP_READ
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
2024-09-23 20:34:13 +00:00
Marek Olšák
a7cb1433e3 radeonsi: use ACO on GFX11.5 with LLVM 18 or older to work around GPU hangs
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
2024-09-23 20:34:13 +00:00
Marek Olšák
1c156f7fa9 radeonsi: clean up set_log_context code for all aux contexts
Instead of allocating it and then leaking it, store the log context
in si_screen.

Also, the log context was only set for "general" instead of all aux
contexts.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
2024-09-23 20:34:13 +00:00
David Rosca
f263e6d242 radeonsi/vcn: Enable IB parsing with AMD_DEBUG=ib
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31275>
2024-09-23 19:25:09 +00:00
Eric Engestrom
ada6702af0 llvmpipe/ci: document regression
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31326>
2024-09-23 18:50:33 +00:00
Eric Engestrom
bc086fcbdb lavapipe/ci: document regression
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31326>
2024-09-23 18:50:33 +00:00
Eric Engestrom
bb51cb3f0e zink+nvk/ci: add flakes seen recently
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31325>
2024-09-23 18:26:20 +00:00
Eric Engestrom
10b83041b8 zink+nvk/ci: document spec@egl_ext_surface_compression@create as crashing
Fixes: 213f5e9152 ("Uprev Piglit to e9ab30aeaed97b69868cf4d6d6a3f70f3b53c362")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31325>
2024-09-23 18:26:20 +00:00
Lionel Landwerlin
9b42215e0d iris: ensure null render target for specific cases
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/31196>
2024-09-23 15:56:02 +00:00
Charmaine Lee
5bdcc290e3 svga: sync up with the latest svga include files
Also imported vm_basic_types.h to make upstream sync up easier.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31290>
2024-09-23 15:05:15 +00:00
Patrick Lerda
b6b363c478 iris: fix iris_ensure_indirect_generation_shader() memory leak
This change ensures that all these allocations are using
the same memory context.

For instance, this issue is triggered with:
"piglit/bin/arb_shader_image_load_store-host-mem-barrier -auto -fbo":
Indirect leak of 32816 byte(s) in 1 object(s) allocated from:
    #0 0x7f49a35447ef in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb17ef)
    #1 0x7f49998e4b4f in ralloc_size ../src/util/ralloc.c:118
    #2 0x7f49998e7521 in create_slab ../src/util/ralloc.c:801
    #3 0x7f49998e7521 in gc_alloc_size ../src/util/ralloc.c:840
    #4 0x7f49998e7d11 in gc_zalloc_size ../src/util/ralloc.c:868
    #5 0x7f49999a6126 in nir_alu_instr_create ../src/compiler/nir/nir.c:682
    #6 0x7f49999cba48 in clone_alu ../src/compiler/nir/nir_clone.c:217
    #7 0x7f49999cc85a in clone_instr ../src/compiler/nir/nir_clone.c:456
    #8 0x7f49999cee3a in clone_block ../src/compiler/nir/nir_clone.c:529
    #9 0x7f49999cee3a in clone_cf_list ../src/compiler/nir/nir_clone.c:583
    #10 0x7f49999d03be in clone_function_impl ../src/compiler/nir/nir_clone.c:660
    #11 0x7f49999d13f7 in nir_function_impl_clone ../src/compiler/nir/nir_clone.c:678
    #12 0x7f4999a0e2c5 in lower_call_function_impl ../src/compiler/nir/nir_functions.c:397
    #13 0x7f4999a0e2c5 in function_link_pass ../src/compiler/nir/nir_functions.c:430
    #14 0x7f4999a0e2c5 in function_link_pass ../src/compiler/nir/nir_functions.c:408
    #15 0x7f4999a0e2c5 in nir_function_instructions_pass ../src/compiler/nir/nir_builder.h:108
    #16 0x7f4999a0e2c5 in nir_link_shader_functions ../src/compiler/nir/nir_functions.c:452
    #17 0x7f499ca30b8f in link_libintel_shaders ../src/gallium/drivers/iris/iris_program_cache.c:329
    #18 0x7f499ca30b8f in iris_ensure_indirect_generation_shader ../src/gallium/drivers/iris/iris_program_cache.c:374
    #19 0x7f499d185267 in gfx9_emit_indirect_generate ../src/gallium/drivers/iris/iris_indirect_gen.c:593
    #20 0x7f499d119c79 in iris_upload_indirect_shader_render_state ../src/gallium/drivers/iris/iris_state.c:8744
    #21 0x7f499fe86b01 in iris_indirect_draw_vbo ../src/gallium/drivers/iris/iris_draw.c:233
    #22 0x7f499fe86b01 in iris_draw_vbo ../src/gallium/drivers/iris/iris_draw.c:343
    #23 0x7f499a174e43 in tc_call_draw_indirect ../src/gallium/auxiliary/util/u_threaded_context.c:3828
    #24 0x7f499a1557fe in batch_execute ../src/gallium/auxiliary/util/u_threaded_context.c:453
    #25 0x7f499a1557fe in tc_batch_execute ../src/gallium/auxiliary/util/u_threaded_context.c:504
    #26 0x7f499a167f26 in _tc_sync ../src/gallium/auxiliary/util/u_threaded_context.c:761
    #27 0x7f499a168888 in tc_texture_map ../src/gallium/auxiliary/util/u_threaded_context.c:2783
    #28 0x7f49986f2631 in pipe_texture_map ../src/gallium/auxiliary/util/u_inlines.h:556
    #29 0x7f49986f2631 in _mesa_map_renderbuffer ../src/mesa/main/renderbuffer.c:494
    #30 0x7f49991af7ca in readpixels_memcpy ../src/mesa/main/readpix.c:260
    #31 0x7f49991af7ca in _mesa_readpixels ../src/mesa/main/readpix.c:898
    #32 0x7f499931ee23 in st_ReadPixels ../src/mesa/state_tracker/st_cb_readpixels.c:575
    #33 0x7f49991b40b5 in read_pixels ../src/mesa/main/readpix.c:1199
    #34 0x7f49991b40b5 in _mesa_ReadnPixelsARB ../src/mesa/main/readpix.c:1216
    #35 0x7f49991b4a20 in _mesa_ReadPixels ../src/mesa/main/readpix.c:1231
...
SUMMARY: AddressSanitizer: 323648 byte(s) leaked in 201 allocation(s).

Fixes: 5438b19104 ("iris: enable generated indirect draws")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31313>
2024-09-23 12:47:11 +00:00
Patrick Lerda
6e994fdb6e i915: fix vertex atan regression
This is a regression happening with the commit 87b99d5797 ("nir: use copysign for atan").
Indeed, the opcode "copysign" was generating an incompatible i915 sequence.

For instance, this issue is triggered with
"deqp-gles2 --deqp-case=dEQP-GLES2.functional.shaders.operator.angle_and_trigonometry.atan2.highp_float_vertex":
deqp-gles2: ../src/compiler/nir/nir_lower_int_to_float.c:239: lower_alu_instr: Assertion `nir_alu_type_get_base_type(info->output_type) != nir_type_int && nir_alu_type_get_base_type(info->output_type) != nir_type_uint' failed.

Fixes: c4cec84231 ("nir/i915g/r300/nv30: skip marking varyings as flat in some drivers")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31315>
2024-09-23 11:46:40 +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
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
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