diff options
Diffstat (limited to 'src/gallium/drivers/i965/brw_clip.h')
-rw-r--r-- | src/gallium/drivers/i965/brw_clip.h | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/src/gallium/drivers/i965/brw_clip.h b/src/gallium/drivers/i965/brw_clip.h deleted file mode 100644 index f123b73c063..00000000000 --- a/src/gallium/drivers/i965/brw_clip.h +++ /dev/null | |||
@@ -1,197 +0,0 @@ | |||
1 | /* | ||
2 | Copyright (C) Intel Corp. 2006. All Rights Reserved. | ||
3 | Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to | ||
4 | develop this 3D driver. | ||
5 | |||
6 | Permission is hereby granted, free of charge, to any person obtaining | ||
7 | a copy of this software and associated documentation files (the | ||
8 | "Software"), to deal in the Software without restriction, including | ||
9 | without limitation the rights to use, copy, modify, merge, publish, | ||
10 | distribute, sublicense, and/or sell copies of the Software, and to | ||
11 | permit persons to whom the Software is furnished to do so, subject to | ||
12 | the following conditions: | ||
13 | |||
14 | The above copyright notice and this permission notice (including the | ||
15 | next paragraph) shall be included in all copies or substantial | ||
16 | portions of the Software. | ||
17 | |||
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
21 | IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE | ||
22 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
24 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
25 | |||
26 | **********************************************************************/ | ||
27 | /* | ||
28 | * Authors: | ||
29 | * Keith Whitwell <keith@tungstengraphics.com> | ||
30 | */ | ||
31 | |||
32 | #ifndef BRW_CLIP_H | ||
33 | #define BRW_CLIP_H | ||
34 | |||
35 | #include "pipe/p_state.h" | ||
36 | #include "brw_reg.h" | ||
37 | #include "brw_eu.h" | ||
38 | |||
39 | #define MAX_VERTS (3+6+6) | ||
40 | |||
41 | /* Note that if unfilled primitives are being emitted, we have to fix | ||
42 | * up polygon offset and flatshading at this point: | ||
43 | */ | ||
44 | struct brw_clip_prog_key { | ||
45 | GLuint nr_attrs:6; | ||
46 | GLuint primitive:4; | ||
47 | GLuint nr_userclip:3; | ||
48 | GLuint do_flat_shading:1; | ||
49 | GLuint do_unfilled:1; | ||
50 | GLuint fill_cw:2; /* includes cull information */ | ||
51 | GLuint fill_ccw:2; /* includes cull information */ | ||
52 | GLuint offset_cw:1; | ||
53 | GLuint offset_ccw:1; | ||
54 | GLuint copy_bfc_cw:1; | ||
55 | GLuint copy_bfc_ccw:1; | ||
56 | GLuint clip_mode:3; | ||
57 | GLuint output_hpos:6; /* not always zero? */ | ||
58 | |||
59 | GLuint output_color0:6; | ||
60 | GLuint output_color1:6; | ||
61 | GLuint output_bfc0:6; | ||
62 | GLuint output_bfc1:6; | ||
63 | GLuint output_edgeflag:6; | ||
64 | GLuint pad1:2; | ||
65 | |||
66 | GLfloat offset_factor; | ||
67 | GLfloat offset_units; | ||
68 | }; | ||
69 | |||
70 | struct brw_clip_prog_data { | ||
71 | GLuint curb_read_length; /* user planes? */ | ||
72 | GLuint clip_mode; | ||
73 | GLuint urb_read_length; | ||
74 | GLuint total_grf; | ||
75 | }; | ||
76 | |||
77 | #define CLIP_LINE 0 | ||
78 | #define CLIP_POINT 1 | ||
79 | #define CLIP_FILL 2 | ||
80 | #define CLIP_CULL 3 | ||
81 | |||
82 | |||
83 | #define PRIM_MASK (0x1f) | ||
84 | |||
85 | struct brw_clip_compile { | ||
86 | struct brw_compile func; | ||
87 | struct brw_clip_prog_key key; | ||
88 | struct brw_clip_prog_data prog_data; | ||
89 | |||
90 | struct { | ||
91 | struct brw_reg R0; | ||
92 | struct brw_reg vertex[MAX_VERTS]; | ||
93 | |||
94 | struct brw_reg t; | ||
95 | struct brw_reg t0, t1; | ||
96 | struct brw_reg dp0, dp1; | ||
97 | |||
98 | struct brw_reg dpPrev; | ||
99 | struct brw_reg dp; | ||
100 | struct brw_reg loopcount; | ||
101 | struct brw_reg nr_verts; | ||
102 | struct brw_reg planemask; | ||
103 | |||
104 | struct brw_reg inlist; | ||
105 | struct brw_reg outlist; | ||
106 | struct brw_reg freelist; | ||
107 | |||
108 | struct brw_reg dir; | ||
109 | struct brw_reg tmp0, tmp1; | ||
110 | struct brw_reg offset; | ||
111 | |||
112 | struct brw_reg fixed_planes; | ||
113 | struct brw_reg plane_equation; | ||
114 | |||
115 | struct brw_reg ff_sync; | ||
116 | } reg; | ||
117 | |||
118 | /* 3 different ways of expressing vertex size, including | ||
119 | * key.nr_attrs. | ||
120 | */ | ||
121 | GLuint nr_regs; | ||
122 | GLuint nr_bytes; | ||
123 | |||
124 | GLuint first_tmp; | ||
125 | GLuint last_tmp; | ||
126 | |||
127 | GLboolean need_direction; | ||
128 | |||
129 | GLuint last_mrf; | ||
130 | |||
131 | GLuint header_position_offset; | ||
132 | |||
133 | GLuint nr_color_attrs; | ||
134 | GLuint offset_color0; | ||
135 | GLuint offset_color1; | ||
136 | GLuint offset_bfc0; | ||
137 | GLuint offset_bfc1; | ||
138 | |||
139 | GLuint offset_hpos; | ||
140 | GLuint offset_edgeflag; | ||
141 | }; | ||
142 | |||
143 | #define ATTR_SIZE (4*4) | ||
144 | |||
145 | /* Points are only culled, so no need for a clip routine, however it | ||
146 | * works out easier to have a dummy one. | ||
147 | */ | ||
148 | void brw_emit_unfilled_clip( struct brw_clip_compile *c ); | ||
149 | void brw_emit_tri_clip( struct brw_clip_compile *c ); | ||
150 | void brw_emit_line_clip( struct brw_clip_compile *c ); | ||
151 | void brw_emit_point_clip( struct brw_clip_compile *c ); | ||
152 | |||
153 | /* brw_clip_tri.c, for use by the unfilled clip routine: | ||
154 | */ | ||
155 | void brw_clip_tri_init_vertices( struct brw_clip_compile *c ); | ||
156 | void brw_clip_tri_flat_shade( struct brw_clip_compile *c ); | ||
157 | void brw_clip_tri( struct brw_clip_compile *c ); | ||
158 | void brw_clip_tri_emit_polygon( struct brw_clip_compile *c ); | ||
159 | void brw_clip_tri_alloc_regs( struct brw_clip_compile *c, | ||
160 | GLuint nr_verts ); | ||
161 | |||
162 | |||
163 | /* Utils: | ||
164 | */ | ||
165 | |||
166 | void brw_clip_interp_vertex( struct brw_clip_compile *c, | ||
167 | struct brw_indirect dest_ptr, | ||
168 | struct brw_indirect v0_ptr, /* from */ | ||
169 | struct brw_indirect v1_ptr, /* to */ | ||
170 | struct brw_reg t0, | ||
171 | GLboolean force_edgeflag ); | ||
172 | |||
173 | void brw_clip_init_planes( struct brw_clip_compile *c ); | ||
174 | |||
175 | void brw_clip_emit_vue(struct brw_clip_compile *c, | ||
176 | struct brw_indirect vert, | ||
177 | GLboolean allocate, | ||
178 | GLboolean eot, | ||
179 | GLuint header); | ||
180 | |||
181 | void brw_clip_kill_thread(struct brw_clip_compile *c); | ||
182 | |||
183 | struct brw_reg brw_clip_plane_stride( struct brw_clip_compile *c ); | ||
184 | struct brw_reg brw_clip_plane0_address( struct brw_clip_compile *c ); | ||
185 | |||
186 | void brw_clip_copy_colors( struct brw_clip_compile *c, | ||
187 | GLuint to, GLuint from ); | ||
188 | |||
189 | void brw_clip_init_clipmask( struct brw_clip_compile *c ); | ||
190 | |||
191 | struct brw_reg get_tmp( struct brw_clip_compile *c ); | ||
192 | |||
193 | void brw_clip_project_position(struct brw_clip_compile *c, | ||
194 | struct brw_reg pos ); | ||
195 | void brw_clip_ff_sync(struct brw_clip_compile *c); | ||
196 | void brw_clip_init_ff_sync(struct brw_clip_compile *c); | ||
197 | #endif | ||