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