1debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell/************************************************************************** 2debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * 3debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. 4debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * All Rights Reserved. 5debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * 6debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a 7debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * copy of this software and associated documentation files (the 8debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * "Software"), to deal in the Software without restriction, including 9debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * without limitation the rights to use, copy, modify, merge, publish, 10debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * distribute, sub license, and/or sell copies of the Software, and to 11debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * permit persons to whom the Software is furnished to do so, subject to 12debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * the following conditions: 13debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * 14debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * The above copyright notice and this permission notice (including the 15debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * next paragraph) shall be included in all copies or substantial portions 16debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * of the Software. 17debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * 18debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 22debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell * 26debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell **************************************************************************/ 27debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 28debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell#ifndef I915_STATE_INLINES_H 29debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell#define I915_STATE_INLINES_H 30debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 31687a8b96ef13658bbe779d0011ce1144844f1972José Fonseca#include "pipe/p_compiler.h" 32687a8b96ef13658bbe779d0011ce1144844f1972José Fonseca#include "pipe/p_defines.h" 33f6cecbb36164b060e194709938f4376a49795b93José Fonseca#include "util/u_debug.h" 34debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell#include "i915_reg.h" 35debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 36debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 37debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwellstatic INLINE unsigned 38debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwelli915_translate_compare_func(unsigned func) 39debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 40debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (func) { 41debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_NEVER: 42debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_NEVER; 43debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_LESS: 44debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_LESS; 45debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_LEQUAL: 46debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_LEQUAL; 47debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_GREATER: 48debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_GREATER; 49debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_GEQUAL: 50debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_GEQUAL; 51debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_NOTEQUAL: 52debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_NOTEQUAL; 53debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_EQUAL: 54debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_EQUAL; 55debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_FUNC_ALWAYS: 56debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_ALWAYS; 57debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 58debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return COMPAREFUNC_ALWAYS; 59debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 60debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 61debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 62debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwellstatic INLINE unsigned 636f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesini915_translate_shadow_compare_func(unsigned func) 646f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin{ 656f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin switch (func) { 666f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_NEVER: 676f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_ALWAYS; 686f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_LESS: 696f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_LEQUAL; 706f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_LEQUAL: 716f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_LESS; 726f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_GREATER: 736f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_GEQUAL; 746f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_GEQUAL: 756f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_GREATER; 766f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_NOTEQUAL: 776f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_EQUAL; 786f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_EQUAL: 796f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_NOTEQUAL; 806f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin case PIPE_FUNC_ALWAYS: 816f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_NEVER; 826f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin default: 836f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin return COMPAREFUNC_NEVER; 846f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin } 856f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin} 866f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesin 876f62a25448b765867ca9f424870abf5108d3a96dStéphane Marchesinstatic INLINE unsigned 88debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwelli915_translate_stencil_op(unsigned op) 89debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 90debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (op) { 91debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_KEEP: 92debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_KEEP; 93debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_ZERO: 94debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_ZERO; 95debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_REPLACE: 96debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_REPLACE; 97debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_INCR: 98debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_INCRSAT; 99debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_DECR: 100debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_DECRSAT; 101debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_INCR_WRAP: 102debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_INCR; 103debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_DECR_WRAP: 104debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_DECR; 105debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_STENCIL_OP_INVERT: 106debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_INVERT; 107debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 108debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return STENCILOP_ZERO; 109debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 110debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 111debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 112debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwellstatic INLINE unsigned 113debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwelli915_translate_blend_factor(unsigned factor) 114debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 115debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (factor) { 116debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_ZERO: 117debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_ZERO; 118debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_SRC_ALPHA: 119debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_SRC_ALPHA; 120debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_ONE: 121debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_ONE; 122debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_SRC_COLOR: 123debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_SRC_COLR; 124debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_SRC_COLOR: 125debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_SRC_COLR; 126debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_DST_COLOR: 127debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_DST_COLR; 128debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_DST_COLOR: 129debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_DST_COLR; 130debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_SRC_ALPHA: 131debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_SRC_ALPHA; 132debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_DST_ALPHA: 133debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_DST_ALPHA; 134debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_DST_ALPHA: 135debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_DST_ALPHA; 136debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE: 137debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_SRC_ALPHA_SATURATE; 138debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_CONST_COLOR: 139debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_CONST_COLOR; 140debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_CONST_COLOR: 141debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_CONST_COLOR; 142debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_CONST_ALPHA: 143debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_CONST_ALPHA; 144debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLENDFACTOR_INV_CONST_ALPHA: 145debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_INV_CONST_ALPHA; 146debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 147debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFACT_ZERO; 148debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 149debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 150debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 151debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwellstatic INLINE unsigned 152debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwelli915_translate_blend_func(unsigned mode) 153debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 154debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (mode) { 155debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLEND_ADD: 156debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFUNC_ADD; 157debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLEND_MIN: 158debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFUNC_MIN; 159debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLEND_MAX: 160debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFUNC_MAX; 161debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLEND_SUBTRACT: 162debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFUNC_SUBTRACT; 163debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_BLEND_REVERSE_SUBTRACT: 164debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return BLENDFUNC_REVERSE_SUBTRACT; 165debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 166debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return 0; 167debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 168debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 169debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 170debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 171debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwellstatic INLINE unsigned 172debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwelli915_translate_logic_op(unsigned opcode) 173debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 174debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (opcode) { 175debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_CLEAR: 176debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_CLEAR; 177debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_AND: 178debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_AND; 179debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_AND_REVERSE: 180debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_AND_RVRSE; 181debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_COPY: 182debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_COPY; 183debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_COPY_INVERTED: 184debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_COPY_INV; 185debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_AND_INVERTED: 186debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_AND_INV; 187debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_NOOP: 188debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_NOOP; 189debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_XOR: 190debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_XOR; 191debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_OR: 192debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_OR; 193debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_OR_INVERTED: 194debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_OR_INV; 195debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_NOR: 196debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_NOR; 197debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_EQUIV: 198debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_EQUIV; 199debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_INVERT: 200debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_INV; 201debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_OR_REVERSE: 202debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_OR_RVRSE; 203debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_NAND: 204debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_NAND; 205debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PIPE_LOGICOP_SET: 206debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_SET; 207debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 208debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return LOGICOP_SET; 209debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 210debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 211debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 212debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 213debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 21440a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwellstatic INLINE boolean i915_validate_vertices( unsigned hw_prim, unsigned nr ) 215debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell{ 21640a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell boolean ok; 217debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 218debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell switch (hw_prim) { 219debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_POINTLIST: 220debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 1); 221debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 222debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 223debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_LINELIST: 224debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 2) && (nr % 2) == 0; 225debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 226debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 227debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_LINESTRIP: 228debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 2); 229debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 230debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 231debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_TRILIST: 232debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 3) && (nr % 3) == 0; 233debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 234debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 235debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_TRISTRIP: 236debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 3); 237debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 238debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 239debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_TRIFAN: 240debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 3); 241debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 242debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 243debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell case PRIM3D_POLY: 244debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = (nr >= 3); 245debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(ok); 246debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 247debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell default: 248debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell assert(0); 249debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell ok = 0; 250debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell break; 251debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell } 252debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 253debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell return ok; 254debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell} 255debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell 256debb4884e3bdf1e632ff79e728a59c1920cc2d15Keith Whitwell#endif 257