Mesa (master): turnip: implement VK_EXT_4444_formats

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 4 13:33:56 UTC 2020


Module: Mesa
Branch: master
Commit: 95db96d75b495f5aa6f399d782c50ebc01696d2c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=95db96d75b495f5aa6f399d782c50ebc01696d2c

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Mon Aug  3 15:52:59 2020 -0400

turnip: implement VK_EXT_4444_formats

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6164>

---

 src/freedreno/vulkan/tu_device.c      | 6 ++++++
 src/freedreno/vulkan/tu_extensions.py | 1 +
 src/freedreno/vulkan/tu_formats.c     | 2 ++
 3 files changed, 9 insertions(+)

diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index 380b5d9340c..14e24078316 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -829,6 +829,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
          features->depthClipEnable = true;
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
+         VkPhysicalDevice4444FormatsFeaturesEXT *features = (void *)ext;
+         features->formatA4R4G4B4 = true;
+         features->formatA4B4G4R4 = true;
+         break;
+      }
       default:
          break;
       }
diff --git a/src/freedreno/vulkan/tu_extensions.py b/src/freedreno/vulkan/tu_extensions.py
index 2f73306f8e3..9b84e14fc00 100644
--- a/src/freedreno/vulkan/tu_extensions.py
+++ b/src/freedreno/vulkan/tu_extensions.py
@@ -89,6 +89,7 @@ EXTENSIONS = [
     Extension('VK_EXT_shader_stencil_export',             1, True),
     Extension('VK_EXT_depth_clip_enable',                 1, True),
     Extension('VK_KHR_draw_indirect_count',               1, True),
+    Extension('VK_EXT_4444_formats',                      1, True),
 ]
 
 MAX_API_VERSION = VkVersion(MAX_API_VERSION)
diff --git a/src/freedreno/vulkan/tu_formats.c b/src/freedreno/vulkan/tu_formats.c
index 247e5056121..a8201795990 100644
--- a/src/freedreno/vulkan/tu_formats.c
+++ b/src/freedreno/vulkan/tu_formats.c
@@ -307,6 +307,8 @@ tu6_get_native_format(VkFormat format)
       TU6_xTx(B8G8R8G8_422_UNORM,         G8R8B8R8_422_UNORM,        WZYX)
       TU6_xTx(G8_B8_R8_3PLANE_420_UNORM,  R8_G8_B8_3PLANE_420_UNORM, WZYX)
       TU6_xTx(G8_B8R8_2PLANE_420_UNORM,   R8_G8B8_2PLANE_420_UNORM,  WZYX)
+      TU6_xTC(A4R4G4B4_UNORM_PACK16_EXT,  4_4_4_4_UNORM,             WXYZ)
+      TU6_xTC(A4B4G4R4_UNORM_PACK16_EXT,  4_4_4_4_UNORM,             WZYX)
       default:
          break;
       }



More information about the mesa-commit mailing list