formats.c revision 952ca0785236729b69e154b3b48783fc4d9a5526
1813870fd9588de101f68728507cff726d7513695Brian Paul/* 2813870fd9588de101f68728507cff726d7513695Brian Paul * Mesa 3-D graphics library 3813870fd9588de101f68728507cff726d7513695Brian Paul * Version: 7.7 4813870fd9588de101f68728507cff726d7513695Brian Paul * 5813870fd9588de101f68728507cff726d7513695Brian Paul * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 6813870fd9588de101f68728507cff726d7513695Brian Paul * Copyright (c) 2008-2009 VMware, Inc. 7813870fd9588de101f68728507cff726d7513695Brian Paul * 8813870fd9588de101f68728507cff726d7513695Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a 9813870fd9588de101f68728507cff726d7513695Brian Paul * copy of this software and associated documentation files (the "Software"), 10813870fd9588de101f68728507cff726d7513695Brian Paul * to deal in the Software without restriction, including without limitation 11813870fd9588de101f68728507cff726d7513695Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12813870fd9588de101f68728507cff726d7513695Brian Paul * and/or sell copies of the Software, and to permit persons to whom the 13813870fd9588de101f68728507cff726d7513695Brian Paul * Software is furnished to do so, subject to the following conditions: 14813870fd9588de101f68728507cff726d7513695Brian Paul * 15813870fd9588de101f68728507cff726d7513695Brian Paul * The above copyright notice and this permission notice shall be included 16813870fd9588de101f68728507cff726d7513695Brian Paul * in all copies or substantial portions of the Software. 17813870fd9588de101f68728507cff726d7513695Brian Paul * 18813870fd9588de101f68728507cff726d7513695Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19813870fd9588de101f68728507cff726d7513695Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20813870fd9588de101f68728507cff726d7513695Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21813870fd9588de101f68728507cff726d7513695Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 22813870fd9588de101f68728507cff726d7513695Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 23813870fd9588de101f68728507cff726d7513695Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24813870fd9588de101f68728507cff726d7513695Brian Paul */ 25813870fd9588de101f68728507cff726d7513695Brian Paul 26813870fd9588de101f68728507cff726d7513695Brian Paul 27c28d78f8324cfc17936af63c258a1cc55d590d60Brian Paul#include "imports.h" 28813870fd9588de101f68728507cff726d7513695Brian Paul#include "formats.h" 293a6f9d0f47861b1c618366d679ad8ddd9a06b323Brian Paul#include "mfeatures.h" 30488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul#include "macros.h" 31813870fd9588de101f68728507cff726d7513695Brian Paul 32813870fd9588de101f68728507cff726d7513695Brian Paul 33813870fd9588de101f68728507cff726d7513695Brian Paul/** 34be0765cd6ec47cf068775197f312a1123e044566Brian Paul * Information about texture formats. 35be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 36be0765cd6ec47cf068775197f312a1123e044566Brian Paulstruct gl_format_info 37be0765cd6ec47cf068775197f312a1123e044566Brian Paul{ 38be0765cd6ec47cf068775197f312a1123e044566Brian Paul gl_format Name; 39be0765cd6ec47cf068775197f312a1123e044566Brian Paul 40bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul /** text name for debugging */ 41bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul const char *StrName; 42bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 43be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 442d29349c0083134e3b9b9d2023368268b7dcc951Eric Anholt * Base format is one of GL_RED, GL_RG, GL_RGB, GL_RGBA, GL_ALPHA, 452d29349c0083134e3b9b9d2023368268b7dcc951Eric Anholt * GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_YCBCR_MESA, 4655d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL, GL_DUDV_ATI. 47be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 48be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLenum BaseFormat; 49be0765cd6ec47cf068775197f312a1123e044566Brian Paul 50be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 5182fff5f3edfd2f6396a872a12d753b2ab90edd7bBrian Paul * Logical data type: one of GL_UNSIGNED_NORMALIZED, GL_SIGNED_NORMALIZED, 52abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * GL_UNSIGNED_INT, GL_INT, GL_FLOAT. 53be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 54be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLenum DataType; 55be0765cd6ec47cf068775197f312a1123e044566Brian Paul 56be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte RedBits; 57be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte GreenBits; 58be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BlueBits; 59be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte AlphaBits; 60be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte LuminanceBits; 61be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte IntensityBits; 62be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte IndexBits; 63be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte DepthBits; 64be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte StencilBits; 65be0765cd6ec47cf068775197f312a1123e044566Brian Paul 66be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 67be0765cd6ec47cf068775197f312a1123e044566Brian Paul * To describe compressed formats. If not compressed, Width=Height=1. 68be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 69be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BlockWidth, BlockHeight; 70be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BytesPerBlock; 71be0765cd6ec47cf068775197f312a1123e044566Brian Paul}; 72be0765cd6ec47cf068775197f312a1123e044566Brian Paul 73be0765cd6ec47cf068775197f312a1123e044566Brian Paul 74be0765cd6ec47cf068775197f312a1123e044566Brian Paul/** 75813870fd9588de101f68728507cff726d7513695Brian Paul * Info about each format. 76813870fd9588de101f68728507cff726d7513695Brian Paul * These must be in the same order as the MESA_FORMAT_* enums so that 77813870fd9588de101f68728507cff726d7513695Brian Paul * we can do lookups without searching. 78813870fd9588de101f68728507cff726d7513695Brian Paul */ 79813870fd9588de101f68728507cff726d7513695Brian Paulstatic struct gl_format_info format_info[MESA_FORMAT_COUNT] = 80813870fd9588de101f68728507cff726d7513695Brian Paul{ 81813870fd9588de101f68728507cff726d7513695Brian Paul { 82e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul MESA_FORMAT_NONE, /* Name */ 83bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_NONE", /* StrName */ 84e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul GL_NONE, /* BaseFormat */ 85e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul GL_NONE, /* DataType */ 86e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 87e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 88e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0 /* BlockWidth/Height,Bytes */ 89e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul }, 90e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul { 91813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888, /* Name */ 92bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA8888", /* StrName */ 93813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 94813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 95813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 96813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 97813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 98813870fd9588de101f68728507cff726d7513695Brian Paul }, 99813870fd9588de101f68728507cff726d7513695Brian Paul { 100813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888_REV, /* Name */ 101bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA8888_REV", /* StrName */ 102813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 103813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 104813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 105813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 106813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 107813870fd9588de101f68728507cff726d7513695Brian Paul }, 108813870fd9588de101f68728507cff726d7513695Brian Paul { 109813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888, /* Name */ 110bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB8888", /* StrName */ 111813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 112813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 113813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 114813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 115813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 116813870fd9588de101f68728507cff726d7513695Brian Paul }, 117813870fd9588de101f68728507cff726d7513695Brian Paul { 118813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888_REV, /* Name */ 119bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB8888_REV", /* StrName */ 120813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 121813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 122813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 123813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 124813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 125813870fd9588de101f68728507cff726d7513695Brian Paul }, 126813870fd9588de101f68728507cff726d7513695Brian Paul { 127d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu MESA_FORMAT_RGBX8888, /* Name */ 128d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu "MESA_FORMAT_RGBX8888", /* StrName */ 129d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_RGB, /* BaseFormat */ 130d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_UNSIGNED_NORMALIZED, /* DataType */ 131d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 132d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 133d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 1, 1, 4 /* BlockWidth/Height,Bytes */ 134d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu }, 135d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu { 136d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu MESA_FORMAT_RGBX8888_REV, /* Name */ 137d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu "MESA_FORMAT_RGBX8888_REV", /* StrName */ 138d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_RGB, /* BaseFormat */ 139d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_UNSIGNED_NORMALIZED, /* DataType */ 140d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 141d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 142d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 1, 1, 4 /* BlockWidth/Height,Bytes */ 143d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu }, 144d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu { 14574d61d03b54d72217d463c248468cdcd09320efcBrian Paul MESA_FORMAT_XRGB8888, /* Name */ 146bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_XRGB8888", /* StrName */ 14774d61d03b54d72217d463c248468cdcd09320efcBrian Paul GL_RGB, /* BaseFormat */ 14874d61d03b54d72217d463c248468cdcd09320efcBrian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 14974d61d03b54d72217d463c248468cdcd09320efcBrian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 15074d61d03b54d72217d463c248468cdcd09320efcBrian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 15174d61d03b54d72217d463c248468cdcd09320efcBrian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 15274d61d03b54d72217d463c248468cdcd09320efcBrian Paul }, 15374d61d03b54d72217d463c248468cdcd09320efcBrian Paul { 1542d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer MESA_FORMAT_XRGB8888_REV, /* Name */ 1552d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer "MESA_FORMAT_XRGB8888_REV", /* StrName */ 1562d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer GL_RGB, /* BaseFormat */ 1572d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer GL_UNSIGNED_NORMALIZED, /* DataType */ 1582d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 1592d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 1602d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 1, 1, 4 /* BlockWidth/Height,Bytes */ 1612d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer }, 1622d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer { 163813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB888, /* Name */ 164bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB888", /* StrName */ 165813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 166813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 167813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 168813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 169813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 /* BlockWidth/Height,Bytes */ 170813870fd9588de101f68728507cff726d7513695Brian Paul }, 171813870fd9588de101f68728507cff726d7513695Brian Paul { 172813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_BGR888, /* Name */ 173bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_BGR888", /* StrName */ 174813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 175813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 176813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 177813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 178813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 /* BlockWidth/Height,Bytes */ 179813870fd9588de101f68728507cff726d7513695Brian Paul }, 180813870fd9588de101f68728507cff726d7513695Brian Paul { 181813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565, /* Name */ 182bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB565", /* StrName */ 183813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 184813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 185813870fd9588de101f68728507cff726d7513695Brian Paul 5, 6, 5, 0, /* Red/Green/Blue/AlphaBits */ 186813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 187813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 188813870fd9588de101f68728507cff726d7513695Brian Paul }, 189813870fd9588de101f68728507cff726d7513695Brian Paul { 190813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565_REV, /* Name */ 191bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB565_REV", /* StrName */ 192813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 193813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 194813870fd9588de101f68728507cff726d7513695Brian Paul 5, 6, 5, 0, /* Red/Green/Blue/AlphaBits */ 195813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 196813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 197813870fd9588de101f68728507cff726d7513695Brian Paul }, 198813870fd9588de101f68728507cff726d7513695Brian Paul { 199813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444, /* Name */ 200bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB4444", /* StrName */ 201813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 202813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 203813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 204813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 205813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 206813870fd9588de101f68728507cff726d7513695Brian Paul }, 207813870fd9588de101f68728507cff726d7513695Brian Paul { 208813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444_REV, /* Name */ 209bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB4444_REV", /* StrName */ 210813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 211813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 212813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 213813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 214813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 215813870fd9588de101f68728507cff726d7513695Brian Paul }, 216813870fd9588de101f68728507cff726d7513695Brian Paul { 217813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA5551, /* Name */ 218bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA5551", /* StrName */ 219813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 220813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 221813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 222813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 223813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 224813870fd9588de101f68728507cff726d7513695Brian Paul }, 225813870fd9588de101f68728507cff726d7513695Brian Paul { 226813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555, /* Name */ 227bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB1555", /* StrName */ 228813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 229813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 230813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 231813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 232813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 233813870fd9588de101f68728507cff726d7513695Brian Paul }, 234813870fd9588de101f68728507cff726d7513695Brian Paul { 235813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555_REV, /* Name */ 236bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB1555_REV", /* StrName */ 237813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 238813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 239813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 240813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 241813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 242813870fd9588de101f68728507cff726d7513695Brian Paul }, 243813870fd9588de101f68728507cff726d7513695Brian Paul { 244bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák MESA_FORMAT_AL44, /* Name */ 245bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák "MESA_FORMAT_AL44", /* StrName */ 246bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák GL_LUMINANCE_ALPHA, /* BaseFormat */ 247bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 248bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 0, 0, 0, 4, /* Red/Green/Blue/AlphaBits */ 249bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 4, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 250bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 1, 1, 1 /* BlockWidth/Height,Bytes */ 251bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák }, 252bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák { 253813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88, /* Name */ 254bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_AL88", /* StrName */ 255813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, /* BaseFormat */ 256813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 257813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 258813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 259813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 260813870fd9588de101f68728507cff726d7513695Brian Paul }, 261813870fd9588de101f68728507cff726d7513695Brian Paul { 262813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88_REV, /* Name */ 263bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_AL88_REV", /* StrName */ 264813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, /* BaseFormat */ 265813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 266813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 267813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 268813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 269813870fd9588de101f68728507cff726d7513695Brian Paul }, 270813870fd9588de101f68728507cff726d7513695Brian Paul { 271eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616, /* Name */ 272eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick "MESA_FORMAT_AL1616", /* StrName */ 273eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_LUMINANCE_ALPHA, /* BaseFormat */ 274eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_UNSIGNED_NORMALIZED, /* DataType */ 275eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 276eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 277eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 1, 1, 4 /* BlockWidth/Height,Bytes */ 278eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick }, 279eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick { 280eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616_REV, /* Name */ 281eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick "MESA_FORMAT_AL1616_REV", /* StrName */ 282eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_LUMINANCE_ALPHA, /* BaseFormat */ 283eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_UNSIGNED_NORMALIZED, /* DataType */ 284eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 285eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 286eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 1, 1, 4 /* BlockWidth/Height,Bytes */ 287eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick }, 288eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick { 289813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB332, /* Name */ 290bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB332", /* StrName */ 291813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 292813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 293813870fd9588de101f68728507cff726d7513695Brian Paul 3, 3, 2, 0, /* Red/Green/Blue/AlphaBits */ 294813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 295813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 296813870fd9588de101f68728507cff726d7513695Brian Paul }, 297813870fd9588de101f68728507cff726d7513695Brian Paul { 298813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_A8, /* Name */ 299bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_A8", /* StrName */ 300813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, /* BaseFormat */ 301813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 302813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 303813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 304813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 305813870fd9588de101f68728507cff726d7513695Brian Paul }, 306813870fd9588de101f68728507cff726d7513695Brian Paul { 307eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák MESA_FORMAT_A16, /* Name */ 308eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák "MESA_FORMAT_A16", /* StrName */ 309eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák GL_ALPHA, /* BaseFormat */ 310eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 311eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 312eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 313eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 314eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák }, 315eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák { 316813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_L8, /* Name */ 317bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_L8", /* StrName */ 318813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE, /* BaseFormat */ 319813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 320813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 321813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 322813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 323813870fd9588de101f68728507cff726d7513695Brian Paul }, 324813870fd9588de101f68728507cff726d7513695Brian Paul { 325bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák MESA_FORMAT_L16, /* Name */ 326bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák "MESA_FORMAT_L16", /* StrName */ 327bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák GL_LUMINANCE, /* BaseFormat */ 328bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 329bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 330bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 331bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 332bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák }, 333bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák { 334813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_I8, /* Name */ 335bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_I8", /* StrName */ 336813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, /* BaseFormat */ 337813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 338813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 339813870fd9588de101f68728507cff726d7513695Brian Paul 0, 8, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 340813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 341813870fd9588de101f68728507cff726d7513695Brian Paul }, 342813870fd9588de101f68728507cff726d7513695Brian Paul { 343fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák MESA_FORMAT_I16, /* Name */ 344fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák "MESA_FORMAT_I16", /* StrName */ 345fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák GL_INTENSITY, /* BaseFormat */ 346fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 347fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 348fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 0, 16, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 349fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 350fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák }, 351fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák { 352813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR, /* Name */ 353bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_YCBCR", /* StrName */ 354813870fd9588de101f68728507cff726d7513695Brian Paul GL_YCBCR_MESA, /* BaseFormat */ 355813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 356813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 357813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 358813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 359813870fd9588de101f68728507cff726d7513695Brian Paul }, 360813870fd9588de101f68728507cff726d7513695Brian Paul { 361813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR_REV, /* Name */ 362bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_YCBCR_REV", /* StrName */ 363813870fd9588de101f68728507cff726d7513695Brian Paul GL_YCBCR_MESA, /* BaseFormat */ 364813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 365813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 366813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 367813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 368813870fd9588de101f68728507cff726d7513695Brian Paul }, 369813870fd9588de101f68728507cff726d7513695Brian Paul { 3705d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R8, 3715d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_R8", 3725d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RED, 3735d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3745d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 0, 0, 0, 3755d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3765d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 1 3775d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3785d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 3790a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul MESA_FORMAT_GR88, 3800a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul "MESA_FORMAT_GR88", 3815d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 3825d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3835d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 8, 0, 0, 3845d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3855d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 3865d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3875d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 388b4aecc4e1861e60e40e14868719219084967e46dBrian Paul MESA_FORMAT_RG88, 389b4aecc4e1861e60e40e14868719219084967e46dBrian Paul "MESA_FORMAT_RG88", 3905d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 3915d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3925d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 8, 0, 0, 3935d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3945d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 3955d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3965d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 3975d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R16, 3985d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_R16", 3995d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RED, 4005d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4015d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 0, 0, 0, 4025d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4035d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 4045d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4055d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 4065d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616, 4075d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_RG1616", 4085d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 4095d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4105d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 16, 0, 0, 4115d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4125d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 4 4135d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4145d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 4155d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616_REV, 4165d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_RG1616_REV", 4175d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 4185d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4195d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 16, 0, 0, 4205d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4215d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 4 4225d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4235d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 424621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák MESA_FORMAT_ARGB2101010, 425621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák "MESA_FORMAT_ARGB2101010", 426621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák GL_RGBA, 427621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák GL_UNSIGNED_NORMALIZED, 428621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 10, 10, 10, 2, 429621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 0, 0, 0, 0, 0, 430621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 1, 1, 4 431621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák }, 432621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák { 433813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z24_S8, /* Name */ 434bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z24_S8", /* StrName */ 435813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_STENCIL, /* BaseFormat */ 436755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 437813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 438813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 24, 8, /* Lum/Int/Index/Depth/StencilBits */ 439813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 440813870fd9588de101f68728507cff726d7513695Brian Paul }, 441813870fd9588de101f68728507cff726d7513695Brian Paul { 442813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8_Z24, /* Name */ 443bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_S8_Z24", /* StrName */ 444813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_STENCIL, /* BaseFormat */ 445755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 446813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 447813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 24, 8, /* Lum/Int/Index/Depth/StencilBits */ 448813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 449813870fd9588de101f68728507cff726d7513695Brian Paul }, 450813870fd9588de101f68728507cff726d7513695Brian Paul { 451813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z16, /* Name */ 452bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z16", /* StrName */ 453813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 454755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 455813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 456813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 0, /* Lum/Int/Index/Depth/StencilBits */ 457813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 458813870fd9588de101f68728507cff726d7513695Brian Paul }, 459813870fd9588de101f68728507cff726d7513695Brian Paul { 460e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul MESA_FORMAT_X8_Z24, /* Name */ 461bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_X8_Z24", /* StrName */ 462e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 463755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 464e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 465e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 0, 0, 0, 24, 0, /* Lum/Int/Index/Depth/StencilBits */ 466e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 467e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul }, 468e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul { 469c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca MESA_FORMAT_Z24_X8, /* Name */ 470c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca "MESA_FORMAT_Z24_X8", /* StrName */ 471c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca GL_DEPTH_COMPONENT, /* BaseFormat */ 472755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 473c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 474c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 0, 0, 0, 24, 0, /* Lum/Int/Index/Depth/StencilBits */ 475c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 1, 1, 4 /* BlockWidth/Height,Bytes */ 476c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca }, 477c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca { 478813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z32, /* Name */ 479bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z32", /* StrName */ 480813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 481755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 482813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 483813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 0, /* Lum/Int/Index/Depth/StencilBits */ 484813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 485813870fd9588de101f68728507cff726d7513695Brian Paul }, 486813870fd9588de101f68728507cff726d7513695Brian Paul { 487813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8, /* Name */ 488bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_S8", /* StrName */ 489813870fd9588de101f68728507cff726d7513695Brian Paul GL_STENCIL_INDEX, /* BaseFormat */ 490813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_INT, /* DataType */ 491813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 492813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 8, /* Lum/Int/Index/Depth/StencilBits */ 493813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 494813870fd9588de101f68728507cff726d7513695Brian Paul }, 495813870fd9588de101f68728507cff726d7513695Brian Paul { 496813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB8, 497bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGB8", 498813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 499813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 500813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, 501813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 502813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 503813870fd9588de101f68728507cff726d7513695Brian Paul }, 504813870fd9588de101f68728507cff726d7513695Brian Paul { 505813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA8, 506bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA8", 507813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 508813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 509813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 510813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 511813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 512813870fd9588de101f68728507cff726d7513695Brian Paul }, 513813870fd9588de101f68728507cff726d7513695Brian Paul { 514813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SARGB8, 515bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SARGB8", 516813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 517813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 518813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 519813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 520813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 521813870fd9588de101f68728507cff726d7513695Brian Paul }, 522813870fd9588de101f68728507cff726d7513695Brian Paul { 523813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SL8, 524bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SL8", 52571cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul GL_LUMINANCE, 526813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 52771cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul 0, 0, 0, 0, 528813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, 52971cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul 1, 1, 1 530813870fd9588de101f68728507cff726d7513695Brian Paul }, 531813870fd9588de101f68728507cff726d7513695Brian Paul { 532813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SLA8, 533bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SLA8", 534813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 535813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 536813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, 537813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, 538813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 539813870fd9588de101f68728507cff726d7513695Brian Paul }, 540813870fd9588de101f68728507cff726d7513695Brian Paul { 541813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB_DXT1, /* Name */ 542bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGB_DXT1", /* StrName */ 543813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 544813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 545813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 0, /* approx Red/Green/Blue/AlphaBits */ 546813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 547813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 548813870fd9588de101f68728507cff726d7513695Brian Paul }, 549813870fd9588de101f68728507cff726d7513695Brian Paul { 550813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT1, 551bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT1", 552813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 553813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 554813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 555813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 556813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 557813870fd9588de101f68728507cff726d7513695Brian Paul }, 558813870fd9588de101f68728507cff726d7513695Brian Paul { 559813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT3, 560bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT3", 561813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 562813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 563813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 564813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 565813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 566813870fd9588de101f68728507cff726d7513695Brian Paul }, 567813870fd9588de101f68728507cff726d7513695Brian Paul { 568813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT5, 569bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT5", 570813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 571813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 572813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 573813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 574813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 575813870fd9588de101f68728507cff726d7513695Brian Paul }, 576813870fd9588de101f68728507cff726d7513695Brian Paul 577813870fd9588de101f68728507cff726d7513695Brian Paul { 578813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FXT1, 579bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FXT1", 580813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 581813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 582c02cd82b463661def7842f910dc561313559df80Brian Paul 4, 4, 4, 0, /* approx Red/Green/BlueBits */ 583813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 584813870fd9588de101f68728507cff726d7513695Brian Paul 8, 4, 16 /* 16 bytes per 8x4 block */ 585813870fd9588de101f68728507cff726d7513695Brian Paul }, 586813870fd9588de101f68728507cff726d7513695Brian Paul { 587813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FXT1, 588bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FXT1", 589813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 590813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 591c02cd82b463661def7842f910dc561313559df80Brian Paul 4, 4, 4, 1, /* approx Red/Green/Blue/AlphaBits */ 592813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 593813870fd9588de101f68728507cff726d7513695Brian Paul 8, 4, 16 /* 16 bytes per 8x4 block */ 594813870fd9588de101f68728507cff726d7513695Brian Paul }, 595813870fd9588de101f68728507cff726d7513695Brian Paul 596813870fd9588de101f68728507cff726d7513695Brian Paul { 597813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_DXT1, /* Name */ 598bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_DXT1", /* StrName */ 599813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 600813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 601813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 0, /* approx Red/Green/Blue/AlphaBits */ 602813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 603813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 604813870fd9588de101f68728507cff726d7513695Brian Paul }, 605813870fd9588de101f68728507cff726d7513695Brian Paul { 606813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT1, 607bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT1", 608813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 609813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 610813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 611813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 612813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 613813870fd9588de101f68728507cff726d7513695Brian Paul }, 614813870fd9588de101f68728507cff726d7513695Brian Paul { 615813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT3, 616bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT3", 617813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 618813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 619813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 620813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 621813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 622813870fd9588de101f68728507cff726d7513695Brian Paul }, 623813870fd9588de101f68728507cff726d7513695Brian Paul { 624813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT5, 625bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT5", 626813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 627813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 628813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 629813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 630813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 631813870fd9588de101f68728507cff726d7513695Brian Paul }, 632813870fd9588de101f68728507cff726d7513695Brian Paul { 633813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT32, 634bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FLOAT32", 635813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 636813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 637813870fd9588de101f68728507cff726d7513695Brian Paul 32, 32, 32, 32, 638813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 639813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 16 640813870fd9588de101f68728507cff726d7513695Brian Paul }, 641813870fd9588de101f68728507cff726d7513695Brian Paul { 642813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT16, 643bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FLOAT16", 644813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 645813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 646813870fd9588de101f68728507cff726d7513695Brian Paul 16, 16, 16, 16, 647813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 648813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 8 649813870fd9588de101f68728507cff726d7513695Brian Paul }, 650813870fd9588de101f68728507cff726d7513695Brian Paul { 651813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT32, 652bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FLOAT32", 653813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 654813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 655813870fd9588de101f68728507cff726d7513695Brian Paul 32, 32, 32, 0, 656813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 657813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 12 658813870fd9588de101f68728507cff726d7513695Brian Paul }, 659813870fd9588de101f68728507cff726d7513695Brian Paul { 660813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT16, 661bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FLOAT16", 662813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 663813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 664813870fd9588de101f68728507cff726d7513695Brian Paul 16, 16, 16, 0, 665813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 666813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 6 667813870fd9588de101f68728507cff726d7513695Brian Paul }, 668813870fd9588de101f68728507cff726d7513695Brian Paul { 669813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT32, 670bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ALPHA_FLOAT32", 671813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, 672813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 673813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 674813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 675813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 676813870fd9588de101f68728507cff726d7513695Brian Paul }, 677813870fd9588de101f68728507cff726d7513695Brian Paul { 678813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT16, 679bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ALPHA_FLOAT16", 680813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, 681813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 682813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 683813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 684813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 685813870fd9588de101f68728507cff726d7513695Brian Paul }, 686813870fd9588de101f68728507cff726d7513695Brian Paul { 687813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT32, 688bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_FLOAT32", 68919648fcf015e512283e93ab9de4a3e969d577e59Marek Olšák GL_LUMINANCE, 690813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 691813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 692813870fd9588de101f68728507cff726d7513695Brian Paul 32, 0, 0, 0, 0, 693813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 694813870fd9588de101f68728507cff726d7513695Brian Paul }, 695813870fd9588de101f68728507cff726d7513695Brian Paul { 696813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT16, 697bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_FLOAT16", 69819648fcf015e512283e93ab9de4a3e969d577e59Marek Olšák GL_LUMINANCE, 699813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 700813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 701813870fd9588de101f68728507cff726d7513695Brian Paul 16, 0, 0, 0, 0, 702813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 703813870fd9588de101f68728507cff726d7513695Brian Paul }, 704813870fd9588de101f68728507cff726d7513695Brian Paul { 705813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32, 706bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32", 707813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 708813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 709813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 710813870fd9588de101f68728507cff726d7513695Brian Paul 32, 0, 0, 0, 0, 711813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 8 712813870fd9588de101f68728507cff726d7513695Brian Paul }, 713813870fd9588de101f68728507cff726d7513695Brian Paul { 714813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16, 715bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16", 716813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 717813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 718813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 719813870fd9588de101f68728507cff726d7513695Brian Paul 16, 0, 0, 0, 0, 720813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 721813870fd9588de101f68728507cff726d7513695Brian Paul }, 722813870fd9588de101f68728507cff726d7513695Brian Paul { 723813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT32, 724bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_INTENSITY_FLOAT32", 725813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, 726813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 727813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 728813870fd9588de101f68728507cff726d7513695Brian Paul 0, 32, 0, 0, 0, 729813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 730813870fd9588de101f68728507cff726d7513695Brian Paul }, 731813870fd9588de101f68728507cff726d7513695Brian Paul { 732813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT16, 733bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_INTENSITY_FLOAT16", 734813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, 735813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 736813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 737813870fd9588de101f68728507cff726d7513695Brian Paul 0, 16, 0, 0, 0, 738813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 739813870fd9588de101f68728507cff726d7513695Brian Paul }, 7400ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7410ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_R_FLOAT32, 7420ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_R_FLOAT32", 7430ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RED, 7440ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7450ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 32, 0, 0, 0, 7460ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7470ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 4 7480ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7490ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7500ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_R_FLOAT16, 7510ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_R_FLOAT16", 7520ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RED, 7530ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7540ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 16, 0, 0, 0, 7550ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7560ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 2 7570ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7580ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7590ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_RG_FLOAT32, 7600ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_RG_FLOAT32", 7610ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RG, 7620ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7630ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 32, 32, 0, 0, 7640ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7650ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 8 7660ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7670ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7680ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_RG_FLOAT16, 7690ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_RG_FLOAT16", 7700ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RG, 7710ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7720ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 16, 16, 0, 0, 7730ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7740ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 4 7750ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 776abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 777abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /* unnormalized signed int formats */ 7787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie /* unnormalized unsigned int formats */ 7797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT8, 7817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT8", 7827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 7837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 7847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 7857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 7867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 7877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 7887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT16, 7907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT16", 7917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 7927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 7937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 7947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 7957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 7967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 7977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT32, 7997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT32", 8007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 8037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT8, 8087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT8", 8097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 8127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT16, 8177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT16", 8187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 8217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT32, 8267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT32", 8277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 8307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8327a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT8, 8357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT8", 8367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 8, 0, 0, 0, 8407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT16, 8447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT16", 8457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 16, 0, 0, 0, 8497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT32, 8537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT32", 8547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 32, 0, 0, 0, 8587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT8, 8627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT8", 8637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 8, 0, 0, 0, 8677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT16, 8717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT16", 8727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 16, 0, 0, 0, 8767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT32, 8807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT32", 8817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 32, 0, 0, 0, 8857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT8, 8897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT8", 8907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 8917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 8947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT16, 8987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT16", 8997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT32, 9077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT32", 9087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT8, 9167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT8", 9177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 9227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT16, 9257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT16", 9267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9327a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT32, 9347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT32", 9357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT8, 9437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT8", 9447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 9477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT16, 9527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT16", 9537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 9567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT32, 9617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT32", 9627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 9657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 9677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT8, 9707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT8", 9717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 9747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT16, 9797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT16", 9807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 9837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT32, 9887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT32", 9897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 9927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 9947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 9967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT8, 9987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT8", 9997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 10027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 10047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT8, 10077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT8", 10087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 0, 0, 10117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 10137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT8, 10167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT8", 10177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 8, 0, 10207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 3 10227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 1023abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 1024abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT8, 1025abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT8", 1026abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1027abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1028abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 8, 8, 8, 8, 1029abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1030abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 4 1031abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1032abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 10337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT16, 10347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT16", 10357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 10387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 10407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT16, 10437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT16", 10447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 0, 0, 10477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 10497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT16, 10527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT16", 10537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 16, 0, 10567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 6 10587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1060abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT16, 1061abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT16", 1062abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1063abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1064abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 16, 16, 16, 16, 1065abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1066abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 8 1067abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1068abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 10697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT32, 10707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT32", 10717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 10747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 10767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT32, 10797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT32", 10807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 0, 0, 10837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 10857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT32, 10887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT32", 10897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 32, 0, 10927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 12 10947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1096abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT32, 1097abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT32", 1098abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1099abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1100abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 32, 32, 32, 32, 1101abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1102abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 16 1103abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 11047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT8, 11067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT8", 11077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 11107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 11127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT8, 11157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT8", 11167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 0, 0, 11197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 11217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT8, 11247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT8", 11257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 8, 0, 11287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 3 11307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 1131abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 1132abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT8, 1133abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT8", 1134abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1135abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1136abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 8, 8, 8, 8, 1137abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1138abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 4 1139abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1140abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 11417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT16, 11427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT16", 11437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 11467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 11487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT16, 11517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT16", 11527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 0, 0, 11557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 11577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT16, 11607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT16", 11617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 16, 0, 11647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 6 11667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1168abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT16, 1169abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT16", 1170abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1171abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1172abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 16, 16, 16, 16, 1173abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1174abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 8 1175abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1176abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 11777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT32, 11787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT32", 11797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 11827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 11847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT32, 11877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT32", 11887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 0, 0, 11917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 11937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT32, 11967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT32", 11977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 32, 0, 12007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 12017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 12 12027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 12037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1204abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT32, 1205abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT32", 1206abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1207abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1208abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 32, 32, 32, 32, 1209abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1210abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 16 1211abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1212abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1213abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1214813870fd9588de101f68728507cff726d7513695Brian Paul { 1215813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_DUDV8, 1216bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_DUDV8", 1217813870fd9588de101f68728507cff726d7513695Brian Paul GL_DUDV_ATI, 1218813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1219813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 1220813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1221813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 1222813870fd9588de101f68728507cff726d7513695Brian Paul }, 122384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 122484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* Signed 8 bits / channel */ 122584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 122684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_R8, /* Name */ 122784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_R8", /* StrName */ 12280073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RED, /* BaseFormat */ 122984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, /* DataType */ 123084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 123184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 123284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 123384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 123484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12350be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_RG88_REV, 12360be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_RG88_REV", 12370073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RG, 123884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 123984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 8, 0, 0, 124084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 124184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 2 124284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 124384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 124484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGBX8888, 124584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_RGBX8888", 12460073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RGB, 124784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 124884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 8, 8, 0, 124984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 125084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 4 /* 4 bpp, but no alpha */ 125184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 1252813870fd9588de101f68728507cff726d7513695Brian Paul { 1253813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SIGNED_RGBA8888, 1254bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA8888", 1255813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 1256813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1257813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 1258813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1259813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 1260813870fd9588de101f68728507cff726d7513695Brian Paul }, 1261813870fd9588de101f68728507cff726d7513695Brian Paul { 1262813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SIGNED_RGBA8888_REV, 1263bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA8888_REV", 1264813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 1265813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1266813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 1267813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1268813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 1269813870fd9588de101f68728507cff726d7513695Brian Paul }, 127084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 127184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* Signed 16 bits / channel */ 127284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12730be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_R16, 12740be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_R16", 12750073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RED, 127684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 127784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 0, 0, 0, 127884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 127984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 2 128084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 128184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12820be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_GR1616, 12830be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_GR1616", 12840073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RG, 128584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 128684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 16, 0, 0, 128784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 128884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 4 128984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 129084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 129184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGB_16, 129284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_RGB_16", 12930073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RGB, 129484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 129584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 16, 16, 0, 129684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 129784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 6 129884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 1299c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul { 1300c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul MESA_FORMAT_SIGNED_RGBA_16, 1301bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA_16", 1302c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul GL_RGBA, 1303c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul GL_SIGNED_NORMALIZED, 1304c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 16, 16, 16, 16, 1305c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 0, 0, 0, 0, 0, 1306c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 1, 1, 8 130717e96718946486ef77927fcf3bb299d8bff32b98Brian Paul }, 130817e96718946486ef77927fcf3bb299d8bff32b98Brian Paul { 130917e96718946486ef77927fcf3bb299d8bff32b98Brian Paul MESA_FORMAT_RGBA_16, 131017e96718946486ef77927fcf3bb299d8bff32b98Brian Paul "MESA_FORMAT_RGBA_16", 131117e96718946486ef77927fcf3bb299d8bff32b98Brian Paul GL_RGBA, 131217e96718946486ef77927fcf3bb299d8bff32b98Brian Paul GL_UNSIGNED_NORMALIZED, 131317e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 16, 16, 16, 16, 131417e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 0, 0, 0, 0, 0, 131517e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 1, 1, 8 13168d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13178d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13188d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RED_RGTC1, 13198d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_RED_RGTC1", 13208d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RED, 13218d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_UNSIGNED_NORMALIZED, 13228d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 0, 0, 0, 13238d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13248d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 8 /* 8 bytes per 4x4 block */ 13258d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13268d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13278d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RED_RGTC1, 13288d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_SIGNED_RED_RGTC1", 13298d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RED, 13308d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_SIGNED_NORMALIZED, 13318d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 0, 0, 0, 13328d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13338d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 8 /* 8 bytes per 4x4 block */ 13348d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13358d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13368d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RG_RGTC2, 13378d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_RG_RGTC2", 13388d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RG, 13398d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_UNSIGNED_NORMALIZED, 13408d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 0, 0, 13418d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13428d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 16 /* 16 bytes per 4x4 block */ 13438d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13448d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13458d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RG_RGTC2, 13468d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_SIGNED_RG_RGTC2", 13478d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RG, 13488d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_SIGNED_NORMALIZED, 13498d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 0, 0, 13508d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13518d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 16 /* 16 bytes per 4x4 block */ 13528d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13537d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13547d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_L_LATC1, 13557d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_L_LATC1", 13567d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE, 13577d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_UNSIGNED_NORMALIZED, 13587d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 0, 13597d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13607d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 8 /* 8 bytes per 4x4 block */ 13617d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13627d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13637d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_L_LATC1, 13647d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_SIGNED_L_LATC1", 13657d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE, 13667d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_SIGNED_NORMALIZED, 13677d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 0, 13687d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13697d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 8 /* 8 bytes per 4x4 block */ 13707d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13717d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13727d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_LA_LATC2, 13737d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_LA_LATC2", 13747d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE_ALPHA, 13757d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_UNSIGNED_NORMALIZED, 13767d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 4, 13777d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13787d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 16 /* 16 bytes per 4x4 block */ 13797d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13807d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13817d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_LA_LATC2, 13827d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_SIGNED_LA_LATC2", 13837d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE_ALPHA, 13847d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_SIGNED_NORMALIZED, 13857d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 4, 13867d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13877d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 16 /* 16 bytes per 4x4 block */ 13887d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13890be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1390d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu { 1391d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu MESA_FORMAT_ETC1_RGB8, 1392d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu "MESA_FORMAT_ETC1_RGB8", 1393d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu GL_RGB, 1394d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu GL_UNSIGNED_NORMALIZED, 1395d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 8, 8, 8, 0, 1396d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 0, 0, 0, 0, 0, 1397d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 4, 4, 8 /* 8 bytes per 4x4 block */ 1398d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu }, 1399d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 14000be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák /* Signed formats from EXT_texture_snorm that are not in GL3.1 */ 14010be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14020be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A8, 14030be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_A8", 14040be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_ALPHA, 14050be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14060be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 8, 14070be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 0, 14080be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14090be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14100be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14110be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L8, 14120be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_L8", 14130be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE, 14140be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14150be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14160be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 8, 0, 0, 0, 0, 14170be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14180be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14190be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14200be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL88, 14210be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_AL88", 14220be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE_ALPHA, 14230be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14240be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 8, 14250be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 8, 0, 0, 0, 0, 14260be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14270be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14280be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14290be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I8, 14300be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_I8", 14310be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_INTENSITY, 14320be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14330be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14340be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 8, 0, 0, 0, 14350be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14360be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14370be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14380be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A16, 14390be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_A16", 14400be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_ALPHA, 14410be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14420be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 16, 14430be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 0, 14440be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14450be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14460be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14470be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L16, 14480be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_L16", 14490be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE, 14500be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14510be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14520be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 16, 0, 0, 0, 0, 14530be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14540be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14550be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14560be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL1616, 14570be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_AL1616", 14580be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE_ALPHA, 14590be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14600be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 16, 14610be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 16, 0, 0, 0, 0, 14620be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 4 14630be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14640be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14650be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I16, 14660be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_I16", 14670be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_INTENSITY, 14680be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14690be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14700be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 16, 0, 0, 0, 14710be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14729d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák }, 14739d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák { 14749d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák MESA_FORMAT_RGB9_E5_FLOAT, 14759d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák "MESA_FORMAT_RGB9_E5", 14769d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák GL_RGB, 14779d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák GL_FLOAT, 14789d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 9, 9, 9, 0, 14799d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 0, 0, 0, 0, 0, 14809d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 1, 1, 4 14819d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák }, 1482631d23daa91c569bf268a2191bd466df73a64263Marek Olšák { 1483631d23daa91c569bf268a2191bd466df73a64263Marek Olšák MESA_FORMAT_R11_G11_B10_FLOAT, 1484631d23daa91c569bf268a2191bd466df73a64263Marek Olšák "MESA_FORMAT_R11_G11_B10_FLOAT", 1485631d23daa91c569bf268a2191bd466df73a64263Marek Olšák GL_RGB, 1486631d23daa91c569bf268a2191bd466df73a64263Marek Olšák GL_FLOAT, 1487631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 11, 11, 10, 0, 1488631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 0, 0, 0, 0, 0, 1489631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 1, 1, 4 1490631d23daa91c569bf268a2191bd466df73a64263Marek Olšák }, 14911165280cbd37dee1e499358633478ab869de21dfMarek Olšák /* ARB_depth_buffer_float */ 14921165280cbd37dee1e499358633478ab869de21dfMarek Olšák { 14931165280cbd37dee1e499358633478ab869de21dfMarek Olšák MESA_FORMAT_Z32_FLOAT, /* Name */ 14941165280cbd37dee1e499358633478ab869de21dfMarek Olšák "MESA_FORMAT_Z32_FLOAT", /* StrName */ 14951165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_DEPTH_COMPONENT, /* BaseFormat */ 14961165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_FLOAT, /* DataType */ 14971165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 14981165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 32, 0, /* Lum/Int/Index/Depth/StencilBits */ 14991165280cbd37dee1e499358633478ab869de21dfMarek Olšák 1, 1, 4 /* BlockWidth/Height,Bytes */ 15001165280cbd37dee1e499358633478ab869de21dfMarek Olšák }, 15011165280cbd37dee1e499358633478ab869de21dfMarek Olšák { 15021165280cbd37dee1e499358633478ab869de21dfMarek Olšák MESA_FORMAT_Z32_FLOAT_X24S8, /* Name */ 15031165280cbd37dee1e499358633478ab869de21dfMarek Olšák "MESA_FORMAT_Z32_FLOAT_X24S8", /* StrName */ 15041165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_DEPTH_STENCIL, /* BaseFormat */ 1505ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt /* DataType here is used to answer GL_TEXTURE_DEPTH_TYPE queries, and is 1506ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt * never used for stencil because stencil is always GL_UNSIGNED_INT. 1507ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt */ 1508ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt GL_FLOAT, /* DataType */ 15091165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 15101165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 32, 8, /* Lum/Int/Index/Depth/StencilBits */ 15111165280cbd37dee1e499358633478ab869de21dfMarek Olšák 1, 1, 8 /* BlockWidth/Height,Bytes */ 15121165280cbd37dee1e499358633478ab869de21dfMarek Olšák }, 1513f449be660e70aac2aefd2ce84581e137de25520bDave Airlie { 1514f449be660e70aac2aefd2ce84581e137de25520bDave Airlie MESA_FORMAT_ARGB2101010_UINT, 1515f449be660e70aac2aefd2ce84581e137de25520bDave Airlie "MESA_FORMAT_ARGB2101010_UINT", 1516f449be660e70aac2aefd2ce84581e137de25520bDave Airlie GL_RGBA, 1517f449be660e70aac2aefd2ce84581e137de25520bDave Airlie GL_UNSIGNED_INT, 1518f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 10, 10, 10, 2, 1519f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 0, 0, 0, 0, 0, 1520f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 1, 1, 4 1521f449be660e70aac2aefd2ce84581e137de25520bDave Airlie }, 1522813870fd9588de101f68728507cff726d7513695Brian Paul}; 1523813870fd9588de101f68728507cff726d7513695Brian Paul 1524813870fd9588de101f68728507cff726d7513695Brian Paul 1525813870fd9588de101f68728507cff726d7513695Brian Paul 1526813870fd9588de101f68728507cff726d7513695Brian Paulstatic const struct gl_format_info * 1527813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_info(gl_format format) 1528813870fd9588de101f68728507cff726d7513695Brian Paul{ 1529813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = &format_info[format]; 1530813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->Name == format); 1531813870fd9588de101f68728507cff726d7513695Brian Paul return info; 1532813870fd9588de101f68728507cff726d7513695Brian Paul} 1533813870fd9588de101f68728507cff726d7513695Brian Paul 1534813870fd9588de101f68728507cff726d7513695Brian Paul 1535bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul/** Return string name of format (for debugging) */ 1536bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paulconst char * 1537bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul_mesa_get_format_name(gl_format format) 1538bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul{ 1539bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1540bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul return info->StrName; 1541bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul} 1542bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1543bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1544bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1545eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1546eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return bytes needed to store a block of pixels in the given format. 1547eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Normally, a block is 1x1 (a single pixel). But for compressed formats 1548eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * a block may be 4x4 or 8x4, etc. 1549e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam Jackson * 1550e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam Jackson * Note: not GLuint, so as not to coerce math to unsigned. cf. fdo #37351 1551eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 1552e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam JacksonGLint 1553813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_bytes(gl_format format) 1554813870fd9588de101f68728507cff726d7513695Brian Paul{ 1555813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1556813870fd9588de101f68728507cff726d7513695Brian Paul ASSERT(info->BytesPerBlock); 1557db247dd7b37e22bf9545d8cb8360e06d68e50912Brian Paul ASSERT(info->BytesPerBlock <= MAX_PIXEL_BYTES || 1558db247dd7b37e22bf9545d8cb8360e06d68e50912Brian Paul _mesa_is_format_compressed(format)); 1559813870fd9588de101f68728507cff726d7513695Brian Paul return info->BytesPerBlock; 1560813870fd9588de101f68728507cff726d7513695Brian Paul} 1561813870fd9588de101f68728507cff726d7513695Brian Paul 1562813870fd9588de101f68728507cff726d7513695Brian Paul 1563eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1564eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return bits per component for the given format. 1565eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * \param format one of MESA_FORMAT_x 1566eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * \param pname the component, such as GL_RED_BITS, GL_TEXTURE_BLUE_BITS, etc. 1567eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 15685978cbdf7728df7952c9c04165ece23394a5fb95Brian PaulGLint 15695978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_bits(gl_format format, GLenum pname) 15705978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul{ 15715978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 15725978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 15735978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul switch (pname) { 1574edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RED_BITS: 15755978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_RED_SIZE: 1576edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_RED_SIZE_EXT: 1577edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: 15785978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->RedBits; 1579edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_GREEN_BITS: 15805978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_GREEN_SIZE: 1581edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_GREEN_SIZE_EXT: 1582edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 15835978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->GreenBits; 1584edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_BLUE_BITS: 15855978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_BLUE_SIZE: 1586edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_BLUE_SIZE_EXT: 1587edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 15885978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->BlueBits; 1589edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_ALPHA_BITS: 15905978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_ALPHA_SIZE: 1591edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_ALPHA_SIZE_EXT: 1592edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 15935978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->AlphaBits; 15945978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_INTENSITY_SIZE: 15955978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->IntensityBits; 15965978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_LUMINANCE_SIZE: 15975978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->LuminanceBits; 1598edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_INDEX_BITS: 15995978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->IndexBits; 1600edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_DEPTH_BITS: 16015978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_DEPTH_SIZE_ARB: 1602edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_DEPTH_SIZE_EXT: 1603edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 16045978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->DepthBits; 1605edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_STENCIL_BITS: 16065978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_STENCIL_SIZE_EXT: 1607edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_STENCIL_SIZE_EXT: 1608edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 16095978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->StencilBits; 16105978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul default: 16115978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul _mesa_problem(NULL, "bad pname in _mesa_get_format_bits()"); 16125978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return 0; 16135978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul } 16145978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul} 16155978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 16165978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 1617488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian PaulGLuint 1618488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul_mesa_get_format_max_bits(gl_format format) 1619488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul{ 1620488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1621488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul GLuint max = MAX2(info->RedBits, info->GreenBits); 1622488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->BlueBits); 1623488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->AlphaBits); 1624488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->LuminanceBits); 1625488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->IntensityBits); 1626488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->DepthBits); 1627488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->StencilBits); 1628488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul return max; 1629488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul} 1630488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul 1631488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul 1632eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1633eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return the data type (or more specifically, the data representation) 1634eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * for the given format. 1635eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * The return value will be one of: 1636eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_UNSIGNED_NORMALIZED = unsigned int representing [0,1] 1637eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_SIGNED_NORMALIZED = signed int representing [-1, 1] 1638eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_UNSIGNED_INT = an ordinary unsigned integer 1639f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul * GL_INT = an ordinary signed integer 1640eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_FLOAT = an ordinary float 1641eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 16425978cbdf7728df7952c9c04165ece23394a5fb95Brian PaulGLenum 16435978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_datatype(gl_format format) 16445978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul{ 16455978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 16465978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->DataType; 16475978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul} 16485978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 16495978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 1650eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 165155d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * Return the basic format for the given type. The result will be one of 165255d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_RGB, GL_RGBA, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, 165355d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_YCBCR_MESA, GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL. 1654eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 1655813870fd9588de101f68728507cff726d7513695Brian PaulGLenum 1656813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_base_format(gl_format format) 1657813870fd9588de101f68728507cff726d7513695Brian Paul{ 1658813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1659813870fd9588de101f68728507cff726d7513695Brian Paul return info->BaseFormat; 1660813870fd9588de101f68728507cff726d7513695Brian Paul} 1661813870fd9588de101f68728507cff726d7513695Brian Paul 1662813870fd9588de101f68728507cff726d7513695Brian Paul 16637b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul/** 16647b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * Return the block size (in pixels) for the given format. Normally 16657b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * the block size is 1x1. But compressed formats will have block sizes 16667b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * of 4x4 or 8x4 pixels, etc. 16677b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * \param bw returns block width in pixels 16687b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * \param bh returns block height in pixels 16697b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul */ 16707b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paulvoid 16717b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul_mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh) 16727b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul{ 16737b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 16747b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul *bw = info->BlockWidth; 16757b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul *bh = info->BlockHeight; 16767b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul} 16777b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul 16787b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul 1679eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** Is the given format a compressed format? */ 1680813870fd9588de101f68728507cff726d7513695Brian PaulGLboolean 1681813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_is_format_compressed(gl_format format) 1682813870fd9588de101f68728507cff726d7513695Brian Paul{ 1683813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1684813870fd9588de101f68728507cff726d7513695Brian Paul return info->BlockWidth > 1 || info->BlockHeight > 1; 1685813870fd9588de101f68728507cff726d7513695Brian Paul} 1686813870fd9588de101f68728507cff726d7513695Brian Paul 1687813870fd9588de101f68728507cff726d7513695Brian Paul 1688813870fd9588de101f68728507cff726d7513695Brian Paul/** 1689e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler * Determine if the given format represents a packed depth/stencil buffer. 1690e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler */ 1691e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick BowlerGLboolean 1692e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler_mesa_is_format_packed_depth_stencil(gl_format format) 1693e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler{ 1694f57df7f2130dfe20a6f7e75cfc1f5d4e1717d098Nick Bowler const struct gl_format_info *info = _mesa_get_format_info(format); 1695e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1696f57df7f2130dfe20a6f7e75cfc1f5d4e1717d098Nick Bowler return info->BaseFormat == GL_DEPTH_STENCIL; 1697e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler} 1698e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1699e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1700e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler/** 1701ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul * Is the given format a signed/unsigned integer color format? 1702f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul */ 1703f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian PaulGLboolean 1704412b9608838b872bc294569b3ee913343a7e66f6Brian Paul_mesa_is_format_integer_color(gl_format format) 1705f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul{ 1706f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1707ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul return (info->DataType == GL_INT || info->DataType == GL_UNSIGNED_INT) && 1708ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_DEPTH_COMPONENT && 1709ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_DEPTH_STENCIL && 1710ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_STENCIL_INDEX; 1711f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul} 1712f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul 1713f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul 1714f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul/** 1715f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul * Return color encoding for given format. 1716f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul * \return GL_LINEAR or GL_SRGB 1717f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul */ 1718f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian PaulGLenum 1719f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul_mesa_get_format_color_encoding(gl_format format) 1720f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul{ 1721f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul /* XXX this info should be encoded in gl_format_info */ 1722f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul switch (format) { 1723f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGB8: 1724f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA8: 1725f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SARGB8: 1726f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SL8: 1727f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SLA8: 1728f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGB_DXT1: 1729f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT1: 1730f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT3: 1731f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT5: 1732f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul return GL_SRGB; 1733f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul default: 1734f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul return GL_LINEAR; 1735f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul } 1736f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul} 1737f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul 1738aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul 1739aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul/** 1740aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul * For an sRGB format, return the corresponding linear color space format. 1741aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul * For non-sRGB formats, return the format as-is. 1742aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul */ 1743edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airliegl_format 1744edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie_mesa_get_srgb_format_linear(gl_format format) 1745edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie{ 1746edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie switch (format) { 1747edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGB8: 1748edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGB888; 1749edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1750edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA8: 1751edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA8888; 1752edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1753edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SARGB8: 1754edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_ARGB8888; 1755edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1756edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SL8: 1757edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_L8; 1758edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1759edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SLA8: 1760edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_AL88; 1761edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1762edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGB_DXT1: 1763edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGB_DXT1; 1764edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1765edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT1: 1766edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT1; 1767edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1768edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT3: 1769edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT3; 1770edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1771edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT5: 1772edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT5; 1773edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1774edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie default: 1775edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1776edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie } 1777edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie return format; 1778edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie} 1779edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie 1780f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul 1781f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul/** 17829a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul * If the given format is a compressed format, return a corresponding 17839a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul * uncompressed format. 17849a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul */ 17859a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paulgl_format 17869a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul_mesa_get_uncompressed_format(gl_format format) 17879a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul{ 17889a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul switch (format) { 17899a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGB_FXT1: 17909a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGB888; 17919a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_FXT1: 17929a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 17939a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGB_DXT1: 17949a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGB_DXT1: 17959a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGB888; 17969a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT1: 17979a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT1: 17989a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 17999a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT3: 18009a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT3: 18019a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18029a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT5: 18039a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT5: 18049a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18059a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RED_RGTC1: 18069a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_R8; 18079a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_RED_RGTC1: 18089a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_R8; 18099a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RG_RGTC2: 18100a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul return MESA_FORMAT_GR88; 18119a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_RG_RGTC2: 18129a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_RG88_REV; 18139a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_L_LATC1: 18149a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_L8; 18159a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_L_LATC1: 18169a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_L8; 18179a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_LA_LATC2: 18189a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_AL88; 18199a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_LA_LATC2: 18209a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_AL88; 1821d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 1822d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu return MESA_FORMAT_RGB888; 18239a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul default: 18249a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul#ifdef DEBUG 18259a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul assert(!_mesa_is_format_compressed(format)); 18269a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul#endif 18279a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return format; 18289a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul } 18299a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul} 18309a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18319a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18329a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian PaulGLuint 18339a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul_mesa_format_num_components(gl_format format) 18349a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul{ 18359a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 18369a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return ((info->RedBits > 0) + 18379a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->GreenBits > 0) + 18389a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->BlueBits > 0) + 18399a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->AlphaBits > 0) + 18409a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->LuminanceBits > 0) + 18419a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->IntensityBits > 0) + 18429a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->DepthBits > 0) + 18439a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->StencilBits > 0)); 18449a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul} 18459a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18469a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18479a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul/** 18481c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul * Return number of bytes needed to store an image of the given size 18491c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul * in the given format. 18501c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul */ 18511c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian PaulGLuint 18521c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul_mesa_format_image_size(gl_format format, GLsizei width, 18531c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul GLsizei height, GLsizei depth) 18541c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul{ 18551c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1856040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* Strictly speaking, a conditional isn't needed here */ 18571c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 18587bfbd88d2cc4c7e7c1c2fe02b0d223f4a3ea8db2Brian Paul /* compressed format (2D only for now) */ 18591c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint bw = info->BlockWidth, bh = info->BlockHeight; 18601c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint wblocks = (width + bw - 1) / bw; 18611c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint hblocks = (height + bh - 1) / bh; 1862040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint sz = wblocks * hblocks * info->BytesPerBlock; 18637bfbd88d2cc4c7e7c1c2fe02b0d223f4a3ea8db2Brian Paul assert(depth == 1); 18641c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul return sz; 18651c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul } 18661c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul else { 18671c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul /* non-compressed */ 18681c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint sz = width * height * depth * info->BytesPerBlock; 18691c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul return sz; 18701c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul } 18711c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul} 18721c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 18731c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 187474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul/** 187574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul * Same as _mesa_format_image_size() but returns a 64-bit value to 187674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul * accomodate very large textures. 187774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul */ 187874c324fdbaebb7accaee668f2bc54af4699d0025Brian Pauluint64_t 187974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul_mesa_format_image_size64(gl_format format, GLsizei width, 188074c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul GLsizei height, GLsizei depth) 188174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul{ 188274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 188374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* Strictly speaking, a conditional isn't needed here */ 188474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 188574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* compressed format (2D only for now) */ 188674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t bw = info->BlockWidth, bh = info->BlockHeight; 188774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t wblocks = (width + bw - 1) / bw; 188874c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t hblocks = (height + bh - 1) / bh; 188974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t sz = wblocks * hblocks * info->BytesPerBlock; 189074c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul assert(depth == 1); 189174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul return sz; 189274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul } 189374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul else { 189474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* non-compressed */ 189574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t sz = ((uint64_t) width * 189674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul (uint64_t) height * 189774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul (uint64_t) depth * 189874c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul info->BytesPerBlock); 189974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul return sz; 190074c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul } 190174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul} 190274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul 190374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul 19041c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 1905040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian PaulGLint 1906040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul_mesa_format_row_stride(gl_format format, GLsizei width) 1907040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul{ 1908040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1909040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* Strictly speaking, a conditional isn't needed here */ 1910040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 1911040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* compressed format */ 1912040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint bw = info->BlockWidth; 1913040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint wblocks = (width + bw - 1) / bw; 1914040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLint stride = wblocks * info->BytesPerBlock; 1915040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul return stride; 1916040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul } 1917040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul else { 1918040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLint stride = width * info->BytesPerBlock; 1919040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul return stride; 1920040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul } 1921040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul} 1922040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 1923040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 1924d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul/** 1925d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * Debug/test: check that all formats are handled in the 1926d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * _mesa_format_to_type_and_comps() function. When new pixel formats 1927d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * are added to Mesa, that function needs to be updated. 1928d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * This is a no-op after the first call. 1929d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul */ 1930d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paulstatic void 1931d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paulcheck_format_to_type_and_comps(void) 1932d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul{ 1933d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul gl_format f; 1934d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 1935d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul for (f = MESA_FORMAT_NONE + 1; f < MESA_FORMAT_COUNT; f++) { 1936d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul GLenum datatype = 0; 1937d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul GLuint comps = 0; 1938d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul /* This function will emit a problem/warning if the format is 1939d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * not handled. 1940d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul */ 1941d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul _mesa_format_to_type_and_comps(f, &datatype, &comps); 1942d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul } 1943d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul} 1944d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 19451c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 19461c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul/** 1947813870fd9588de101f68728507cff726d7513695Brian Paul * Do sanity checking of the format info table. 1948813870fd9588de101f68728507cff726d7513695Brian Paul */ 1949813870fd9588de101f68728507cff726d7513695Brian Paulvoid 1950813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_test_formats(void) 1951813870fd9588de101f68728507cff726d7513695Brian Paul{ 1952813870fd9588de101f68728507cff726d7513695Brian Paul GLuint i; 1953813870fd9588de101f68728507cff726d7513695Brian Paul 19546bf5daf331f13ec9503615a2578247e72b7d2cbbBrian Paul STATIC_ASSERT(Elements(format_info) == MESA_FORMAT_COUNT); 1955813870fd9588de101f68728507cff726d7513695Brian Paul 1956813870fd9588de101f68728507cff726d7513695Brian Paul for (i = 0; i < MESA_FORMAT_COUNT; i++) { 1957813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(i); 1958813870fd9588de101f68728507cff726d7513695Brian Paul assert(info); 1959813870fd9588de101f68728507cff726d7513695Brian Paul 1960813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->Name == i); 1961813870fd9588de101f68728507cff726d7513695Brian Paul 1962e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul if (info->Name == MESA_FORMAT_NONE) 1963e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul continue; 1964e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 1965813870fd9588de101f68728507cff726d7513695Brian Paul if (info->BlockWidth == 1 && info->BlockHeight == 1) { 1966813870fd9588de101f68728507cff726d7513695Brian Paul if (info->RedBits > 0) { 1967813870fd9588de101f68728507cff726d7513695Brian Paul GLuint t = info->RedBits + info->GreenBits 1968813870fd9588de101f68728507cff726d7513695Brian Paul + info->BlueBits + info->AlphaBits; 19690073f50cd47c48c706b4524364b9c0594804febfBrian Paul assert(t / 8 <= info->BytesPerBlock); 19706e0584932b3e556a0aecd2ca36f5ae41dc40a919Vinson Lee (void) t; 1971813870fd9588de101f68728507cff726d7513695Brian Paul } 1972813870fd9588de101f68728507cff726d7513695Brian Paul } 1973813870fd9588de101f68728507cff726d7513695Brian Paul 1974813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->DataType == GL_UNSIGNED_NORMALIZED || 1975813870fd9588de101f68728507cff726d7513695Brian Paul info->DataType == GL_SIGNED_NORMALIZED || 1976813870fd9588de101f68728507cff726d7513695Brian Paul info->DataType == GL_UNSIGNED_INT || 19770073f50cd47c48c706b4524364b9c0594804febfBrian Paul info->DataType == GL_INT || 1978e134eaa2c5619b47e944e33d053ee23c61da7aa9Marek Olšák info->DataType == GL_FLOAT || 1979ceb04b32baf13bbd62cf80496e5751612287ef15Marek Olšák /* Z32_FLOAT_X24S8 has DataType of GL_NONE */ 1980e134eaa2c5619b47e944e33d053ee23c61da7aa9Marek Olšák info->DataType == GL_NONE); 1981813870fd9588de101f68728507cff726d7513695Brian Paul 1982813870fd9588de101f68728507cff726d7513695Brian Paul if (info->BaseFormat == GL_RGB) { 1983813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits > 0); 1984813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits > 0); 1985813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits > 0); 1986813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 1987813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 1988813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 1989813870fd9588de101f68728507cff726d7513695Brian Paul } 1990813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_RGBA) { 1991813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits > 0); 1992813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits > 0); 1993813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits > 0); 1994813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits > 0); 1995813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 1996813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 1997813870fd9588de101f68728507cff726d7513695Brian Paul } 19985d1387b2da3626326410804026f8b92f1a121fdcIan Romanick else if (info->BaseFormat == GL_RG) { 19995d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->RedBits > 0); 20005d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->GreenBits > 0); 20015d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->BlueBits == 0); 20025d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->AlphaBits == 0); 20035d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->LuminanceBits == 0); 20045d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->IntensityBits == 0); 20055d1387b2da3626326410804026f8b92f1a121fdcIan Romanick } 20065d1387b2da3626326410804026f8b92f1a121fdcIan Romanick else if (info->BaseFormat == GL_RED) { 20075d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->RedBits > 0); 20085d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->GreenBits == 0); 20095d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->BlueBits == 0); 20105d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->AlphaBits == 0); 20115d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->LuminanceBits == 0); 20125d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->IntensityBits == 0); 20135d1387b2da3626326410804026f8b92f1a121fdcIan Romanick } 2014813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_LUMINANCE) { 2015813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits == 0); 2016813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits == 0); 2017813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits == 0); 2018813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 2019813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits > 0); 2020813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 2021813870fd9588de101f68728507cff726d7513695Brian Paul } 2022813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_INTENSITY) { 2023813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits == 0); 2024813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits == 0); 2025813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits == 0); 2026813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 2027813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 2028813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits > 0); 2029813870fd9588de101f68728507cff726d7513695Brian Paul } 2030813870fd9588de101f68728507cff726d7513695Brian Paul } 2031d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 2032d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul check_format_to_type_and_comps(); 2033813870fd9588de101f68728507cff726d7513695Brian Paul} 2034813870fd9588de101f68728507cff726d7513695Brian Paul 2035813870fd9588de101f68728507cff726d7513695Brian Paul 2036019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2037813870fd9588de101f68728507cff726d7513695Brian Paul/** 2038019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul * Return datatype and number of components per texel for the given gl_format. 2039019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul * Only used for mipmap generation code. 2040813870fd9588de101f68728507cff726d7513695Brian Paul */ 2041813870fd9588de101f68728507cff726d7513695Brian Paulvoid 2042019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul_mesa_format_to_type_and_comps(gl_format format, 2043019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul GLenum *datatype, GLuint *comps) 2044813870fd9588de101f68728507cff726d7513695Brian Paul{ 2045019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul switch (format) { 2046019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA8888: 2047019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA8888_REV: 2048019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB8888: 2049019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB8888_REV: 2050d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888: 2051d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888_REV: 205274d61d03b54d72217d463c248468cdcd09320efcBrian Paul case MESA_FORMAT_XRGB8888: 205379c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_XRGB8888_REV: 2054019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2055019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2056019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2057019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB888: 2058019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_BGR888: 2059019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2060019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2061019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2062019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB565: 2063019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB565_REV: 2064019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_5_6_5; 2065019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2066019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2067019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2068019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB4444: 2069019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB4444_REV: 2070019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_4_4_4_4; 2071019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2072019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2073019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2074019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB1555: 2075019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB1555_REV: 2076019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_1_5_5_5_REV; 2077019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2078019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2079019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2080621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák case MESA_FORMAT_ARGB2101010: 2081621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák *datatype = GL_UNSIGNED_INT_2_10_10_10_REV; 2082621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák *comps = 4; 2083621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák return; 2084621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 208579c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_RGBA5551: 208679c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_UNSIGNED_SHORT_5_5_5_1; 208779c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 4; 208879c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 208979c65410c132c22b67b7635cee740dea9a736f80Brian Paul 20904d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák case MESA_FORMAT_AL44: 20914d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák *datatype = MESA_UNSIGNED_BYTE_4_4; 20924d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák *comps = 2; 20934d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák return; 20944d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák 2095019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_AL88: 2096019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_AL88_REV: 20970a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul case MESA_FORMAT_GR88: 2098b4aecc4e1861e60e40e14868719219084967e46dBrian Paul case MESA_FORMAT_RG88: 2099019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2100019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2101019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2102eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 2103eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick case MESA_FORMAT_AL1616: 2104eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick case MESA_FORMAT_AL1616_REV: 21055d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_RG1616: 21065d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_RG1616_REV: 2107eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick *datatype = GL_UNSIGNED_SHORT; 2108eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick *comps = 2; 2109eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick return; 2110eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 21115d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_R16: 2112eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák case MESA_FORMAT_A16: 2113bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák case MESA_FORMAT_L16: 2114fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák case MESA_FORMAT_I16: 21155d1387b2da3626326410804026f8b92f1a121fdcIan Romanick *datatype = GL_UNSIGNED_SHORT; 21165d1387b2da3626326410804026f8b92f1a121fdcIan Romanick *comps = 1; 21175d1387b2da3626326410804026f8b92f1a121fdcIan Romanick return; 21185d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 2119019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB332: 2120019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE_3_3_2; 2121019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2122019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2123019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2124019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_A8: 2125019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_L8: 2126019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_I8: 21275d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_R8: 212879c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_S8: 2129813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_BYTE; 2130813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 1; 2131019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2132019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2133019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_YCBCR: 2134019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_YCBCR_REV: 2135019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT; 2136813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 2; 2137019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2138019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2139019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z24_S8: 214023c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *datatype = GL_UNSIGNED_INT_24_8_MESA; 214123c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *comps = 2; 2142019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2143019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2144019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_S8_Z24: 214523c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *datatype = GL_UNSIGNED_INT_8_24_REV_MESA; 214623c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *comps = 2; 2147019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2148019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2149019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z16: 2150813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_SHORT; 2151019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2152019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2153019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2154e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul case MESA_FORMAT_X8_Z24: 2155e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul *datatype = GL_UNSIGNED_INT; 2156e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul *comps = 1; 2157e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul return; 2158e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 2159c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca case MESA_FORMAT_Z24_X8: 2160c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca *datatype = GL_UNSIGNED_INT; 2161c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca *comps = 1; 2162c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca return; 2163c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 2164019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z32: 2165019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_INT; 2166019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2167019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2168019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 21691165280cbd37dee1e499358633478ab869de21dfMarek Olšák case MESA_FORMAT_Z32_FLOAT: 21701165280cbd37dee1e499358633478ab869de21dfMarek Olšák *datatype = GL_FLOAT; 21711165280cbd37dee1e499358633478ab869de21dfMarek Olšák *comps = 1; 21721165280cbd37dee1e499358633478ab869de21dfMarek Olšák return; 21731165280cbd37dee1e499358633478ab869de21dfMarek Olšák 21741165280cbd37dee1e499358633478ab869de21dfMarek Olšák case MESA_FORMAT_Z32_FLOAT_X24S8: 21751165280cbd37dee1e499358633478ab869de21dfMarek Olšák *datatype = GL_FLOAT_32_UNSIGNED_INT_24_8_REV; 21761165280cbd37dee1e499358633478ab869de21dfMarek Olšák *comps = 1; 21771165280cbd37dee1e499358633478ab869de21dfMarek Olšák return; 21781165280cbd37dee1e499358633478ab869de21dfMarek Olšák 2179019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_DUDV8: 2180019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_BYTE; 2181813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 2; 2182019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2183019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 218479c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_SIGNED_R8: 21850be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_A8: 21860be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_L8: 21870be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_I8: 218879c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_BYTE; 218979c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 1; 219079c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 21910be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_RG88_REV: 21920be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_AL88: 219379c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_BYTE; 219479c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 2; 219579c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 2196019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SIGNED_RGBA8888: 2197019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SIGNED_RGBA8888_REV: 219879c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_SIGNED_RGBX8888: 2199813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_BYTE; 2200019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2201019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2202880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul 220379c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_RGBA_16: 220479c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_UNSIGNED_SHORT; 220579c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 4; 220679c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 220779c65410c132c22b67b7635cee740dea9a736f80Brian Paul 22080be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_R16: 22090be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_A16: 22100be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_L16: 22110be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_I16: 2212880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2213880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 1; 2214880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 22150be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_GR1616: 22160be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_AL1616: 2217880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2218880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 2; 2219880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 2220880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul case MESA_FORMAT_SIGNED_RGB_16: 2221880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2222880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 3; 2223880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 2224c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul case MESA_FORMAT_SIGNED_RGBA_16: 2225c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul *datatype = GL_SHORT; 2226c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul *comps = 4; 2227c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul return; 2228019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2229019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_EXT_texture_sRGB 2230019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGB8: 2231019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2232019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2233019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2234019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA8: 2235019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SARGB8: 2236019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2237019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2238019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2239019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SL8: 2240019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2241813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 1; 2242019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2243019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SLA8: 2244019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2245019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2246019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2247019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 2248019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2249019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_texture_fxt1 2250019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FXT1: 2251019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FXT1: 2252019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 2253019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_texture_s3tc 2254019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_DXT1: 2255019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT1: 2256019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT3: 2257019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT5: 2258019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_EXT_texture_sRGB 2259019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGB_DXT1: 2260019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT1: 2261019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT3: 2262019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT5: 2263019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 226469c78bf2c21c239d6064847dd0628f3526d68f9bIan Romanick#endif 22658d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_RED_RGTC1: 22668d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_SIGNED_RED_RGTC1: 22678d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_RG_RGTC2: 22688d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_SIGNED_RG_RGTC2: 22697d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_L_LATC1: 22707d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_SIGNED_L_LATC1: 22717d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_LA_LATC2: 22727d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_SIGNED_LA_LATC2: 2273d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 2274019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul /* XXX generate error instead? */ 2275813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_BYTE; 2276019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 0; 2277019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2278019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2279019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FLOAT32: 2280019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2281019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2282019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2283019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FLOAT16: 2284019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2285019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2286019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2287019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FLOAT32: 2288019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2289019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2290019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2291019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FLOAT16: 2292019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2293019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2294019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2295019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32: 22960ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_RG_FLOAT32: 2297019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2298019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2299019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2300019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16: 23010ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_RG_FLOAT16: 2302019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2303019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2304019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2305019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ALPHA_FLOAT32: 2306019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_FLOAT32: 2307019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_INTENSITY_FLOAT32: 23080ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_R_FLOAT32: 2309019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2310019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2311019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2312019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ALPHA_FLOAT16: 2313019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_FLOAT16: 2314019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_INTENSITY_FLOAT16: 23150ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_R_FLOAT16: 2316019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2317019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2318019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2319019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 23207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT8: 23217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT8: 23227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT8: 23237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 23247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT8: 23277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 23287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT16: 23327a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT16: 23337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT16: 23347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 23357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT16: 23387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 23397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT32: 23427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT32: 23437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT32: 23447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 23457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT32: 23487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 23497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT8: 23527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT8: 23537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT8: 23547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT8: 23587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT16: 23637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT16: 23647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT16: 23657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 23667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT16: 23697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 23707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT32: 23747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT32: 23757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT32: 23767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 23777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT32: 23807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 23817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT8: 23857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT8: 23897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT8: 23937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 23957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2396abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT8: 2397abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_BYTE; 2398abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2399abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT16: 24017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT16: 24057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT16: 24097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2412abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT16: 2413abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_SHORT; 2414abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2415abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT32: 24177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT32: 24217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT32: 24257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2428abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT32: 2429abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_INT; 2430abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2431abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 2432abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 2433abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /** 2434abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * \name Non-normalized unsigned integer formats. 2435abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul */ 24367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT8: 24377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT8: 24417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT8: 24457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2448abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT8: 2449abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_BYTE; 2450abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2451abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT16: 24537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT16: 24577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT16: 24617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2464abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT16: 2465abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_SHORT; 2466abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2467abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT32: 24697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT32: 24737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT32: 24777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2480abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT32: 2481abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_INT; 2482abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2483abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 2484abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 24859d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák case MESA_FORMAT_RGB9_E5_FLOAT: 24869d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák *datatype = GL_UNSIGNED_INT_5_9_9_9_REV; 24879d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák *comps = 3; 24889d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák return; 24899d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 2490631d23daa91c569bf268a2191bd466df73a64263Marek Olšák case MESA_FORMAT_R11_G11_B10_FLOAT: 2491631d23daa91c569bf268a2191bd466df73a64263Marek Olšák *datatype = GL_UNSIGNED_INT_10F_11F_11F_REV; 2492631d23daa91c569bf268a2191bd466df73a64263Marek Olšák *comps = 3; 2493631d23daa91c569bf268a2191bd466df73a64263Marek Olšák return; 2494631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 2495f449be660e70aac2aefd2ce84581e137de25520bDave Airlie case MESA_FORMAT_ARGB2101010_UINT: 2496f449be660e70aac2aefd2ce84581e137de25520bDave Airlie *datatype = GL_UNSIGNED_INT_2_10_10_10_REV; 2497f449be660e70aac2aefd2ce84581e137de25520bDave Airlie *comps = 4; 2498f449be660e70aac2aefd2ce84581e137de25520bDave Airlie return; 2499f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 250079c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_COUNT: 2501a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee assert(0); 2502a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee return; 2503a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee 2504a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee case MESA_FORMAT_NONE: 250579c65410c132c22b67b7635cee740dea9a736f80Brian Paul /* For debug builds, warn if any formats are not handled */ 2506280750c5cabfc5f312c3abe0424f57b2edeb53dfVinson Lee#ifdef DEBUG 2507019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul default: 250879c65410c132c22b67b7635cee740dea9a736f80Brian Paul#endif 2509c9126d66fa8e535a53d45adda44c3275fa2e229fBrian Paul _mesa_problem(NULL, "bad format %s in _mesa_format_to_type_and_comps", 2510c9126d66fa8e535a53d45adda44c3275fa2e229fBrian Paul _mesa_get_format_name(format)); 2511019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = 0; 2512019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2513813870fd9588de101f68728507cff726d7513695Brian Paul } 2514813870fd9588de101f68728507cff726d7513695Brian Paul} 25155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt/** 25174ff212aac3764565675c9c83af378671162bc4f2Brian Paul * Check if a gl_format exactly matches a GL formaat/type combination 25184ff212aac3764565675c9c83af378671162bc4f2Brian Paul * such that we can use memcpy() from one to the other. 25195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * 25204ff212aac3764565675c9c83af378671162bc4f2Brian Paul * Note: this matching assumes that GL_PACK/UNPACK_SWAP_BYTES is unset. 25214ff212aac3764565675c9c83af378671162bc4f2Brian Paul * 25224ff212aac3764565675c9c83af378671162bc4f2Brian Paul * \return GL_TRUE if the formats match, GL_FALSE otherwise. 25235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 25245f140bceda4c11b68c16ce175533f496434ff9a3Eric AnholtGLboolean 25255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt_mesa_format_matches_format_and_type(gl_format gl_format, 25265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt GLenum format, GLenum type) 25275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt{ 25285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt const GLboolean littleEndian = _mesa_little_endian(); 25295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* Note: When reading a GL format/type combination, the format lists channel 25315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * assignments from most significant channel in the type to least 25324ff212aac3764565675c9c83af378671162bc4f2Brian Paul * significant. A type with _REV indicates that the assignments are 25334ff212aac3764565675c9c83af378671162bc4f2Brian Paul * swapped, so they are listed from least significant to most significant. 25345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * 25354ff212aac3764565675c9c83af378671162bc4f2Brian Paul * For sanity, please keep this switch statement ordered the same as the 25364ff212aac3764565675c9c83af378671162bc4f2Brian Paul * enums in formats.h. 25375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 25385f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt switch (gl_format) { 25405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_NONE: 25425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_COUNT: 25435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 25445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25455f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA8888: 2546952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8) 2547952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2548952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2549952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !littleEndian) 2550952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2551952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2552952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8_REV) 2553952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2554952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2555952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_BYTE && littleEndian) 2556952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2557952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2558952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 25595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA8888_REV: 2561952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8_REV; 25625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB8888: 2564952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV) 2565952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2566952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2567952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && littleEndian) 2568952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2569952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2570952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 25715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25725f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB8888_REV: 2573952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8) 2574952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2575952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2576952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && !littleEndian) 2577952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2578952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2579952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 25805f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2581d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888: 2582d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888_REV: 2583d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu return GL_FALSE; 2584d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 25855f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_XRGB8888: 25865f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_XRGB8888_REV: 25875f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 25885f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB888: 2590b019228d6bb00291315f2a4045fb30af89715433Brian Paul return format == GL_BGR && type == GL_UNSIGNED_BYTE && littleEndian; 25915f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25925f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_BGR888: 2593966720f507f71d2dce1f3499d7b29d98b615effeBrian Paul return format == GL_RGB && type == GL_UNSIGNED_BYTE && littleEndian; 25945f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25955f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB565: 25965f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5; 25975f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB565_REV: 25985f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* Some of the 16-bit MESA_FORMATs that would seem to correspond to 25995f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * GL_UNSIGNED_SHORT_* are byte-swapped instead of channel-reversed, 26005f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * according to formats.h, so they can't be matched. 26015f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 26025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26035f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB4444: 26055f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_BGRA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV; 26065f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB4444_REV: 26075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26085f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA5551: 26105f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGBA && type == GL_UNSIGNED_SHORT_5_5_5_1; 26115f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB1555: 26135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_BGRA && type == GL_UNSIGNED_SHORT_1_5_5_5_REV; 26145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB1555_REV: 26155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL44: 26185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL88: 26205f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE_ALPHA && type == GL_UNSIGNED_BYTE && littleEndian; 26215f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL88_REV: 26225f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26245f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL1616: 26255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE_ALPHA && type == GL_UNSIGNED_SHORT && littleEndian; 26265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL1616_REV: 26275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB332: 26305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_UNSIGNED_BYTE_3_3_2; 26315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26325f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_A8: 26335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_ALPHA && type == GL_UNSIGNED_BYTE; 26345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_A16: 26355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_ALPHA && type == GL_UNSIGNED_SHORT && littleEndian; 26365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L8: 26375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE && type == GL_UNSIGNED_BYTE; 26385f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L16: 26395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE && type == GL_UNSIGNED_SHORT && littleEndian; 26405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_I8: 26415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_INTENSITY && type == GL_UNSIGNED_BYTE; 26425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_I16: 26435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_INTENSITY && type == GL_UNSIGNED_SHORT && littleEndian; 26445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26455f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_YCBCR: 26465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_YCBCR_REV: 26475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R8: 26505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RED && type == GL_UNSIGNED_BYTE; 26510a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul case MESA_FORMAT_GR88: 2652c3a57841a3b51dc463b7fa5ca94b897917a86f20Brian Paul return format == GL_RG && type == GL_UNSIGNED_BYTE && littleEndian; 2653b4aecc4e1861e60e40e14868719219084967e46dBrian Paul case MESA_FORMAT_RG88: 26545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26555f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R16: 26575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RED && type == GL_UNSIGNED_SHORT && littleEndian; 26585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG1616: 26595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RG && type == GL_UNSIGNED_SHORT && littleEndian; 26605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG1616_REV: 26615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB2101010: 26645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_BGRA && type == GL_UNSIGNED_INT_2_10_10_10_REV; 26655f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26665f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z24_S8: 26675f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_DEPTH_STENCIL && type == GL_UNSIGNED_INT_24_8; 26685f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z24_X8: 26695f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_S8_Z24: 26705f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26725f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z16: 26735f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_DEPTH_COMPONENT && type == GL_UNSIGNED_SHORT; 26745f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26755f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_X8_Z24: 26765f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26775f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26785f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32: 26795f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_DEPTH_COMPONENT && type == GL_UNSIGNED_INT; 26805f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26815f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_S8: 26825f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26835f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26845f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGB8: 26855f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA8: 26865f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SARGB8: 26875f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SL8: 26885f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SLA8: 26895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGB_DXT1: 26905f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT1: 26915f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT3: 26925f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT5: 26935f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26945f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26955f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FXT1: 26965f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FXT1: 26975f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_DXT1: 26985f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT1: 26995f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT3: 27005f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT5: 27015f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27035f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FLOAT32: 27045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGBA && type == GL_FLOAT; 27055f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FLOAT16: 27065f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGBA && type == GL_HALF_FLOAT; 27075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27085f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FLOAT32: 27095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_FLOAT; 27105f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FLOAT16: 27115f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_HALF_FLOAT; 27125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_FLOAT32: 27145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_ALPHA && type == GL_FLOAT; 27155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_FLOAT16: 27165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_ALPHA && type == GL_HALF_FLOAT; 27175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_FLOAT32: 27195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE && type == GL_FLOAT; 27205f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_FLOAT16: 27215f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE && type == GL_HALF_FLOAT; 27225f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32: 27245f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE_ALPHA && type == GL_FLOAT; 27255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16: 27265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE_ALPHA && type == GL_HALF_FLOAT; 27275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_FLOAT32: 27295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_INTENSITY && type == GL_FLOAT; 27305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_FLOAT16: 27315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_INTENSITY && type == GL_HALF_FLOAT; 27325f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_FLOAT32: 27345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RED && type == GL_FLOAT; 27355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_FLOAT16: 27365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RED && type == GL_HALF_FLOAT; 27375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27385f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_FLOAT32: 27395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RG && type == GL_FLOAT; 27405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_FLOAT16: 27415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RG && type == GL_HALF_FLOAT; 27425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: What do we want to do for GL_EXT_texture_integer? */ 27445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT8: 27455f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT16: 27465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT32: 27475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT8: 27485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT16: 27495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT32: 27505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27525f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT8: 27535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT16: 27545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT32: 27555f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT8: 27565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT16: 27575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT32: 27585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT8: 27615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT16: 27625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT32: 27635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT8: 27645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT16: 27655f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT32: 27665f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27675f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27685f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT8: 27695f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT16: 27705f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT32: 27715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT8: 27725f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT16: 27735f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT32: 27745f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27755f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27765f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT8: 27775f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT8: 27785f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT8: 27795f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT8: 27805f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT16: 27815f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT16: 27825f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT16: 27835f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT16: 27845f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT32: 27855f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT32: 27865f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT32: 27875f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT32: 27885f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27905f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT8: 27915f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT8: 27925f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT8: 27935f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT8: 27945f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT16: 27955f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT16: 27965f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT16: 27975f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT16: 27985f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT32: 27995f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT32: 28005f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT32: 28015f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT32: 28025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28035f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_DUDV8: 28055f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_R8: 28065f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RG88_REV: 28075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBX8888: 28085f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA8888: 28095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA8888_REV: 28105f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_R16: 28115f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_GR1616: 28125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGB_16: 28135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA_16: 28145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_16: 28155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: SNORM */ 28165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RED_RGTC1: 28195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RED_RGTC1: 28205f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_RGTC2: 28215f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RG_RGTC2: 28225f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28245f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L_LATC1: 28255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L_LATC1: 28265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LA_LATC2: 28275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_LA_LATC2: 28285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2830d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 2831d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu return GL_FALSE; 2832d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 28335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_A8: 28345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L8: 28355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_AL88: 28365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_I8: 28375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_A16: 28385f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L16: 28395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_AL1616: 28405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_I16: 28415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: SNORM */ 28425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2844f449be660e70aac2aefd2ce84581e137de25520bDave Airlie case MESA_FORMAT_ARGB2101010_UINT: 2845f449be660e70aac2aefd2ce84581e137de25520bDave Airlie return GL_FALSE; 2846f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 28475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB9_E5_FLOAT: 28485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_UNSIGNED_INT_5_9_9_9_REV; 28495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R11_G11_B10_FLOAT: 28505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_UNSIGNED_INT_10F_11F_11F_REV; 28515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28525f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32_FLOAT: 28535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_DEPTH_COMPONENT && type == GL_FLOAT; 28545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28555f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32_FLOAT_X24S8: 28565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt } 28585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt} 2861