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" 319ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen#include "glformats.h" 32813870fd9588de101f68728507cff726d7513695Brian Paul 33813870fd9588de101f68728507cff726d7513695Brian Paul 34813870fd9588de101f68728507cff726d7513695Brian Paul/** 35be0765cd6ec47cf068775197f312a1123e044566Brian Paul * Information about texture formats. 36be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 37be0765cd6ec47cf068775197f312a1123e044566Brian Paulstruct gl_format_info 38be0765cd6ec47cf068775197f312a1123e044566Brian Paul{ 39be0765cd6ec47cf068775197f312a1123e044566Brian Paul gl_format Name; 40be0765cd6ec47cf068775197f312a1123e044566Brian Paul 41bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul /** text name for debugging */ 42bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul const char *StrName; 43bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 44be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 452d29349c0083134e3b9b9d2023368268b7dcc951Eric Anholt * Base format is one of GL_RED, GL_RG, GL_RGB, GL_RGBA, GL_ALPHA, 462d29349c0083134e3b9b9d2023368268b7dcc951Eric Anholt * GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_YCBCR_MESA, 4755d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL, GL_DUDV_ATI. 48be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 49be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLenum BaseFormat; 50be0765cd6ec47cf068775197f312a1123e044566Brian Paul 51be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 5282fff5f3edfd2f6396a872a12d753b2ab90edd7bBrian Paul * Logical data type: one of GL_UNSIGNED_NORMALIZED, GL_SIGNED_NORMALIZED, 53abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * GL_UNSIGNED_INT, GL_INT, GL_FLOAT. 54be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 55be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLenum DataType; 56be0765cd6ec47cf068775197f312a1123e044566Brian Paul 57be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte RedBits; 58be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte GreenBits; 59be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BlueBits; 60be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte AlphaBits; 61be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte LuminanceBits; 62be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte IntensityBits; 63be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte IndexBits; 64be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte DepthBits; 65be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte StencilBits; 66be0765cd6ec47cf068775197f312a1123e044566Brian Paul 67be0765cd6ec47cf068775197f312a1123e044566Brian Paul /** 68be0765cd6ec47cf068775197f312a1123e044566Brian Paul * To describe compressed formats. If not compressed, Width=Height=1. 69be0765cd6ec47cf068775197f312a1123e044566Brian Paul */ 70be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BlockWidth, BlockHeight; 71be0765cd6ec47cf068775197f312a1123e044566Brian Paul GLubyte BytesPerBlock; 72be0765cd6ec47cf068775197f312a1123e044566Brian Paul}; 73be0765cd6ec47cf068775197f312a1123e044566Brian Paul 74be0765cd6ec47cf068775197f312a1123e044566Brian Paul 75be0765cd6ec47cf068775197f312a1123e044566Brian Paul/** 76813870fd9588de101f68728507cff726d7513695Brian Paul * Info about each format. 77813870fd9588de101f68728507cff726d7513695Brian Paul * These must be in the same order as the MESA_FORMAT_* enums so that 78813870fd9588de101f68728507cff726d7513695Brian Paul * we can do lookups without searching. 79813870fd9588de101f68728507cff726d7513695Brian Paul */ 80813870fd9588de101f68728507cff726d7513695Brian Paulstatic struct gl_format_info format_info[MESA_FORMAT_COUNT] = 81813870fd9588de101f68728507cff726d7513695Brian Paul{ 82813870fd9588de101f68728507cff726d7513695Brian Paul { 83e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul MESA_FORMAT_NONE, /* Name */ 84bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_NONE", /* StrName */ 85e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul GL_NONE, /* BaseFormat */ 86e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul GL_NONE, /* DataType */ 87e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 88e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 89e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 0, 0, 0 /* BlockWidth/Height,Bytes */ 90e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul }, 91e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul { 92813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888, /* Name */ 93bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA8888", /* StrName */ 94813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 95813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 96813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 97813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 98813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 99813870fd9588de101f68728507cff726d7513695Brian Paul }, 100813870fd9588de101f68728507cff726d7513695Brian Paul { 101813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA8888_REV, /* Name */ 102bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA8888_REV", /* StrName */ 103813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 104813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 105813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 106813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 107813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 108813870fd9588de101f68728507cff726d7513695Brian Paul }, 109813870fd9588de101f68728507cff726d7513695Brian Paul { 110813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888, /* Name */ 111bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB8888", /* StrName */ 112813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 113813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 114813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 115813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 116813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 117813870fd9588de101f68728507cff726d7513695Brian Paul }, 118813870fd9588de101f68728507cff726d7513695Brian Paul { 119813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB8888_REV, /* Name */ 120bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB8888_REV", /* StrName */ 121813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 122813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 123813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ 124813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 125813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 126813870fd9588de101f68728507cff726d7513695Brian Paul }, 127813870fd9588de101f68728507cff726d7513695Brian Paul { 128d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu MESA_FORMAT_RGBX8888, /* Name */ 129d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu "MESA_FORMAT_RGBX8888", /* StrName */ 130d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_RGB, /* BaseFormat */ 131d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_UNSIGNED_NORMALIZED, /* DataType */ 132d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 133d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 134d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 1, 1, 4 /* BlockWidth/Height,Bytes */ 135d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu }, 136d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu { 137d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu MESA_FORMAT_RGBX8888_REV, /* Name */ 138d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu "MESA_FORMAT_RGBX8888_REV", /* StrName */ 139d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_RGB, /* BaseFormat */ 140d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu GL_UNSIGNED_NORMALIZED, /* DataType */ 141d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 142d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 143d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 1, 1, 4 /* BlockWidth/Height,Bytes */ 144d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu }, 145d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu { 14674d61d03b54d72217d463c248468cdcd09320efcBrian Paul MESA_FORMAT_XRGB8888, /* Name */ 147bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_XRGB8888", /* StrName */ 14874d61d03b54d72217d463c248468cdcd09320efcBrian Paul GL_RGB, /* BaseFormat */ 14974d61d03b54d72217d463c248468cdcd09320efcBrian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 15074d61d03b54d72217d463c248468cdcd09320efcBrian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 15174d61d03b54d72217d463c248468cdcd09320efcBrian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 15274d61d03b54d72217d463c248468cdcd09320efcBrian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 15374d61d03b54d72217d463c248468cdcd09320efcBrian Paul }, 15474d61d03b54d72217d463c248468cdcd09320efcBrian Paul { 1552d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer MESA_FORMAT_XRGB8888_REV, /* Name */ 1562d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer "MESA_FORMAT_XRGB8888_REV", /* StrName */ 1572d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer GL_RGB, /* BaseFormat */ 1582d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer GL_UNSIGNED_NORMALIZED, /* DataType */ 1592d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 1602d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 1612d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer 1, 1, 4 /* BlockWidth/Height,Bytes */ 1622d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer }, 1632d0c2952566810ef1b277b49b064f4874a973112Michel Dänzer { 164813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB888, /* Name */ 165bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB888", /* StrName */ 166813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 167813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 168813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 169813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 170813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 /* BlockWidth/Height,Bytes */ 171813870fd9588de101f68728507cff726d7513695Brian Paul }, 172813870fd9588de101f68728507cff726d7513695Brian Paul { 173813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_BGR888, /* Name */ 174bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_BGR888", /* StrName */ 175813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 176813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 177813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, /* Red/Green/Blue/AlphaBits */ 178813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 179813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 /* BlockWidth/Height,Bytes */ 180813870fd9588de101f68728507cff726d7513695Brian Paul }, 181813870fd9588de101f68728507cff726d7513695Brian Paul { 182813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565, /* Name */ 183bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB565", /* StrName */ 184813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 185813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 186813870fd9588de101f68728507cff726d7513695Brian Paul 5, 6, 5, 0, /* Red/Green/Blue/AlphaBits */ 187813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 188813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 189813870fd9588de101f68728507cff726d7513695Brian Paul }, 190813870fd9588de101f68728507cff726d7513695Brian Paul { 191813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB565_REV, /* Name */ 192bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB565_REV", /* StrName */ 193813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 194813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 195813870fd9588de101f68728507cff726d7513695Brian Paul 5, 6, 5, 0, /* Red/Green/Blue/AlphaBits */ 196813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 197813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 198813870fd9588de101f68728507cff726d7513695Brian Paul }, 199813870fd9588de101f68728507cff726d7513695Brian Paul { 200813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444, /* Name */ 201bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB4444", /* StrName */ 202813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 203813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 204813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 205813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 206813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 207813870fd9588de101f68728507cff726d7513695Brian Paul }, 208813870fd9588de101f68728507cff726d7513695Brian Paul { 209813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB4444_REV, /* Name */ 210bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB4444_REV", /* StrName */ 211813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 212813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 213813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 214813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 215813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 216813870fd9588de101f68728507cff726d7513695Brian Paul }, 217813870fd9588de101f68728507cff726d7513695Brian Paul { 218813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA5551, /* Name */ 219bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA5551", /* StrName */ 220813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 221813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 222813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 223813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 224813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 225813870fd9588de101f68728507cff726d7513695Brian Paul }, 226813870fd9588de101f68728507cff726d7513695Brian Paul { 227813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555, /* Name */ 228bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB1555", /* StrName */ 229813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 230813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 231813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 232813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 233813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 234813870fd9588de101f68728507cff726d7513695Brian Paul }, 235813870fd9588de101f68728507cff726d7513695Brian Paul { 236813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ARGB1555_REV, /* Name */ 237bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ARGB1555_REV", /* StrName */ 238813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, /* BaseFormat */ 239813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 240813870fd9588de101f68728507cff726d7513695Brian Paul 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 241813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 242813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 243813870fd9588de101f68728507cff726d7513695Brian Paul }, 244813870fd9588de101f68728507cff726d7513695Brian Paul { 245bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák MESA_FORMAT_AL44, /* Name */ 246bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák "MESA_FORMAT_AL44", /* StrName */ 247bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák GL_LUMINANCE_ALPHA, /* BaseFormat */ 248bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 249bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 0, 0, 0, 4, /* Red/Green/Blue/AlphaBits */ 250bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 4, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 251bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák 1, 1, 1 /* BlockWidth/Height,Bytes */ 252bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák }, 253bae9d511f343c7bd5eb66d1d1d18d32b47e738e3Marek Olšák { 254813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88, /* Name */ 255bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_AL88", /* StrName */ 256813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, /* BaseFormat */ 257813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 258813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 259813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 260813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 261813870fd9588de101f68728507cff726d7513695Brian Paul }, 262813870fd9588de101f68728507cff726d7513695Brian Paul { 263813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_AL88_REV, /* Name */ 264bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_AL88_REV", /* StrName */ 265813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, /* BaseFormat */ 266813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 267813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 268813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 269813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 270813870fd9588de101f68728507cff726d7513695Brian Paul }, 271813870fd9588de101f68728507cff726d7513695Brian Paul { 272eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616, /* Name */ 273eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick "MESA_FORMAT_AL1616", /* StrName */ 274eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_LUMINANCE_ALPHA, /* BaseFormat */ 275eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_UNSIGNED_NORMALIZED, /* DataType */ 276eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 277eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 278eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 1, 1, 4 /* BlockWidth/Height,Bytes */ 279eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick }, 280eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick { 281eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick MESA_FORMAT_AL1616_REV, /* Name */ 282eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick "MESA_FORMAT_AL1616_REV", /* StrName */ 283eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_LUMINANCE_ALPHA, /* BaseFormat */ 284eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick GL_UNSIGNED_NORMALIZED, /* DataType */ 285eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 286eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 287eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 1, 1, 4 /* BlockWidth/Height,Bytes */ 288eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick }, 289eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick { 290813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB332, /* Name */ 291bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB332", /* StrName */ 292813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 293813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 294813870fd9588de101f68728507cff726d7513695Brian Paul 3, 3, 2, 0, /* Red/Green/Blue/AlphaBits */ 295813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 296813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 297813870fd9588de101f68728507cff726d7513695Brian Paul }, 298813870fd9588de101f68728507cff726d7513695Brian Paul { 299813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_A8, /* Name */ 300bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_A8", /* StrName */ 301813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, /* BaseFormat */ 302813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 303813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, /* Red/Green/Blue/AlphaBits */ 304813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 305813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 306813870fd9588de101f68728507cff726d7513695Brian Paul }, 307813870fd9588de101f68728507cff726d7513695Brian Paul { 308eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák MESA_FORMAT_A16, /* Name */ 309eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák "MESA_FORMAT_A16", /* StrName */ 310eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák GL_ALPHA, /* BaseFormat */ 311eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 312eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 0, 0, 0, 16, /* Red/Green/Blue/AlphaBits */ 313eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 314eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 315eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák }, 316eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák { 317813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_L8, /* Name */ 318bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_L8", /* StrName */ 319813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE, /* BaseFormat */ 320813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 321813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 322813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 323813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 324813870fd9588de101f68728507cff726d7513695Brian Paul }, 325813870fd9588de101f68728507cff726d7513695Brian Paul { 326bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák MESA_FORMAT_L16, /* Name */ 327bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák "MESA_FORMAT_L16", /* StrName */ 328bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák GL_LUMINANCE, /* BaseFormat */ 329bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 330bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 331bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 16, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 332bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 333bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák }, 334bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák { 335813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_I8, /* Name */ 336bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_I8", /* StrName */ 337813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, /* BaseFormat */ 338813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 339813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 340813870fd9588de101f68728507cff726d7513695Brian Paul 0, 8, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 341813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 342813870fd9588de101f68728507cff726d7513695Brian Paul }, 343813870fd9588de101f68728507cff726d7513695Brian Paul { 344fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák MESA_FORMAT_I16, /* Name */ 345fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák "MESA_FORMAT_I16", /* StrName */ 346fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák GL_INTENSITY, /* BaseFormat */ 347fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák GL_UNSIGNED_NORMALIZED, /* DataType */ 348fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 349fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 0, 16, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 350fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák 1, 1, 2 /* BlockWidth/Height,Bytes */ 351fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák }, 352fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák { 353813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR, /* Name */ 354bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_YCBCR", /* StrName */ 355813870fd9588de101f68728507cff726d7513695Brian Paul GL_YCBCR_MESA, /* BaseFormat */ 356813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 357813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 358813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 359813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 360813870fd9588de101f68728507cff726d7513695Brian Paul }, 361813870fd9588de101f68728507cff726d7513695Brian Paul { 362813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_YCBCR_REV, /* Name */ 363bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_YCBCR_REV", /* StrName */ 364813870fd9588de101f68728507cff726d7513695Brian Paul GL_YCBCR_MESA, /* BaseFormat */ 365813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 366813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 367813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 368813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 369813870fd9588de101f68728507cff726d7513695Brian Paul }, 370813870fd9588de101f68728507cff726d7513695Brian Paul { 3715d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R8, 3725d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_R8", 3735d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RED, 3745d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3755d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 0, 0, 0, 3765d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3775d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 1 3785d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3795d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 3800a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul MESA_FORMAT_GR88, 3810a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul "MESA_FORMAT_GR88", 3825d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 3835d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3845d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 8, 0, 0, 3855d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3865d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 3875d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3885d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 389b4aecc4e1861e60e40e14868719219084967e46dBrian Paul MESA_FORMAT_RG88, 390b4aecc4e1861e60e40e14868719219084967e46dBrian Paul "MESA_FORMAT_RG88", 3915d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 3925d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 3935d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 8, 8, 0, 0, 3945d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 3955d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 3965d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 3975d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 3985d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_R16, 3995d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_R16", 4005d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RED, 4015d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4025d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 0, 0, 0, 4035d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4045d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 2 4055d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4065d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 4075d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616, 4085d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_RG1616", 4095d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 4105d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4115d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 16, 0, 0, 4125d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4135d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 4 4145d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4155d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 4165d1387b2da3626326410804026f8b92f1a121fdcIan Romanick MESA_FORMAT_RG1616_REV, 4175d1387b2da3626326410804026f8b92f1a121fdcIan Romanick "MESA_FORMAT_RG1616_REV", 4185d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_RG, 4195d1387b2da3626326410804026f8b92f1a121fdcIan Romanick GL_UNSIGNED_NORMALIZED, 4205d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 16, 16, 0, 0, 4215d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 0, 0, 0, 0, 0, 4225d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 1, 1, 4 4235d1387b2da3626326410804026f8b92f1a121fdcIan Romanick }, 4245d1387b2da3626326410804026f8b92f1a121fdcIan Romanick { 425621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák MESA_FORMAT_ARGB2101010, 426621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák "MESA_FORMAT_ARGB2101010", 427621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák GL_RGBA, 428621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák GL_UNSIGNED_NORMALIZED, 429621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 10, 10, 10, 2, 430621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 0, 0, 0, 0, 0, 431621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 1, 1, 4 432621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák }, 433621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák { 434813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z24_S8, /* Name */ 435bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z24_S8", /* StrName */ 436813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_STENCIL, /* BaseFormat */ 437755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 438813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 439813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 24, 8, /* Lum/Int/Index/Depth/StencilBits */ 440813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 441813870fd9588de101f68728507cff726d7513695Brian Paul }, 442813870fd9588de101f68728507cff726d7513695Brian Paul { 443813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8_Z24, /* Name */ 444bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_S8_Z24", /* StrName */ 445813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_STENCIL, /* BaseFormat */ 446755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 447813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 448813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 24, 8, /* Lum/Int/Index/Depth/StencilBits */ 449813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 450813870fd9588de101f68728507cff726d7513695Brian Paul }, 451813870fd9588de101f68728507cff726d7513695Brian Paul { 452813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z16, /* Name */ 453bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z16", /* StrName */ 454813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 455755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 456813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 457813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 0, /* Lum/Int/Index/Depth/StencilBits */ 458813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 /* BlockWidth/Height,Bytes */ 459813870fd9588de101f68728507cff726d7513695Brian Paul }, 460813870fd9588de101f68728507cff726d7513695Brian Paul { 461e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul MESA_FORMAT_X8_Z24, /* Name */ 462bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_X8_Z24", /* StrName */ 463e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 464755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 465e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 466e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 0, 0, 0, 24, 0, /* Lum/Int/Index/Depth/StencilBits */ 467e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 468e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul }, 469e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul { 470c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca MESA_FORMAT_Z24_X8, /* Name */ 471c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca "MESA_FORMAT_Z24_X8", /* StrName */ 472c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca GL_DEPTH_COMPONENT, /* BaseFormat */ 473755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 474c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 475c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 0, 0, 0, 24, 0, /* Lum/Int/Index/Depth/StencilBits */ 476c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 1, 1, 4 /* BlockWidth/Height,Bytes */ 477c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca }, 478c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca { 479813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_Z32, /* Name */ 480bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_Z32", /* StrName */ 481813870fd9588de101f68728507cff726d7513695Brian Paul GL_DEPTH_COMPONENT, /* BaseFormat */ 482755f0a0a02c5cf3be7e69ad51b411711fcc0bc27Eric Anholt GL_UNSIGNED_NORMALIZED, /* DataType */ 483813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 484813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 0, /* Lum/Int/Index/Depth/StencilBits */ 485813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 /* BlockWidth/Height,Bytes */ 486813870fd9588de101f68728507cff726d7513695Brian Paul }, 487813870fd9588de101f68728507cff726d7513695Brian Paul { 488813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_S8, /* Name */ 489bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_S8", /* StrName */ 490813870fd9588de101f68728507cff726d7513695Brian Paul GL_STENCIL_INDEX, /* BaseFormat */ 491813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_INT, /* DataType */ 492813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 493813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 8, /* Lum/Int/Index/Depth/StencilBits */ 494813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 495813870fd9588de101f68728507cff726d7513695Brian Paul }, 496813870fd9588de101f68728507cff726d7513695Brian Paul { 497813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB8, 498bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGB8", 499813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 500813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 501813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 0, 502813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 503813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 3 504813870fd9588de101f68728507cff726d7513695Brian Paul }, 505813870fd9588de101f68728507cff726d7513695Brian Paul { 506813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA8, 507bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA8", 508813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 509813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 510813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 511813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 512813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 513813870fd9588de101f68728507cff726d7513695Brian Paul }, 514813870fd9588de101f68728507cff726d7513695Brian Paul { 515813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SARGB8, 516bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SARGB8", 517813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 518813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 519813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 520813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 521813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 522813870fd9588de101f68728507cff726d7513695Brian Paul }, 523813870fd9588de101f68728507cff726d7513695Brian Paul { 524813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SL8, 525bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SL8", 52671cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul GL_LUMINANCE, 527813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 52871cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul 0, 0, 0, 0, 529813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, 53071cd40bccf8dcbf628a7d7d3f7c877d547338c5aBrian Paul 1, 1, 1 531813870fd9588de101f68728507cff726d7513695Brian Paul }, 532813870fd9588de101f68728507cff726d7513695Brian Paul { 533813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SLA8, 534bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SLA8", 535813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 536813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 537813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 8, 538813870fd9588de101f68728507cff726d7513695Brian Paul 8, 0, 0, 0, 0, 539813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 540813870fd9588de101f68728507cff726d7513695Brian Paul }, 541813870fd9588de101f68728507cff726d7513695Brian Paul { 542813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGB_DXT1, /* Name */ 543bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGB_DXT1", /* StrName */ 544813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 545813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 546813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 0, /* approx Red/Green/Blue/AlphaBits */ 547813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 548813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 549813870fd9588de101f68728507cff726d7513695Brian Paul }, 550813870fd9588de101f68728507cff726d7513695Brian Paul { 551813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT1, 552bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT1", 553813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 554813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 555813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 556813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 557813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 558813870fd9588de101f68728507cff726d7513695Brian Paul }, 559813870fd9588de101f68728507cff726d7513695Brian Paul { 560813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT3, 561bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT3", 562813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 563813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 564813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 565813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 566813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 567813870fd9588de101f68728507cff726d7513695Brian Paul }, 568813870fd9588de101f68728507cff726d7513695Brian Paul { 569813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SRGBA_DXT5, 570bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SRGBA_DXT5", 571813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 572813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 573813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 574813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 575813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 576813870fd9588de101f68728507cff726d7513695Brian Paul }, 577813870fd9588de101f68728507cff726d7513695Brian Paul 578813870fd9588de101f68728507cff726d7513695Brian Paul { 579813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FXT1, 580bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FXT1", 581813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 582813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 583c02cd82b463661def7842f910dc561313559df80Brian Paul 4, 4, 4, 0, /* approx Red/Green/BlueBits */ 584813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 585813870fd9588de101f68728507cff726d7513695Brian Paul 8, 4, 16 /* 16 bytes per 8x4 block */ 586813870fd9588de101f68728507cff726d7513695Brian Paul }, 587813870fd9588de101f68728507cff726d7513695Brian Paul { 588813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FXT1, 589bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FXT1", 590813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 591813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 592c02cd82b463661def7842f910dc561313559df80Brian Paul 4, 4, 4, 1, /* approx Red/Green/Blue/AlphaBits */ 593813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 594813870fd9588de101f68728507cff726d7513695Brian Paul 8, 4, 16 /* 16 bytes per 8x4 block */ 595813870fd9588de101f68728507cff726d7513695Brian Paul }, 596813870fd9588de101f68728507cff726d7513695Brian Paul 597813870fd9588de101f68728507cff726d7513695Brian Paul { 598813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_DXT1, /* Name */ 599bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_DXT1", /* StrName */ 600813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, /* BaseFormat */ 601813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, /* DataType */ 602813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 0, /* approx Red/Green/Blue/AlphaBits */ 603813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 604813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 605813870fd9588de101f68728507cff726d7513695Brian Paul }, 606813870fd9588de101f68728507cff726d7513695Brian Paul { 607813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT1, 608bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT1", 609813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 610813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 611813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 612813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 613813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 8 /* 8 bytes per 4x4 block */ 614813870fd9588de101f68728507cff726d7513695Brian Paul }, 615813870fd9588de101f68728507cff726d7513695Brian Paul { 616813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT3, 617bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT3", 618813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 619813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 620813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 621813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 622813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 623813870fd9588de101f68728507cff726d7513695Brian Paul }, 624813870fd9588de101f68728507cff726d7513695Brian Paul { 625813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_DXT5, 626bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_DXT5", 627813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 628813870fd9588de101f68728507cff726d7513695Brian Paul GL_UNSIGNED_NORMALIZED, 629813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 4, 4, 630813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 631813870fd9588de101f68728507cff726d7513695Brian Paul 4, 4, 16 /* 16 bytes per 4x4 block */ 632813870fd9588de101f68728507cff726d7513695Brian Paul }, 633813870fd9588de101f68728507cff726d7513695Brian Paul { 634813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT32, 635bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FLOAT32", 636813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 637813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 638813870fd9588de101f68728507cff726d7513695Brian Paul 32, 32, 32, 32, 639813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 640813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 16 641813870fd9588de101f68728507cff726d7513695Brian Paul }, 642813870fd9588de101f68728507cff726d7513695Brian Paul { 643813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGBA_FLOAT16, 644bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGBA_FLOAT16", 645813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 646813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 647813870fd9588de101f68728507cff726d7513695Brian Paul 16, 16, 16, 16, 648813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 649813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 8 650813870fd9588de101f68728507cff726d7513695Brian Paul }, 651813870fd9588de101f68728507cff726d7513695Brian Paul { 652813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT32, 653bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FLOAT32", 654813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 655813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 656813870fd9588de101f68728507cff726d7513695Brian Paul 32, 32, 32, 0, 657813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 658813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 12 659813870fd9588de101f68728507cff726d7513695Brian Paul }, 660813870fd9588de101f68728507cff726d7513695Brian Paul { 661813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_RGB_FLOAT16, 662bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_RGB_FLOAT16", 663813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGB, 664813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 665813870fd9588de101f68728507cff726d7513695Brian Paul 16, 16, 16, 0, 666813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 667813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 6 668813870fd9588de101f68728507cff726d7513695Brian Paul }, 669813870fd9588de101f68728507cff726d7513695Brian Paul { 670813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT32, 671bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ALPHA_FLOAT32", 672813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, 673813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 674813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 675813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 676813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 677813870fd9588de101f68728507cff726d7513695Brian Paul }, 678813870fd9588de101f68728507cff726d7513695Brian Paul { 679813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_ALPHA_FLOAT16, 680bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_ALPHA_FLOAT16", 681813870fd9588de101f68728507cff726d7513695Brian Paul GL_ALPHA, 682813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 683813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 684813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 685813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 686813870fd9588de101f68728507cff726d7513695Brian Paul }, 687813870fd9588de101f68728507cff726d7513695Brian Paul { 688813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT32, 689bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_FLOAT32", 69019648fcf015e512283e93ab9de4a3e969d577e59Marek Olšák GL_LUMINANCE, 691813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 692813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 693813870fd9588de101f68728507cff726d7513695Brian Paul 32, 0, 0, 0, 0, 694813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 695813870fd9588de101f68728507cff726d7513695Brian Paul }, 696813870fd9588de101f68728507cff726d7513695Brian Paul { 697813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_FLOAT16, 698bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_FLOAT16", 69919648fcf015e512283e93ab9de4a3e969d577e59Marek Olšák GL_LUMINANCE, 700813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 701813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 702813870fd9588de101f68728507cff726d7513695Brian Paul 16, 0, 0, 0, 0, 703813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 704813870fd9588de101f68728507cff726d7513695Brian Paul }, 705813870fd9588de101f68728507cff726d7513695Brian Paul { 706813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32, 707bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32", 708813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 709813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 710813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 32, 711813870fd9588de101f68728507cff726d7513695Brian Paul 32, 0, 0, 0, 0, 712813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 8 713813870fd9588de101f68728507cff726d7513695Brian Paul }, 714813870fd9588de101f68728507cff726d7513695Brian Paul { 715813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16, 716bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16", 717813870fd9588de101f68728507cff726d7513695Brian Paul GL_LUMINANCE_ALPHA, 718813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 719813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 16, 720813870fd9588de101f68728507cff726d7513695Brian Paul 16, 0, 0, 0, 0, 721813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 722813870fd9588de101f68728507cff726d7513695Brian Paul }, 723813870fd9588de101f68728507cff726d7513695Brian Paul { 724813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT32, 725bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_INTENSITY_FLOAT32", 726813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, 727813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 728813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 729813870fd9588de101f68728507cff726d7513695Brian Paul 0, 32, 0, 0, 0, 730813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 731813870fd9588de101f68728507cff726d7513695Brian Paul }, 732813870fd9588de101f68728507cff726d7513695Brian Paul { 733813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_INTENSITY_FLOAT16, 734bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_INTENSITY_FLOAT16", 735813870fd9588de101f68728507cff726d7513695Brian Paul GL_INTENSITY, 736813870fd9588de101f68728507cff726d7513695Brian Paul GL_FLOAT, 737813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 738813870fd9588de101f68728507cff726d7513695Brian Paul 0, 16, 0, 0, 0, 739813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 740813870fd9588de101f68728507cff726d7513695Brian Paul }, 7410ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7420ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_R_FLOAT32, 7430ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_R_FLOAT32", 7440ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RED, 7450ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7460ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 32, 0, 0, 0, 7470ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7480ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 4 7490ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7500ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7510ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_R_FLOAT16, 7520ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_R_FLOAT16", 7530ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RED, 7540ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7550ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 16, 0, 0, 0, 7560ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7570ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 2 7580ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7590ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7600ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_RG_FLOAT32, 7610ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_RG_FLOAT32", 7620ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RG, 7630ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7640ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 32, 32, 0, 0, 7650ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7660ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 8 7670ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 7680ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák { 7690ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák MESA_FORMAT_RG_FLOAT16, 7700ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák "MESA_FORMAT_RG_FLOAT16", 7710ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_RG, 7720ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák GL_FLOAT, 7730ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 16, 16, 0, 0, 7740ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 0, 0, 0, 0, 0, 7750ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák 1, 1, 4 7760ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák }, 777abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 778abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /* unnormalized signed int formats */ 7797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie /* unnormalized unsigned int formats */ 7807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT8, 7827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT8", 7837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 7847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 7857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 7867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 7877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 7887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 7897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT16, 7917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT16", 7927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 7937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 7947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 7957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 7967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 7977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 7987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 7997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_UINT32, 8007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_UINT32", 8017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 8047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT8, 8097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT8", 8107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 8137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT16, 8187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT16", 8197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 8227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_ALPHA_INT32, 8277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_ALPHA_INT32", 8287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_ALPHA, 8297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 8317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 8327a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT8, 8367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT8", 8377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 8, 0, 0, 0, 8417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT16, 8457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT16", 8467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 16, 0, 0, 0, 8507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_UINT32, 8547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_UINT32", 8557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 32, 0, 0, 0, 8597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT8, 8637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT8", 8647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 8, 0, 0, 0, 8687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT16, 8727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT16", 8737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 16, 0, 0, 0, 8777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 8787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_INTENSITY_INT32, 8817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_INTENSITY_INT32", 8827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INTENSITY, 8837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 8847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 32, 0, 0, 0, 8867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 8877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT8, 8907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT8", 8917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 8927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 8937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 8947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 8957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 8967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 8977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 8987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT16, 8997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT16", 9007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_UINT32, 9087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_UINT32", 9097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT8, 9177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT8", 9187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 9237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT16, 9267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT16", 9277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9327a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9337a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_INT32, 9357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_INT32", 9367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE, 9377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 9397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT8, 9447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT8", 9457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 9487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT16, 9537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT16", 9547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 9577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_UINT32, 9627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_UINT32", 9637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 9657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 9667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 9687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT8, 9717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT8", 9727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 8, 9757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 0, 9767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 9777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT16, 9807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT16", 9817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 16, 9847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 0, 9857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 9867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_LUMINANCE_ALPHA_INT32, 9897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_LUMINANCE_ALPHA_INT32", 9907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_LUMINANCE_ALPHA, 9917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 9927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 32, 9937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 0, 9947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 9957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 9967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 9977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 9987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT8, 9997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT8", 10007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 10037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 10057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT8, 10087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT8", 10097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 0, 0, 10127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 10147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT8, 10177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT8", 10187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 8, 0, 10217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 3 10237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 1024abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 1025abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT8, 1026abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT8", 1027abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1028abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1029abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 8, 8, 8, 8, 1030abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1031abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 4 1032abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1033abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 10347a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT16, 10357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT16", 10367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 10397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 10417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT16, 10447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT16", 10457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 0, 0, 10487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 10507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT16, 10537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT16", 10547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 16, 0, 10577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 6 10597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1061abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT16, 1062abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT16", 1063abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1064abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1065abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 16, 16, 16, 16, 1066abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1067abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 8 1068abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1069abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 10707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_INT32, 10717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_INT32", 10727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 10737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 10757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 10777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_INT32, 10807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_INT32", 10817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 10827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 0, 0, 10847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 10867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 10887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_INT32, 10897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_INT32", 10907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 10917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_INT, 10927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 32, 0, 10937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 10947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 12 10957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 10967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1097abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_INT32, 1098abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_INT32", 1099abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1100abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_INT, 1101abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 32, 32, 32, 32, 1102abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1103abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 16 1104abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 11057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT8, 11077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT8", 11087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 0, 0, 0, 11117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 1 11137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11157a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT8, 11167a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT8", 11177a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11187a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 0, 0, 11207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 11227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT8, 11257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT8", 11267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 8, 8, 8, 0, 11297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 3 11317a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 1132abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 1133abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT8, 1134abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT8", 1135abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1136abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1137abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 8, 8, 8, 8, 1138abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1139abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 4 1140abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1141abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 11427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT16, 11437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT16", 11447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 0, 0, 0, 11477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 2 11497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT16, 11527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT16", 11537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 0, 0, 11567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 11587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT16, 11617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT16", 11627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 16, 16, 16, 0, 11657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 6 11677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1169abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT16, 1170abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT16", 1171abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1172abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1173abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 16, 16, 16, 16, 1174abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1175abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 8 1176abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1177abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul { 11787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_R_UINT32, 11797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_R_UINT32", 11807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RED, 11817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 0, 0, 0, 11837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 4 11857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RG_UINT32, 11887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RG_UINT32", 11897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RG, 11907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 11917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 0, 0, 11927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 11937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 8 11947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 11957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 11967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie MESA_FORMAT_RGB_UINT32, 11977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie "MESA_FORMAT_RGB_UINT32", 11987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_RGB, 11997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie GL_UNSIGNED_INT, 12007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 32, 32, 32, 0, 12017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 0, 0, 0, 0, 0, 12027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 1, 1, 12 12037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie }, 12047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie { 1205abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul MESA_FORMAT_RGBA_UINT32, 1206abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul "MESA_FORMAT_RGBA_UINT32", 1207abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_RGBA, 1208abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul GL_UNSIGNED_INT, 1209abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 32, 32, 32, 32, 1210abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 0, 0, 0, 0, 0, 1211abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1, 1, 16 1212abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul }, 1213abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1214abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 1215813870fd9588de101f68728507cff726d7513695Brian Paul { 1216813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_DUDV8, 1217bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_DUDV8", 1218813870fd9588de101f68728507cff726d7513695Brian Paul GL_DUDV_ATI, 1219813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1220813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 1221813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1222813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 2 1223813870fd9588de101f68728507cff726d7513695Brian Paul }, 122484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 122584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* Signed 8 bits / channel */ 122684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 122784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_R8, /* Name */ 122884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_R8", /* StrName */ 12290073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RED, /* BaseFormat */ 123084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, /* DataType */ 123184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 123284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 123384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 1 /* BlockWidth/Height,Bytes */ 123484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 123584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12360be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_RG88_REV, 12370be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_RG88_REV", 12380073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RG, 123984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 124084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 8, 0, 0, 124184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 124284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 2 124384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 124484407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 124584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGBX8888, 124684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_RGBX8888", 12470073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RGB, 124884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 124984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 8, 8, 8, 0, 125084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 125184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 4 /* 4 bpp, but no alpha */ 125284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 1253813870fd9588de101f68728507cff726d7513695Brian Paul { 1254813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SIGNED_RGBA8888, 1255bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA8888", 1256813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 1257813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1258813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 1259813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1260813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 1261813870fd9588de101f68728507cff726d7513695Brian Paul }, 1262813870fd9588de101f68728507cff726d7513695Brian Paul { 1263813870fd9588de101f68728507cff726d7513695Brian Paul MESA_FORMAT_SIGNED_RGBA8888_REV, 1264bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA8888_REV", 1265813870fd9588de101f68728507cff726d7513695Brian Paul GL_RGBA, 1266813870fd9588de101f68728507cff726d7513695Brian Paul GL_SIGNED_NORMALIZED, 1267813870fd9588de101f68728507cff726d7513695Brian Paul 8, 8, 8, 8, 1268813870fd9588de101f68728507cff726d7513695Brian Paul 0, 0, 0, 0, 0, 1269813870fd9588de101f68728507cff726d7513695Brian Paul 1, 1, 4 1270813870fd9588de101f68728507cff726d7513695Brian Paul }, 127184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 127284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul /* Signed 16 bits / channel */ 127384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12740be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_R16, 12750be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_R16", 12760073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RED, 127784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 127884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 0, 0, 0, 127984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 128084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 2 128184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 128284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 12830be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_GR1616, 12840be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_GR1616", 12850073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RG, 128684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 128784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 16, 0, 0, 128884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 128984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 4 129084407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 129184407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul { 129284407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul MESA_FORMAT_SIGNED_RGB_16, 129384407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul "MESA_FORMAT_SIGNED_RGB_16", 12940073f50cd47c48c706b4524364b9c0594804febfBrian Paul GL_RGB, 129584407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul GL_SIGNED_NORMALIZED, 129684407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 16, 16, 16, 0, 129784407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 0, 0, 0, 0, 0, 129884407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul 1, 1, 6 129984407d7365e101c36a83fd0a58c58b0c0c57db14Brian Paul }, 1300c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul { 1301c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul MESA_FORMAT_SIGNED_RGBA_16, 1302bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul "MESA_FORMAT_SIGNED_RGBA_16", 1303c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul GL_RGBA, 1304c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul GL_SIGNED_NORMALIZED, 1305c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 16, 16, 16, 16, 1306c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 0, 0, 0, 0, 0, 1307c13b9a141d77845517bf7cab20cff6115c31e67dBrian Paul 1, 1, 8 130817e96718946486ef77927fcf3bb299d8bff32b98Brian Paul }, 130917e96718946486ef77927fcf3bb299d8bff32b98Brian Paul { 131017e96718946486ef77927fcf3bb299d8bff32b98Brian Paul MESA_FORMAT_RGBA_16, 131117e96718946486ef77927fcf3bb299d8bff32b98Brian Paul "MESA_FORMAT_RGBA_16", 131217e96718946486ef77927fcf3bb299d8bff32b98Brian Paul GL_RGBA, 131317e96718946486ef77927fcf3bb299d8bff32b98Brian Paul GL_UNSIGNED_NORMALIZED, 131417e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 16, 16, 16, 16, 131517e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 0, 0, 0, 0, 0, 131617e96718946486ef77927fcf3bb299d8bff32b98Brian Paul 1, 1, 8 13178d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13188d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13198d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RED_RGTC1, 13208d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_RED_RGTC1", 13218d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RED, 13228d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_UNSIGNED_NORMALIZED, 1323f8d40deea5c4abbbf93c2c572ce668a5a25f95e2Kenneth Graunke 8, 0, 0, 0, 13248d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13258d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 8 /* 8 bytes per 4x4 block */ 13268d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13278d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13288d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RED_RGTC1, 13298d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_SIGNED_RED_RGTC1", 13308d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RED, 13318d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_SIGNED_NORMALIZED, 1332f8d40deea5c4abbbf93c2c572ce668a5a25f95e2Kenneth Graunke 8, 0, 0, 0, 13338d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13348d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 8 /* 8 bytes per 4x4 block */ 13358d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13368d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13378d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_RG_RGTC2, 13388d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_RG_RGTC2", 13398d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RG, 13408d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_UNSIGNED_NORMALIZED, 1341f8d40deea5c4abbbf93c2c572ce668a5a25f95e2Kenneth Graunke 8, 8, 0, 0, 13428d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13438d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 16 /* 16 bytes per 4x4 block */ 13448d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13458d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie { 13468d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie MESA_FORMAT_SIGNED_RG_RGTC2, 13478d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie "MESA_FORMAT_SIGNED_RG_RGTC2", 13488d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_RG, 13498d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie GL_SIGNED_NORMALIZED, 1350f8d40deea5c4abbbf93c2c572ce668a5a25f95e2Kenneth Graunke 8, 8, 0, 0, 13518d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 0, 0, 0, 0, 0, 13528d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie 4, 4, 16 /* 16 bytes per 4x4 block */ 13538d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie }, 13547d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13557d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_L_LATC1, 13567d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_L_LATC1", 13577d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE, 13587d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_UNSIGNED_NORMALIZED, 13597d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 0, 13607d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13617d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 8 /* 8 bytes per 4x4 block */ 13627d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13637d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13647d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_L_LATC1, 13657d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_SIGNED_L_LATC1", 13667d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE, 13677d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_SIGNED_NORMALIZED, 13687d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 0, 13697d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13707d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 8 /* 8 bytes per 4x4 block */ 13717d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13727d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13737d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_LA_LATC2, 13747d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_LA_LATC2", 13757d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE_ALPHA, 13767d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_UNSIGNED_NORMALIZED, 13777d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 4, 13787d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13797d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 16 /* 16 bytes per 4x4 block */ 13807d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13817d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák { 13827d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák MESA_FORMAT_SIGNED_LA_LATC2, 13837d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák "MESA_FORMAT_SIGNED_LA_LATC2", 13847d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_LUMINANCE_ALPHA, 13857d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák GL_SIGNED_NORMALIZED, 13867d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 0, 0, 0, 4, 13877d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 0, 0, 0, 0, 13887d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák 4, 4, 16 /* 16 bytes per 4x4 block */ 13897d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák }, 13900be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1391d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu { 1392d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu MESA_FORMAT_ETC1_RGB8, 1393d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu "MESA_FORMAT_ETC1_RGB8", 1394d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu GL_RGB, 1395d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu GL_UNSIGNED_NORMALIZED, 1396d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 8, 8, 8, 0, 1397d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 0, 0, 0, 0, 0, 1398d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 4, 4, 8 /* 8 bytes per 4x4 block */ 1399d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu }, 1400d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 14010be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák /* Signed formats from EXT_texture_snorm that are not in GL3.1 */ 14020be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14030be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A8, 14040be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_A8", 14050be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_ALPHA, 14060be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14070be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 8, 14080be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 0, 14090be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14100be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14110be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14120be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L8, 14130be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_L8", 14140be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE, 14150be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14160be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14170be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 8, 0, 0, 0, 0, 14180be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14190be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14200be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14210be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL88, 14220be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_AL88", 14230be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE_ALPHA, 14240be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14250be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 8, 14260be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 8, 0, 0, 0, 0, 14270be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14280be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14290be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14300be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I8, 14310be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_I8", 14320be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_INTENSITY, 14330be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14340be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14350be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 8, 0, 0, 0, 14360be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 1 14370be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14380be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14390be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_A16, 14400be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_A16", 14410be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_ALPHA, 14420be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14430be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 16, 14440be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 0, 14450be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14460be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14470be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14480be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_L16, 14490be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_L16", 14500be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE, 14510be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14520be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14530be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 16, 0, 0, 0, 0, 14540be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14550be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14560be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14570be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_AL1616, 14580be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_AL1616", 14590be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_LUMINANCE_ALPHA, 14600be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14610be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 16, 14620be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 16, 0, 0, 0, 0, 14630be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 4 14640be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák }, 14650be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák { 14660be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák MESA_FORMAT_SIGNED_I16, 14670be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák "MESA_FORMAT_SIGNED_I16", 14680be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_INTENSITY, 14690be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák GL_SIGNED_NORMALIZED, 14700be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 0, 0, 0, 14710be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 0, 16, 0, 0, 0, 14720be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák 1, 1, 2 14739d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák }, 14749d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák { 14759d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák MESA_FORMAT_RGB9_E5_FLOAT, 14769d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák "MESA_FORMAT_RGB9_E5", 14779d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák GL_RGB, 14789d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák GL_FLOAT, 14799d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 9, 9, 9, 0, 14809d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 0, 0, 0, 0, 0, 14819d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 1, 1, 4 14829d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák }, 1483631d23daa91c569bf268a2191bd466df73a64263Marek Olšák { 1484631d23daa91c569bf268a2191bd466df73a64263Marek Olšák MESA_FORMAT_R11_G11_B10_FLOAT, 1485631d23daa91c569bf268a2191bd466df73a64263Marek Olšák "MESA_FORMAT_R11_G11_B10_FLOAT", 1486631d23daa91c569bf268a2191bd466df73a64263Marek Olšák GL_RGB, 1487631d23daa91c569bf268a2191bd466df73a64263Marek Olšák GL_FLOAT, 1488631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 11, 11, 10, 0, 1489631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 0, 0, 0, 0, 0, 1490631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 1, 1, 4 1491631d23daa91c569bf268a2191bd466df73a64263Marek Olšák }, 14921165280cbd37dee1e499358633478ab869de21dfMarek Olšák /* ARB_depth_buffer_float */ 14931165280cbd37dee1e499358633478ab869de21dfMarek Olšák { 14941165280cbd37dee1e499358633478ab869de21dfMarek Olšák MESA_FORMAT_Z32_FLOAT, /* Name */ 14951165280cbd37dee1e499358633478ab869de21dfMarek Olšák "MESA_FORMAT_Z32_FLOAT", /* StrName */ 14961165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_DEPTH_COMPONENT, /* BaseFormat */ 14971165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_FLOAT, /* DataType */ 14981165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 14991165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 32, 0, /* Lum/Int/Index/Depth/StencilBits */ 15001165280cbd37dee1e499358633478ab869de21dfMarek Olšák 1, 1, 4 /* BlockWidth/Height,Bytes */ 15011165280cbd37dee1e499358633478ab869de21dfMarek Olšák }, 15021165280cbd37dee1e499358633478ab869de21dfMarek Olšák { 15031165280cbd37dee1e499358633478ab869de21dfMarek Olšák MESA_FORMAT_Z32_FLOAT_X24S8, /* Name */ 15041165280cbd37dee1e499358633478ab869de21dfMarek Olšák "MESA_FORMAT_Z32_FLOAT_X24S8", /* StrName */ 15051165280cbd37dee1e499358633478ab869de21dfMarek Olšák GL_DEPTH_STENCIL, /* BaseFormat */ 1506ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt /* DataType here is used to answer GL_TEXTURE_DEPTH_TYPE queries, and is 1507ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt * never used for stencil because stencil is always GL_UNSIGNED_INT. 1508ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt */ 1509ed945b0bc73356ff8aa4f73616738e5926f73599Eric Anholt GL_FLOAT, /* DataType */ 15101165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 0, /* Red/Green/Blue/AlphaBits */ 15111165280cbd37dee1e499358633478ab869de21dfMarek Olšák 0, 0, 0, 32, 8, /* Lum/Int/Index/Depth/StencilBits */ 15121165280cbd37dee1e499358633478ab869de21dfMarek Olšák 1, 1, 8 /* BlockWidth/Height,Bytes */ 15131165280cbd37dee1e499358633478ab869de21dfMarek Olšák }, 1514f449be660e70aac2aefd2ce84581e137de25520bDave Airlie { 1515f449be660e70aac2aefd2ce84581e137de25520bDave Airlie MESA_FORMAT_ARGB2101010_UINT, 1516f449be660e70aac2aefd2ce84581e137de25520bDave Airlie "MESA_FORMAT_ARGB2101010_UINT", 1517f449be660e70aac2aefd2ce84581e137de25520bDave Airlie GL_RGBA, 1518f449be660e70aac2aefd2ce84581e137de25520bDave Airlie GL_UNSIGNED_INT, 1519f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 10, 10, 10, 2, 1520f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 0, 0, 0, 0, 0, 1521f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 1, 1, 4 1522f449be660e70aac2aefd2ce84581e137de25520bDave Airlie }, 1523749c9060aca85277c388377d15fd6323ba20b78eJordan Justen { 1524749c9060aca85277c388377d15fd6323ba20b78eJordan Justen MESA_FORMAT_ABGR2101010_UINT, 1525749c9060aca85277c388377d15fd6323ba20b78eJordan Justen "MESA_FORMAT_ABGR2101010_UINT", 1526749c9060aca85277c388377d15fd6323ba20b78eJordan Justen GL_RGBA, 1527749c9060aca85277c388377d15fd6323ba20b78eJordan Justen GL_UNSIGNED_INT, 1528749c9060aca85277c388377d15fd6323ba20b78eJordan Justen 10, 10, 10, 2, 1529749c9060aca85277c388377d15fd6323ba20b78eJordan Justen 0, 0, 0, 0, 0, 1530749c9060aca85277c388377d15fd6323ba20b78eJordan Justen 1, 1, 4 1531749c9060aca85277c388377d15fd6323ba20b78eJordan Justen }, 1532813870fd9588de101f68728507cff726d7513695Brian Paul}; 1533813870fd9588de101f68728507cff726d7513695Brian Paul 1534813870fd9588de101f68728507cff726d7513695Brian Paul 1535813870fd9588de101f68728507cff726d7513695Brian Paul 1536813870fd9588de101f68728507cff726d7513695Brian Paulstatic const struct gl_format_info * 1537813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_info(gl_format format) 1538813870fd9588de101f68728507cff726d7513695Brian Paul{ 1539813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = &format_info[format]; 1540813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->Name == format); 1541813870fd9588de101f68728507cff726d7513695Brian Paul return info; 1542813870fd9588de101f68728507cff726d7513695Brian Paul} 1543813870fd9588de101f68728507cff726d7513695Brian Paul 1544813870fd9588de101f68728507cff726d7513695Brian Paul 1545bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul/** Return string name of format (for debugging) */ 1546bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paulconst char * 1547bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul_mesa_get_format_name(gl_format format) 1548bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul{ 1549bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1550bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul return info->StrName; 1551bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul} 1552bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1553bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1554bee6794eb126bc8af87726a2456d0ebc36eb721dBrian Paul 1555eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1556eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return bytes needed to store a block of pixels in the given format. 1557eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Normally, a block is 1x1 (a single pixel). But for compressed formats 1558eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * a block may be 4x4 or 8x4, etc. 1559e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam Jackson * 1560e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam Jackson * Note: not GLuint, so as not to coerce math to unsigned. cf. fdo #37351 1561eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 1562e8b1c6d6f55f5be3bef25084fdd8b6127517e137Adam JacksonGLint 1563813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_bytes(gl_format format) 1564813870fd9588de101f68728507cff726d7513695Brian Paul{ 1565813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1566813870fd9588de101f68728507cff726d7513695Brian Paul ASSERT(info->BytesPerBlock); 1567db247dd7b37e22bf9545d8cb8360e06d68e50912Brian Paul ASSERT(info->BytesPerBlock <= MAX_PIXEL_BYTES || 1568db247dd7b37e22bf9545d8cb8360e06d68e50912Brian Paul _mesa_is_format_compressed(format)); 1569813870fd9588de101f68728507cff726d7513695Brian Paul return info->BytesPerBlock; 1570813870fd9588de101f68728507cff726d7513695Brian Paul} 1571813870fd9588de101f68728507cff726d7513695Brian Paul 1572813870fd9588de101f68728507cff726d7513695Brian Paul 1573eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1574eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return bits per component for the given format. 1575eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * \param format one of MESA_FORMAT_x 1576eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * \param pname the component, such as GL_RED_BITS, GL_TEXTURE_BLUE_BITS, etc. 1577eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 15785978cbdf7728df7952c9c04165ece23394a5fb95Brian PaulGLint 15795978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_bits(gl_format format, GLenum pname) 15805978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul{ 15815978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 15825978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 15835978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul switch (pname) { 1584edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RED_BITS: 15855978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_RED_SIZE: 1586edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_RED_SIZE_EXT: 1587edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: 15885978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->RedBits; 1589edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_GREEN_BITS: 15905978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_GREEN_SIZE: 1591edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_GREEN_SIZE_EXT: 1592edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 15935978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->GreenBits; 1594edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_BLUE_BITS: 15955978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_BLUE_SIZE: 1596edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_BLUE_SIZE_EXT: 1597edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 15985978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->BlueBits; 1599edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_ALPHA_BITS: 16005978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_ALPHA_SIZE: 1601edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_ALPHA_SIZE_EXT: 1602edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 16035978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->AlphaBits; 16045978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_INTENSITY_SIZE: 16055978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->IntensityBits; 16065978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_LUMINANCE_SIZE: 16075978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->LuminanceBits; 1608edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_INDEX_BITS: 16095978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->IndexBits; 1610edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_DEPTH_BITS: 16115978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_DEPTH_SIZE_ARB: 1612edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_DEPTH_SIZE_EXT: 1613edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 16145978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->DepthBits; 1615edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_STENCIL_BITS: 16165978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul case GL_TEXTURE_STENCIL_SIZE_EXT: 1617edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_RENDERBUFFER_STENCIL_SIZE_EXT: 1618edfd2f7c4f942ed0c1aa1238ab0684ee7dd889a2Brian Paul case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 16195978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->StencilBits; 16205978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul default: 16215978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul _mesa_problem(NULL, "bad pname in _mesa_get_format_bits()"); 16225978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return 0; 16235978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul } 16245978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul} 16255978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 16265978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 1627488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian PaulGLuint 1628488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul_mesa_get_format_max_bits(gl_format format) 1629488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul{ 1630488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1631488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul GLuint max = MAX2(info->RedBits, info->GreenBits); 1632488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->BlueBits); 1633488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->AlphaBits); 1634488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->LuminanceBits); 1635488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->IntensityBits); 1636488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->DepthBits); 1637488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul max = MAX2(max, info->StencilBits); 1638488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul return max; 1639488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul} 1640488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul 1641488d7fc67d36bc0e5247f5d011e8ad4c2dceb5a7Brian Paul 1642eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 1643eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * Return the data type (or more specifically, the data representation) 1644eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * for the given format. 1645eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * The return value will be one of: 1646eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_UNSIGNED_NORMALIZED = unsigned int representing [0,1] 1647eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_SIGNED_NORMALIZED = signed int representing [-1, 1] 1648eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_UNSIGNED_INT = an ordinary unsigned integer 1649f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul * GL_INT = an ordinary signed integer 1650eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul * GL_FLOAT = an ordinary float 1651eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 16525978cbdf7728df7952c9c04165ece23394a5fb95Brian PaulGLenum 16535978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul_mesa_get_format_datatype(gl_format format) 16545978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul{ 16555978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 16565978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul return info->DataType; 16575978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul} 16585978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 16595978cbdf7728df7952c9c04165ece23394a5fb95Brian Paul 1660eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** 166155d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * Return the basic format for the given type. The result will be one of 166255d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_RGB, GL_RGBA, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, 166355d232a81566cf7ab8855c42e2ef1a280276a04cIan Romanick * GL_YCBCR_MESA, GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL. 1664eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul */ 1665813870fd9588de101f68728507cff726d7513695Brian PaulGLenum 1666813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_get_format_base_format(gl_format format) 1667813870fd9588de101f68728507cff726d7513695Brian Paul{ 1668813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1669813870fd9588de101f68728507cff726d7513695Brian Paul return info->BaseFormat; 1670813870fd9588de101f68728507cff726d7513695Brian Paul} 1671813870fd9588de101f68728507cff726d7513695Brian Paul 1672813870fd9588de101f68728507cff726d7513695Brian Paul 16737b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul/** 16747b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * Return the block size (in pixels) for the given format. Normally 16757b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * the block size is 1x1. But compressed formats will have block sizes 16767b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * of 4x4 or 8x4 pixels, etc. 16777b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * \param bw returns block width in pixels 16787b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul * \param bh returns block height in pixels 16797b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul */ 16807b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paulvoid 16817b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul_mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh) 16827b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul{ 16837b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 16847b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul *bw = info->BlockWidth; 16857b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul *bh = info->BlockHeight; 16867b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul} 16877b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul 16887b16c43e436715bef9118fdb28ca8a9ad91b1e66Brian Paul 1689eb732b1bbb4e4bdd018ee9a1653a62fd8dce2d55Brian Paul/** Is the given format a compressed format? */ 1690813870fd9588de101f68728507cff726d7513695Brian PaulGLboolean 1691813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_is_format_compressed(gl_format format) 1692813870fd9588de101f68728507cff726d7513695Brian Paul{ 1693813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1694813870fd9588de101f68728507cff726d7513695Brian Paul return info->BlockWidth > 1 || info->BlockHeight > 1; 1695813870fd9588de101f68728507cff726d7513695Brian Paul} 1696813870fd9588de101f68728507cff726d7513695Brian Paul 1697813870fd9588de101f68728507cff726d7513695Brian Paul 1698813870fd9588de101f68728507cff726d7513695Brian Paul/** 1699e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler * Determine if the given format represents a packed depth/stencil buffer. 1700e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler */ 1701e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick BowlerGLboolean 1702e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler_mesa_is_format_packed_depth_stencil(gl_format format) 1703e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler{ 1704f57df7f2130dfe20a6f7e75cfc1f5d4e1717d098Nick Bowler const struct gl_format_info *info = _mesa_get_format_info(format); 1705e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1706f57df7f2130dfe20a6f7e75cfc1f5d4e1717d098Nick Bowler return info->BaseFormat == GL_DEPTH_STENCIL; 1707e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler} 1708e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1709e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler 1710e71a9042cb5e046072d2ea8fbd22a01de625bf8aNick Bowler/** 1711ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul * Is the given format a signed/unsigned integer color format? 1712f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul */ 1713f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian PaulGLboolean 1714412b9608838b872bc294569b3ee913343a7e66f6Brian Paul_mesa_is_format_integer_color(gl_format format) 1715f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul{ 1716f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1717ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul return (info->DataType == GL_INT || info->DataType == GL_UNSIGNED_INT) && 1718ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_DEPTH_COMPONENT && 1719ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_DEPTH_STENCIL && 1720ab50148fdafeb6496b4ab684e5b9a2355ccf542cBrian Paul info->BaseFormat != GL_STENCIL_INDEX; 1721f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul} 1722f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul 1723f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul 1724f5ed39e7e6dd31ea60477475d97d8a5ce6946cccBrian Paul/** 17259ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen * Is the given format an unsigned integer format? 17269ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen */ 17279ad8f431b2a47060bf05517246ab0fa8d249c800Jordan JustenGLboolean 17289ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen_mesa_is_format_unsigned(gl_format format) 17299ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen{ 17309ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen const struct gl_format_info *info = _mesa_get_format_info(format); 17319ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen return _mesa_is_type_unsigned(info->DataType); 17329ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen} 17339ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen 17349ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen 17359ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen/** 1736f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul * Return color encoding for given format. 1737f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul * \return GL_LINEAR or GL_SRGB 1738f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul */ 1739f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian PaulGLenum 1740f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul_mesa_get_format_color_encoding(gl_format format) 1741f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul{ 1742f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul /* XXX this info should be encoded in gl_format_info */ 1743f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul switch (format) { 1744f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGB8: 1745f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA8: 1746f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SARGB8: 1747f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SL8: 1748f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SLA8: 1749f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGB_DXT1: 1750f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT1: 1751f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT3: 1752f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul case MESA_FORMAT_SRGBA_DXT5: 1753f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul return GL_SRGB; 1754f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul default: 1755f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul return GL_LINEAR; 1756f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul } 1757f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul} 1758f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul 1759aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul 1760aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul/** 1761aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul * For an sRGB format, return the corresponding linear color space format. 1762aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul * For non-sRGB formats, return the format as-is. 1763aad7219f80e21739c521d58a6e32a14114ac0bb0Brian Paul */ 1764edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airliegl_format 1765edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie_mesa_get_srgb_format_linear(gl_format format) 1766edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie{ 1767edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie switch (format) { 1768edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGB8: 1769edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGB888; 1770edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1771edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA8: 1772edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA8888; 1773edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1774edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SARGB8: 1775edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_ARGB8888; 1776edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1777edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SL8: 1778edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_L8; 1779edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1780edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SLA8: 1781edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_AL88; 1782edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1783edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGB_DXT1: 1784edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGB_DXT1; 1785edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1786edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT1: 1787edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT1; 1788edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1789edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT3: 1790edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT3; 1791edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1792edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie case MESA_FORMAT_SRGBA_DXT5: 1793edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie format = MESA_FORMAT_RGBA_DXT5; 1794edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1795edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie default: 1796edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie break; 1797edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie } 1798edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie return format; 1799edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie} 1800edc2dd8e4788e556d445c9f59974ed95b33c2bbcDave Airlie 1801f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul 1802f7b5e616e07b5caa27e91bb5733a8a849d5963f6Brian Paul/** 18039a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul * If the given format is a compressed format, return a corresponding 18049a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul * uncompressed format. 18059a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul */ 18069a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paulgl_format 18079a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul_mesa_get_uncompressed_format(gl_format format) 18089a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul{ 18099a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul switch (format) { 18109a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGB_FXT1: 18119a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGB888; 18129a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_FXT1: 18139a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18149a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGB_DXT1: 18159a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGB_DXT1: 18169a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGB888; 18179a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT1: 18189a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT1: 18199a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18209a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT3: 18219a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT3: 18229a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18239a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RGBA_DXT5: 18249a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SRGBA_DXT5: 18259a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_RGBA8888; 18269a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RED_RGTC1: 18279a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_R8; 18289a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_RED_RGTC1: 18299a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_R8; 18309a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_RG_RGTC2: 18310a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul return MESA_FORMAT_GR88; 18329a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_RG_RGTC2: 18339a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_RG88_REV; 18349a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_L_LATC1: 18359a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_L8; 18369a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_L_LATC1: 18379a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_L8; 18389a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_LA_LATC2: 18399a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_AL88; 18409a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul case MESA_FORMAT_SIGNED_LA_LATC2: 18419a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return MESA_FORMAT_SIGNED_AL88; 1842d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 1843d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu return MESA_FORMAT_RGB888; 18449a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul default: 18459a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul#ifdef DEBUG 18469a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul assert(!_mesa_is_format_compressed(format)); 18479a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul#endif 18489a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return format; 18499a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul } 18509a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul} 18519a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18529a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18539a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian PaulGLuint 18549a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul_mesa_format_num_components(gl_format format) 18559a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul{ 18569a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 18579a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul return ((info->RedBits > 0) + 18589a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->GreenBits > 0) + 18599a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->BlueBits > 0) + 18609a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->AlphaBits > 0) + 18619a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->LuminanceBits > 0) + 18629a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->IntensityBits > 0) + 18639a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->DepthBits > 0) + 18649a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul (info->StencilBits > 0)); 18659a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul} 18669a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18679a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul 18689a5b2899e058f3ec31a4eba5575eaa3fcfe1e3f5Brian Paul/** 18691c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul * Return number of bytes needed to store an image of the given size 18701c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul * in the given format. 18711c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul */ 18721c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian PaulGLuint 18731c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul_mesa_format_image_size(gl_format format, GLsizei width, 18741c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul GLsizei height, GLsizei depth) 18751c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul{ 18761c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1877040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* Strictly speaking, a conditional isn't needed here */ 18781c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 18797bfbd88d2cc4c7e7c1c2fe02b0d223f4a3ea8db2Brian Paul /* compressed format (2D only for now) */ 18801c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint bw = info->BlockWidth, bh = info->BlockHeight; 18811c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint wblocks = (width + bw - 1) / bw; 18821c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint hblocks = (height + bh - 1) / bh; 1883040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint sz = wblocks * hblocks * info->BytesPerBlock; 188413b0af721a6ff9e98d47a2c0a740fe843c034016Marek Olšák return sz * depth; 18851c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul } 18861c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul else { 18871c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul /* non-compressed */ 18881c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul const GLuint sz = width * height * depth * info->BytesPerBlock; 18891c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul return sz; 18901c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul } 18911c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul} 18921c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 18931c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 189474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul/** 189574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul * Same as _mesa_format_image_size() but returns a 64-bit value to 189674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul * accomodate very large textures. 189774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul */ 189874c324fdbaebb7accaee668f2bc54af4699d0025Brian Pauluint64_t 189974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul_mesa_format_image_size64(gl_format format, GLsizei width, 190074c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul GLsizei height, GLsizei depth) 190174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul{ 190274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 190374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* Strictly speaking, a conditional isn't needed here */ 190474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 190574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* compressed format (2D only for now) */ 190674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t bw = info->BlockWidth, bh = info->BlockHeight; 190774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t wblocks = (width + bw - 1) / bw; 190874c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t hblocks = (height + bh - 1) / bh; 190974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t sz = wblocks * hblocks * info->BytesPerBlock; 191013b0af721a6ff9e98d47a2c0a740fe843c034016Marek Olšák return sz * depth; 191174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul } 191274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul else { 191374c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul /* non-compressed */ 191474c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul const uint64_t sz = ((uint64_t) width * 191574c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul (uint64_t) height * 191674c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul (uint64_t) depth * 191774c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul info->BytesPerBlock); 191874c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul return sz; 191974c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul } 192074c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul} 192174c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul 192274c324fdbaebb7accaee668f2bc54af4699d0025Brian Paul 19231c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 1924040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian PaulGLint 1925040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul_mesa_format_row_stride(gl_format format, GLsizei width) 1926040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul{ 1927040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const struct gl_format_info *info = _mesa_get_format_info(format); 1928040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* Strictly speaking, a conditional isn't needed here */ 1929040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul if (info->BlockWidth > 1 || info->BlockHeight > 1) { 1930040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul /* compressed format */ 1931040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint bw = info->BlockWidth; 1932040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLuint wblocks = (width + bw - 1) / bw; 1933040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLint stride = wblocks * info->BytesPerBlock; 1934040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul return stride; 1935040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul } 1936040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul else { 1937040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul const GLint stride = width * info->BytesPerBlock; 1938040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul return stride; 1939040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul } 1940040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul} 1941040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 1942040fd7ed44c21a1faaa6475888e9365e8f0de42bBrian Paul 1943d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul/** 1944d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * Debug/test: check that all formats are handled in the 1945d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * _mesa_format_to_type_and_comps() function. When new pixel formats 1946d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * are added to Mesa, that function needs to be updated. 1947d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * This is a no-op after the first call. 1948d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul */ 1949d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paulstatic void 1950d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paulcheck_format_to_type_and_comps(void) 1951d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul{ 1952d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul gl_format f; 1953d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 1954d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul for (f = MESA_FORMAT_NONE + 1; f < MESA_FORMAT_COUNT; f++) { 1955d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul GLenum datatype = 0; 1956d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul GLuint comps = 0; 1957d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul /* This function will emit a problem/warning if the format is 1958d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul * not handled. 1959d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul */ 1960d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul _mesa_format_to_type_and_comps(f, &datatype, &comps); 1961d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul } 1962d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul} 1963d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 19641c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul 19651c7ec97ec47f294dcfc0c6a87ee26bb3565f95d4Brian Paul/** 1966813870fd9588de101f68728507cff726d7513695Brian Paul * Do sanity checking of the format info table. 1967813870fd9588de101f68728507cff726d7513695Brian Paul */ 1968813870fd9588de101f68728507cff726d7513695Brian Paulvoid 1969813870fd9588de101f68728507cff726d7513695Brian Paul_mesa_test_formats(void) 1970813870fd9588de101f68728507cff726d7513695Brian Paul{ 1971813870fd9588de101f68728507cff726d7513695Brian Paul GLuint i; 1972813870fd9588de101f68728507cff726d7513695Brian Paul 19736bf5daf331f13ec9503615a2578247e72b7d2cbbBrian Paul STATIC_ASSERT(Elements(format_info) == MESA_FORMAT_COUNT); 1974813870fd9588de101f68728507cff726d7513695Brian Paul 1975813870fd9588de101f68728507cff726d7513695Brian Paul for (i = 0; i < MESA_FORMAT_COUNT; i++) { 1976813870fd9588de101f68728507cff726d7513695Brian Paul const struct gl_format_info *info = _mesa_get_format_info(i); 1977813870fd9588de101f68728507cff726d7513695Brian Paul assert(info); 1978813870fd9588de101f68728507cff726d7513695Brian Paul 1979813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->Name == i); 1980813870fd9588de101f68728507cff726d7513695Brian Paul 1981e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul if (info->Name == MESA_FORMAT_NONE) 1982e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul continue; 1983e8eed5003b01fe8a4349711382411ac80b1c0aa3Brian Paul 1984813870fd9588de101f68728507cff726d7513695Brian Paul if (info->BlockWidth == 1 && info->BlockHeight == 1) { 1985813870fd9588de101f68728507cff726d7513695Brian Paul if (info->RedBits > 0) { 1986813870fd9588de101f68728507cff726d7513695Brian Paul GLuint t = info->RedBits + info->GreenBits 1987813870fd9588de101f68728507cff726d7513695Brian Paul + info->BlueBits + info->AlphaBits; 19880073f50cd47c48c706b4524364b9c0594804febfBrian Paul assert(t / 8 <= info->BytesPerBlock); 19896e0584932b3e556a0aecd2ca36f5ae41dc40a919Vinson Lee (void) t; 1990813870fd9588de101f68728507cff726d7513695Brian Paul } 1991813870fd9588de101f68728507cff726d7513695Brian Paul } 1992813870fd9588de101f68728507cff726d7513695Brian Paul 1993813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->DataType == GL_UNSIGNED_NORMALIZED || 1994813870fd9588de101f68728507cff726d7513695Brian Paul info->DataType == GL_SIGNED_NORMALIZED || 1995813870fd9588de101f68728507cff726d7513695Brian Paul info->DataType == GL_UNSIGNED_INT || 19960073f50cd47c48c706b4524364b9c0594804febfBrian Paul info->DataType == GL_INT || 1997e134eaa2c5619b47e944e33d053ee23c61da7aa9Marek Olšák info->DataType == GL_FLOAT || 1998ceb04b32baf13bbd62cf80496e5751612287ef15Marek Olšák /* Z32_FLOAT_X24S8 has DataType of GL_NONE */ 1999e134eaa2c5619b47e944e33d053ee23c61da7aa9Marek Olšák info->DataType == GL_NONE); 2000813870fd9588de101f68728507cff726d7513695Brian Paul 2001813870fd9588de101f68728507cff726d7513695Brian Paul if (info->BaseFormat == GL_RGB) { 2002813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits > 0); 2003813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits > 0); 2004813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits > 0); 2005813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 2006813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 2007813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 2008813870fd9588de101f68728507cff726d7513695Brian Paul } 2009813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_RGBA) { 2010813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits > 0); 2011813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits > 0); 2012813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits > 0); 2013813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits > 0); 2014813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 2015813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 2016813870fd9588de101f68728507cff726d7513695Brian Paul } 20175d1387b2da3626326410804026f8b92f1a121fdcIan Romanick else if (info->BaseFormat == GL_RG) { 20185d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->RedBits > 0); 20195d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->GreenBits > 0); 20205d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->BlueBits == 0); 20215d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->AlphaBits == 0); 20225d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->LuminanceBits == 0); 20235d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->IntensityBits == 0); 20245d1387b2da3626326410804026f8b92f1a121fdcIan Romanick } 20255d1387b2da3626326410804026f8b92f1a121fdcIan Romanick else if (info->BaseFormat == GL_RED) { 20265d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->RedBits > 0); 20275d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->GreenBits == 0); 20285d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->BlueBits == 0); 20295d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->AlphaBits == 0); 20305d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->LuminanceBits == 0); 20315d1387b2da3626326410804026f8b92f1a121fdcIan Romanick assert(info->IntensityBits == 0); 20325d1387b2da3626326410804026f8b92f1a121fdcIan Romanick } 2033813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_LUMINANCE) { 2034813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits == 0); 2035813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits == 0); 2036813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits == 0); 2037813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 2038813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits > 0); 2039813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits == 0); 2040813870fd9588de101f68728507cff726d7513695Brian Paul } 2041813870fd9588de101f68728507cff726d7513695Brian Paul else if (info->BaseFormat == GL_INTENSITY) { 2042813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->RedBits == 0); 2043813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->GreenBits == 0); 2044813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->BlueBits == 0); 2045813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->AlphaBits == 0); 2046813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->LuminanceBits == 0); 2047813870fd9588de101f68728507cff726d7513695Brian Paul assert(info->IntensityBits > 0); 2048813870fd9588de101f68728507cff726d7513695Brian Paul } 2049813870fd9588de101f68728507cff726d7513695Brian Paul } 2050d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul 2051d92e56460e0b6b6057097fc12c7f947528e58c13Brian Paul check_format_to_type_and_comps(); 2052813870fd9588de101f68728507cff726d7513695Brian Paul} 2053813870fd9588de101f68728507cff726d7513695Brian Paul 2054813870fd9588de101f68728507cff726d7513695Brian Paul 2055019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2056813870fd9588de101f68728507cff726d7513695Brian Paul/** 2057019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul * Return datatype and number of components per texel for the given gl_format. 2058019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul * Only used for mipmap generation code. 2059813870fd9588de101f68728507cff726d7513695Brian Paul */ 2060813870fd9588de101f68728507cff726d7513695Brian Paulvoid 2061019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul_mesa_format_to_type_and_comps(gl_format format, 2062019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul GLenum *datatype, GLuint *comps) 2063813870fd9588de101f68728507cff726d7513695Brian Paul{ 2064019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul switch (format) { 2065019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA8888: 2066019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA8888_REV: 2067019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB8888: 2068019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB8888_REV: 2069d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888: 2070d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888_REV: 207174d61d03b54d72217d463c248468cdcd09320efcBrian Paul case MESA_FORMAT_XRGB8888: 207279c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_XRGB8888_REV: 2073019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2074019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2075019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2076019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB888: 2077019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_BGR888: 2078019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2079019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2080019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2081019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB565: 2082019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB565_REV: 2083019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_5_6_5; 2084019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2085019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2086019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2087019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB4444: 2088019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB4444_REV: 2089019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_4_4_4_4; 2090019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2091019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2092019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2093019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB1555: 2094019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ARGB1555_REV: 2095019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT_1_5_5_5_REV; 2096019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2097019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2098019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2099621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák case MESA_FORMAT_ARGB2101010: 2100621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák *datatype = GL_UNSIGNED_INT_2_10_10_10_REV; 2101621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák *comps = 4; 2102621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák return; 2103621e5254ef6714520f106bd3707fe6ddc279aa0cMarek Olšák 210479c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_RGBA5551: 210579c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_UNSIGNED_SHORT_5_5_5_1; 210679c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 4; 210779c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 210879c65410c132c22b67b7635cee740dea9a736f80Brian Paul 21094d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák case MESA_FORMAT_AL44: 21104d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák *datatype = MESA_UNSIGNED_BYTE_4_4; 21114d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák *comps = 2; 21124d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák return; 21134d6994e40ebccf9428fc757d845e25c0e0c12cefMarek Olšák 2114019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_AL88: 2115019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_AL88_REV: 21160a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul case MESA_FORMAT_GR88: 2117b4aecc4e1861e60e40e14868719219084967e46dBrian Paul case MESA_FORMAT_RG88: 2118019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2119019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2120019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2121eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 2122eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick case MESA_FORMAT_AL1616: 2123eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick case MESA_FORMAT_AL1616_REV: 21245d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_RG1616: 21255d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_RG1616_REV: 2126eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick *datatype = GL_UNSIGNED_SHORT; 2127eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick *comps = 2; 2128eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick return; 2129eb437fabe017611e1f855fffa45f59cd38709be8Ian Romanick 21305d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_R16: 2131eb31837a0d4fa4fe115bb288ddb37cbedea954aeMarek Olšák case MESA_FORMAT_A16: 2132bb5ace68ce9e8bd171a39162ed6bd93632bd6619Marek Olšák case MESA_FORMAT_L16: 2133fd8aa7ac71699facf9839e2ae56b5e37579c6bccMarek Olšák case MESA_FORMAT_I16: 21345d1387b2da3626326410804026f8b92f1a121fdcIan Romanick *datatype = GL_UNSIGNED_SHORT; 21355d1387b2da3626326410804026f8b92f1a121fdcIan Romanick *comps = 1; 21365d1387b2da3626326410804026f8b92f1a121fdcIan Romanick return; 21375d1387b2da3626326410804026f8b92f1a121fdcIan Romanick 2138019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB332: 2139019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE_3_3_2; 2140019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2141019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2142019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2143019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_A8: 2144019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_L8: 2145019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_I8: 21465d1387b2da3626326410804026f8b92f1a121fdcIan Romanick case MESA_FORMAT_R8: 214779c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_S8: 2148813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_BYTE; 2149813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 1; 2150019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2151019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2152019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_YCBCR: 2153019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_YCBCR_REV: 2154019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_SHORT; 2155813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 2; 2156019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2157019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2158019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z24_S8: 215923c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *datatype = GL_UNSIGNED_INT_24_8_MESA; 216023c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *comps = 2; 2161019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2162019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2163019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_S8_Z24: 216423c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *datatype = GL_UNSIGNED_INT_8_24_REV_MESA; 216523c6eb035ba63d39652a10107f323d47b86b90f1Brian Paul *comps = 2; 2166019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2167019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2168019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z16: 2169813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_SHORT; 2170019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2171019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2172019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2173e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul case MESA_FORMAT_X8_Z24: 2174e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul *datatype = GL_UNSIGNED_INT; 2175e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul *comps = 1; 2176e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul return; 2177e4c700dbbf2a802f32bf62256c801105998c3729Brian Paul 2178c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca case MESA_FORMAT_Z24_X8: 2179c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca *datatype = GL_UNSIGNED_INT; 2180c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca *comps = 1; 2181c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca return; 2182c6164ff155189007c02aabb31549f5f4dc767d1bJosé Fonseca 2183019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_Z32: 2184019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_INT; 2185019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2186019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2187019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 21881165280cbd37dee1e499358633478ab869de21dfMarek Olšák case MESA_FORMAT_Z32_FLOAT: 21891165280cbd37dee1e499358633478ab869de21dfMarek Olšák *datatype = GL_FLOAT; 21901165280cbd37dee1e499358633478ab869de21dfMarek Olšák *comps = 1; 21911165280cbd37dee1e499358633478ab869de21dfMarek Olšák return; 21921165280cbd37dee1e499358633478ab869de21dfMarek Olšák 21931165280cbd37dee1e499358633478ab869de21dfMarek Olšák case MESA_FORMAT_Z32_FLOAT_X24S8: 21941165280cbd37dee1e499358633478ab869de21dfMarek Olšák *datatype = GL_FLOAT_32_UNSIGNED_INT_24_8_REV; 21951165280cbd37dee1e499358633478ab869de21dfMarek Olšák *comps = 1; 21961165280cbd37dee1e499358633478ab869de21dfMarek Olšák return; 21971165280cbd37dee1e499358633478ab869de21dfMarek Olšák 2198019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_DUDV8: 2199019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_BYTE; 2200813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 2; 2201019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2202019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 220379c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_SIGNED_R8: 22040be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_A8: 22050be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_L8: 22060be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_I8: 220779c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_BYTE; 220879c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 1; 220979c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 22100be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_RG88_REV: 22110be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_AL88: 221279c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_BYTE; 221379c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 2; 221479c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 2215019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SIGNED_RGBA8888: 2216019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SIGNED_RGBA8888_REV: 221779c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_SIGNED_RGBX8888: 2218813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_BYTE; 2219019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2220019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2221880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul 222279c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_RGBA_16: 222379c65410c132c22b67b7635cee740dea9a736f80Brian Paul *datatype = GL_UNSIGNED_SHORT; 222479c65410c132c22b67b7635cee740dea9a736f80Brian Paul *comps = 4; 222579c65410c132c22b67b7635cee740dea9a736f80Brian Paul return; 222679c65410c132c22b67b7635cee740dea9a736f80Brian Paul 22270be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_R16: 22280be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_A16: 22290be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_L16: 22300be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_I16: 2231880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2232880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 1; 2233880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 22340be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_GR1616: 22350be369975fdfa79bcb702d0c13aa0a221055f61bMarek Olšák case MESA_FORMAT_SIGNED_AL1616: 2236880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2237880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 2; 2238880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 2239880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul case MESA_FORMAT_SIGNED_RGB_16: 2240880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *datatype = GL_SHORT; 2241880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul *comps = 3; 2242880e04ba74603eda3480006f21bc8c2b24ac2f8cBrian Paul return; 2243c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul case MESA_FORMAT_SIGNED_RGBA_16: 2244c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul *datatype = GL_SHORT; 2245c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul *comps = 4; 2246c5b725489243e6a94ca5e31306cdfa93619bd200Brian Paul return; 2247019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2248019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_EXT_texture_sRGB 2249019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGB8: 2250019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2251019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2252019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2253019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA8: 2254019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SARGB8: 2255019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2256019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2257019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2258019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SL8: 2259019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2260813870fd9588de101f68728507cff726d7513695Brian Paul *comps = 1; 2261019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2262019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SLA8: 2263019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_UNSIGNED_BYTE; 2264019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2265019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2266019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 2267019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2268019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_texture_fxt1 2269019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FXT1: 2270019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FXT1: 2271019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 2272019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_texture_s3tc 2273019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_DXT1: 2274019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT1: 2275019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT3: 2276019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_DXT5: 2277019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#if FEATURE_EXT_texture_sRGB 2278019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGB_DXT1: 2279019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT1: 2280019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT3: 2281019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_SRGBA_DXT5: 2282019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul#endif 228369c78bf2c21c239d6064847dd0628f3526d68f9bIan Romanick#endif 22848d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_RED_RGTC1: 22858d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_SIGNED_RED_RGTC1: 22868d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_RG_RGTC2: 22878d47c919859e9cd90cfc04eb220ac8a5aa87048eDave Airlie case MESA_FORMAT_SIGNED_RG_RGTC2: 22887d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_L_LATC1: 22897d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_SIGNED_L_LATC1: 22907d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_LA_LATC2: 22917d16e2c0cd70dc5a23b746dbc8e44c58366b5353Marek Olšák case MESA_FORMAT_SIGNED_LA_LATC2: 2292d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 2293019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul /* XXX generate error instead? */ 2294813870fd9588de101f68728507cff726d7513695Brian Paul *datatype = GL_UNSIGNED_BYTE; 2295019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 0; 2296019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2297019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 2298019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FLOAT32: 2299019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2300019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2301019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2302019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGBA_FLOAT16: 2303019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2304019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 4; 2305019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2306019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FLOAT32: 2307019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2308019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2309019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2310019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_RGB_FLOAT16: 2311019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2312019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 3; 2313019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2314019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32: 23150ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_RG_FLOAT32: 2316019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2317019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2318019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2319019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16: 23200ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_RG_FLOAT16: 2321019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2322019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 2; 2323019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2324019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ALPHA_FLOAT32: 2325019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_FLOAT32: 2326019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_INTENSITY_FLOAT32: 23270ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_R_FLOAT32: 2328019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_FLOAT; 2329019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2330019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2331019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_ALPHA_FLOAT16: 2332019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_LUMINANCE_FLOAT16: 2333019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul case MESA_FORMAT_INTENSITY_FLOAT16: 23340ecbb0ab7472fe5cb33be13a8307e16f875254e5Marek Olšák case MESA_FORMAT_R_FLOAT16: 2335019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = GL_HALF_FLOAT_ARB; 2336019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2337019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul return; 2338019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul 23397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT8: 23407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT8: 23417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT8: 23427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 23437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT8: 23467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 23477a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23487a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23497a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23507a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT16: 23517a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT16: 23527a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT16: 23537a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 23547a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT16: 23577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 23587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_UINT32: 23617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_UINT32: 23627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_UINT32: 23637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 23647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_UINT32: 23677a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 23687a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23697a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23707a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT8: 23717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT8: 23727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT8: 23737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT8: 23777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 23787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT16: 23827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT16: 23837a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT16: 23847a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 23857a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23867a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT16: 23887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 23897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 23907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 23927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_ALPHA_INT32: 23937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_INT32: 23947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_INTENSITY_INT32: 23957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 23967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 23977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 23987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_LUMINANCE_ALPHA_INT32: 23997a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24007a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24017a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24027a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie 24037a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT8: 24047a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 24057a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24067a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24077a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT8: 24087a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 24097a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24107a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24117a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT8: 24127a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_BYTE; 24137a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24147a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2415abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT8: 2416abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_BYTE; 2417abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2418abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24197a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT16: 24207a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24217a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24227a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24237a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT16: 24247a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24257a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24267a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24277a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT16: 24287a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_SHORT; 24297a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24307a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2431abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT16: 2432abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_SHORT; 2433abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2434abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24357a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_INT32: 24367a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24377a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24387a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24397a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_INT32: 24407a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24417a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24427a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24437a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_INT32: 24447a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_INT; 24457a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24467a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2447abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_INT32: 2448abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_INT; 2449abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2450abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 2451abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 2452abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul /** 2453abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul * \name Non-normalized unsigned integer formats. 2454abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul */ 24557a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT8: 24567a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24577a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24587a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24597a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT8: 24607a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24617a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24627a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24637a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT8: 24647a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_BYTE; 24657a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24667a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2467abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT8: 2468abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_BYTE; 2469abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2470abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24717a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT16: 24727a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24737a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24747a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24757a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT16: 24767a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24777a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24787a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24797a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT16: 24807a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_SHORT; 24817a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24827a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2483abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT16: 2484abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_SHORT; 2485abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2486abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 24877a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_R_UINT32: 24887a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24897a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 1; 24907a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24917a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RG_UINT32: 24927a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24937a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 2; 24947a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 24957a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie case MESA_FORMAT_RGB_UINT32: 24967a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *datatype = GL_UNSIGNED_INT; 24977a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie *comps = 3; 24987a41291c3aa13fc71cc87966b414551f5c7c0e6aDave Airlie return; 2499abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul case MESA_FORMAT_RGBA_UINT32: 2500abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *datatype = GL_UNSIGNED_INT; 2501abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul *comps = 4; 2502abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul return; 2503abd5627a6a034885b0b01b995c73870da1361bb0Brian Paul 25049d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák case MESA_FORMAT_RGB9_E5_FLOAT: 25059d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák *datatype = GL_UNSIGNED_INT_5_9_9_9_REV; 25069d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák *comps = 3; 25079d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák return; 25089d7698c468f4ea7da8bb4ec00520c98f11cca0faMarek Olšák 2509631d23daa91c569bf268a2191bd466df73a64263Marek Olšák case MESA_FORMAT_R11_G11_B10_FLOAT: 2510631d23daa91c569bf268a2191bd466df73a64263Marek Olšák *datatype = GL_UNSIGNED_INT_10F_11F_11F_REV; 2511631d23daa91c569bf268a2191bd466df73a64263Marek Olšák *comps = 3; 2512631d23daa91c569bf268a2191bd466df73a64263Marek Olšák return; 2513631d23daa91c569bf268a2191bd466df73a64263Marek Olšák 2514f449be660e70aac2aefd2ce84581e137de25520bDave Airlie case MESA_FORMAT_ARGB2101010_UINT: 2515749c9060aca85277c388377d15fd6323ba20b78eJordan Justen case MESA_FORMAT_ABGR2101010_UINT: 2516f449be660e70aac2aefd2ce84581e137de25520bDave Airlie *datatype = GL_UNSIGNED_INT_2_10_10_10_REV; 2517f449be660e70aac2aefd2ce84581e137de25520bDave Airlie *comps = 4; 2518f449be660e70aac2aefd2ce84581e137de25520bDave Airlie return; 2519f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 252079c65410c132c22b67b7635cee740dea9a736f80Brian Paul case MESA_FORMAT_COUNT: 2521a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee assert(0); 2522a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee return; 2523a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee 2524a57e2c436bac4ce22d35681b45b513334dcb2fd9Vinson Lee case MESA_FORMAT_NONE: 252579c65410c132c22b67b7635cee740dea9a736f80Brian Paul /* For debug builds, warn if any formats are not handled */ 2526280750c5cabfc5f312c3abe0424f57b2edeb53dfVinson Lee#ifdef DEBUG 2527019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul default: 252879c65410c132c22b67b7635cee740dea9a736f80Brian Paul#endif 2529c9126d66fa8e535a53d45adda44c3275fa2e229fBrian Paul _mesa_problem(NULL, "bad format %s in _mesa_format_to_type_and_comps", 2530c9126d66fa8e535a53d45adda44c3275fa2e229fBrian Paul _mesa_get_format_name(format)); 2531019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *datatype = 0; 2532019bc97bd900a84f5f999afdb42928e92d33814bBrian Paul *comps = 1; 2533813870fd9588de101f68728507cff726d7513695Brian Paul } 2534813870fd9588de101f68728507cff726d7513695Brian Paul} 25355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt/** 25374ff212aac3764565675c9c83af378671162bc4f2Brian Paul * Check if a gl_format exactly matches a GL formaat/type combination 25384ff212aac3764565675c9c83af378671162bc4f2Brian Paul * such that we can use memcpy() from one to the other. 253906aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul * \param gl_format a MESA_FORMAT_x value 254006aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul * \param format the user-specified image format 254106aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul * \param type the user-specified image datatype 254206aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul * \param swapBytes typically the current pixel pack/unpack byteswap state 25434ff212aac3764565675c9c83af378671162bc4f2Brian Paul * \return GL_TRUE if the formats match, GL_FALSE otherwise. 25445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 25455f140bceda4c11b68c16ce175533f496434ff9a3Eric AnholtGLboolean 25465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt_mesa_format_matches_format_and_type(gl_format gl_format, 254706aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul GLenum format, GLenum type, 254806aa607ba76d940c48556935259c2a34eac7a8dcBrian Paul GLboolean swapBytes) 25495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt{ 25505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt const GLboolean littleEndian = _mesa_little_endian(); 25515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25525f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* Note: When reading a GL format/type combination, the format lists channel 25535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * assignments from most significant channel in the type to least 25544ff212aac3764565675c9c83af378671162bc4f2Brian Paul * significant. A type with _REV indicates that the assignments are 25554ff212aac3764565675c9c83af378671162bc4f2Brian Paul * swapped, so they are listed from least significant to most significant. 25565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * 25574ff212aac3764565675c9c83af378671162bc4f2Brian Paul * For sanity, please keep this switch statement ordered the same as the 25584ff212aac3764565675c9c83af378671162bc4f2Brian Paul * enums in formats.h. 25595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 25605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt switch (gl_format) { 25625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_NONE: 25645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_COUNT: 25655f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 25665f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25675f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA8888: 256851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8 && !swapBytes) 256951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 257051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 257151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8_REV && swapBytes) 2572952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2573952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2574952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !littleEndian) 2575952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2576952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 257751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8_REV 257851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul && !swapBytes) 257951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 258051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 258151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8 258251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul && swapBytes) 2583952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2584952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2585952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_BYTE && littleEndian) 2586952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2587952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2588952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 25895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 25905f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA8888_REV: 259151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8_REV && 259251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes) 259351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 259451aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 259551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8 && swapBytes) 259651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 259751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 259851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && littleEndian) 259951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 260051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 260151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8 && 260251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes) 260351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 260451aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 260551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8_REV && 260651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul swapBytes) 260751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 260851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 260951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_ABGR_EXT && type == GL_UNSIGNED_BYTE && !littleEndian) 261051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 261151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 261251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_FALSE; 26135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB8888: 261551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV && 261651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes) 261751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 261851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 261951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8 && swapBytes) 2620952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2621952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2622952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && littleEndian) 2623952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2624952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2625952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 26265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB8888_REV: 262851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8 && !swapBytes) 262951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return GL_TRUE; 263051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 263151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV && 263251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul swapBytes) 2633952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2634952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2635952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && !littleEndian) 2636952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_TRUE; 2637952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul 2638952ca0785236729b69e154b3b48783fc4d9a5526Brian Paul return GL_FALSE; 26395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2640d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888: 2641d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu case MESA_FORMAT_RGBX8888_REV: 2642d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu return GL_FALSE; 2643d4fcf67a3ac78c29448000486dadc2b4b1b2a56dChia-I Wu 26445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_XRGB8888: 26455f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_XRGB8888_REV: 26465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB888: 2649b019228d6bb00291315f2a4045fb30af89715433Brian Paul return format == GL_BGR && type == GL_UNSIGNED_BYTE && littleEndian; 26505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_BGR888: 2652966720f507f71d2dce1f3499d7b29d98b615effeBrian Paul return format == GL_RGB && type == GL_UNSIGNED_BYTE && littleEndian; 26535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB565: 265551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5 && !swapBytes; 265651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 26575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB565_REV: 26585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* Some of the 16-bit MESA_FORMATs that would seem to correspond to 26595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * GL_UNSIGNED_SHORT_* are byte-swapped instead of channel-reversed, 26605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt * according to formats.h, so they can't be matched. 26615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt */ 26625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB4444: 266551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_BGRA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && 266651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 266751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 26685f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB4444_REV: 26695f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26705f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA5551: 267251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGBA && type == GL_UNSIGNED_SHORT_5_5_5_1 && 267351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 26745f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26755f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB1555: 267651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_BGRA && type == GL_UNSIGNED_SHORT_1_5_5_5_REV && 267751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 267851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 26795f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB1555_REV: 26805f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26815f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26825f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL44: 26835f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26845f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL88: 26855f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE_ALPHA && type == GL_UNSIGNED_BYTE && littleEndian; 26865f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL88_REV: 26875f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26885f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL1616: 269051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE_ALPHA && type == GL_UNSIGNED_SHORT && littleEndian && !swapBytes; 26915f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_AL1616_REV: 26925f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 26935f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26945f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB332: 26955f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RGB && type == GL_UNSIGNED_BYTE_3_3_2; 26965f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 26975f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_A8: 26985f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_ALPHA && type == GL_UNSIGNED_BYTE; 26995f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_A16: 270051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_ALPHA && type == GL_UNSIGNED_SHORT && 270151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul littleEndian && !swapBytes; 27025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L8: 27035f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_LUMINANCE && type == GL_UNSIGNED_BYTE; 27045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L16: 270551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE && type == GL_UNSIGNED_SHORT && 270651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul littleEndian && !swapBytes; 27075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_I8: 27085f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_INTENSITY && type == GL_UNSIGNED_BYTE; 27095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_I16: 271051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_INTENSITY && type == GL_UNSIGNED_SHORT && 271151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul littleEndian && !swapBytes; 27125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_YCBCR: 27145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_YCBCR_REV: 27155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R8: 27185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return format == GL_RED && type == GL_UNSIGNED_BYTE; 27190a3c895f341ae458b09dcdc9cbd674600366a925Brian Paul case MESA_FORMAT_GR88: 2720c3a57841a3b51dc463b7fa5ca94b897917a86f20Brian Paul return format == GL_RG && type == GL_UNSIGNED_BYTE && littleEndian; 2721b4aecc4e1861e60e40e14868719219084967e46dBrian Paul case MESA_FORMAT_RG88: 27225f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27245f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R16: 272551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RED && type == GL_UNSIGNED_SHORT && littleEndian && 272651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG1616: 272851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RG && type == GL_UNSIGNED_SHORT && littleEndian && 272951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG1616_REV: 27315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27325f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ARGB2101010: 273451aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_BGRA && type == GL_UNSIGNED_INT_2_10_10_10_REV && 273551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z24_S8: 273851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_DEPTH_STENCIL && type == GL_UNSIGNED_INT_24_8 && 273951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z24_X8: 27415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_S8_Z24: 27425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z16: 274551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_DEPTH_COMPONENT && type == GL_UNSIGNED_SHORT && 274651aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_X8_Z24: 27495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32: 275251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_DEPTH_COMPONENT && type == GL_UNSIGNED_INT && 275351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 27545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27555f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_S8: 275694a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return format == GL_STENCIL_INDEX && type == GL_UNSIGNED_BYTE; 27575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGB8: 27595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA8: 27605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SARGB8: 27615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SL8: 27625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SLA8: 27635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGB_DXT1: 27645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT1: 27655f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT3: 27665f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SRGBA_DXT5: 27675f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27685f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27695f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FXT1: 27705f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FXT1: 27715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_DXT1: 27725f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT1: 27735f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT3: 27745f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_DXT5: 27755f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 27765f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27775f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FLOAT32: 277851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGBA && type == GL_FLOAT && !swapBytes; 27795f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_FLOAT16: 278051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGBA && type == GL_HALF_FLOAT && !swapBytes; 27815f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27825f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FLOAT32: 278351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGB && type == GL_FLOAT && !swapBytes; 27845f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_FLOAT16: 278551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGB && type == GL_HALF_FLOAT && !swapBytes; 27865f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27875f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_FLOAT32: 278851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_ALPHA && type == GL_FLOAT && !swapBytes; 27895f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_FLOAT16: 279051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_ALPHA && type == GL_HALF_FLOAT && !swapBytes; 27915f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27925f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_FLOAT32: 279351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE && type == GL_FLOAT && !swapBytes; 27945f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_FLOAT16: 279551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE && type == GL_HALF_FLOAT && !swapBytes; 27965f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 27975f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32: 279851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE_ALPHA && type == GL_FLOAT && !swapBytes; 27995f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16: 280051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_LUMINANCE_ALPHA && type == GL_HALF_FLOAT && !swapBytes; 28015f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_FLOAT32: 280351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_INTENSITY && type == GL_FLOAT && !swapBytes; 28045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_FLOAT16: 280551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_INTENSITY && type == GL_HALF_FLOAT && !swapBytes; 28065f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_FLOAT32: 280851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RED && type == GL_FLOAT && !swapBytes; 28095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_FLOAT16: 281051aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RED && type == GL_HALF_FLOAT && !swapBytes; 28115f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_FLOAT32: 281351aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RG && type == GL_FLOAT && !swapBytes; 28145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_FLOAT16: 281551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RG && type == GL_HALF_FLOAT && !swapBytes; 28165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: What do we want to do for GL_EXT_texture_integer? */ 28185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT8: 28195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT16: 28205f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_UINT32: 28215f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT8: 28225f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT16: 28235f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_ALPHA_INT32: 28245f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT8: 28275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT16: 28285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_UINT32: 28295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT8: 28305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT16: 28315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_INTENSITY_INT32: 28325f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT8: 28355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT16: 28365f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_UINT32: 28375f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT8: 28385f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT16: 28395f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_INT32: 28405f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28415f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28425f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT8: 28435f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT16: 28445f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_UINT32: 28455f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT8: 28465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT16: 28475f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LUMINANCE_ALPHA_INT32: 28485f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28495f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT8: 28515f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT8: 28525f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT8: 28535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT8: 28545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT16: 28555f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT16: 28565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT16: 28575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT16: 28585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_INT32: 28595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_INT32: 28605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_INT32: 28615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_INT32: 28625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28635f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28645f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT8: 28655f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT8: 28665f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT8: 28675f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT8: 28685f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT16: 28695f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT16: 28705f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT16: 28715f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT16: 28725f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R_UINT32: 28735f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_UINT32: 28745f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB_UINT32: 28755f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_UINT32: 28765f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 28775f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 28785f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_DUDV8: 28795f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_R8: 28805f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RG88_REV: 28815f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBX8888: 288294a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_FALSE; 288394a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 28845f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA8888: 288594a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul if (format == GL_RGBA && type == GL_BYTE && !littleEndian) 288694a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_TRUE; 288794a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 288894a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul if (format == GL_ABGR_EXT && type == GL_BYTE && littleEndian) 288994a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_TRUE; 289094a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 289194a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_FALSE; 289294a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 28935f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA8888_REV: 289494a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul if (format == GL_RGBA && type == GL_BYTE && littleEndian) 289594a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_TRUE; 289694a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 289794a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul if (format == GL_ABGR_EXT && type == GL_BYTE && !littleEndian) 289894a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_TRUE; 289994a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 290094a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return GL_FALSE; 290194a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul 29025f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_R16: 29035f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_GR1616: 29045f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGB_16: 29055f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RGBA_16: 29065f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGBA_16: 29075f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: SNORM */ 29085f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29095f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 29105f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RED_RGTC1: 29115f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RED_RGTC1: 29125f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RG_RGTC2: 29135f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_RG_RGTC2: 29145f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29155f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 29165f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_L_LATC1: 29175f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L_LATC1: 29185f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_LA_LATC2: 29195f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_LA_LATC2: 29205f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29215f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2922d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu case MESA_FORMAT_ETC1_RGB8: 2923d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu return GL_FALSE; 2924d4a38e86d4b4d66cca20ee63222f940cb73fa709Chia-I Wu 29255f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_A8: 29265f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L8: 29275f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_AL88: 29285f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_I8: 29295f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_A16: 29305f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_L16: 29315f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_AL1616: 29325f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_SIGNED_I16: 29335f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt /* FINISHME: SNORM */ 29345f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29355f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 2936f449be660e70aac2aefd2ce84581e137de25520bDave Airlie case MESA_FORMAT_ARGB2101010_UINT: 293794a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul return (format == GL_BGRA_INTEGER_EXT && 293894a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul type == GL_UNSIGNED_INT_2_10_10_10_REV && 293994a0d38c240625202d21a7c4522ad8a1c9bc1a89Brian Paul !swapBytes); 2940f449be660e70aac2aefd2ce84581e137de25520bDave Airlie 2941749c9060aca85277c388377d15fd6323ba20b78eJordan Justen case MESA_FORMAT_ABGR2101010_UINT: 2942749c9060aca85277c388377d15fd6323ba20b78eJordan Justen return (format == GL_RGBA_INTEGER_EXT && 2943749c9060aca85277c388377d15fd6323ba20b78eJordan Justen type == GL_UNSIGNED_INT_2_10_10_10_REV && 2944749c9060aca85277c388377d15fd6323ba20b78eJordan Justen !swapBytes); 2945749c9060aca85277c388377d15fd6323ba20b78eJordan Justen 29465f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_RGB9_E5_FLOAT: 294751aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGB && type == GL_UNSIGNED_INT_5_9_9_9_REV && 294851aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 294951aab798a3386cc1493fe879802f693ca1fa565eBrian Paul 29505f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_R11_G11_B10_FLOAT: 295151aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_RGB && type == GL_UNSIGNED_INT_10F_11F_11F_REV && 295251aab798a3386cc1493fe879802f693ca1fa565eBrian Paul !swapBytes; 29535f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 29545f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32_FLOAT: 295551aab798a3386cc1493fe879802f693ca1fa565eBrian Paul return format == GL_DEPTH_COMPONENT && type == GL_FLOAT && !swapBytes; 29565f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 29575f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt case MESA_FORMAT_Z32_FLOAT_X24S8: 29585f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29595f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt } 29605f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt 29615f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt return GL_FALSE; 29625f140bceda4c11b68c16ce175533f496434ff9a3Eric Anholt} 29639ad8f431b2a47060bf05517246ab0fa8d249c800Jordan Justen 2964