From 56ad7b57a46bd949384c81d100fdab3ca848384f Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:54 -0600 Subject: [PATCH] nil: Use the nvidia headers for render target format enums Two notable changes here: 1. BITMAP no longer exists 2. B10G10R10A2_UINT was wrongly mapped to RGB10_A2_UINT before Part-of: --- src/nouveau/nil/nil_format.c | 265 ++++++++++++++++++----------------- 1 file changed, 135 insertions(+), 130 deletions(-) diff --git a/src/nouveau/nil/nil_format.c b/src/nouveau/nil/nil_format.c index 50bf0e5fef2..3b1d6051dfa 100644 --- a/src/nouveau/nil/nil_format.c +++ b/src/nouveau/nil/nil_format.c @@ -1,5 +1,6 @@ #include "nil_format.h" +#include "cl9097.h" #include "cl9097tex.h" #include "clb097tex.h" @@ -45,8 +46,11 @@ struct nil_format_info { } \ } +#define NV9097_SET_COLOR_TARGET_FORMAT_V_NONE \ + NV9097_SET_COLOR_TARGET_FORMAT_V_DISABLED + #define C4(c, p, n, r, g, b, a, t, s, u) \ - SF(c, p, G80_SURFACE_FORMAT_##n, r, g, b, a, t, t, t, t, s, u) + SF(c, p, NV9097_SET_COLOR_TARGET_FORMAT_V_##n, r, g, b, a, t, t, t, t, s, u) #define ZX(c, p, n, r, g, b, a, t, s, u) \ SF(c, p, G80_ZETA_FORMAT_##n, \ @@ -81,14 +85,14 @@ struct nil_format_info { static const struct nil_format_info nil_format_infos[PIPE_FORMAT_COUNT] = { - C4(A, B8G8R8A8_UNORM, BGRA8_UNORM, B, G, R, A, UNORM, A8B8G8R8, ID), - F3(A, B8G8R8X8_UNORM, BGRX8_UNORM, B, G, R, xx, UNORM, A8B8G8R8, TD), - C4(A, B8G8R8A8_SRGB, BGRA8_SRGB, B, G, R, A, UNORM, A8B8G8R8, TD), - F3(A, B8G8R8X8_SRGB, BGRX8_SRGB, B, G, R, xx, UNORM, A8B8G8R8, TD), - C4(A, R8G8B8A8_UNORM, RGBA8_UNORM, R, G, B, A, UNORM, A8B8G8R8, IB), - F3(A, R8G8B8X8_UNORM, RGBX8_UNORM, R, G, B, xx, UNORM, A8B8G8R8, TB), - C4(A, R8G8B8A8_SRGB, RGBA8_SRGB, R, G, B, A, UNORM, A8B8G8R8, TB), - F3(A, R8G8B8X8_SRGB, RGBX8_SRGB, R, G, B, xx, UNORM, A8B8G8R8, TB), + C4(A, B8G8R8A8_UNORM, A8R8G8B8, B, G, R, A, UNORM, A8B8G8R8, ID), + F3(A, B8G8R8X8_UNORM, X8R8G8B8, B, G, R, x, UNORM, A8B8G8R8, TD), + C4(A, B8G8R8A8_SRGB, A8RL8GL8BL8, B, G, R, A, UNORM, A8B8G8R8, TD), + F3(A, B8G8R8X8_SRGB, X8RL8GL8BL8, B, G, R, x, UNORM, A8B8G8R8, TD), + C4(A, R8G8B8A8_UNORM, A8B8G8R8, R, G, B, A, UNORM, A8B8G8R8, IB), + F3(A, R8G8B8X8_UNORM, X8B8G8R8, R, G, B, x, UNORM, A8B8G8R8, TB), + C4(A, R8G8B8A8_SRGB, A8BL8GL8RL8, R, G, B, A, UNORM, A8B8G8R8, TB), + F3(A, R8G8B8X8_SRGB, X8BL8GL8RL8, R, G, B, x, UNORM, A8B8G8R8, TB), ZX(B, Z16_UNORM, Z16_UNORM, R, R, R, xx, UNORM, Z16, TZ), ZX(A, Z32_FLOAT, Z32_FLOAT, R, R, R, xx, FLOAT, ZF32, TZ), @@ -103,78 +107,79 @@ static const struct nil_format_info nil_format_infos[PIPE_FORMAT_COUNT] = SX(A, S8X24_UINT, R, G24R8, T), SX(A, X32_S8X24_UINT, G, R32_B24G8, T), - F3(A, B5G6R5_UNORM, B5G6R5_UNORM, B, G, R, xx, UNORM, B5G6R5, TD), - C4(A, B5G5R5A1_UNORM, BGR5_A1_UNORM, B, G, R, A, UNORM, A1B5G5R5, TD), - F3(A, B5G5R5X1_UNORM, BGR5_X1_UNORM, B, G, R, xx, UNORM, A1B5G5R5, TD), - C4(A, B4G4R4A4_UNORM, NONE, B, G, R, A, UNORM, A4B4G4R4, T), - F3(A, B4G4R4X4_UNORM, NONE, B, G, R, xx, UNORM, A4B4G4R4, T), + F3(A, B5G6R5_UNORM, R5G6B5, B, G, R, x, UNORM, B5G6R5, TD), + C4(A, B5G5R5A1_UNORM, A1R5G5B5, B, G, R, A, UNORM, A1B5G5R5, TD), + F3(A, B5G5R5X1_UNORM, X1R5G5B5, B, G, R, x, UNORM, A1B5G5R5, TD), + C4(A, B4G4R4A4_UNORM, NONE, B, G, R, A, UNORM, A4B4G4R4, T), + F3(A, B4G4R4X4_UNORM, NONE, B, G, R, x, UNORM, A4B4G4R4, T), + F3(A, R9G9B9E5_FLOAT, NONE, R, G, B, xx, FLOAT, E5B9G9R9_SHAREDEXP, T), - C4(A, R10G10B10A2_UNORM, RGB10_A2_UNORM, R, G, B, A, UNORM, A2B10G10R10, ID), - F3(A, R10G10B10X2_UNORM, RGB10_A2_UNORM, R, G, B, xx, UNORM, A2B10G10R10, T), - C4(A, B10G10R10A2_UNORM, BGR10_A2_UNORM, B, G, R, A, UNORM, A2B10G10R10, TB), - F3(A, B10G10R10X2_UNORM, BGR10_A2_UNORM, B, G, R, xx, UNORM, A2B10G10R10, T), - C4(A, R10G10B10A2_SNORM, NONE, R, G, B, A, SNORM, A2B10G10R10, T), - C4(A, B10G10R10A2_SNORM, NONE, B, G, R, A, SNORM, A2B10G10R10, T), - C4(A, R10G10B10A2_UINT, RGB10_A2_UINT, R, G, B, A, UINT, A2B10G10R10, TR), - C4(A, B10G10R10A2_UINT, RGB10_A2_UINT, B, G, R, A, UINT, A2B10G10R10, T), + C4(A, R10G10B10A2_UNORM, A2B10G10R10, R, G, B, A, UNORM, A2B10G10R10, ID), + F3(A, R10G10B10X2_UNORM, A2B10G10R10, R, G, B, x, UNORM, A2B10G10R10, T), + C4(A, B10G10R10A2_UNORM, A2R10G10B10, B, G, R, A, UNORM, A2B10G10R10, TB), + F3(A, B10G10R10X2_UNORM, A2R10G10B10, B, G, R, x, UNORM, A2B10G10R10, T), + C4(A, R10G10B10A2_SNORM, NONE, R, G, B, A, SNORM, A2B10G10R10, T), + C4(A, B10G10R10A2_SNORM, NONE, B, G, R, A, SNORM, A2B10G10R10, T), + C4(A, R10G10B10A2_UINT, AU2BU10GU10RU10, R, G, B, A, UINT, A2B10G10R10, TR), + C4(A, B10G10R10A2_UINT, NONE, B, G, R, A, UINT, A2B10G10R10, T), - F3(A, R11G11B10_FLOAT, R11G11B10_FLOAT, R, G, B, xx, FLOAT, BF10GF11RF11, IB), + F3(A, R11G11B10_FLOAT, BF10GF11RF11, R, G, B, x, FLOAT, BF10GF11RF11, IB), - F3(A, L8_UNORM, R8_UNORM, R, R, R, xx, UNORM, R8, TB), - F3(A, L8_SRGB, NONE, R, R, R, xx, UNORM, R8, T), - F3(A, L8_SNORM, R8_SNORM, R, R, R, xx, SNORM, R8, TC), - I3(A, L8_SINT, R8_SINT, R, R, R, xx, SINT, R8, TR), - I3(A, L8_UINT, R8_UINT, R, R, R, xx, UINT, R8, TR), - F3(A, L16_UNORM, R16_UNORM, R, R, R, xx, UNORM, R16, TC), - F3(A, L16_SNORM, R16_SNORM, R, R, R, xx, SNORM, R16, TC), - F3(A, L16_FLOAT, R16_FLOAT, R, R, R, xx, FLOAT, R16, TB), - I3(A, L16_SINT, R16_SINT, R, R, R, xx, SINT, R16, TR), - I3(A, L16_UINT, R16_UINT, R, R, R, xx, UINT, R16, TR), - F3(A, L32_FLOAT, R32_FLOAT, R, R, R, xx, FLOAT, R32, TB), - I3(A, L32_SINT, R32_SINT, R, R, R, xx, SINT, R32, TR), - I3(A, L32_UINT, R32_UINT, R, R, R, xx, UINT, R32, TR), + F3(A, L8_UNORM, R8, R, R, R, x, UNORM, R8, TB), + F3(A, L8_SRGB, NONE, R, R, R, x, UNORM, R8, T), + F3(A, L8_SNORM, RN8, R, R, R, x, SNORM, R8, TC), + I3(A, L8_SINT, RS8, R, R, R, x, SINT, R8, TR), + I3(A, L8_UINT, RU8, R, R, R, x, UINT, R8, TR), + F3(A, L16_UNORM, R16, R, R, R, x, UNORM, R16, TC), + F3(A, L16_SNORM, RN16, R, R, R, x, SNORM, R16, TC), + F3(A, L16_FLOAT, RF16, R, R, R, x, FLOAT, R16, TB), + I3(A, L16_SINT, RS16, R, R, R, x, SINT, R16, TR), + I3(A, L16_UINT, RU16, R, R, R, x, UINT, R16, TR), + F3(A, L32_FLOAT, RF32, R, R, R, x, FLOAT, R32, TB), + I3(A, L32_SINT, RS32, R, R, R, x, SINT, R32, TR), + I3(A, L32_UINT, RU32, R, R, R, x, UINT, R32, TR), - C4(A, I8_UNORM, R8_UNORM, R, R, R, R, UNORM, R8, TR), - C4(A, I8_SNORM, R8_SNORM, R, R, R, R, SNORM, R8, TR), - C4(A, I8_SINT, R8_SINT, R, R, R, R, SINT, R8, TR), - C4(A, I8_UINT, R8_UINT, R, R, R, R, UINT, R8, TR), - C4(A, I16_UNORM, R16_UNORM, R, R, R, R, UNORM, R16, TR), - C4(A, I16_SNORM, R16_SNORM, R, R, R, R, SNORM, R16, TR), - C4(A, I16_FLOAT, R16_FLOAT, R, R, R, R, FLOAT, R16, TR), - C4(A, I16_SINT, R16_SINT, R, R, R, R, SINT, R16, TR), - C4(A, I16_UINT, R16_UINT, R, R, R, R, UINT, R16, TR), - C4(A, I32_FLOAT, R32_FLOAT, R, R, R, R, FLOAT, R32, TR), - C4(A, I32_SINT, R32_SINT, R, R, R, R, SINT, R32, TR), - C4(A, I32_UINT, R32_UINT, R, R, R, R, UINT, R32, TR), + C4(A, I8_UNORM, R8, R, R, R, R, UNORM, R8, TR), + C4(A, I8_SNORM, RN8, R, R, R, R, SNORM, R8, TR), + C4(A, I8_SINT, RS8, R, R, R, R, SINT, R8, TR), + C4(A, I8_UINT, RU8, R, R, R, R, UINT, R8, TR), + C4(A, I16_UNORM, R16, R, R, R, R, UNORM, R16, TR), + C4(A, I16_SNORM, RN16, R, R, R, R, SNORM, R16, TR), + C4(A, I16_FLOAT, RF16, R, R, R, R, FLOAT, R16, TR), + C4(A, I16_SINT, RS16, R, R, R, R, SINT, R16, TR), + C4(A, I16_UINT, RU16, R, R, R, R, UINT, R16, TR), + C4(A, I32_FLOAT, RF32, R, R, R, R, FLOAT, R32, TR), + C4(A, I32_SINT, RS32, R, R, R, R, SINT, R32, TR), + C4(A, I32_UINT, RU32, R, R, R, R, UINT, R32, TR), - A1(A, A8_UNORM, A8_UNORM, xx, xx, xx, R, UNORM, R8, TB), - A1(A, A8_SNORM, R8_SNORM, xx, xx, xx, R, SNORM, R8, T), - A1(A, A8_SINT, R8_SINT, xx, xx, xx, R, SINT, R8, T), - A1(A, A8_UINT, R8_UINT, xx, xx, xx, R, UINT, R8, T), - A1(A, A16_UNORM, R16_UNORM, xx, xx, xx, R, UNORM, R16, T), - A1(A, A16_SNORM, R16_SNORM, xx, xx, xx, R, SNORM, R16, T), - A1(A, A16_FLOAT, R16_FLOAT, xx, xx, xx, R, FLOAT, R16, T), - A1(A, A16_SINT, R16_SINT, xx, xx, xx, R, SINT, R16, T), - A1(A, A16_UINT, R16_UINT, xx, xx, xx, R, UINT, R16, T), - A1(A, A32_FLOAT, R32_FLOAT, xx, xx, xx, R, FLOAT, R32, T), - A1(A, A32_SINT, R32_SINT, xx, xx, xx, R, SINT, R32, T), - A1(A, A32_UINT, R32_UINT, xx, xx, xx, R, UINT, R32, T), + A1(A, A8_UNORM, A8, x, x, x, R, UNORM, R8, TB), + A1(A, A8_SNORM, RN8, x, x, x, R, SNORM, R8, T), + A1(A, A8_SINT, RS8, x, x, x, R, SINT, R8, T), + A1(A, A8_UINT, RU8, x, x, x, R, UINT, R8, T), + A1(A, A16_UNORM, R16, x, x, x, R, UNORM, R16, T), + A1(A, A16_SNORM, RN16, x, x, x, R, SNORM, R16, T), + A1(A, A16_FLOAT, AF16, x, x, x, R, FLOAT, R16, T), + A1(A, A16_SINT, RS16, x, x, x, R, SINT, R16, T), + A1(A, A16_UINT, RU16, x, x, x, R, UINT, R16, T), + A1(A, A32_FLOAT, AF32, x, x, x, R, FLOAT, R32, T), + A1(A, A32_SINT, RS32, x, x, x, R, SINT, R32, T), + A1(A, A32_UINT, RU32, x, x, x, R, UINT, R32, T), - C4(A, L4A4_UNORM, NONE, R, R, R, G, UNORM, G4R4, T), - C4(A, L8A8_UNORM, RG8_UNORM, R, R, R, G, UNORM, G8R8, T), - C4(A, L8A8_SNORM, RG8_SNORM, R, R, R, G, SNORM, G8R8, T), - C4(A, L8A8_SRGB, NONE, R, R, R, G, UNORM, G8R8, T), - C4(A, L8A8_SINT, RG8_SINT, R, R, R, G, SINT, G8R8, T), - C4(A, L8A8_UINT, RG8_UINT, R, R, R, G, UINT, G8R8, T), - C4(A, L16A16_UNORM, RG16_UNORM, R, R, R, G, UNORM, R16_G16, T), - C4(A, L16A16_SNORM, RG16_SNORM, R, R, R, G, SNORM, R16_G16, T), - C4(A, L16A16_FLOAT, RG16_FLOAT, R, R, R, G, FLOAT, R16_G16, T), - C4(A, L16A16_SINT, RG16_SINT, R, R, R, G, SINT, R16_G16, T), - C4(A, L16A16_UINT, RG16_UINT, R, R, R, G, UINT, R16_G16, T), - C4(A, L32A32_FLOAT, RG32_FLOAT, R, R, R, G, FLOAT, R32_G32, T), - C4(A, L32A32_SINT, RG32_SINT, R, R, R, G, SINT, R32_G32, T), - C4(A, L32A32_UINT, RG32_UINT, R, R, R, G, UINT, R32_G32, T), + C4(A, L4A4_UNORM, NONE, R, R, R, G, UNORM, G4R4, T), + C4(A, L8A8_UNORM, G8R8, R, R, R, G, UNORM, G8R8, T), + C4(A, L8A8_SNORM, GN8RN8, R, R, R, G, SNORM, G8R8, T), + C4(A, L8A8_SRGB, NONE, R, R, R, G, UNORM, G8R8, T), + C4(A, L8A8_SINT, GS8RS8, R, R, R, G, SINT, G8R8, T), + C4(A, L8A8_UINT, GU8RU8, R, R, R, G, UINT, G8R8, T), + C4(A, L16A16_UNORM, R16_G16, R, R, R, G, UNORM, R16_G16, T), + C4(A, L16A16_SNORM, RN16_GN16, R, R, R, G, SNORM, R16_G16, T), + C4(A, L16A16_FLOAT, RF16_GF16, R, R, R, G, FLOAT, R16_G16, T), + C4(A, L16A16_SINT, RS16_GS16, R, R, R, G, SINT, R16_G16, T), + C4(A, L16A16_UINT, RU16_GU16, R, R, R, G, UINT, R16_G16, T), + C4(A, L32A32_FLOAT, RF32_GF32, R, R, R, G, FLOAT, R32_G32, T), + C4(A, L32A32_SINT, RS32_GS32, R, R, R, G, SINT, R32_G32, T), + C4(A, L32A32_UINT, RU32_GU32, R, R, R, G, UINT, R32_G32, T), F3(A, DXT1_RGB, NONE, R, G, B, xx, UNORM, DXT1, T), F3(A, DXT1_SRGB, NONE, R, G, B, xx, UNORM, DXT1, T), @@ -241,82 +246,82 @@ static const struct nil_format_info nil_format_infos[PIPE_FORMAT_COUNT] = C4(D, ASTC_12x10_SRGB, NONE, R, G, B, A, UNORM, ASTC_2D_12X10, t), C4(D, ASTC_12x12_SRGB, NONE, R, G, B, A, UNORM, ASTC_2D_12X12, t), - C4(A, R32G32B32A32_FLOAT, RGBA32_FLOAT, R, G, B, A, FLOAT, R32_G32_B32_A32, IB), - C4(A, R32G32B32A32_UNORM, NONE, R, G, B, A, UNORM, R32_G32_B32_A32, T), - C4(A, R32G32B32A32_SNORM, NONE, R, G, B, A, SNORM, R32_G32_B32_A32, T), - C4(A, R32G32B32A32_SINT, RGBA32_SINT, R, G, B, A, SINT, R32_G32_B32_A32, IR), - C4(A, R32G32B32A32_UINT, RGBA32_UINT, R, G, B, A, UINT, R32_G32_B32_A32, IR), - F3(A, R32G32B32X32_FLOAT, RGBX32_FLOAT, R, G, B, xx, FLOAT, R32_G32_B32_A32, TB), - I3(A, R32G32B32X32_SINT, RGBX32_SINT, R, G, B, xx, SINT, R32_G32_B32_A32, TR), - I3(A, R32G32B32X32_UINT, RGBX32_UINT, R, G, B, xx, UINT, R32_G32_B32_A32, TR), + C4(A, R32G32B32A32_FLOAT, RF32_GF32_BF32_AF32, R, G, B, A, FLOAT, R32_G32_B32_A32, IB), + C4(A, R32G32B32A32_UNORM, NONE, R, G, B, A, UNORM, R32_G32_B32_A32, T), + C4(A, R32G32B32A32_SNORM, NONE, R, G, B, A, SNORM, R32_G32_B32_A32, T), + C4(A, R32G32B32A32_SINT, RS32_GS32_BS32_AS32, R, G, B, A, SINT, R32_G32_B32_A32, IR), + C4(A, R32G32B32A32_UINT, RU32_GU32_BU32_AU32, R, G, B, A, UINT, R32_G32_B32_A32, IR), + F3(A, R32G32B32X32_FLOAT, RF32_GF32_BF32_X32, R, G, B, x, FLOAT, R32_G32_B32_A32, TB), + I3(A, R32G32B32X32_SINT, RS32_GS32_BS32_X32, R, G, B, x, SINT, R32_G32_B32_A32, TR), + I3(A, R32G32B32X32_UINT, RU32_GU32_BU32_X32, R, G, B, x, UINT, R32_G32_B32_A32, TR), F3(C, R32G32B32_FLOAT, NONE, R, G, B, xx, FLOAT, R32_G32_B32, t), I3(C, R32G32B32_SINT, NONE, R, G, B, xx, SINT, R32_G32_B32, t), I3(C, R32G32B32_UINT, NONE, R, G, B, xx, UINT, R32_G32_B32, t), - F2(A, R32G32_FLOAT, RG32_FLOAT, R, G, xx, xx, FLOAT, R32_G32, IB), - F2(A, R32G32_UNORM, NONE, R, G, xx, xx, UNORM, R32_G32, T), - F2(A, R32G32_SNORM, NONE, R, G, xx, xx, SNORM, R32_G32, T), - I2(A, R32G32_SINT, RG32_SINT, R, G, xx, xx, SINT, R32_G32, IR), - I2(A, R32G32_UINT, RG32_UINT, R, G, xx, xx, UINT, R32_G32, IR), + F2(A, R32G32_FLOAT, RF32_GF32, R, G, x, x, FLOAT, R32_G32, IB), + F2(A, R32G32_UNORM, NONE, R, G, x, x, UNORM, R32_G32, T), + F2(A, R32G32_SNORM, NONE, R, G, x, x, SNORM, R32_G32, T), + I2(A, R32G32_SINT, RS32_GS32, R, G, x, x, SINT, R32_G32, IR), + I2(A, R32G32_UINT, RU32_GU32, R, G, x, x, UINT, R32_G32, IR), - F1(A, R32_FLOAT, R32_FLOAT, R, xx, xx, xx, FLOAT, R32, IB), - F1(A, R32_UNORM, NONE, R, xx, xx, xx, UNORM, R32, T), - F1(A, R32_SNORM, NONE, R, xx, xx, xx, SNORM, R32, T), - I1(A, R32_SINT, R32_SINT, R, xx, xx, xx, SINT, R32, IR), - I1(A, R32_UINT, R32_UINT, R, xx, xx, xx, UINT, R32, IR), + F1(A, R32_FLOAT, RF32, R, x, x, x, FLOAT, R32, IB), + F1(A, R32_UNORM, NONE, R, x, x, x, UNORM, R32, T), + F1(A, R32_SNORM, NONE, R, x, x, x, SNORM, R32, T), + I1(A, R32_SINT, RS32, R, x, x, x, SINT, R32, IR), + I1(A, R32_UINT, RU32, R, x, x, x, UINT, R32, IR), - C4(A, R16G16B16A16_FLOAT, RGBA16_FLOAT, R, G, B, A, FLOAT, R16_G16_B16_A16, IB), - C4(A, R16G16B16A16_UNORM, RGBA16_UNORM, R, G, B, A, UNORM, R16_G16_B16_A16, IC), - C4(A, R16G16B16A16_SNORM, RGBA16_SNORM, R, G, B, A, SNORM, R16_G16_B16_A16, IC), - C4(A, R16G16B16A16_SINT, RGBA16_SINT, R, G, B, A, SINT, R16_G16_B16_A16, IR), - C4(A, R16G16B16A16_UINT, RGBA16_UINT, R, G, B, A, UINT, R16_G16_B16_A16, IR), - F3(A, R16G16B16X16_FLOAT, RGBX16_FLOAT, R, G, B, xx, FLOAT, R16_G16_B16_A16, TB), - F3(A, R16G16B16X16_UNORM, RGBA16_UNORM, R, G, B, xx, UNORM, R16_G16_B16_A16, T), - F3(A, R16G16B16X16_SNORM, RGBA16_SNORM, R, G, B, xx, SNORM, R16_G16_B16_A16, T), - I3(A, R16G16B16X16_SINT, RGBA16_SINT, R, G, B, xx, SINT, R16_G16_B16_A16, TR), - I3(A, R16G16B16X16_UINT, RGBA16_UINT, R, G, B, xx, UINT, R16_G16_B16_A16, TR), + C4(A, R16G16B16A16_FLOAT, RF16_GF16_BF16_AF16, R, G, B, A, FLOAT, R16_G16_B16_A16, IB), + C4(A, R16G16B16A16_UNORM, R16_G16_B16_A16, R, G, B, A, UNORM, R16_G16_B16_A16, IC), + C4(A, R16G16B16A16_SNORM, RN16_GN16_BN16_AN16, R, G, B, A, SNORM, R16_G16_B16_A16, IC), + C4(A, R16G16B16A16_SINT, RS16_GS16_BS16_AS16, R, G, B, A, SINT, R16_G16_B16_A16, IR), + C4(A, R16G16B16A16_UINT, RU16_GU16_BU16_AU16, R, G, B, A, UINT, R16_G16_B16_A16, IR), + F3(A, R16G16B16X16_FLOAT, RF16_GF16_BF16_X16, R, G, B, x, FLOAT, R16_G16_B16_A16, TB), + F3(A, R16G16B16X16_UNORM, R16_G16_B16_A16, R, G, B, x, UNORM, R16_G16_B16_A16, T), + F3(A, R16G16B16X16_SNORM, RN16_GN16_BN16_AN16, R, G, B, x, SNORM, R16_G16_B16_A16, T), + I3(A, R16G16B16X16_SINT, RS16_GS16_BS16_AS16, R, G, B, x, SINT, R16_G16_B16_A16, TR), + I3(A, R16G16B16X16_UINT, RU16_GU16_BU16_AU16, R, G, B, x, UINT, R16_G16_B16_A16, TR), - F2(A, R16G16_FLOAT, RG16_FLOAT, R, G, xx, xx, FLOAT, R16_G16, IB), - F2(A, R16G16_UNORM, RG16_UNORM, R, G, xx, xx, UNORM, R16_G16, IC), - F2(A, R16G16_SNORM, RG16_SNORM, R, G, xx, xx, SNORM, R16_G16, IC), - I2(A, R16G16_SINT, RG16_SINT, R, G, xx, xx, SINT, R16_G16, IR), - I2(A, R16G16_UINT, RG16_UINT, R, G, xx, xx, UINT, R16_G16, IR), + F2(A, R16G16_FLOAT, RF16_GF16, R, G, x, x, FLOAT, R16_G16, IB), + F2(A, R16G16_UNORM, R16_G16, R, G, x, x, UNORM, R16_G16, IC), + F2(A, R16G16_SNORM, RN16_GN16, R, G, x, x, SNORM, R16_G16, IC), + I2(A, R16G16_SINT, RS16_GS16, R, G, x, x, SINT, R16_G16, IR), + I2(A, R16G16_UINT, RU16_GU16, R, G, x, x, UINT, R16_G16, IR), - F1(A, R16_FLOAT, R16_FLOAT, R, xx, xx, xx, FLOAT, R16, IB), - F1(A, R16_UNORM, R16_UNORM, R, xx, xx, xx, UNORM, R16, IC), - F1(A, R16_SNORM, R16_SNORM, R, xx, xx, xx, SNORM, R16, IC), - I1(A, R16_SINT, R16_SINT, R, xx, xx, xx, SINT, R16, IR), - I1(A, R16_UINT, R16_UINT, R, xx, xx, xx, UINT, R16, IR), + F1(A, R16_FLOAT, RF16, R, x, x, x, FLOAT, R16, IB), + F1(A, R16_UNORM, R16, R, x, x, x, UNORM, R16, IC), + F1(A, R16_SNORM, RN16, R, x, x, x, SNORM, R16, IC), + I1(A, R16_SINT, RS16, R, x, x, x, SINT, R16, IR), + I1(A, R16_UINT, RU16, R, x, x, x, UINT, R16, IR), - C4(A, R8G8B8A8_SNORM, RGBA8_SNORM, R, G, B, A, SNORM, A8B8G8R8, IC), - C4(A, R8G8B8A8_SINT, RGBA8_SINT, R, G, B, A, SINT, A8B8G8R8, IR), - C4(A, R8G8B8A8_UINT, RGBA8_UINT, R, G, B, A, UINT, A8B8G8R8, IR), - F3(A, R8G8B8X8_SNORM, RGBA8_SNORM, R, G, B, xx, SNORM, A8B8G8R8, T), - I3(A, R8G8B8X8_SINT, RGBA8_SINT, R, G, B, xx, SINT, A8B8G8R8, TR), - I3(A, R8G8B8X8_UINT, RGBA8_UINT, R, G, B, xx, UINT, A8B8G8R8, TR), + C4(A, R8G8B8A8_SNORM, AN8BN8GN8RN8, R, G, B, A, SNORM, A8B8G8R8, IC), + C4(A, R8G8B8A8_SINT, AS8BS8GS8RS8, R, G, B, A, SINT, A8B8G8R8, IR), + C4(A, R8G8B8A8_UINT, AU8BU8GU8RU8, R, G, B, A, UINT, A8B8G8R8, IR), + F3(A, R8G8B8X8_SNORM, AN8BN8GN8RN8, R, G, B, x, SNORM, A8B8G8R8, T), + I3(A, R8G8B8X8_SINT, AS8BS8GS8RS8, R, G, B, x, SINT, A8B8G8R8, TR), + I3(A, R8G8B8X8_UINT, AU8BU8GU8RU8, R, G, B, x, UINT, A8B8G8R8, TR), - F2(A, R8G8_UNORM, RG8_UNORM, R, G, xx, xx, UNORM, G8R8, IB), - F2(A, R8G8_SNORM, RG8_SNORM, R, G, xx, xx, SNORM, G8R8, IC), - I2(A, R8G8_SINT, RG8_SINT, R, G, xx, xx, SINT, G8R8, IR), - I2(A, R8G8_UINT, RG8_UINT, R, G, xx, xx, UINT, G8R8, IR), -#if NOUVEAU_DRIVER < 0xc0 + F2(A, R8G8_UNORM, G8R8, R, G, x, x, UNORM, G8R8, IB), + F2(A, R8G8_SNORM, GN8RN8, R, G, x, x, SNORM, G8R8, IC), + I2(A, R8G8_SINT, GS8RS8, R, G, x, x, SINT, G8R8, IR), + I2(A, R8G8_UINT, GU8RU8, R, G, x, x, UINT, G8R8, IR), +#if 0 /* On Fermi+, the green component doesn't get decoding? */ - F2(A, R8G8_SRGB, NONE, R, G, xx, xx, UNORM, G8R8, T), + F2(A, R8G8_SRGB, NONE, R, G, x, x, UNORM, G8R8, T), #endif - F1(A, R8_UNORM, R8_UNORM, R, xx, xx, xx, UNORM, R8, IB), - F1(A, R8_SNORM, R8_SNORM, R, xx, xx, xx, SNORM, R8, IC), - I1(A, R8_SINT, R8_SINT, R, xx, xx, xx, SINT, R8, IR), - I1(A, R8_UINT, R8_UINT, R, xx, xx, xx, UINT, R8, IR), - F1(A, R8_SRGB, NONE, R, xx, xx, xx, UNORM, R8, T), + F1(A, R8_UNORM, R8, R, x, x, x, UNORM, R8, IB), + F1(A, R8_SNORM, RN8, R, x, x, x, SNORM, R8, IC), + I1(A, R8_SINT, RS8, R, x, x, x, SINT, R8, IR), + I1(A, R8_UINT, RU8, R, x, x, x, UINT, R8, IR), + F1(A, R8_SRGB, NONE, R, x, x, x, UNORM, R8, T), F3(A, R8G8_B8G8_UNORM, NONE, R, G, B, xx, UNORM, G8B8G8R8, T), F3(A, G8R8_B8R8_UNORM, NONE, G, R, B, xx, UNORM, G8B8G8R8, T), F3(A, G8R8_G8B8_UNORM, NONE, R, G, B, xx, UNORM, B8G8R8G8, T), F3(A, R8G8_R8B8_UNORM, NONE, G, R, B, xx, UNORM, B8G8R8G8, T), - F1(A, R1_UNORM, BITMAP, R, xx, xx, xx, UNORM, R1, T), + F1(A, R1_UNORM, NONE, R, xx, xx, xx, UNORM, R1, T), C4(A, R4A4_UNORM, NONE, R, ZERO, ZERO, G, UNORM, G4R4, T), C4(A, R8A8_UNORM, NONE, R, ZERO, ZERO, G, UNORM, G8R8, T),