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