Dave Airlie
b644c7ca9f
radv: move to using common record_result.
...
v2 (Jason Ekstrand):
- Handle rename to vk_command_buffer_set_error
- Add more instances, especially in device generated commands
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Jason Ekstrand
76b8b854a5
radv: Use both aspects for depth/stencil blit destinations
...
Even with dynamic rendering, you have to bind both aspects of the image
if the image contains both depth and stencil. One day, we may see this
restriction lifted but that will require deeper driver surgery into the
way we handle depth/stencil layouts.
Fixes: 42db590006
("radv: convert the meta blit 2d path to dynamic rendering")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:56 +00:00
Konstantin Seurer
19f8d33876
radv: Use vk_descriptor_set_layout
...
Use the common ref counting and the common destroy entrypoint.
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17818 >
2022-08-02 14:16:14 +00:00
Konstantin Seurer
1a95d43e55
radv: Simplify the meta init fail path
...
Move most of the the cleanup into radv_device_init_meta.
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17652 >
2022-07-22 07:51:14 +00:00
Konstantin Seurer
b06e5535c0
radv: Use RADV_META_SUSPEND_PREDICATING
...
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17625 >
2022-07-22 07:25:09 +00:00
Konstantin Seurer
f90babb567
radv: Use nir_gen_rect_vertices
...
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17535 >
2022-07-19 12:47:30 +00:00
Jason Ekstrand
d9048e31a0
radv: Use vk_image_view as the base for radv_image_view
...
I've left the extent field because, even though it looks like it should
be roughly equivalent, it's weirdly different on different hardware and
I didn't want to mess with it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16376 >
2022-05-17 18:14:55 +00:00
Jason Ekstrand
c56f3dcbaa
radv: Use vk_image as the base for radv_image
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16376 >
2022-05-17 18:14:55 +00:00
Samuel Pitoiset
3dc86e4080
radv: implement VK_EXT_image_2d_view_of_3d
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16294 >
2022-05-13 17:53:25 +00:00
Rhys Perry
b62e90ad43
radv: use nir_op_imm helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15854 >
2022-04-15 23:56:11 +00:00
Rhys Perry
8e0e98a9af
radv: initialize meta shader options earlier
...
We might need this for NIR builders.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15854 >
2022-04-15 23:56:11 +00:00
Samuel Pitoiset
576833507b
radv: only declare dynamic states that are used by internal operations
...
Initialize some default static PSO states instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15729 >
2022-04-05 07:54:52 +00:00
Samuel Pitoiset
67c2a6adc6
radv: convert the meta blit path to dynamic rendering
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15612 >
2022-04-01 08:21:59 +02:00
Samuel Pitoiset
9309c3d887
radv: rework the workaround that disables DCC for incompatible copies
...
Rely on the image view to avoid using an extra structure for the
render pass. This will allow to convert the meta operations to
dynamic rendering.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15612 >
2022-04-01 08:21:52 +02:00
Samuel Pitoiset
2b18234e61
radv: drop EXT or KHR suffixes for stuff promoted in Vulkan 1.3
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15663 >
2022-03-31 07:13:17 +00:00
Jason Ekstrand
29a164b088
radv: Use vk_command_pool
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917 >
2022-02-11 08:06:24 +00:00
Rhys Perry
d74498e617
radv: add radv_meta_init_shader
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14087 >
2021-12-08 11:07:40 +00:00
James Park
0aaaee09a4
radv: Match function definitions to declarations
...
Fixes compiler errors for 32-bit Windows.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13749 >
2021-11-12 09:46:10 +00:00
Samuel Pitoiset
f07e67272e
radv: fix vk_object_base_init/finish for internal image views
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13102 >
2021-10-01 07:26:37 +00:00
Bas Nieuwenhuizen
59c501ca35
radv: Format.
...
Using
find ./src/amd/vulkan -regex '.*/.*\.\(c\|h\|cpp\)' | xargs -P8 -n1 clang-format --style=file -i
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10091 >
2021-04-10 03:31:58 +02:00
Samuel Pitoiset
fb648634b0
radv: use common entrypoints for VK_KHR_copy_commands2
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9600 >
2021-03-17 07:43:36 +00:00
Mike Blumenkrantz
1d1c7a965c
radv: use common interfaces for shader modules
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9508 >
2021-03-15 21:47:44 +00:00
Jason Ekstrand
8304b4eef7
radv/meta: Use CreateRenderPass2
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8857 >
2021-03-10 18:17:31 +00:00
Connor Abbott
219b84fd5f
radv/meta: Use sized types for nir_tex_instr::dest_type
...
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7989 >
2021-01-25 11:21:42 +01:00
Bas Nieuwenhuizen
f23eaf0db6
radv: Add option to disable DCC in renderpasses without layout.
...
If DCC is enabled for GENERAL then we cannot disable DCC by going
to the GENERAL layout.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7004 >
2020-12-21 18:32:24 +00:00
Rhys Perry
fb0385b57c
radv: use intrinsic builders
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587 >
2020-11-26 17:50:38 +00:00
Samuel Pitoiset
cd59c22325
ac,radv: use better export formats for 8-bit when RB+ isn't allowed
...
When RB+ is enabled, R8_UINT/R8_SINT/R8_UNORM should use FP16_ABGR
for 2x exporting performance. Otherwise, use 32_R to remove useless
instructions needed for 16-bit compressed exports.
fossils-db (Vega10):
Totals from 8858 (6.35% of 139517) affected shaders:
SGPRs: 801248 -> 801210 (-0.00%); split: -0.01%, +0.00%
VGPRs: 596224 -> 596120 (-0.02%); split: -0.02%, +0.01%
CodeSize: 71462452 -> 71356684 (-0.15%); split: -0.15%, +0.00%
MaxWaves: 37097 -> 37105 (+0.02%); split: +0.04%, -0.02%
Instrs: 13963177 -> 13950809 (-0.09%); split: -0.09%, +0.00%
Cycles: 1476539360 -> 1476489996 (-0.00%); split: -0.00%, +0.00%
VMEM: 2363008 -> 2361349 (-0.07%); split: +0.04%, -0.11%
SMEM: 550362 -> 549977 (-0.07%); split: +0.01%, -0.08%
VClause: 245704 -> 245727 (+0.01%); split: -0.01%, +0.02%
SClause: 485161 -> 485104 (-0.01%); split: -0.01%, +0.00%
Copies: 1420034 -> 1422310 (+0.16%); split: -0.01%, +0.17%
Branches: 518710 -> 518705 (-0.00%)
PreSGPRs: 706633 -> 706584 (-0.01%)
PreVGPRs: 547163 -> 547007 (-0.03%); split: -0.03%, +0.01%
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7512 >
2020-11-23 17:54:16 +00:00
Eric Anholt
eda3e4e055
nir/builder: Add a name format arg to nir_builder_init_simple_shader().
...
This cleans up a bunch of gross sprintfs and keeps the caller from needing
to remember to ralloc_strdup. I added a couple of '"%s", name ? name :
""' to radv where I didn't fully trace through whether a non-null name was
being passed in.
I also took the liberty of adding a basic name to a few shaders (pan_blit,
unit tests)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7323 >
2020-11-11 08:50:29 -08:00
Eric Anholt
5f992802f5
nir/builder: Drop the mem_ctx arg from nir_builder_init_simple_shader().
...
This looks a lot more simple now!
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7323 >
2020-11-11 08:50:29 -08:00
Eric Anholt
4e9328e3b6
nir_builder: Return a new builder from nir_builder_init_simple_shader().
...
It's a little inline function, so we can just RAII it for better
ergonomics.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7323 >
2020-11-11 08:49:49 -08:00
Samuel Pitoiset
eccc73ff78
radv: add support for CmdBlitImage2KHR()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6813 >
2020-09-23 07:14:15 +00:00
Bas Nieuwenhuizen
4d40a719b0
radv: Fix 3d blits.
...
- the offsets are inclusive-exclusive so the +1 was wrong
- Since the GPU doesn't do the interpolation on depth (as we render
per layer), we have to add an offset for the pixel center.
CC: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3073
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6458 >
2020-08-27 09:58:59 +00:00
Oschowa
c2a778ef0f
radv: Don't take absolute value of unsigned type.
...
Fixes clang warnings.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5228 >
2020-06-02 21:31:17 +00:00
Samuel Pitoiset
b6cebf6439
radv: do not recursively begin/end render pass for meta operations
...
To avoid breaking SQTT user markers that are emitted to report
barriers and layout transitions to RGP.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4136 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4136 >
2020-03-11 07:54:43 +00:00
Samuel Pitoiset
0d2da2a8c0
radv: add explicit external subpass dependencies to meta operations
...
No functional changes because a subpass dependency with dstStageMask
set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT is a no-op.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3330 >
2020-01-23 11:25:38 +01:00
Bas Nieuwenhuizen
216a9d8871
radv: Add extra struct to image view creation.
...
For extra args. Unlike image creation, I'm not embedding the vk
struct in there, so all the inline structs can be kept.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-07 02:13:07 +02:00
Jason Ekstrand
ddd08e1888
nir/builder: Remove the use_fmov parameter from nir_swizzle
...
This flag has caused more confusion than good in most cases. You can
validly use imov for floats or fmov for integers because, without source
modifiers, neither modify their input in any way. Using imov for floats
is more reliable so we go that direction.
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2019-05-24 08:38:11 -05:00
Samuel Pitoiset
129a9f4937
radv: fix compiler issues with GCC 9
...
"The C standard says that compound literals which occur inside of
the body of a function have automatic storage duration associated
with the enclosing block. Older GCC releases were putting such
compound literals into the scope of the whole function, so their
lifetime actually ended at the end of containing function. This
has been fixed in GCC 9. Code that relied on this extended lifetime
needs to be fixed, move the compound literals to whatever scope
they need to accessible in."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109543
Cc: <mesa-stable@lists.freedesktop.org >
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Gustaw Smolarczyk <wielkiegie@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-02-12 14:48:08 +01:00
Samuel Pitoiset
9efa3405a7
radv: do not set preserveAttachments for internal render passes
...
We don't use that.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-02-04 13:19:14 +01:00
Samuel Pitoiset
450a325858
radv: do not re-create the sampler for every blits in CmdBlitImage()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-09-18 13:27:59 +02:00
Samuel Pitoiset
aec9151464
radv: fix use of unreachable() in the meta blit path
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
2018-09-17 11:29:25 +02:00
Bas Nieuwenhuizen
fbcd167314
radv: Add on-demand compilation of built-in shaders.
...
In environments where we cannot cache, e.g. Android (no homedir),
ChromeOS (readonly rootfs) or sandboxes (cannot open cache), the
startup cost of creating a device in radv is rather high, due
to compiling all possible built-in pipelines up front. This meant
depending on the CPU a 1-4 sec cost of creating a Device.
For CTS this cost is unacceptable, and likely for starting random
apps too.
So if there is no cache, with this patch radv will compile shaders
on demand. Once there is a cache from the first run, even if
incomplete, the driver knows that it can likely write the cache
and precompiles everything.
Note that I did not switch the buffer and itob/btoi compute pipelines
to on-demand, since you cannot really do anything in Vulkan without
them and there are only a few.
This reduces the CTS runtime for the no caches scenario on my
threadripper from 32 minutes to 8 minutes.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-08-14 10:26:24 +02:00
Bas Nieuwenhuizen
24a9033d6f
radv: Refactor blit pipeline creation.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-08-14 10:26:11 +02:00
Bas Nieuwenhuizen
806a792b43
radv: Make fs key exemplars ordered to be a reverse fs_key lookup.
...
While at it, share the exemplars and account for a non-occurring
fs key.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2018-08-14 10:26:06 +02:00
Samuel Pitoiset
e45ba51ea4
radv: add support for VK_EXT_conditional_rendering
...
Inherited commands buffers are not supported.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-07-18 13:44:09 +02:00
Bas Nieuwenhuizen
43af92edc5
radv: Use deref instructions for tex derefs in meta shaders.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
1cfab28e6e
radv: Make color meta operations layout aware.
...
For fast clear eliminate and decompressions, we always use the most compressed
format.
For clears, the code already creates a renderpass on demand with the exact same
layout as specified.
Otherwise we start distinguishing between GENERAL and TRANSFER_DST_OPTIMAL.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de >
2017-12-29 12:21:44 +01:00
Dave Airlie
fbac9f86aa
radv/meta: fix blit paths for depth/stencil (v2.1)
...
This fixes the layout issue for the blit path as well.
This fixes:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint*
v2: use compatible render passes.
v2.1: use enum
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Cc: "17.2 17.3" <mesa-stable@lists.freedesktop.org >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-12-22 14:11:02 +10:00
Bas Nieuwenhuizen
b42e106d4d
radv: Fix multi-layer blits.
...
We did not set the layer correctly for the dst, as we would keep
using the base layer. Same for the source image.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102710
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Dave Airlie <airlied@redhat.com >
2017-12-18 01:27:49 +01:00
Samuel Pitoiset
ba3dc3519d
radv: add radv_meta_save() helper
...
And merge radv_meta_save_novertex() with
radv_meta_save_graphics_reset_vport_scissor_novertex().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2017-10-06 09:49:06 +02:00