radv: integrate meta astc compute decoder to radv
authorYogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Thu, 7 Sep 2023 15:25:12 +0000 (20:55 +0530)
committerMarge Bot <emma+marge@anholt.net>
Wed, 11 Oct 2023 19:28:40 +0000 (19:28 +0000)
commitf97b449e9e332026a4b352423f71c6031e5f9e8b
tree03d5420dd7562cb297afeedb9a547599e7a05cec
parent09b574aa6c0996aae8e2fa5c5e16b83210c6c7f3
radv: integrate meta astc compute decoder to radv

this patch calls the init and finish functions of the vk
runtime astc decoder. initializes emulate_astc flag. sets
up the additional plane to store decoded texture.

v2: fix _tex_dataformat() and _tex_numformat() (Chia-I Wu)
    use correct function for bufferToImage (Chia-I Wu)
v3: add radv_is_layout_emulated() (Chia-I Wu)
    avoid repeated pattern (Chia-I Wu)
v4: not create all pipelines on_demand (Chia-I Wu)
v5: current code does not support astc hdr (Chia-I Wu)
v6: keep luts in staging buffer only (Chia-I Wu)
v7: use 2DArray for both input and output
v8: document todo to use fp16 (Chia-I Wu)
    not required to move meta init anymore (Chia-I Wu)
    move astc_emulation_format to vk_texcompress_astc.h (Chia-I Wu)
v9: remove LAYOUT check (Chia-I Wu)
    check on iview->vk.view_format
    move setting tiled flags for astc (Chia-I Wu)
    remove is format emulated check in radv_is_storage_image* (Chia-I Wu)
    use LAYOUT_ASTC for if check (Chia-I Wu)
    no 1D support (Chia-I Wu)
    calculate start end offset in 2x blk size
v10: remove old wrong code (Chia-I Wu)
v11: use existing defined local format variable (Chia-I Wu)
     dst image layout is always VK_IMAGE_LAYOUT_GENERAL (Chia-I Wu)

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24672>
src/amd/vulkan/meson.build
src/amd/vulkan/meta/radv_meta.c
src/amd/vulkan/meta/radv_meta.h
src/amd/vulkan/meta/radv_meta_astc_decode.c [new file with mode: 0644]
src/amd/vulkan/meta/radv_meta_copy.c
src/amd/vulkan/radv_formats.c
src/amd/vulkan/radv_image.c
src/amd/vulkan/radv_instance.c
src/amd/vulkan/radv_physical_device.c
src/amd/vulkan/radv_private.h
src/util/driconf.h