From b3bd8bb611bb465d2e5efddd109cf633bf3cc9b9 Mon Sep 17 00:00:00 2001 From: Tim Rowley Date: Tue, 4 Oct 2016 13:14:32 -0500 Subject: [PATCH] swr: [rasterizer core] add support for "RAW" surface format Signed-off-by: Tim Rowley --- .../drivers/swr/rasterizer/common/formats.cpp | 23 +++++++++++++++++++ .../drivers/swr/rasterizer/common/formats.h | 6 +++++ 2 files changed, 29 insertions(+) diff --git a/src/gallium/drivers/swr/rasterizer/common/formats.cpp b/src/gallium/drivers/swr/rasterizer/common/formats.cpp index 8a6588678ab..2d2bf21f36e 100644 --- a/src/gallium/drivers/swr/rasterizer/common/formats.cpp +++ b/src/gallium/drivers/swr/rasterizer/common/formats.cpp @@ -6082,4 +6082,27 @@ const SWR_FORMAT_INFO gFormatInfo[] = { 1, // bcWidth 1, // bcHeight }, + // <---- Add new "supported" formats here! + + + // ... skip a long range ... + // RAW (0x1ff) + { + "RAW", + { SWR_TYPE_FLOAT, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN, SWR_TYPE_UNKNOWN, }, + { 0, 0, 0, 0 }, // Defaults for missing components + { 0, 1, 2, 3 }, // 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, // isLuminance + { false, false, false, false }, // Is normalized? + { 1.0f, 1.0f, 1.0f, 1.0f }, // To float scale factor + 1, // bcWidth + 1, // bcHeight + } }; diff --git a/src/gallium/drivers/swr/rasterizer/common/formats.h b/src/gallium/drivers/swr/rasterizer/common/formats.h index 117cf3e4b84..1f5fe190ff5 100644 --- a/src/gallium/drivers/swr/rasterizer/common/formats.h +++ b/src/gallium/drivers/swr/rasterizer/common/formats.h @@ -216,6 +216,7 @@ enum SWR_FORMAT R8G8B8_UINT = 0x1C8, R8G8B8_SINT = 0x1C9, NUM_SWR_FORMATS = 0x1CA, + RAW = 0x1FF, }; ////////////////////////////////////////////////////////////////////////// @@ -248,6 +249,11 @@ extern const SWR_FORMAT_INFO gFormatInfo[]; /// @param format - SWR format INLINE const SWR_FORMAT_INFO& GetFormatInfo(SWR_FORMAT format) { + if (format == RAW) + { + format = NUM_SWR_FORMATS; + } + SWR_ASSERT(format <= NUM_SWR_FORMATS, "Invalid Surface Format: %d", format); return gFormatInfo[format]; } -- 2.30.2