Rhys Perry
e88c077096
radv: workaround WWZ exporting index=1 through location=1
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Fixes: 290c3d360e
("aco,radv: lower outputs to exports when nir for monolithic ps")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9232
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24354 >
2023-07-31 11:38:14 +00:00
Samuel Pitoiset
f13ff5e70e
radv: enable pipelinestat query emulation for legacy GS
...
This will allow us to fix a bug with the number of geometry shader
invocations which increase for NGG VS or TES but shouldn't. And also
for simplifying the NGG vs legacy query path.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24231 >
2023-07-27 09:13:11 +02:00
Samuel Pitoiset
08bfcc12d4
radv: rename radv_pipeline_stage to radv_shader_stage
...
It's more generic and it will fit shader object just well.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24313 >
2023-07-26 07:44:49 +00:00
Samuel Pitoiset
a7fdcc3b22
radv: rework considering force VRS without relying on graphics pipeline
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24313 >
2023-07-26 07:44:49 +00:00
Samuel Pitoiset
9d89b29a80
radv: set next_stage to MESA_SHADER_NONE if there is no FS
...
This follows the same convention as shader object where the last stage
would have nextStage to 0. This will allow more refactoring.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24313 >
2023-07-26 07:44:49 +00:00
Samuel Pitoiset
7f173d1ff3
radv: use next_stage for determining the stage to lower NGG
...
If the next stage is FS, it's also the last VGT API stage.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24273 >
2023-07-25 06:31:08 +00:00
Timur Kristóf
9bade0205a
radv: Use ac_nir_lower_intrinsics_to_args.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005 >
2023-07-14 12:17:24 +00:00
Joshua Ashton
59cf3702c4
radv: Remove unused pipeline param from radv_generate_pipeline_key
...
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912 >
2023-07-04 21:05:16 +01:00
Joshua Ashton
c9ac960b6a
radv: Implement VK_EXT_pipeline_robustness
...
Funnel the data from the pNext into the new pipeline key members for buffer robustness
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912 >
2023-07-04 21:04:38 +01:00
Joshua Ashton
3e269c7a4e
radv: Rename radv_required_subgroup_info to radv_shader_stage_key
...
Additionally, prefix the members that are subgroup related with subgroup_
We will use this structure to store pipeline robustness information.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912 >
2023-07-04 21:04:34 +01:00
Joshua Ashton
2c6125c1c5
radv: Split and move buffer robustness to shader key
...
Will be used by pipeline robustness.
There is also loads of space in the first dword.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912 >
2023-07-04 21:04:30 +01:00
Joshua Ashton
f52ebc8b40
radv: Refactor buffer robustness to an enum
...
Will be taken advantage of with pipeline robustness.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912 >
2023-07-04 21:04:10 +01:00
Daniel Schürmann
3bd72eec1e
radv: reference pipeline cache object in radv_pipeline
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23878 >
2023-07-03 17:59:07 +00:00
Rhys Perry
b3b9b22c95
radv: call nir_lower_int64 later
...
I would rather this be after several of these complicated lowering passes.
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/23926 >
2023-07-03 10:38:27 +00:00
Timur Kristóf
8982bd6045
radv: Refactor required subgroup size in pipeline key.
...
This is to allow setting required subgroup size and
full subgroups on more than just the compute stage.
Use an enum (not the actual subgroup size integer)
so that we can have some bits reserved there for
future use.
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/23925 >
2023-07-03 10:47:39 +02:00
Georg Lehmann
130fbda71b
radv: set has_bit_test for aco
...
Foz-DB Navi21:
Totals from 15285 (11.52% of 132657) affected shaders:
VGPRs: 1019136 -> 1019000 (-0.01%); split: -0.02%, +0.01%
SpillSGPRs: 10889 -> 10909 (+0.18%)
SpillVGPRs: 901 -> 914 (+1.44%); split: -0.89%, +2.33%
CodeSize: 103578640 -> 103523220 (-0.05%); split: -0.08%, +0.03%
MaxWaves: 259782 -> 259820 (+0.01%)
Instrs: 19247383 -> 19223764 (-0.12%); split: -0.15%, +0.02%
Latency: 323877613 -> 323684655 (-0.06%); split: -0.10%, +0.04%
InvThroughput: 62505295 -> 62386541 (-0.19%); split: -0.21%, +0.02%
VClause: 366162 -> 366136 (-0.01%); split: -0.03%, +0.02%
SClause: 786505 -> 785527 (-0.12%); split: -0.22%, +0.10%
Copies: 1348920 -> 1349209 (+0.02%); split: -0.26%, +0.29%
Branches: 456331 -> 456324 (-0.00%); split: -0.01%, +0.00%
PreSGPRs: 849542 -> 849402 (-0.02%); split: -0.02%, +0.01%
PreVGPRs: 925300 -> 924678 (-0.07%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23298 >
2023-06-29 13:39:30 +00:00
Joshua Ashton
68b9ad0ba7
radv: Do not enable robustness for push constants with robustBufferAccess2
...
There is no spec text requiring this behaviour, it is only for buffers.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23885 >
2023-06-28 20:49:30 +00:00
Konstantin Seurer
7a7b1a4f71
radv: Call radv_pipeline_init_scratch per shader
...
Compute pipelines only have one shader, which was not handled correctly
in the case of ray tracing pipelines. Adding radv_shader as an argument
allows us to handle the ray tracing prolog. The original loop is inlined
into its only user (radv_pipeline_graphics.c).
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/23812 >
2023-06-27 06:04:18 +00:00
Tatsuyuki Ishi
b69a1b4153
vulkan: Migrate shader module hash to BLAKE3.
...
Shaders are the largest thing we hash now, so they benefit from a faster
hash.
Change the field name from `sha1` to `hash` to avoid tying the definition
to a particular algorithm. This doubles down as a precaution against
callers still assuming a 20-byte hash (in which case the compilation will
error out).
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22571 >
2023-06-23 09:28:04 +00:00
Konstantin Seurer
ebe4e337fd
radv: Use _mesa_shader_stage_to_string for executable name
...
We can not use it for all stages because RADV has some special stages
and shader-db doesn't handle all stages.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23524 >
2023-06-21 09:13:04 +00:00
Konstantin Seurer
334a20ae28
radv: Implement executable properties for ray tracing stages
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23524 >
2023-06-21 09:13:04 +00:00
Konstantin Seurer
bf5b74c3ba
radv: Use get_shader_from_executable_index for executable properties
...
This will make handling ray tracing pipelines easier.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23524 >
2023-06-21 09:13:04 +00:00
Konstantin Seurer
8a5c4b3ebf
radv: Adjust the traversal shader description
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23524 >
2023-06-21 09:13:04 +00:00
Eric Engestrom
8b319c6db8
radv: reformat according to its .clang-format
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23253 >
2023-06-16 19:59:52 +00:00
Friedrich Vock
fa7c7791ee
radv: Add RADV_DEBUG=nort
...
This makes vkCmdTraceRaysKHR and ray queries no-ops and is useful
for triaging GPU hangs with raytracing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23603 >
2023-06-13 19:38:27 +00:00
Yonggang Luo
19196199a8
ac: Replace the usage of pipe_compare_func with compare_func
...
PIPE_FUNC_ -> COMPARE_FUNC_
pipe_compare_func -> compare_func
Now include "pipe/p_state.h" is not needed and remove it in ac_nir.h
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23422 >
2023-06-11 06:27:05 +00:00
Daniel Schürmann
d506fe3397
radv/rt: change RT main shader to MESA_SHADER_INTERSECTION
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096 >
2023-06-08 00:37:03 +00:00
Yonggang Luo
b687fa4ccb
vulkan: move nir_convert_ycbcr into vulkan runtime
...
This only used by vulkan drivers and depends on vulkan util, so do the move to decouple
nir from vulkan utils
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23444 >
2023-06-07 08:42:03 +00:00
Rhys Perry
859e059aa9
radv: use fix_derivs_in_divergent_cf
...
fossil-db (navi21):
Totals from 3256 (2.40% of 135636) affected shaders:
MaxWaves: 65430 -> 64366 (-1.63%)
Instrs: 3517336 -> 3517724 (+0.01%); split: -0.12%, +0.13%
CodeSize: 18963788 -> 18946904 (-0.09%); split: -0.14%, +0.05%
VGPRs: 172464 -> 175872 (+1.98%); split: -0.02%, +2.00%
Latency: 33643792 -> 33643179 (-0.00%); split: -0.12%, +0.12%
InvThroughput: 5912965 -> 5934404 (+0.36%); split: -0.09%, +0.46%
VClause: 60268 -> 60275 (+0.01%); split: -0.12%, +0.13%
SClause: 125227 -> 125241 (+0.01%); split: -0.09%, +0.10%
Copies: 253452 -> 254638 (+0.47%); split: -1.29%, +1.76%
Branches: 100951 -> 100953 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 186403 -> 185641 (-0.41%)
PreVGPRs: 153751 -> 156915 (+2.06%); split: -0.06%, +2.12%
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/22636 >
2023-05-25 16:29:16 +00:00
Rhys Perry
09785e5e1b
radv,radeonsi: use ac_nir_lower_tex
...
fossil-db (navi21):
Totals from 17279 (12.74% of 135636) affected shaders:
MaxWaves: 270015 -> 269991 (-0.01%)
Instrs: 24847385 -> 24843807 (-0.01%); split: -0.02%, +0.00%
CodeSize: 133215364 -> 133198744 (-0.01%); split: -0.02%, +0.01%
VGPRs: 1217632 -> 1217872 (+0.02%); split: -0.00%, +0.02%
Latency: 405347021 -> 404971784 (-0.09%); split: -0.09%, +0.00%
InvThroughput: 75386590 -> 75350344 (-0.05%); split: -0.07%, +0.03%
VClause: 426986 -> 426821 (-0.04%); split: -0.04%, +0.01%
SClause: 966751 -> 966971 (+0.02%); split: -0.01%, +0.03%
Copies: 1738510 -> 1737970 (-0.03%); split: -0.08%, +0.05%
PreSGPRs: 1169070 -> 1169120 (+0.00%); split: -0.00%, +0.00%
PreVGPRs: 1136102 -> 1136183 (+0.01%); split: -0.00%, +0.01%
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/22636 >
2023-05-25 16:29:16 +00:00
Daniel Schürmann
1100f7dcd5
radv/rt: unify radv_ray_tracing_lib_pipeline and radv_ray_tracing_pipeline
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22503 >
2023-05-10 07:02:13 +00:00
Rhys Perry
7cda715ad6
radv: fix bc optimization with POS_W_FLOAT_ENA(1)
...
0286CC_PERSP_CENTER_ENA is also set if:
- No barycentrics are used
- POS_W_FLOAT is enabled
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Qiang Yu <yuq825@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Fixes: a4b60295a7
("aco,ac/llvm,radv,radeonsi: handle ps bc optimization in nir for radv")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8928
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22782 >
2023-05-02 12:18:50 +00:00
Qiang Yu
a4b60295a7
aco,ac/llvm,radv,radeonsi: handle ps bc optimization in nir for radv
...
The side effect is removing the aco/llvm backend bc optimization code
and linear/persp_centroid variable.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22199 >
2023-04-26 03:27:26 +00:00
Qiang Yu
290c3d360e
aco,radv: lower outputs to exports when nir for monolithic ps
...
Remove the compiler backend code for outputs to exports.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Signed-off-by: Qiang Yu <yuq825@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22199 >
2023-04-26 03:27:26 +00:00
Samuel Pitoiset
3320eee877
radv: cleanup after splitting radv_pipeline.c
...
I moved to many things to radv_pipeline_graphics.c without checking.
Fixes: 7783b7f697
("radv: split radv_pipeline.c into radv_pipeline_{compute,graphics}.c")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22441 >
2023-04-13 02:21:44 +00:00
Samuel Pitoiset
7783b7f697
radv: split radv_pipeline.c into radv_pipeline_{compute,graphics}.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21811 >
2023-04-12 11:18:45 +00:00
Daniel Schürmann
dcfca69e67
radv: clean up pipeline-cache interface
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22030 >
2023-04-11 11:38:15 +00:00
Daniel Schürmann
c2b9279227
radv: use vk_pipeline_cache
...
Replaces the RADV pipeline cache with an implementation
based on the common vk_pipeline_cache.
We use a dual-layer approach with two types of cache entries.
1. radv_shader:
- serialized as radv_shader_binary
- uses SHA1 of the binary as key
2. radv_pipeline_cache_object:
- contains pointers to associated radv_shaders
- serialized as list of SHA1
- uses the pipeline hash as key
In combination with single-file disk-cache, this reduces the cache size by ~60%.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22030 >
2023-04-11 11:38:15 +00:00
Konstantin Seurer
8391639b5f
radv: Remove has_previous_stage
...
MESA_SHADER_NONE implies that has_previous_stage is false.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22382 >
2023-04-11 06:24:17 +00:00
Konstantin Seurer
58ab783153
radv: Remove some dead radv_shader_args setup
...
radv_declare_shader_args already sets them up.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22382 >
2023-04-11 06:24:17 +00:00
Konstantin Seurer
6f9bb453ef
radv: Add radv_shader_type to fix gs_copy and trap handler handling
...
is_gs_copy_shader and is_trap_handler_shader were cleared in
radv_init_shader_args. This restores the original behaviour.
Fixes: 67635bb
("radv: zero-initialize radv_shader_args right before declaring them")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22382 >
2023-04-11 06:24:17 +00:00
Samuel Pitoiset
79655e2ea8
radv: copy stages instead of serializing NIR for GPL with the RETAIN flag
...
When the driver gets a cache hit for the binary, we still have to
retain shaders because we can't know if the LTO pipeline will be a
cache hit as well.
Though, serializing the NIR is too costly and most of the libraries
took more than 10ms to be created, which isn't acceptable. To fix this,
keep track of the shaders stage info for libs with the RETAIN flag.
This might be replaced by NIR caching later if it's worth a try.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22327 >
2023-04-07 19:43:05 +00:00
Samuel Pitoiset
edb198e0b1
radv: create a helper for copying VkPipelineShaderStageCreateInfo
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22327 >
2023-04-07 19:43:05 +00:00
Samuel Pitoiset
bcd33d2937
radv: import retained NIR shaders later in the compilation process
...
This allows us to remove the intermediate NIR shader pointer.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22356 >
2023-04-07 14:38:46 +00:00
Samuel Pitoiset
e909764930
radv: do not retain noop FS for libs when a cache hit happened
...
Determine if the graphics pipeline needs a noop FS later instead of
retaining it. This was also suboptimal.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22356 >
2023-04-07 14:38:46 +00:00
Samuel Pitoiset
34fa60e138
radv: simplify a check when retaining NIR shaders
...
The RETAIN flag is only allowed with graphics libs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22356 >
2023-04-07 14:38:46 +00:00
Samuel Pitoiset
3b5ea90f1d
radv: move the serialized NIR to radv_graphics_lib_pipeline
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22356 >
2023-04-07 14:38:46 +00:00
Samuel Pitoiset
4672c6c43b
radv: add a helper for retaining NIR shaders
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22356 >
2023-04-07 14:38:46 +00:00
Mike Blumenkrantz
a73c28fdce
radv: fix leak of nir from retained shaders
...
if shaders are found in the app cache above, execution will goto done:
and the nir must still be freed
Fixes: 03d2bd6042
("radv: ensure to retain NIR shaders for GPL libs found in the cache")
fixes #8786
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22317 >
2023-04-06 01:53:28 +00:00
Samuel Pitoiset
c5b7efa293
radv: enable shaders cache for libraries with GPL
...
This was the last missing feature for GPL. The main problem is that
the on-disk shaders cache size will increase a lot because we don't
deduplicate shaders but there is on-going work to improve that.
We also can't use the shaders cache for libraries created with the
RETAIN_LINK_TIME_OPTIMIZATION flag and module identifiers because we
don't know the SPIR-V and thus can't retain NIR shaders for linking.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22264 >
2023-04-04 14:47:39 +00:00