p_defines.h revision 37cf13ed9a429c755f121daa1776b1b30a985ab3
17234550cf759fdf3ab325465090c7f5eb3b5d320Brian/**************************************************************************
27234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
37234550cf759fdf3ab325465090c7f5eb3b5d320Brian * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
47234550cf759fdf3ab325465090c7f5eb3b5d320Brian * All Rights Reserved.
57234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
67234550cf759fdf3ab325465090c7f5eb3b5d320Brian * Permission is hereby granted, free of charge, to any person obtaining a
77234550cf759fdf3ab325465090c7f5eb3b5d320Brian * copy of this software and associated documentation files (the
87234550cf759fdf3ab325465090c7f5eb3b5d320Brian * "Software"), to deal in the Software without restriction, including
97234550cf759fdf3ab325465090c7f5eb3b5d320Brian * without limitation the rights to use, copy, modify, merge, publish,
107234550cf759fdf3ab325465090c7f5eb3b5d320Brian * distribute, sub license, and/or sell copies of the Software, and to
117234550cf759fdf3ab325465090c7f5eb3b5d320Brian * permit persons to whom the Software is furnished to do so, subject to
127234550cf759fdf3ab325465090c7f5eb3b5d320Brian * the following conditions:
137234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
147234550cf759fdf3ab325465090c7f5eb3b5d320Brian * The above copyright notice and this permission notice (including the
157234550cf759fdf3ab325465090c7f5eb3b5d320Brian * next paragraph) shall be included in all copies or substantial portions
167234550cf759fdf3ab325465090c7f5eb3b5d320Brian * of the Software.
177234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
187234550cf759fdf3ab325465090c7f5eb3b5d320Brian * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
197234550cf759fdf3ab325465090c7f5eb3b5d320Brian * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
207234550cf759fdf3ab325465090c7f5eb3b5d320Brian * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
217234550cf759fdf3ab325465090c7f5eb3b5d320Brian * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
227234550cf759fdf3ab325465090c7f5eb3b5d320Brian * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
237234550cf759fdf3ab325465090c7f5eb3b5d320Brian * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
247234550cf759fdf3ab325465090c7f5eb3b5d320Brian * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
257234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
267234550cf759fdf3ab325465090c7f5eb3b5d320Brian **************************************************************************/
277234550cf759fdf3ab325465090c7f5eb3b5d320Brian
28943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#ifndef PIPE_DEFINES_H
29943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_DEFINES_H
308e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
31943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_ONE                 0x1
32943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_COLOR           0x2
33943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_ALPHA           0x3
34943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_DST_ALPHA           0x4
35943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_DST_COLOR           0x5
36943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
37943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_CONST_COLOR         0x7
38943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_CONST_ALPHA         0x8
39943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC1_COLOR          0x9
40943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC1_ALPHA          0x0A
41943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_ZERO                0x11
42943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC_COLOR       0x12
43943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC_ALPHA       0x13
44943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_DST_ALPHA       0x14
45943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_DST_COLOR       0x15
46943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_CONST_COLOR     0x17
47943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_CONST_ALPHA     0x18
48943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC1_COLOR      0x19
49943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
508e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
51943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_ADD               0
52943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_SUBTRACT          1
53943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_REVERSE_SUBTRACT  2
54943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_MIN               3
55943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_MAX               4
568e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
57943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_CLEAR            0
58943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NOR              1
59943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND_INVERTED     2
60943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_COPY_INVERTED    3
61943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND_REVERSE      4
62943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_INVERT           5
63943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_XOR              6
64943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NAND             7
65943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND              8
66943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_EQUIV            9
67943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NOOP             10
68943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR_INVERTED      11
69943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_COPY             12
70943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR_REVERSE       13
71943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR               14
72943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_SET              15
738e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
7486352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_R  0x1
7586352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_G  0x2
7686352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_B  0x4
7786352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_A  0x8
785936b439e88308a2eabb8a5570e91dd8fff89397Brian#define PIPE_MASK_RGBA 0xf
795936b439e88308a2eabb8a5570e91dd8fff89397Brian
8086352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian
81efe6c50089e945902917c8091c92ce3a6155caacBrian/**
82efe6c50089e945902917c8091c92ce3a6155caacBrian * Inequality functions.  Used for depth test, stencil compare, alpha
83efe6c50089e945902917c8091c92ce3a6155caacBrian * test, shadow compare, etc.
84efe6c50089e945902917c8091c92ce3a6155caacBrian */
85efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_NEVER    0
86efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_LESS     1
87efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_EQUAL    2
88efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_LEQUAL   3
89efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_GREATER  4
90efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_NOTEQUAL 5
91efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_GEQUAL   6
92efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_ALWAYS   7
93008fb50174fb6717f3b71836427bc6be4e44613cBrian
942137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian/** Polygon fill mode */
952137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_FILL  0
962137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_LINE  1
972137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_POINT 2
982137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian
99f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian/** Polygon front/back window, also for culling */
100f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_NONE 0
101f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_CW   1
102f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_CCW  2
103f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_BOTH (PIPE_WINDING_CW | PIPE_WINDING_CCW)
1042137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian
105f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian/** Stencil ops */
106943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_KEEP       0
107943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_ZERO       1
108943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_REPLACE    2
109943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INCR       3
110943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_DECR       4
111943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INCR_WRAP  5
112943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_DECR_WRAP  6
113943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INVERT     7
114008fb50174fb6717f3b71836427bc6be4e44613cBrian
115eb147ed775bedec9d849cdc817f208b5fe5eade3Brian/** Texture types */
116eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEXTURE_1D   0
117eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEXTURE_2D   1
118eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEXTURE_3D   2
119eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEXTURE_CUBE 3
120eb147ed775bedec9d849cdc817f208b5fe5eade3Brian
121eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_X 0
122eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_X 1
123eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_Y 2
124eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_Y 3
125eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_Z 4
126eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_Z 5
127eb147ed775bedec9d849cdc817f208b5fe5eade3Brian
128943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_REPEAT                   0
129943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP                    1
130943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP_TO_EDGE            2
131943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP_TO_BORDER          3
132943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_REPEAT            4
133943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP             5
134943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE     6
135943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER   7
13602a47549ad182d28d330063d4f452108e3a4b452Brian
13778b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell/* Between mipmaps, ie mipfilter
13878b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell */
13978b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_NEAREST  0
14078b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_LINEAR   1
14178b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_NONE     2
14278b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell
14378b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell/* Within a mipmap, ie min/mag filter
14478b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell */
14578b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_FILTER_NEAREST      0
14678b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_FILTER_LINEAR       1
14778b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell//#define PIPE_TEX_FILTER_ANISO        2
14878b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell
14902a47549ad182d28d330063d4f452108e3a4b452Brian
150943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_COMPARE_NONE          0
151943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_COMPARE_R_TO_TEXTURE  1
1528f2888758129b0a40d71fa4ce10d606b4bcf7631Brian
15340a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_X   0
15440a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_X   1
15540a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_Y   2
15640a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_Y   3
15740a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_Z   4
15840a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_Z   5
15940a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_MAX     6
16040a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
161eb147ed775bedec9d849cdc817f208b5fe5eade3Brian
1625d69aeb0028f44d06093faede5c545908b0df89aBrian/**
16373daa688541ec88119804ad190ce5b429e50ea44Brian * Texture/surface image formats (preliminary)
1645d69aeb0028f44d06093faede5c545908b0df89aBrian */
1652691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell
1662691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell/* KW: Added lots of surface formats to support vertex element layout
1672691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell * definitions, and eventually render-to-vertex-buffer.  Could
1682691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell * consider making float/int/uint/scaled/normalized a separate
1692691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell * parameter, but on the other hand there are special cases like
1702691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell * z24s8, compressed textures, ycbcr, etc that won't fit that model.
1712691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell */
1722691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell
17366ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_NONE               0  /**< unstructured */
17466ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_A8_R8_G8_B8      2  /**< ubyte[4] ARGB */
17566ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_A1_R5_G5_B5      3  /**< 16-bit packed RGBA */
17666ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_A4_R4_G4_B4      4  /**< 16-bit packed RGBA */
17766ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_R5_G6_B5         5  /**< 16-bit packed RGB */
17866ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_L8               6  /**< ubyte luminance */
17966ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_A8               7  /**< ubyte alpha */
18066ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_I8               8  /**< ubyte intensity */
18159e7bfa1de77ab03ca174bdf82fe33ab36050ce7Brian#define PIPE_FORMAT_U_A8_L8            9  /**< ubyte alpha, luminance */
18266ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_S_R16_G16_B16_A16 10  /**< signed 16-bit RGBA (accum) */
18366ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_YCBCR             11
18466ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_YCBCR_REV         12
18566ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_Z16             13  /**< ushort Z/depth */
18666ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_Z32             14  /**< uint Z/depth */
18766ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_F_Z32             15  /**< float Z/depth */
18866ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_S8_Z24            16  /**< 8-bit stencil + 24-bit Z */
18966ae07854e7e6e9f56e0beb6b56a8c1429bfa3c6Brian#define PIPE_FORMAT_U_S8              17  /**< 8-bit stencil */
1902691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R64_FLOAT             0x20
1912691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R64G64_FLOAT          0x21
1922691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R64G64B64_FLOAT       0x22
1932691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R64G64B64A64_FLOAT    0x23
1942691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32_FLOAT             0x24
1952691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32_FLOAT          0x25
1962691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32_FLOAT       0x26
1972691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32A32_FLOAT    0x27
1982691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32_UNORM             0x28
1992691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32_UNORM          0x29
2002691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32_UNORM       0x2a
2012691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32A32_UNORM    0x2b
2022691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32_USCALED           0x2c
2032691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32_USCALED        0x2d
2042691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32_USCALED     0x2e
2052691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32A32_USCALED  0x2f
2062691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32_SNORM             0x30
2072691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32_SNORM          0x31
2082691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32_SNORM       0x32
2092691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32A32_SNORM    0x33
2102691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32_SSCALED           0x34
2112691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32_SSCALED        0x35
2122691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32_SSCALED     0x36
2132691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R32G32B32A32_SSCALED  0x37
2142691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16_UNORM             0x38
2152691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16_UNORM          0x39
2162691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16_UNORM       0x3a
2172691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16A16_UNORM    0x3b
2182691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16_USCALED           0x3c
2192691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16_USCALED        0x3d
2202691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16_USCALED     0x3e
2212691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16A16_USCALED  0x3f
2222691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16_SNORM             0x40
2232691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16_SNORM          0x41
2242691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16_SNORM       0x42
2252691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16A16_SNORM    0x43
2262691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16_SSCALED           0x44
2272691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16_SSCALED        0x45
2282691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16_SSCALED     0x46
2292691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R16G16B16A16_SSCALED  0x47
2302691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8_UNORM              0x48
2312691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8_UNORM            0x49
2322691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8_UNORM          0x4a
2332691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8A8_UNORM        0x4b
2342691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8_USCALED            0x4c
2352691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8_USCALED          0x4d
2362691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8_USCALED        0x4e
2372691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8A8_USCALED      0x4f
2382691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8_SNORM              0x50
2392691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8_SNORM            0x51
2402691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8_SNORM          0x52
2412691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8A8_SNORM        0x53
2422691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8_SSCALED            0x54
2432691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8_SSCALED          0x55
2442691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8_SSCALED        0x56
2452691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_R8G8B8A8_SSCALED      0x57
24673daa688541ec88119804ad190ce5b429e50ea44Brian
2472691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_COUNT                 0x58  /**< number of formats */
2482691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell
2492691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell/* Duplicated formats:
2502691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell */
2512691b187473ddb9c96541cd154dde19c35cbaabeKeith Whitwell#define PIPE_FORMAT_U_R8_G8_B8_A8      PIPE_FORMAT_R8G8B8A8_UNORM
2525d69aeb0028f44d06093faede5c545908b0df89aBrian
25348076dc784c910dfee1ebaa6970375495209b839Brian/**
2549ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian * Surface flags
25548076dc784c910dfee1ebaa6970375495209b839Brian */
2569ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_SURFACE_FLAG_TEXTURE 0x1
2579ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_SURFACE_FLAG_RENDER  0x2
2589ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian
2599ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian
2609ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian/**
2619ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian * Buffer flags
2629ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian */
2639ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_FLAG_READ    0x1
2649ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_FLAG_WRITE   0x2
2659ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian
2669ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_USE_TEXTURE         0x1
2679ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_USE_VERTEX_BUFFER   0x2
2689ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_USE_INDEX_BUFFER    0x4
2699ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian#define PIPE_BUFFER_USE_RENDER_TARGET   0x8
27048076dc784c910dfee1ebaa6970375495209b839Brian
27193d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell
27293d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell/**
27393d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell * Flush types:
27493d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell */
27593d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell#define PIPE_FLUSH_RENDER_CACHE  0x1
27693d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell#define PIPE_FLUSH_TEXTURE_CACHE  0x2
27793d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell
27840a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
27994a4910c9a1ef48470f45c01c379254cb033119fBrian/**
280c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian * Shaders
281c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian */
282c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_VERTEX   0
283c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_FRAGMENT 1
284c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_TYPES    2
285c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian
286c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian
287c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian/**
28894a4910c9a1ef48470f45c01c379254cb033119fBrian * Primitive types:
28994a4910c9a1ef48470f45c01c379254cb033119fBrian */
29094a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_POINTS          0
29194a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINES           1
29294a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINE_LOOP       2
29394a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINE_STRIP      3
29494a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLES       4
29594a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLE_STRIP  5
29694a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLE_FAN    6
29794a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_QUADS           7
29894a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_QUAD_STRIP      8
29994a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_POLYGON         9
30094a4910c9a1ef48470f45c01c379254cb033119fBrian
30140a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
30209fbb3837b6aa5dfc6c94f41ab5443820177c569Brian/**
30309fbb3837b6aa5dfc6c94f41ab5443820177c569Brian * Query object types
30409fbb3837b6aa5dfc6c94f41ab5443820177c569Brian */
30509fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_OCCLUSION_COUNTER     0
30609fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_PRIMITIVES_GENERATED  1
30709fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_PRIMITIVES_EMITTED    2
30809fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_TYPES                 3
30909fbb3837b6aa5dfc6c94f41ab5443820177c569Brian
31037cf13ed9a429c755f121daa1776b1b30a985ab3Brian
31137cf13ed9a429c755f121daa1776b1b30a985ab3Brian/**
31237cf13ed9a429c755f121daa1776b1b30a985ab3Brian * Pipe capabilities/queries
31337cf13ed9a429c755f121daa1776b1b30a985ab3Brian */
31437cf13ed9a429c755f121daa1776b1b30a985ab3Brian#define PIPE_PARAM_FS_NEEDS_POS  1
31537cf13ed9a429c755f121daa1776b1b30a985ab3Brian
31637cf13ed9a429c755f121daa1776b1b30a985ab3Brian
3177234550cf759fdf3ab325465090c7f5eb3b5d320Brian#endif
318