From 3951a2109eaa99c0c3783dfeeda64c17a4dcc7f2 Mon Sep 17 00:00:00 2001 From: Tim Rowley Date: Fri, 29 Apr 2016 12:15:34 -0600 Subject: [PATCH] swr: [rasterizer] Add support for X24_TYPELESS_G8_UINT format Reviewed-by: Bruce Cherniak --- .../drivers/swr/rasterizer/common/formats.cpp | 25 +++++++++++++------ .../drivers/swr/rasterizer/common/formats.h | 1 + .../swr/rasterizer/core/format_traits.h | 22 ++++++++++++++++ 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/common/formats.cpp b/src/gallium/drivers/swr/rasterizer/common/formats.cpp index ed8ce7e5b0f..21ee50b6813 100644 --- a/src/gallium/drivers/swr/rasterizer/common/formats.cpp +++ b/src/gallium/drivers/swr/rasterizer/common/formats.cpp @@ -2380,14 +2380,25 @@ const SWR_FORMAT_INFO gFormatInfo[] = { 1, // bcHeight false, // isLuminance }, - // 0xda (Padding) + // X24_TYPELESS_G8_UINT (0xda) { - "UNKNOWN", - { SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN }, - { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, 0, 0, 0, false, false, false, - { false, false, false, false }, - { 0.0f, 0.0f, 0.0f, 0.0f }, - 1, 1, false }, + "X24_TYPELESS_G8_UINT", + { SWR_TYPE_UINT, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN }, + { 0, 0, 0, 0x1 }, // Defaults for missing components + { 1, 0, 0, 0 }, // Swizzle + { 32, 0, 0, 0 }, // Bits per component + 32, // Bits per element + 4, // Bytes per element + 1, // Num components + false, // isSRGB + false, // isBC + false, // isSubsampled + { false, false, false, false }, // Is normalized? + { 1.0f, 0, 0, 0 }, // To float scale factor + 1, // bcWidth + 1, // bcHeight + false, // isLuminance + }, // 0xdb (Padding) { "UNKNOWN", diff --git a/src/gallium/drivers/swr/rasterizer/common/formats.h b/src/gallium/drivers/swr/rasterizer/common/formats.h index b9dd53ebaa4..c7108c54764 100644 --- a/src/gallium/drivers/swr/rasterizer/common/formats.h +++ b/src/gallium/drivers/swr/rasterizer/common/formats.h @@ -106,6 +106,7 @@ enum SWR_FORMAT R32_UINT = 0xD7, R32_FLOAT = 0xD8, R24_UNORM_X8_TYPELESS = 0xD9, + X24_TYPELESS_G8_UINT = 0xDA, R24_UNORM_X8_TYPELESS_LD = 0xDC, L32_UNORM = 0xDD, L16A16_UNORM = 0xDF, diff --git a/src/gallium/drivers/swr/rasterizer/core/format_traits.h b/src/gallium/drivers/swr/rasterizer/core/format_traits.h index 52340f4987a..ba36498b952 100644 --- a/src/gallium/drivers/swr/rasterizer/core/format_traits.h +++ b/src/gallium/drivers/swr/rasterizer/core/format_traits.h @@ -1236,6 +1236,28 @@ template<> struct FormatTraits : typedef Format1<24> FormatT; }; +////////////////////////////////////////////////////////////////////////// +/// FormatTraits - Format traits specialization for X24_TYPELESS_G8_UINT +////////////////////////////////////////////////////////////////////////// +template<> struct FormatTraits : + ComponentTraits, + FormatSwizzle<1>, + Defaults<0, 0, 0, 0x1> +{ + static const uint32_t bpp{ 32 }; + static const uint32_t numComps{ 1 }; + static const bool hasAlpha{ false }; + static const uint32_t alphaComp{ 3 }; + static const bool isSRGB{ false }; + static const bool isBC{ false }; + static const bool isSubsampled{ false }; + static const uint32_t bcWidth{ 1 }; + static const uint32_t bcHeight{ 1 }; + + typedef TransposeSingleComponent<32> TransposeT; + typedef Format1<32> FormatT; +}; + ////////////////////////////////////////////////////////////////////////// /// FormatTraits - Format traits specialization for R24_UNORM_X8_TYPELESS_LD ////////////////////////////////////////////////////////////////////////// -- 2.30.2