Iago Toral Quiroga
3aa623ae03
v3dv: add a get_image_memory_requirements helper
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246 >
2022-08-30 11:10:14 +00:00
Iago Toral Quiroga
c354ca69c6
v3dv: add a v3dv_image_init helper
...
This is different from the internal create_image in that it doesn't
allocate memory for an image object, instead it expects the object
to be created and it initializes it from a VkImageCreateInfo struct.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246 >
2022-08-30 11:10:14 +00:00
Iago Toral Quiroga
2c388c1d49
v3dv: set maxBufferSize property
...
Included since KHR_maintenance4 and Vulkan 1.3.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246 >
2022-08-30 11:10:14 +00:00
Iago Toral Quiroga
14dab6b10c
v3dv: ref/unref pipeline layout objects
...
Since KHR_maintenance4 it is possible to destroy pipeline layouts
immediately after creating pipelines.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246 >
2022-08-30 11:10:14 +00:00
Iago Toral Quiroga
425f8aa7a4
v3dv: add a helper to destoy pipeline layouts
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18246 >
2022-08-30 11:10:14 +00:00
Pierre-Eric Pelloux-Prayer
adad285fc9
radeonsi: use LOAD_CONTEXT_REG_INDEX for VGT_STRMOUT_DRAW_OPAQUE
...
Based on PAL's UniversalCmdBuffer::CmdDrawOpaque.
We don't need to use PFP_SYNC_ME because it's done in emit_cache_flush.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18129 >
2022-08-30 10:51:43 +00:00
Erik Faye-Lund
7f7c8e83df
mesa: fall-back to fp16 for bptc-textures
...
FP16 is way more commonly supported than FP32, and requires half the
memory bandwidth. Because the internal format of BPTC is really FP16,
let's fall back to that instead.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
72ad3787a3
mesa/main: add fp16-versions of bptc decompression functions
...
These are essential copies of the float-versions, with minor
adjustments.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
253b521b6e
mesa/main: remove always-true define
...
We don't include this header anwhere where BPTC_BLOCK_DECODE isn't
already true, so let's remove it.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
1961022e1a
zink: allow X32 -> A32
...
The 32-bit per component pipe_formats are a bit different than the 8 and
16 bit formats, in that there's no UNORM or SNORM variants of them. So
let's just omit those variants.
While we're at it, update a comment that was already out-of-date anyway.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
e4ff42684b
mesa/st: enable bptc extension with fallback
...
This implements emulation of BPTC for all drivers that don't natively
support it in HW, similar to what we have for ETC and ASTC already. The
only significant difference is that we don't implement any transcoding
DRI-conf for it.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
4f4e28face
mesa/st: implement fallback for bptc
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
2b7dfd8de1
mesa: add _mesa_unpack_bptc-function
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
529e70271f
mesa: add format-helper for bptc
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
403b9bf870
mesa/st: add context-flag for bptc-support
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
8f446322e1
mesa/st: do not use memcpy when using compressed fallback
...
If we're using the memcpy-path, we don't update the compressed image,
which will be needed if an application try to download the texture-image
again afterwards.
This isn't a problem yet, because none of the current compressed formats
with fallback are copyable as per the OpenGL 4.6 Core spec, table 8.14.
However, this is about to change, when we introduce fallback for BPTC
formats.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
673d241f36
mesa/st: avoid double-mapping if both images are the same
...
If both src_image and dst_image are pointing to the same image, we'll
end up double mapping the image, which throws an assert in
st_texture_image_map.
So let's check if these images are the same, and avoid the extra mapping
in that case.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
985fde28a2
mesa/st: simplify st_compressed_format_fallback
...
By looking at the format-layout, we can do switch-cases here instead of
serial calls to _mesa_is_format_foo(). This isn't a huge deal yet, but
this function is going to learn about a lot more formats soon...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
bf6e70965d
mesa/main: simplify implementation of _mesa_is_format_astc_2d
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:47 +00:00
Erik Faye-Lund
207798c557
mesa/main: simplify implmementation of _mesa_is_format_etc2
...
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Soroush Kashani <soroush.kashani@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18012 >
2022-08-30 08:36:46 +00:00
Chad Versace
45c47e7bd6
venus: Document VK_EXT_texture_compression_astc_hdr support
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:56 +00:00
Chad Versace
6d0c86c777
venus: Enable VK_EXT_tooling_info
...
Implement it locally with the common implementation.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
2bf2a05312
venus: Enable VK_EXT_private_data
...
Implement it as hybrid native/passthrough as a workaround until venus
learns how to deep surgery on pNext chains. Eventually, we want to
implement it purely natively. For details, see the big code comment.
See: https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/908
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Signed-off-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
4d80ccbf2d
venus: Enable VK_KHR_format_feature_flags2
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
fc2d37882c
venus: Enable VK_EXT_ycbcr_2plane_444_formats
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
ea273dd8b9
venus: Enable VK_EXT_texel_buffer_alignment
...
The patch looks asymmetic because the extension was promoted to 1.3 but
not its feature struct.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
246f29d0b1
venus: Enable VK_EXT_subgroup_size_control
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
c01f0bbbec
venus: Enable VK_KHR_zero_initialize_workgroup_memory
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
23a424f6e3
venus: Enable VK_KHR_shader_terminate_invocation
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
8fbc12feb2
venus: Enable VK_KHR_shader_non_semantic_info
...
This extension has no Vulkan API, only SPIR-V API.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
1951eb2dad
venus: Enable VK_KHR_shader_integer_dot_product
...
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
1985afdde5
venus: Simplify vn_GetPhysicalDeviceProperties2
...
Reduce approximately 220 lines to 80.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
7d1fb018f2
venus: Simplify vn_GetPhysicalDeviceFeatures2
...
Reduce approximately 300 lines to 60.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
d46a78e74e
vulkan: Make vk_copy_struct_guts() public
...
Venus wants to copy struct guts too.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Chad Versace
3ed2c58047
venus: Sort passthrough extensions
...
Only the Vulkan 1.3 extensions were unsorted.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Rhys Perry
aa4db00c57
aco: remove dead code for querying image size/samples/levels
...
ac_nir_lower_resinfo() now lowers these.
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/17991 >
2022-08-30 07:37:08 +00:00
Rhys Perry
52b781760d
radv: enable ac_nir_lower_resinfo for ACO
...
fossil-db (navi21):
Totals from 4022 (2.98% of 134913) affected shaders:
VGPRs: 207824 -> 205264 (-1.23%); split: -1.25%, +0.02%
CodeSize: 18486240 -> 18778488 (+1.58%); split: -0.00%, +1.58%
MaxWaves: 84398 -> 84882 (+0.57%)
Instrs: 3408968 -> 3470936 (+1.82%); split: -0.00%, +1.82%
Latency: 43493420 -> 43168394 (-0.75%); split: -1.57%, +0.82%
InvThroughput: 6911341 -> 6816816 (-1.37%); split: -1.41%, +0.05%
VClause: 88256 -> 82728 (-6.26%); split: -6.31%, +0.04%
SClause: 130061 -> 131526 (+1.13%); split: -0.39%, +1.51%
Copies: 219849 -> 238548 (+8.51%); split: -0.05%, +8.56%
Branches: 79168 -> 79174 (+0.01%); split: -0.00%, +0.01%
PreSGPRs: 180683 -> 184952 (+2.36%); split: -0.17%, +2.53%
PreVGPRs: 179716 -> 178956 (-0.42%)
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/17991 >
2022-08-30 07:37:08 +00:00
Rhys Perry
797150c144
nir/lower_tex: ignore width of cube textures
...
On AMD hardware, height is faster to access and we're already doing so.
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/17991 >
2022-08-30 07:37:08 +00:00
Rhys Perry
290df95870
aco: add SCC clobber in build_cube_select
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17991 >
2022-08-30 07:37:08 +00:00
Rhys Perry
fc06f0cbd5
nir/print: support nir_texop_descriptor_amd
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Fixes: 3098000e71 ("nir: add nir_texop_descriptor_amd")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17991 >
2022-08-30 07:37:08 +00:00
Marek Olšák
b8c861b864
radeonsi: move set_patch_vertices into si_state_shaders.cpp
...
it's a better place for it
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
01d351a491
radeonsi: move patch_vertices-related tessellation updates out of si_draw
...
This only depends on the patch_vertices and the TCS.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
93cd96b523
radeonsi: remove 1 draw packet order codepath, keep the first one
...
Multi-mode multi-draws will make it more complicated, so let's start with
simpler code.
I changed the order a little: I put the VBO update next to emit_draw_packets.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
808893ee69
radeonsi: cosmetic changes in si_emit_rasterizer_prim_state
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
dcd80d31cf
radeonsi: set GS_STATE_OUTPRIM and PROVOKING_VTX_INDEX only when they change
...
This moves setting those registers from an unconditional place in draw_vbo
into si_set_rasterized_prim (for draw_vbo), si_update_rasterized_prim
(for bind_xx_shader), and si_bind_rs_state.
It's a little more complicated than expected.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
a070a09d00
radeonsi: precompute GS_OUT_PRIM in advance
...
We don't have to do it every draw now if the rasterized prim type
doesn't change.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
7144621e94
radeonsi: unify the logic that sets rast_prim
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
58539e976b
radeonsi: move fixing ngg_culling into si_update_shaders
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
e5a9203159
radeonsi: remove the prim_restart_tri_strips_only option
...
Not used enough, no difference in performance for Dirt Rally on 6800.
Move the variable down.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00
Marek Olšák
d8125427cd
radeonsi: move *rs to its only use in si_draw
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18195 >
2022-08-30 04:57:43 +00:00