Commit graph

177509 commits

Author SHA1 Message Date
Tatsuyuki Ishi
c217e8c21f vk_entrypoints_gen: Rework ATTR_WEAK to unify Unix and MinGW
The way ATTR_WEAK works is changed to eliminate the "don't declare as
weak on MinGW" weirdness. When a weak is not undefined, MinGW requires
the definition to be a regular symbol. Instead of declaring as weak
everywhere, we now declare the symbol as a regular by default, and only
make it weak when it needs to fallback to NULL when undefined, which is
only needed for the dispatch table. This unifies the approach for Unix
and MinGW.

The name ATTR_WEAK is changed to VK_ENTRY_WEAK since it's now controlled
by the entrypoint specific VK_ENTRY_USE_WEAK flag.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29986>
2024-07-05 14:40:39 +00:00
Tatsuyuki Ishi
c8c131fba8 vk_entrypoints_gen: Add missing ATTR_WEAK for instance and physdev entrypoints
I'm not sure why Clang didn't warn for this case, but since we are
declaring in both .h and .c we should match both.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29986>
2024-07-05 14:40:39 +00:00
Samuel Pitoiset
1a3b3b845b radv: simplify determining when a VS prolog is needed
Only if a VS is compiled without the vertex input state.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
7608aada6f radv: simplify determining when the rasterization primitive is unknown
Either if the vertex input state is missing, or if no TES/GS/MS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
0c0ecc90c4 radv: move radv_hash_shaders() to radv_graphics_pipeline.c
And rename it for consistency with compute/RT hash functions.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
b51af513dd radv: remove unnecessary radv_pipeline_has_ngg() function
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
b5193c8937 radv: remove unused get_vs_output_info() function
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
b43b71450c radv: simplify importing libraries with retained shaders
It's possible to use create_flags directly.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Samuel Pitoiset
6aba052f82 radv: remove unused parameter to radv_pipeline_import_retained_shaders()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30045>
2024-07-05 13:33:24 +00:00
Mike Blumenkrantz
158369c38a zink: enable compute pbos for turnip
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30026>
2024-07-05 12:05:32 +00:00
Konstantin Seurer
0208927bcf radv: Always use dynamic line smoothing
Static enablement is too complex for a feature that is barely used.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26833>
2024-07-05 08:58:53 +00:00
Konstantin Seurer
d571e19966 radv: Fix smooth lines with dynamic polygon mode and topology
Non-line modes need to disable the smoothing paths. (overrasterization,
shader code)

Fixes: 85cbdba ("radv: add support for smooth lines")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9393
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26833>
2024-07-05 08:58:53 +00:00
Karol Herbst
18dfde9985 rusticl/program: use default in more places
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29946>
2024-07-05 08:31:32 +00:00
Karol Herbst
f08f770f16 rusticl/program: update binary format
This adds a magic number and the device name to the binary in order to
verify we indeed have a binary we can parse and matches the device.

Also save the binary header explicitly in little-endian order, so that we
at least make sure that's always the same.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29946>
2024-07-05 08:31:31 +00:00
Karol Herbst
eda15ddafa rusticl/program: use blob.h to parse binaries
It checks for alignment and overruns, and is a lot safer than whatever was
done before here.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29946>
2024-07-05 08:31:31 +00:00
Karol Herbst
81bb379c94 rusticl/program: make binary API not crash on errors
Also properly return per device errors as required by the spec.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29946>
2024-07-05 08:31:31 +00:00
Karol Herbst
34ecf560df rusticl/program: move binary parsing into its own function
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29946>
2024-07-05 08:31:31 +00:00
Jordan Justen
0b6875ca0e intel/perf/xe: Fix free pointer location in xe_add_config()
Fixes: 6258c84375 ("intel/perf: Refactor and add Xe KMD support to add and remove configs")
Signed-off-by: Jordan Justen <jordan.l.justen@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/30037>
2024-07-05 00:25:03 -07:00
Mike Blumenkrantz
4576f440c3 zink: add an a750 skip
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30042>
2024-07-04 13:42:53 +00:00
Danylo Piliaiev
2fbdc4d462 ir3: Fix decoding of stib.b/ldib.b with offset
The OFFSET_LO in #instruction-cat6-a6xx-ibo-load-store aliased with
opcode of other instructions, resolve this by being less lax in some
instruction definitions.

A proper way to solve this would probably be to reconstruct instructions
hierarchy, but it's a much more complex task.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30018>
2024-07-04 08:40:47 +00:00
Danylo Piliaiev
2c7e07655c ir3/tests: Make possible to add generated disasm tests
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30018>
2024-07-04 08:40:47 +00:00
Danylo Piliaiev
b5f0c44f2a ir3/tests: Make possible to specify raw instr value as uint64
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30018>
2024-07-04 08:40:46 +00:00
MastaG
d17338d403 gallivm: Call StringMapIterator from llvm:: scope
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11392
Fixes: b035d9cab5 ("gallivm: use getHostCPUFeatures on x86/llvm-4.0+.")
Reviewed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30009>
2024-07-03 21:55:54 -07:00
José Roberto de Souza
f9efedb1a1 intel/dev: Replace intel_device_info::apply_hwconfig by a gfx version check
There is no plans to remove hwconfig from platforms 12.5 and newer
so lets replace this bool by a ip version check.

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/27897>
2024-07-03 22:17:37 +00:00
Lionel Landwerlin
6f1f3ba444 hasvk: pass anv_address to predicate helper
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/29997>
2024-07-03 21:10:13 +00:00
Lionel Landwerlin
1279bba837 hasvk: move cmd_emit_timestamp initialization to genX
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/29997>
2024-07-03 21:10:13 +00:00
Lionel Landwerlin
b393ede8c8 intel/ds: remove duplicate arguments
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/29997>
2024-07-03 21:10:13 +00:00
Lionel Landwerlin
aa737e124c anv: fix u_trace on < Gfx12.0
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3984875792 ("u_trace: extend tracepoint end_of_pipe bit into flags")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29997>
2024-07-03 21:10:13 +00:00
Faith Ekstrand
37d58b816b vulkan/meta: Use demote instead of discard
We don't have the NIR options when we go to create the shader so
nir_discard_if() will segfault.

Fixes: 9b1a748b5e ("nir: remove nir_intrinsic_discard")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30028>
2024-07-03 20:33:27 +00:00
Khem Raj
5a9c052ba7 amd: Include missing llvm IR header Module.h
With LLVM-19, Module.h header is not being pulled, which results in
compile errors e.g.

src/amd/llvm/ac_llvm_helper.cpp:102:10: error: no matching function for call to ‘unwrap(LLVMOpaqueModule*&)’
  102 |    unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple());
      |    ~~~~~~^~~~~~~~
In file included from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/Type.h:18,
                 from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/DerivedTypes.h:23,
                 from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/InstrTypes.h:26,
                 from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/Analysis/TargetLibraryInfo.h:14,
                 from ../mesa-24.0.7/src/amd/llvm/ac_llvm_helper.cpp:8:

Its getting the definition from llvm/IR/Type.h instead of Module.h and caused
confusion to compiler

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11424

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29993>
2024-07-03 19:26:47 +00:00
Christian Gmeiner
8d0659efa5 ci/etnaviv: Drop shaders@glsl-bug-110796 line
Piglit has been fixed to skip this test when no GLES 3.2 support is present.

Fixes: dfabed2fc9 ("Uprev Piglit to cf8daaf5ba90fc9b8a0e144355026e2a14c79944")
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/30020>
2024-07-03 19:10:25 +00:00
Ali Homafar
a174e986c7 lavapipe: Set ICD api_version to 1.3
Lavapipe has been 1.3 compliant for a couple years, now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30024>
2024-07-03 18:32:47 +00:00
David Rosca
28fdc4b372 gallium: Remove PIPE_VIDEO_CAP_EFC_SUPPORTED
Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:28 +00:00
David Rosca
2b93a918b3 frontends/va: Check if target buffer is supported in vlVaEndPicture
This is mainly to reject buffers allocated with modifiers not supported
for given entrypoint. There is no interface to query supported modifiers
for different formats and entrypoints in libva, so applications can
import externally allocated buffers that may be unsupported with some
entrypoints.

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:28 +00:00
David Rosca
a7469a9ffd frontends/va: Rework EFC logic
Currently EFC would be used for every RGB->NV12 conversion, even if the
target surface wasn't going to be used as encode input. Also another
issue is that there may be multiple conversions from the same source
surface before the encode operation (this is the case with B-frames
when using one source surface).

EFC is now used only if the postproc conversion is the last postproc
operation immediately before encoding.
Until it's been observed that this is the case, the shader conversion is
also applied as a fallback in case EFC could not be used.

Tested with (fixes EFC + H264 with B-frames on radeonsi):

    ffmpeg -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc \
    -vf hwupload,scale_vaapi=format=nv12 -c:v h264_vaapi -bf 3 \
    -vframes 200 out.mp4

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:28 +00:00
David Rosca
735c467197 frontends/va: Use is_video_target_buffer_supported for EFC
Move the internal logic to driver.

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:28 +00:00
David Rosca
40c3a53fec radeonsi: Implement is_video_target_buffer_supported
Check EFC supported formats and reject DCC.

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:27 +00:00
David Rosca
03d4ec7321 gallium: Add is_video_target_buffer_supported
This will be used to replace PIPE_VIDEO_CAP_EFC_SUPPORTED.

Reviewed-by: Thong Thai <thong.thai@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29932>
2024-07-03 17:56:27 +00:00
José Roberto de Souza
f28d2c1040 intel/perf: Adjust EU count for Xe2+
Xe2+ OA equations expects actual EU count but KMD returns legacy EU count.

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/29529>
2024-07-03 17:15:05 +00:00
José Roberto de Souza
9b5ba06122 intel/perf: Do not add INTEL_PERF_QUERY_FIELD_TYPE_SRM_OA_PEC
MI_REPORT_PERF_COUNT reports all 64 PEC counters, so there is no
need to read individual registers.
Also the individual registers reads privileged and UMDs can't access
it, causing it to always read as always zero and overwritting valid
data read with MI_REPORT_PERF_COUNT.

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/29529>
2024-07-03 17:15:05 +00:00
José Roberto de Souza
7b5bf6dcca intel/perf: Return LNL OA sample format
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/29529>
2024-07-03 17:15:05 +00:00
José Roberto de Souza
f684f4efb0 intel/perf: Add support for LNL OA sample format size
LNL OA sample format is 576 bytes long while previous platforms were
256 bytes, so now we need a function to return the OA sample
format size.

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/29529>
2024-07-03 17:15:05 +00:00
José Roberto de Souza
18775827bd intel/perf: Implement intel_perf_query_result_accumulate() for gfx 20+
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/29529>
2024-07-03 17:15:05 +00:00
Connor Abbott
2988f43420 tu: Support VK_EXT_fragment_density_map on a750
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29938>
2024-07-03 16:36:19 +00:00
Connor Abbott
b0599a7fe2 tu: Fix fdm_apply_load_coords patchpoint size
Fixes: 7429ca3115 ("tu: Use SS6_INDIRECT consts upload path for 3d blits")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29938>
2024-07-03 16:36:19 +00:00
Connor Abbott
bd179e6213 tu: Make cs writeable for GMEM loads when FDM is enabled
This was accidentally dropped.

Fixes: 21334e3b53 ("turnip: Move gmem clears and loads to the first subpass that uses them.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29938>
2024-07-03 16:36:19 +00:00
Connor Abbott
6185134f28 ir3: Fix UBO size with indirect driver params
So far the only user of indirect driver params is FDM so this wasn't
noticed before.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29938>
2024-07-03 16:36:19 +00:00
Connor Abbott
08d5505fa8 tu: Add support for aligned substreams
This is useful when the substream needs to be inside a UBO.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29938>
2024-07-03 16:36:19 +00:00
Mike Blumenkrantz
6f8e6fb99c mesa/st: use compute pbo download for readpixels
this massively improves (>100%) ReadPixels perf in a number of cases

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29841>
2024-07-03 15:46:06 +00:00
Mike Blumenkrantz
ef0a156670 st/pbo_compute: special case stencil extraction from Z24S8
this otherwise tries to use the depth component and a UNORM format,
which returns all zeroes

cc: mesa-stable

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29841>
2024-07-03 15:46:05 +00:00