"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/gallium/drivers/swr/rasterizer/common/formats.h" (16 Sep 2020, 9892 Bytes) of package /linux/misc/mesa-20.1.8.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "formats.h" see the Fossies "Dox" file reference documentation.

    1 /****************************************************************************
    2  * Copyright (C) 2016 Intel Corporation.   All Rights Reserved.
    3  *
    4  * Permission is hereby granted, free of charge, to any person obtaining a
    5  * copy of this software and associated documentation files (the "Software"),
    6  * to deal in the Software without restriction, including without limitation
    7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    8  * and/or sell copies of the Software, and to permit persons to whom the
    9  * Software is furnished to do so, subject to the following conditions:
   10  *
   11  * The above copyright notice and this permission notice (including the next
   12  * paragraph) shall be included in all copies or substantial portions of the
   13  * Software.
   14  *
   15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
   21  * IN THE SOFTWARE.
   22  *
   23  * @file formats.h
   24  *
   25  * @brief auto-generated file
   26  *
   27  * DO NOT EDIT
   28  *
   29  ******************************************************************************/
   30 
   31 #pragma once
   32 
   33 #include "common/os.h"
   34 
   35 //////////////////////////////////////////////////////////////////////////
   36 /// SWR_TYPE - Format component type
   37 //////////////////////////////////////////////////////////////////////////
   38 enum SWR_TYPE
   39 {
   40     SWR_TYPE_UNKNOWN,
   41     SWR_TYPE_UNUSED,
   42     SWR_TYPE_UNORM,
   43     SWR_TYPE_SNORM,
   44     SWR_TYPE_UINT,
   45     SWR_TYPE_SINT,
   46     SWR_TYPE_FLOAT,
   47     SWR_TYPE_SSCALED,
   48     SWR_TYPE_USCALED,
   49     SWR_TYPE_SFIXED,
   50 };
   51 
   52 //////////////////////////////////////////////////////////////////////////
   53 /// SWR_FORMAT
   54 //////////////////////////////////////////////////////////////////////////
   55 enum SWR_FORMAT
   56 {
   57     R32G32B32A32_FLOAT       = 0x0,
   58     R32G32B32A32_SINT        = 0x1,
   59     R32G32B32A32_UINT        = 0x2,
   60     R64G64_FLOAT             = 0x5,
   61     R32G32B32X32_FLOAT       = 0x6,
   62     R32G32B32A32_SSCALED     = 0x7,
   63     R32G32B32A32_USCALED     = 0x8,
   64     R32G32B32A32_SFIXED      = 0x20,
   65     R32G32B32_FLOAT          = 0x40,
   66     R32G32B32_SINT           = 0x41,
   67     R32G32B32_UINT           = 0x42,
   68     R32G32B32_SSCALED        = 0x45,
   69     R32G32B32_USCALED        = 0x46,
   70     R32G32B32_SFIXED         = 0x50,
   71     R16G16B16A16_UNORM       = 0x80,
   72     R16G16B16A16_SNORM       = 0x81,
   73     R16G16B16A16_SINT        = 0x82,
   74     R16G16B16A16_UINT        = 0x83,
   75     R16G16B16A16_FLOAT       = 0x84,
   76     R32G32_FLOAT             = 0x85,
   77     R32G32_SINT              = 0x86,
   78     R32G32_UINT              = 0x87,
   79     R32_FLOAT_X8X24_TYPELESS = 0x88,
   80     X32_TYPELESS_G8X24_UINT  = 0x89,
   81     L32A32_FLOAT             = 0x8A,
   82     R64_FLOAT                = 0x8D,
   83     R16G16B16X16_UNORM       = 0x8E,
   84     R16G16B16X16_FLOAT       = 0x8F,
   85     L32X32_FLOAT             = 0x91,
   86     I32X32_FLOAT             = 0x92,
   87     R16G16B16A16_SSCALED     = 0x93,
   88     R16G16B16A16_USCALED     = 0x94,
   89     R32G32_SSCALED           = 0x95,
   90     R32G32_USCALED           = 0x96,
   91     R32G32_SFIXED            = 0xA0,
   92     B8G8R8A8_UNORM           = 0xC0,
   93     B8G8R8A8_UNORM_SRGB      = 0xC1,
   94     R10G10B10A2_UNORM        = 0xC2,
   95     R10G10B10A2_UNORM_SRGB   = 0xC3,
   96     R10G10B10A2_UINT         = 0xC4,
   97     R8G8B8A8_UNORM           = 0xC7,
   98     R8G8B8A8_UNORM_SRGB      = 0xC8,
   99     R8G8B8A8_SNORM           = 0xC9,
  100     R8G8B8A8_SINT            = 0xCA,
  101     R8G8B8A8_UINT            = 0xCB,
  102     R16G16_UNORM             = 0xCC,
  103     R16G16_SNORM             = 0xCD,
  104     R16G16_SINT              = 0xCE,
  105     R16G16_UINT              = 0xCF,
  106     R16G16_FLOAT             = 0xD0,
  107     B10G10R10A2_UNORM        = 0xD1,
  108     B10G10R10A2_UNORM_SRGB   = 0xD2,
  109     R11G11B10_FLOAT          = 0xD3,
  110     R10G10B10_FLOAT_A2_UNORM = 0xD5,
  111     R32_SINT                 = 0xD6,
  112     R32_UINT                 = 0xD7,
  113     R32_FLOAT                = 0xD8,
  114     R24_UNORM_X8_TYPELESS    = 0xD9,
  115     X24_TYPELESS_G8_UINT     = 0xDA,
  116     L32_UNORM                = 0xDD,
  117     L16A16_UNORM             = 0xDF,
  118     I24X8_UNORM              = 0xE0,
  119     L24X8_UNORM              = 0xE1,
  120     I32_FLOAT                = 0xE3,
  121     L32_FLOAT                = 0xE4,
  122     A32_FLOAT                = 0xE5,
  123     B8G8R8X8_UNORM           = 0xE9,
  124     B8G8R8X8_UNORM_SRGB      = 0xEA,
  125     R8G8B8X8_UNORM           = 0xEB,
  126     R8G8B8X8_UNORM_SRGB      = 0xEC,
  127     R9G9B9E5_SHAREDEXP       = 0xED,
  128     B10G10R10X2_UNORM        = 0xEE,
  129     L16A16_FLOAT             = 0xF0,
  130     R10G10B10X2_USCALED      = 0xF3,
  131     R8G8B8A8_SSCALED         = 0xF4,
  132     R8G8B8A8_USCALED         = 0xF5,
  133     R16G16_SSCALED           = 0xF6,
  134     R16G16_USCALED           = 0xF7,
  135     R32_SSCALED              = 0xF8,
  136     R32_USCALED              = 0xF9,
  137     B5G6R5_UNORM             = 0x100,
  138     B5G6R5_UNORM_SRGB        = 0x101,
  139     B5G5R5A1_UNORM           = 0x102,
  140     B5G5R5A1_UNORM_SRGB      = 0x103,
  141     B4G4R4A4_UNORM           = 0x104,
  142     B4G4R4A4_UNORM_SRGB      = 0x105,
  143     R8G8_UNORM               = 0x106,
  144     R8G8_SNORM               = 0x107,
  145     R8G8_SINT                = 0x108,
  146     R8G8_UINT                = 0x109,
  147     R16_UNORM                = 0x10A,
  148     R16_SNORM                = 0x10B,
  149     R16_SINT                 = 0x10C,
  150     R16_UINT                 = 0x10D,
  151     R16_FLOAT                = 0x10E,
  152     I16_UNORM                = 0x111,
  153     L16_UNORM                = 0x112,
  154     A16_UNORM                = 0x113,
  155     L8A8_UNORM               = 0x114,
  156     I16_FLOAT                = 0x115,
  157     L16_FLOAT                = 0x116,
  158     A16_FLOAT                = 0x117,
  159     L8A8_UNORM_SRGB          = 0x118,
  160     B5G5R5X1_UNORM           = 0x11A,
  161     B5G5R5X1_UNORM_SRGB      = 0x11B,
  162     R8G8_SSCALED             = 0x11C,
  163     R8G8_USCALED             = 0x11D,
  164     R16_SSCALED              = 0x11E,
  165     R16_USCALED              = 0x11F,
  166     A1B5G5R5_UNORM           = 0x124,
  167     A4B4G4R4_UNORM           = 0x125,
  168     L8A8_UINT                = 0x126,
  169     L8A8_SINT                = 0x127,
  170     R8_UNORM                 = 0x140,
  171     R8_SNORM                 = 0x141,
  172     R8_SINT                  = 0x142,
  173     R8_UINT                  = 0x143,
  174     A8_UNORM                 = 0x144,
  175     I8_UNORM                 = 0x145,
  176     L8_UNORM                 = 0x146,
  177     R8_SSCALED               = 0x149,
  178     R8_USCALED               = 0x14A,
  179     L8_UNORM_SRGB            = 0x14C,
  180     L8_UINT                  = 0x152,
  181     L8_SINT                  = 0x153,
  182     I8_UINT                  = 0x154,
  183     I8_SINT                  = 0x155,
  184     DXT1_RGB_SRGB            = 0x180,
  185     YCRCB_SWAPUVY            = 0x183,
  186     BC1_UNORM                = 0x186,
  187     BC2_UNORM                = 0x187,
  188     BC3_UNORM                = 0x188,
  189     BC4_UNORM                = 0x189,
  190     BC5_UNORM                = 0x18A,
  191     BC1_UNORM_SRGB           = 0x18B,
  192     BC2_UNORM_SRGB           = 0x18C,
  193     BC3_UNORM_SRGB           = 0x18D,
  194     YCRCB_SWAPUV             = 0x18F,
  195     DXT1_RGB                 = 0x191,
  196     R8G8B8_UNORM             = 0x193,
  197     R8G8B8_SNORM             = 0x194,
  198     R8G8B8_SSCALED           = 0x195,
  199     R8G8B8_USCALED           = 0x196,
  200     R64G64B64A64_FLOAT       = 0x197,
  201     R64G64B64_FLOAT          = 0x198,
  202     BC4_SNORM                = 0x199,
  203     BC5_SNORM                = 0x19A,
  204     R16G16B16_FLOAT          = 0x19B,
  205     R16G16B16_UNORM          = 0x19C,
  206     R16G16B16_SNORM          = 0x19D,
  207     R16G16B16_SSCALED        = 0x19E,
  208     R16G16B16_USCALED        = 0x19F,
  209     BC6H_SF16                = 0x1A1,
  210     BC7_UNORM                = 0x1A2,
  211     BC7_UNORM_SRGB           = 0x1A3,
  212     BC6H_UF16                = 0x1A4,
  213     R8G8B8_UNORM_SRGB        = 0x1A8,
  214     R16G16B16_UINT           = 0x1B0,
  215     R16G16B16_SINT           = 0x1B1,
  216     R32_SFIXED               = 0x1B2,
  217     R10G10B10A2_SNORM        = 0x1B3,
  218     R10G10B10A2_USCALED      = 0x1B4,
  219     R10G10B10A2_SSCALED      = 0x1B5,
  220     R10G10B10A2_SINT         = 0x1B6,
  221     B10G10R10A2_SNORM        = 0x1B7,
  222     B10G10R10A2_USCALED      = 0x1B8,
  223     B10G10R10A2_SSCALED      = 0x1B9,
  224     B10G10R10A2_UINT         = 0x1BA,
  225     B10G10R10A2_SINT         = 0x1BB,
  226     R8G8B8_UINT              = 0x1C8,
  227     R8G8B8_SINT              = 0x1C9,
  228     RAW                      = 0x1FF,
  229     NUM_SWR_FORMATS          = 0x200,
  230 };
  231 
  232 //////////////////////////////////////////////////////////////////////////
  233 /// SWR_FORMAT_INFO - Format information
  234 //////////////////////////////////////////////////////////////////////////
  235 struct SWR_FORMAT_INFO
  236 {
  237     const char* name;
  238     SWR_TYPE    type[4];
  239     uint32_t    defaults[4];
  240     uint32_t    swizzle[4]; ///< swizzle per component
  241     uint32_t    bpc[4];     ///< bits per component
  242     uint32_t    bpp;        ///< bits per pixel
  243     uint32_t    Bpp;        ///< bytes per pixel
  244     uint32_t    numComps;   ///< number of components
  245     bool        isSRGB;
  246     bool        isBC;
  247     bool        isSubsampled;
  248     bool        isLuminance;
  249     bool        isNormalized[4];
  250     float       toFloat[4];
  251     uint32_t    bcWidth;
  252     uint32_t    bcHeight;
  253 };
  254 
  255 extern const SWR_FORMAT_INFO gFormatInfo[NUM_SWR_FORMATS];
  256 
  257 //////////////////////////////////////////////////////////////////////////
  258 /// @brief Retrieves format info struct for given format.
  259 /// @param format - SWR format
  260 INLINE const SWR_FORMAT_INFO& GetFormatInfo(SWR_FORMAT format)
  261 {
  262     SWR_ASSERT(format < NUM_SWR_FORMATS, "Invalid Surface Format: %d", format);
  263     SWR_ASSERT(gFormatInfo[format].name != nullptr, "Invalid Surface Format: %d", format);
  264     return gFormatInfo[format];
  265 }
  266 
  267 // lookup table for unorm8 srgb -> float conversion
  268 extern const uint32_t srgb8Table[256];