Samuel Pitoiset
03d2bd6042
radv: ensure to retain NIR shaders for GPL libs found in the cache
...
Even if we are able to get the assembly from the shaders cache for
graphics pipeline libraries, we still need to retain NIR shaders in
case the LTO pipelines won't be find in the cache.
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
Samuel Pitoiset
5e62d8d1bd
radv: add VkGraphicsPipelineLibraryFlag to the graphics pipeline key
...
This is to generate a different key for a library created with
FRAGMENT_SHADER_BIT and no FS (ie. it would generate a noop FS) and
a library created with FRAGMENT_OUTPUT_INTERFACE with no CB attachments.
Otherwise, the same key would be generated and this would corrupt
the cache.
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
Samuel Pitoiset
47c0820dc7
radv: remove dead code in radv_pipeline_get_nir()
...
We either import the NIR or the assembly, so this was never reached.
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
Samuel Pitoiset
a9529d9644
radv: allow to create/insert PS epilogs from/to the cache for libs
...
To cache PS epilogs compiled inside graphics pipeline libraries.
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
Samuel Pitoiset
ba967e1a28
radv: rely on non-NULL binaries when inserting shaders to the cache
...
With GPL, a stage can be imported from a library which means that the
binary is NULL (it's freed right after compilation) but the shader is
non-NULL. To avoid crashing, rely on non-NULL binaries because this
implies that the shader is non-NULL as well.
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
Samuel Pitoiset
1239fcab4d
radv: only copy non-NULL shaders when loaded from the cache
...
With GPL, we don't necessarily load all stages from the same cache
entry and other stages might have been imported from libraries, so
don't overwrite them.
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
Connor Abbott
0977925c53
nir, spirv: Add support for VK_EXT_fragment_density_map
...
This involves two new system values.
Reviewed-by: Faith Ekstrand <faith@gfxstrand.net >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20303 >
2023-04-04 13:14:35 +00:00
Emma Anholt
6c0a8a7f06
ci/zink: Drop validation exception for leaks at device destroy.
...
Between the recent glthread and zink fixes, we should be good to go.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22237 >
2023-04-04 11:50:58 +00:00
Pierre-Eric Pelloux-Prayer
4c3e1f6529
radeonsi: update test results
...
This test was fixed by bf910c94e0 ("glsl: fix gl_CullDistance lowering
from float[8] to vec4[2]").
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22237 >
2023-04-04 11:50:58 +00:00
Pierre-Eric Pelloux-Prayer
c1368685c3
util/vbuf: fix index_bo leak
...
When indices are unrolled we still have to release the index_bo
references passed to us.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8272
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22237 >
2023-04-04 11:50:58 +00:00
Pierre-Eric Pelloux-Prayer
c19a3a6ddf
util/vbuf: clarify indirect draws handling
...
It wasn't obvious from the u_vbuf code alone that num_draws
is guaranteed to be 1 in the indirect case.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22237 >
2023-04-04 11:50:58 +00:00
Pierre-Eric Pelloux-Prayer
2b717f01f7
mesa: fix invalid index_bo refcounting
...
If take_index_buffer_ownership is true, then we should reserve
enough references of index_bo or we'll get an underflow later.
Fixes: 819627041e ("mesa: set pipe_draw_info::index::resource directly and remove gl_bo")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8747
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22237 >
2023-04-04 11:50:58 +00:00
Mike Blumenkrantz
09320705f0
zink: be explicit about separate shader dsl indexing during creation
...
this fixes a minor issue where a fs without a vs dsl would have the wrong
index
Fixes: e3b746e3a3 ("zink: use GPL to handle (simple) separate shader objects")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22269 >
2023-04-04 11:29:01 +00:00
Tapani Pälli
b0cdd5a1d2
anv: check for MESA_SHADER_TESS_CTRL with get_tcs_prog_data
...
Fixes: 86d931724d ("anv: Implement Wa_14015297576")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22282 >
2023-04-04 10:42:12 +03:00
Tapani Pälli
98c6db3fc8
anv: take primitive ID override to account Wa_14015297576
...
Commit ca4ec49b0e took primitive ID override fields in to use, this
has to be checked as part of Wa_14015297576.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22282 >
2023-04-04 10:41:58 +03:00
Mike Blumenkrantz
e84cf80fe1
zink: always store nir serialized
...
this saves a ton of memory and has minimal, if any cpu impact
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
4e1668384d
zink: store num_inlinable_uniforms separately for cs programs
...
compute is a special case because the zink_shader itself is created
in a thread, which means it cannot be accessed directly at bind time
since it may not have finished creating itself yet
to avoid prematurely waiting on an async fence, the one value needed
at bind time can instead be stored separately
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
517146f540
zink: move nir cloning out to callers of zink_shader_compile
...
this will make more sense with future changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
dfa8c15164
zink: break out nir blob deserializing
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
0563499db0
zink: simplify assign_io() further
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
fd2714b5a9
zink: store nir as serialized on zink_shader structs
...
nir_shader objects are hefty, and they really add up when there's a lot
of them. there's also not much use in keeping them around, as any time
they'll be used, they're always cloned first, and deserializing isn't
likely to be any slower than a clone
cuts driver memory usage by ~40% for tomb raider
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
e40134aea8
zink: streamline nir cloning for assign_io
...
more relics from the time of pipe_shader_type
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
2e1ad9f817
zink: directly return nir from zink_shader_tcs_create
...
not currently used but will be
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
d3c9112404
zink: swap nir pointers when compiling compute shaders
...
these are the same pointer, just use a different one
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
fdb9c91922
zink: pass nir directly to zink_shader_tcs_create()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
6524b9285f
zink: simplify fbfetch output detection from fs
...
this should be identical to the previous code, except it also
handles depth/stencil (not yet supported)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:41 +00:00
Mike Blumenkrantz
edc804e50f
zink: use zink_shader::info instead of zink_shader::nir::info
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:40 +00:00
Mike Blumenkrantz
b33d5d1a98
zink: generate flat_flags during shader creation
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:40 +00:00
Mike Blumenkrantz
f26526ff33
zink: pass nir_shader to update_so_info()
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:40 +00:00
Mike Blumenkrantz
f7b76d681b
zink: add and populate a shader_info struct to zink_shader
...
this avoids the need to use the nir pointer to access shader info
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:40 +00:00
Mike Blumenkrantz
eb30744562
zink: delete shader reordering in assign_io()
...
this is a relic of when pipe_shader_type was different than gl_shader_stage
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266 >
2023-04-04 01:37:40 +00:00
Alejandro Piñeiro
bbd124fd00
v3dv/pipeline: use pipeline depth bias enabled to fill up CFG packet
...
Even if the VkPipelineRasterizationStateCreateInfo sets
depthBiasEnable, internally we comput if it is really makes sense, and
use that to decide for example if we emit the Depth Offset packet.
But we were not using this to enable Depth Bias through the depth
offset enable field on the CFG packet.
So in some tests we were enabling depth bias, but not emitting the
packet to configure it, that seemed somewhat inconsistent.
This didn't cause any issue so far, but let's be conservative.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22252 >
2023-04-04 00:06:38 +00:00
Lionel Landwerlin
a88aedbfa5
intel/perf: fix OA format selection on MTL
...
Anything Gfx12.5+ has a different format.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 90c86fe63e ("intel: add MTL performance metrics")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22257 >
2023-04-03 23:34:17 +00:00
Lionel Landwerlin
c61101f151
intel/dev: set a default valid kmd_type
...
src/intel/perf/intel_perf_query_layout.c needs a valid kmd type to
look at the metrics
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 757e2dd692 ("intel/perf: Disable it for Xe KMD")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22257 >
2023-04-03 23:34:17 +00:00
Ian Romanick
2016d9f46c
intel/fs: Rework the loop of opt_combine_constants that collects constants
...
This is a bit more wordy, but it will greatly simplify some future
changes.
v2: Rebase on ADD3 changes.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22274 >
2023-04-03 21:50:06 +00:00
Ian Romanick
9e4bb4bfcf
intel/fs: Refactor part of opt_combine_constants to a separate function
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22274 >
2023-04-03 21:50:06 +00:00
Ian Romanick
593cde0432
intel/fs: Output opt_combine_constants debug to stderr
...
It's a lot more useful to have it in the same stream with the
INTEL_DEBUG=fs output.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22274 >
2023-04-03 21:50:06 +00:00
Iván Briano
eadc64ab24
vulkan/wsi/display: do not dereference a NULL pointer
...
Fixes dEQP-VK.wsi.direct_drm.swapchain.simulate_oom.*
Cc: mesa-stable
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19025 >
2023-04-03 20:21:17 +00:00
Faith Ekstrand
6ad5f885af
vulkan: Drop VkRenderingSelfDependencyInfoMESA
...
It's no longer needed as VK_EXT_attachment_feedback_loop_layout provides
everything we need.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Faith Ekstrand
b4c18b9b76
vulkan: Drop vk_render_pass_state::*self_dependenc*
...
ANV was the only driver using them and now it's on feedback loop flags.
Other drivers should convert instead of depending on the old version.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Faith Ekstrand
6d4e605378
hasvk/pipeline: Use feedback loop flags for self-dependencies
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Faith Ekstrand
8df8a3c19b
anv/pipeline: Use feedback loop flags for self-dependencies
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Faith Ekstrand
f3876db1ee
vulkan: Plumb rendering flags through vk_graphics_pipeline_state
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Connor Abbott
f4b534d50f
vk/render_pass: Support VK_EXT_fragment_density_map
...
Support emulating "classic" FDM with dynamic rendering.
Reviewed-by: Faith Ekstrand <faith@gfxstrand.net >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Connor Abbott
df9694e98e
tu: Use vk_pipeline_get_renderpass_flags()
...
With this we can remove usage of VkSelfDependencyInfoMESA.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Jason Ekstrand
bd26ae0086
vulkan: Record pipeline flags in the render pass
...
This records any rendering pipeline flags in the render pass. This
provides much-needed information for the VK_KHR_fragment_shading_rate
and VK_EXT_fragment_density_map extensions as well as provides an
alternative to VkRenderingSelfDependencyInfoMESA which is based on
VK_EXT_attachment_feedback_loop_layout.
v2 (Connor): Name something more general
v3 (Faith): Also add the FSR flag
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Connor Abbott <cwabbott0@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22191 >
2023-04-03 18:13:01 +00:00
Samuel Pitoiset
9582c1e52a
radv/ci: add one more flake
...
This one is randomly failing.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22258 >
2023-04-03 17:20:13 +00:00
Samuel Pitoiset
d74790a865
zink/ci: remove primitive-id-no-gs-quads from the NAVI10 fail list
...
It has been fixed too.
Fixes: 5fb8ba0eb8 ("zink/ci: remove `primitive-id-no-gs-quads` from radv-vangogh-fails")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22258 >
2023-04-03 17:20:13 +00:00
Rhys Perry
f92994bb83
radv/gfx11: improve RT scratch allocation
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22232 >
2023-04-03 16:35:17 +00:00
Timur Kristóf
50e9a8f7c2
radv: Use linear_dispatch info in GFX11 task/mesh draw packet.
...
This helps the CP (command processor) optimize mesh shader
dispatch when Y = Z = 1.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22222 >
2023-04-03 15:36:02 +00:00