Path: blob/21.2-virgl/src/gallium/drivers/r300/r300_shader_semantics.h
4570 views
/*1* Copyright 2009 Marek Olšák <[email protected]>2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* on the rights to use, copy, modify, merge, publish, distribute, sub7* license, and/or sell copies of the Software, and to permit persons to whom8* the Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL17* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,18* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20* USE OR OTHER DEALINGS IN THE SOFTWARE. */2122#ifndef R300_SHADER_SEMANTICS_H23#define R300_SHADER_SEMANTICS_H2425#define ATTR_UNUSED (-1)26#define ATTR_COLOR_COUNT 227#define ATTR_GENERIC_COUNT 322829/* This structure contains information about what attributes are written by VS30* or read by FS. (but not both) It's much easier to work with than31* tgsi_shader_info.32*33* The variables contain indices to tgsi_shader_info semantics and those34* indices are nothing else than input/output register numbers. */35struct r300_shader_semantics {36int pos;37int psize;38int color[ATTR_COLOR_COUNT];39int bcolor[ATTR_COLOR_COUNT];40int face;41int generic[ATTR_GENERIC_COUNT];42int fog;43int wpos;4445int num_generic;46};4748static inline void r300_shader_semantics_reset(49struct r300_shader_semantics* info)50{51int i;5253info->pos = ATTR_UNUSED;54info->psize = ATTR_UNUSED;55info->face = ATTR_UNUSED;56info->fog = ATTR_UNUSED;57info->wpos = ATTR_UNUSED;5859for (i = 0; i < ATTR_COLOR_COUNT; i++) {60info->color[i] = ATTR_UNUSED;61info->bcolor[i] = ATTR_UNUSED;62}6364for (i = 0; i < ATTR_GENERIC_COUNT; i++) {65info->generic[i] = ATTR_UNUSED;66}6768info->num_generic = 0;69}7071#endif727374