00001 /* 00002 Copyright (C) Intel Corp. 2006. All Rights Reserved. 00003 Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to 00004 develop this 3D driver. 00005 00006 Permission is hereby granted, free of charge, to any person obtaining 00007 a copy of this software and associated documentation files (the 00008 "Software"), to deal in the Software without restriction, including 00009 without limitation the rights to use, copy, modify, merge, publish, 00010 distribute, sublicense, and/or sell copies of the Software, and to 00011 permit persons to whom the Software is furnished to do so, subject to 00012 the following conditions: 00013 00014 The above copyright notice and this permission notice (including the 00015 next paragraph) shall be included in all copies or substantial 00016 portions of the Software. 00017 00018 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00019 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00020 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00021 IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 00022 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 00023 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00024 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00025 00026 **********************************************************************/ 00027 /* 00028 * Authors: 00029 * Keith Whitwell <keith@tungstengraphics.com> 00030 */ 00031 00032 00033 #ifndef BRW_VS_H 00034 #define BRW_VS_H 00035 00036 00037 #include "brw_context.h" 00038 #include "brw_eu.h" 00039 00040 00041 struct brw_vs_prog_key { 00042 unsigned program_string_id; 00043 unsigned nr_userclip:4; 00044 unsigned copy_edgeflag:1; 00045 unsigned know_w_is_one:1; 00046 unsigned pad:26; 00047 }; 00048 00049 00050 struct brw_vs_compile { 00051 struct brw_compile func; 00052 struct brw_vs_prog_key key; 00053 struct brw_vs_prog_data prog_data; 00054 00055 const struct brw_vertex_program *vp; 00056 00057 unsigned nr_inputs; 00058 00059 unsigned first_output; 00060 unsigned nr_outputs; 00061 00062 unsigned first_tmp; 00063 unsigned last_tmp; 00064 00065 struct brw_reg r0; 00066 struct brw_reg r1; 00067 struct brw_reg regs[12][128]; 00068 struct brw_reg tmp; 00069 struct brw_reg stack; 00070 00071 struct { 00072 boolean used_in_src; 00073 struct brw_reg reg; 00074 } output_regs[128]; 00075 00076 struct brw_reg userplane[6]; 00077 00078 }; 00079 00080 void brw_vs_emit( struct brw_vs_compile *c ); 00081 00082 #endif