From dfbb4b384aa93160f1baa3497c35d82f2b7dcbc0 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 4 Aug 2022 15:07:09 +0100 Subject: [PATCH] util/format,vulkan/format: update p_format for Vulkan vertex buffers We need to move some earlier (so they are <= 255 like the comment says) and add a few 64-bit ones. Signed-off-by: Rhys Perry Reviewed-by: Samuel Pitoiset Part-of: --- src/gallium/include/pipe/p_format.h | 23 ++++++++++++----------- src/util/format/u_format.csv | 3 +++ src/vulkan/util/vk_format.c | 10 +++++++++- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index 66c813c1432..c15c5c8dbfe 100644 --- a/src/gallium/include/pipe/p_format.h +++ b/src/gallium/include/pipe/p_format.h @@ -45,6 +45,10 @@ enum pipe_format { PIPE_FORMAT_R64G64_UINT, PIPE_FORMAT_R64G64B64_UINT, PIPE_FORMAT_R64G64B64A64_UINT, + PIPE_FORMAT_R64_SINT, + PIPE_FORMAT_R64G64_SINT, + PIPE_FORMAT_R64G64B64_SINT, + PIPE_FORMAT_R64G64B64A64_SINT, PIPE_FORMAT_R64_FLOAT, /**< doubles converted to float */ PIPE_FORMAT_R64G64_FLOAT, PIPE_FORMAT_R64G64B64_FLOAT, @@ -88,6 +92,7 @@ enum pipe_format { PIPE_FORMAT_R8_UNORM, PIPE_FORMAT_R8G8_UNORM, PIPE_FORMAT_R8G8B8_UNORM, + PIPE_FORMAT_B8G8R8_UNORM, PIPE_FORMAT_R8G8B8A8_UNORM, PIPE_FORMAT_B8G8R8A8_UNORM, PIPE_FORMAT_R8_USCALED, @@ -122,11 +127,15 @@ enum pipe_format { PIPE_FORMAT_R8_UINT, PIPE_FORMAT_R8G8_UINT, PIPE_FORMAT_R8G8B8_UINT, + PIPE_FORMAT_B8G8R8_UINT, PIPE_FORMAT_R8G8B8A8_UINT, + PIPE_FORMAT_B8G8R8A8_UINT, PIPE_FORMAT_R8_SINT, PIPE_FORMAT_R8G8_SINT, PIPE_FORMAT_R8G8B8_SINT, + PIPE_FORMAT_B8G8R8_SINT, PIPE_FORMAT_R8G8B8A8_SINT, + PIPE_FORMAT_B8G8R8A8_SINT, PIPE_FORMAT_R16_UINT, PIPE_FORMAT_R16G16_UINT, PIPE_FORMAT_R16G16B16_UINT, @@ -156,13 +165,15 @@ enum pipe_format { PIPE_FORMAT_R11G11B10_FLOAT, + PIPE_FORMAT_R10G10B10A2_UINT, + PIPE_FORMAT_R10G10B10A2_SINT, + PIPE_FORMAT_B10G10R10A2_UINT, PIPE_FORMAT_B10G10R10A2_SINT, /* End of vertex formats. */ /* Texture-only formats are below. */ - PIPE_FORMAT_B8G8R8_UNORM, PIPE_FORMAT_B8G8R8X8_UNORM, PIPE_FORMAT_X8B8G8R8_UNORM, PIPE_FORMAT_X8R8G8B8_UNORM, @@ -301,8 +312,6 @@ enum pipe_format { PIPE_FORMAT_R8A8_UNORM, PIPE_FORMAT_A8R8_UNORM, - PIPE_FORMAT_R64_SINT, - PIPE_FORMAT_A8_UINT, PIPE_FORMAT_I8_UINT, PIPE_FORMAT_L8_UINT, @@ -333,12 +342,6 @@ enum pipe_format { PIPE_FORMAT_L32_SINT, PIPE_FORMAT_L32A32_SINT, - PIPE_FORMAT_B8G8R8_UINT, - PIPE_FORMAT_B8G8R8A8_UINT, - - PIPE_FORMAT_B8G8R8_SINT, - PIPE_FORMAT_B8G8R8A8_SINT, - PIPE_FORMAT_A8R8G8B8_UINT, PIPE_FORMAT_A8B8G8R8_UINT, PIPE_FORMAT_A2R10G10B10_UINT, @@ -386,8 +389,6 @@ enum pipe_format { PIPE_FORMAT_R16A16_SINT, PIPE_FORMAT_R32A32_UINT, PIPE_FORMAT_R32A32_SINT, - PIPE_FORMAT_R10G10B10A2_UINT, - PIPE_FORMAT_R10G10B10A2_SINT, PIPE_FORMAT_B5G6R5_SRGB, diff --git a/src/util/format/u_format.csv b/src/util/format/u_format.csv index c64689093d2..ef85be4ae38 100644 --- a/src/util/format/u_format.csv +++ b/src/util/format/u_format.csv @@ -479,6 +479,9 @@ PIPE_FORMAT_R64G64B64_UINT , plain, 1, 1, 1, up64, up64, up64, , xyz1, PIPE_FORMAT_R64G64B64A64_UINT , plain, 1, 1, 1, up64, up64, up64, up64, xyzw, rgb PIPE_FORMAT_R64_SINT , plain, 1, 1, 1, sp64, , , , x001, rgb +PIPE_FORMAT_R64G64_SINT , plain, 1, 1, 1, sp64, sp64, , , xy01, rgb +PIPE_FORMAT_R64G64B64_SINT , plain, 1, 1, 1, sp64, sp64, sp64, , xyz1, rgb +PIPE_FORMAT_R64G64B64A64_SINT , plain, 1, 1, 1, sp64, sp64, sp64, sp64, xyzw, rgb PIPE_FORMAT_A8_UINT , plain, 1, 1, 1, up8, , , , 000x, rgb PIPE_FORMAT_I8_UINT , plain, 1, 1, 1, up8, , , , xxxx, rgb diff --git a/src/vulkan/util/vk_format.c b/src/vulkan/util/vk_format.c index 27b65d48955..eab742f6943 100644 --- a/src/vulkan/util/vk_format.c +++ b/src/vulkan/util/vk_format.c @@ -161,10 +161,18 @@ static const enum pipe_format vk_format_map[] = { [VK_FORMAT_R64_UINT] = PIPE_FORMAT_R64_UINT, [VK_FORMAT_R64_SINT] = PIPE_FORMAT_R64_SINT, - /* Missing rest of 64-bit uint/sint formats */ [VK_FORMAT_R64_SFLOAT] = PIPE_FORMAT_R64_FLOAT, + + [VK_FORMAT_R64G64_UINT] = PIPE_FORMAT_R64G64_UINT, + [VK_FORMAT_R64G64_SINT] = PIPE_FORMAT_R64G64_SINT, [VK_FORMAT_R64G64_SFLOAT] = PIPE_FORMAT_R64G64_FLOAT, + + [VK_FORMAT_R64G64B64_UINT] = PIPE_FORMAT_R64G64B64_UINT, + [VK_FORMAT_R64G64B64_SINT] = PIPE_FORMAT_R64G64B64_SINT, [VK_FORMAT_R64G64B64_SFLOAT] = PIPE_FORMAT_R64G64B64_FLOAT, + + [VK_FORMAT_R64G64B64A64_UINT] = PIPE_FORMAT_R64G64B64A64_UINT, + [VK_FORMAT_R64G64B64A64_SINT] = PIPE_FORMAT_R64G64B64A64_SINT, [VK_FORMAT_R64G64B64A64_SFLOAT] = PIPE_FORMAT_R64G64B64A64_FLOAT, [VK_FORMAT_B10G11R11_UFLOAT_PACK32] = PIPE_FORMAT_R11G11B10_FLOAT,