13192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz/**********************************************************
23192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * Copyright 2007-2009 VMware, Inc.  All rights reserved.
33192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz *
43192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * Permission is hereby granted, free of charge, to any person
53192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * obtaining a copy of this software and associated documentation
63192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * files (the "Software"), to deal in the Software without
73192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * restriction, including without limitation the rights to use, copy,
83192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * modify, merge, publish, distribute, sublicense, and/or sell copies
93192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * of the Software, and to permit persons to whom the Software is
103192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * furnished to do so, subject to the following conditions:
113192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz *
123192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * The above copyright notice and this permission notice shall be
133192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * included in all copies or substantial portions of the Software.
143192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz *
153192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
163192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
173192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
183192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
193192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
203192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
213192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
223192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * SOFTWARE.
233192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz *
243192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz **********************************************************/
253192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
263192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz/**
273192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * @file
283192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * SVGA Shader Token Definitions
293192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz *
303192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz * @author Michal Krol <michal@vmware.com>
313192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz */
323192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
333192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#ifndef ST_SHADER_SVGA_H
343192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define ST_SHADER_SVGA_H
353192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
363192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#include "pipe/p_compiler.h"
373192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
383192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_op
393192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
403192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned opcode:16;
413192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned control:8;
423192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned length:4;
433192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned predicated:1;
443192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned unused:1;
453192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned coissue:1;
463192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned is_reg:1;
473192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
483192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
493192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_reg
503192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
513192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned number:11;
523192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_hi:2;
533192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned relative:1;
543192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned unused:14;
553192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_lo:3;
563192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned is_reg:1;
573192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
583192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
59a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9Ilia Mirkinstatic inline unsigned
603192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzsh_reg_type( struct sh_reg reg )
613192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
623192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   return reg.type_lo | (reg.type_hi << 3);
633192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz}
643192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
653192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_cdata
663192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
673192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   float xyzw[4];
683192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
693192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
703192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_def
713192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
723192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
733192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_reg reg;
743192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_cdata cdata;
753192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
763192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
773192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_defb
783192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
793192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
803192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_reg reg;
813192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   uint data;
823192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
833192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
843192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_idata
853192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
863192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   int xyzw[4];
873192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
883192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
893192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_defi
903192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
913192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
923192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_reg reg;
933192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_idata idata;
943192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
953192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
963192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define PS_TEXTURETYPE_UNKNOWN   SVGA3DSAMP_UNKNOWN
973192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define PS_TEXTURETYPE_2D        SVGA3DSAMP_2D
983192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define PS_TEXTURETYPE_CUBE      SVGA3DSAMP_CUBE
993192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#define PS_TEXTURETYPE_VOLUME    SVGA3DSAMP_VOLUME
1003192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
101ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonsecastruct sh_sampleinfo
1023192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1033192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned unused:27;
1043192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned texture_type:4;
1053192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned is_reg:1;
1063192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1073192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
108ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonsecastruct sh_semantic
1093192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
110ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca   unsigned usage:4;
111ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca   unsigned unused1:12;
1123192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned usage_index:4;
113ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca   unsigned unused2:11;
114ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca   unsigned is_reg:1;
1153192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1163192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
117ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_WRITEMASK_0              0x1
118ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_WRITEMASK_1              0x2
119ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_WRITEMASK_2              0x4
120ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_WRITEMASK_3              0x8
121ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_WRITEMASK_ALL            0xf
122ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca
123ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_DSTMOD_NONE              0x0
124ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_DSTMOD_SATURATE          0x1
125ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_DSTMOD_PARTIALPRECISION  0x2
126ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca#define SH_DSTMOD_MSAMPCENTROID     0x4
127ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca
1283192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_dstreg
1293192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1303192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned number:11;
1313192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_hi:2;
1323192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned relative:1;
1333192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned unused:2;
1343192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned write_mask:4;
1353192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned modifier:4;
1363192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned shift_scale:4;
1373192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_lo:3;
1383192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned is_reg:1;
1393192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1403192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
141a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9Ilia Mirkinstatic inline unsigned
1423192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzsh_dstreg_type( struct sh_dstreg reg )
1433192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1443192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   return reg.type_lo | (reg.type_hi << 3);
1453192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz}
1463192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1473192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_dcl
1483192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1493192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
1503192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   union {
151ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca      struct sh_sampleinfo sampleinfo;
152ea8f7bd2e40dc69dbde079a29c169c5371244aefJosé Fonseca      struct sh_semantic semantic;
1533192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   } u;
1543192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_dstreg reg;
1553192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1563192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1573192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_srcreg
1583192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1593192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned number:11;
1603192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_hi:2;
1613192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned relative:1;
1623192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned unused:2;
1633192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned swizzle_x:2;
1643192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned swizzle_y:2;
1653192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned swizzle_z:2;
1663192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned swizzle_w:2;
1673192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned modifier:4;
1683192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned type_lo:3;
1693192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   unsigned is_reg:1;
1703192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1713192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
172a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9Ilia Mirkinstatic inline unsigned
1733192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzsh_srcreg_type( struct sh_srcreg reg )
1743192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1753192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   return reg.type_lo | (reg.type_hi << 3);
1763192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz}
1773192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1783192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_dstop
1793192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1803192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
1813192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_dstreg dst;
1823192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1833192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1843192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_srcop
1853192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1863192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
1873192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src;
1883192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1893192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1903192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_src2op
1913192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1923192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
1933192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src0;
1943192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src1;
1953192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
1963192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
1973192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_unaryop
1983192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
1993192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
2003192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_dstreg dst;
2013192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src;
2023192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
2033192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
2043192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_binaryop
2053192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
2063192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
2073192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_dstreg dst;
2083192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src0;
2093192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src1;
2103192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
2113192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
2123192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantzstruct sh_trinaryop
2133192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz{
2143192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_op op;
2153192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_dstreg dst;
2163192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src0;
2173192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src1;
2183192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz   struct sh_srcreg src2;
2193192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz};
2203192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz
221f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonsecastruct sh_comment
222f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonseca{
223f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonseca   unsigned opcode:16;
224f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonseca   unsigned size:16;
225f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonseca};
226f3a0615fb0452f11f4db88861b30b2177bdd948aJosé Fonseca
2273192633d4abe262d413e41feb871fe8deed409d8Jakob Bornecrantz#endif /* ST_SHADER_SVGA_H */
228