swr: [rasterizer] Add support for X24_TYPELESS_G8_UINT format
authorTim Rowley <timothy.o.rowley@intel.com>
Fri, 29 Apr 2016 18:15:34 +0000 (12:15 -0600)
committerTim Rowley <timothy.o.rowley@intel.com>
Thu, 5 May 2016 19:49:42 +0000 (14:49 -0500)
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/rasterizer/common/formats.cpp
src/gallium/drivers/swr/rasterizer/common/formats.h
src/gallium/drivers/swr/rasterizer/core/format_traits.h

index ed8ce7e5b0f322801eabd26b80cad8ed1b2720d6..21ee50b6813d986287d2b211cdce447d925e075b 100644 (file)
@@ -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",
index b9dd53ebaa474610f93a264e96bd33463aa6a417..c7108c54764bd08f22a349adc32ecd2f649bbfe5 100644 (file)
@@ -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,
index 52340f4987a3361aa0883db10f7e987858afb922..ba36498b952746c043a0b0fc73f97acd0b270547 100644 (file)
@@ -1236,6 +1236,28 @@ template<> struct FormatTraits<R24_UNORM_X8_TYPELESS> :
     typedef Format1<24> FormatT;
 };
 
+//////////////////////////////////////////////////////////////////////////
+/// FormatTraits<X24_TYPELESS_G8_UINT> - Format traits specialization for X24_TYPELESS_G8_UINT
+//////////////////////////////////////////////////////////////////////////
+template<> struct FormatTraits<X24_TYPELESS_G8_UINT> :
+    ComponentTraits<SWR_TYPE_UINT, 32>,
+    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<R24_UNORM_X8_TYPELESS_LD> - Format traits specialization for R24_UNORM_X8_TYPELESS_LD
 //////////////////////////////////////////////////////////////////////////