Lines Matching refs:so
9 * Software is furnished to do so, subject to the following conditions:
89 struct nvc0_blend_stateobj *so = CALLOC_STRUCT(nvc0_blend_stateobj);
97 so->pipe = *cso;
133 SB_BEGIN_3D(so, LOGIC_OP_ENABLE, 2);
134 SB_DATA (so, 1);
135 SB_DATA (so, nvgl_logicop_func(cso->logicop_func));
137 SB_IMMED_3D(so, MACRO_BLEND_ENABLES, 0);
139 SB_IMMED_3D(so, LOGIC_OP_ENABLE, 0);
141 SB_IMMED_3D(so, BLEND_INDEPENDENT, indep_funcs);
142 SB_IMMED_3D(so, MACRO_BLEND_ENABLES, blend_en);
146 SB_BEGIN_3D(so, IBLEND_EQUATION_RGB(i), 6);
147 SB_DATA (so, nvgl_blend_eqn(cso->rt[i].rgb_func));
148 SB_DATA (so, nvc0_blend_fac(cso->rt[i].rgb_src_factor));
149 SB_DATA (so, nvc0_blend_fac(cso->rt[i].rgb_dst_factor));
150 SB_DATA (so, nvgl_blend_eqn(cso->rt[i].alpha_func));
151 SB_DATA (so, nvc0_blend_fac(cso->rt[i].alpha_src_factor));
152 SB_DATA (so, nvc0_blend_fac(cso->rt[i].alpha_dst_factor));
157 SB_BEGIN_3D(so, BLEND_EQUATION_RGB, 5);
158 SB_DATA (so, nvgl_blend_eqn(cso->rt[r].rgb_func));
159 SB_DATA (so, nvc0_blend_fac(cso->rt[r].rgb_src_factor));
160 SB_DATA (so, nvc0_blend_fac(cso->rt[r].rgb_dst_factor));
161 SB_DATA (so, nvgl_blend_eqn(cso->rt[r].alpha_func));
162 SB_DATA (so, nvc0_blend_fac(cso->rt[r].alpha_src_factor));
163 SB_BEGIN_3D(so, BLEND_FUNC_DST_ALPHA, 1);
164 SB_DATA (so, nvc0_blend_fac(cso->rt[r].alpha_dst_factor));
167 SB_IMMED_3D(so, COLOR_MASK_COMMON, !indep_masks);
169 SB_BEGIN_3D(so, COLOR_MASK(0), 8);
171 SB_DATA(so, nvc0_colormask(cso->rt[i].colormask));
173 SB_BEGIN_3D(so, COLOR_MASK(0), 1);
174 SB_DATA (so, nvc0_colormask(cso->rt[0].colormask));
184 SB_BEGIN_3D(so, MULTISAMPLE_CTRL, 1);
185 SB_DATA (so, ms);
187 assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
188 return so;
211 struct nvc0_rasterizer_stateobj *so;
214 so = CALLOC_STRUCT(nvc0_rasterizer_stateobj);
215 if (!so)
217 so->pipe = *cso;
223 SB_BEGIN_3D(so, SHADE_MODEL, 1);
224 SB_DATA (so, cso->flatshade ? NVC0_3D_SHADE_MODEL_FLAT :
226 SB_IMMED_3D(so, PROVOKING_VERTEX_LAST, !cso->flatshade_first);
227 SB_IMMED_3D(so, VERTEX_TWO_SIDE_ENABLE, cso->light_twoside);
229 SB_IMMED_3D(so, VERT_COLOR_CLAMP_EN, cso->clamp_vertex_color);
230 SB_BEGIN_3D(so, FRAG_COLOR_CLAMP_EN, 1);
231 SB_DATA (so, cso->clamp_fragment_color ? 0x11111111 : 0x00000000);
233 SB_IMMED_3D(so, MULTISAMPLE_ENABLE, cso->multisample);
235 SB_IMMED_3D(so, LINE_SMOOTH_ENABLE, cso->line_smooth);
237 SB_BEGIN_3D(so, LINE_WIDTH_SMOOTH, 1);
239 SB_BEGIN_3D(so, LINE_WIDTH_ALIASED, 1);
240 SB_DATA (so, fui(cso->line_width));
242 SB_IMMED_3D(so, LINE_STIPPLE_ENABLE, cso->line_stipple_enable);
244 SB_BEGIN_3D(so, LINE_STIPPLE_PATTERN, 1);
245 SB_DATA (so, (cso->line_stipple_pattern << 8) |
250 SB_IMMED_3D(so, VP_POINT_SIZE_EN, cso->point_size_per_vertex);
252 SB_BEGIN_3D(so, POINT_SIZE, 1);
253 SB_DATA (so, fui(cso->point_size));
260 SB_BEGIN_3D(so, POINT_COORD_REPLACE, 1);
261 SB_DATA (so, ((cso->sprite_coord_enable & 0xff) << 3) | reg);
262 SB_IMMED_3D(so, POINT_SPRITE_ENABLE, cso->point_quad_rasterization);
263 SB_IMMED_3D(so, POINT_SMOOTH_ENABLE, cso->point_smooth);
265 SB_BEGIN_3D(so, MACRO_POLYGON_MODE_FRONT, 1);
266 SB_DATA (so, nvgl_polygon_mode(cso->fill_front));
267 SB_BEGIN_3D(so, MACRO_POLYGON_MODE_BACK, 1);
268 SB_DATA (so, nvgl_polygon_mode(cso->fill_back));
269 SB_IMMED_3D(so, POLYGON_SMOOTH_ENABLE, cso->poly_smooth);
271 SB_BEGIN_3D(so, CULL_FACE_ENABLE, 3);
272 SB_DATA (so, cso->cull_face != PIPE_FACE_NONE);
273 SB_DATA (so, cso->front_ccw ? NVC0_3D_FRONT_FACE_CCW :
277 SB_DATA(so, NVC0_3D_CULL_FACE_FRONT_AND_BACK);
280 SB_DATA(so, NVC0_3D_CULL_FACE_FRONT);
284 SB_DATA(so, NVC0_3D_CULL_FACE_BACK);
288 SB_IMMED_3D(so, POLYGON_STIPPLE_ENABLE, cso->poly_stipple_enable);
289 SB_BEGIN_3D(so, POLYGON_OFFSET_POINT_ENABLE, 3);
290 SB_DATA (so, cso->offset_point);
291 SB_DATA (so, cso->offset_line);
292 SB_DATA (so, cso->offset_tri);
295 SB_BEGIN_3D(so, POLYGON_OFFSET_FACTOR, 1);
296 SB_DATA (so, fui(cso->offset_scale));
297 SB_BEGIN_3D(so, POLYGON_OFFSET_UNITS, 1);
298 SB_DATA (so, fui(cso->offset_units * 2.0f));
299 SB_BEGIN_3D(so, POLYGON_OFFSET_CLAMP, 1);
300 SB_DATA (so, fui(cso->offset_clamp));
312 SB_BEGIN_3D(so, VIEW_VOLUME_CLIP_CTRL, 1);
313 SB_DATA (so, reg);
315 assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
316 return (void *)so;
338 struct nvc0_zsa_stateobj *so = CALLOC_STRUCT(nvc0_zsa_stateobj);
340 so->pipe = *cso;
342 SB_IMMED_3D(so, DEPTH_TEST_ENABLE, cso->depth.enabled);
344 SB_IMMED_3D(so, DEPTH_WRITE_ENABLE, cso->depth.writemask);
345 SB_BEGIN_3D(so, DEPTH_TEST_FUNC, 1);
346 SB_DATA (so, nvgl_comparison_op(cso->depth.func));
350 SB_BEGIN_3D(so, STENCIL_ENABLE, 5);
351 SB_DATA (so, 1);
352 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].fail_op));
353 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].zfail_op));
354 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].zpass_op));
355 SB_DATA (so, nvgl_comparison_op(cso->stencil[0].func));
356 SB_BEGIN_3D(so, STENCIL_FRONT_FUNC_MASK, 2);
357 SB_DATA (so, cso->stencil[0].valuemask);
358 SB_DATA (so, cso->stencil[0].writemask);
360 SB_IMMED_3D(so, STENCIL_ENABLE, 0);
365 SB_BEGIN_3D(so, STENCIL_TWO_SIDE_ENABLE, 5);
366 SB_DATA (so, 1);
367 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].fail_op));
368 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].zfail_op));
369 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].zpass_op));
370 SB_DATA (so, nvgl_comparison_op(cso->stencil[1].func));
371 SB_BEGIN_3D(so, STENCIL_BACK_MASK, 2);
372 SB_DATA (so, cso->stencil[1].writemask);
373 SB_DATA (so, cso->stencil[1].valuemask);
376 SB_IMMED_3D(so, STENCIL_TWO_SIDE_ENABLE, 0);
379 SB_IMMED_3D(so, ALPHA_TEST_ENABLE, cso->alpha.enabled);
381 SB_BEGIN_3D(so, ALPHA_TEST_REF, 2);
382 SB_DATA (so, fui(cso->alpha.ref_value));
383 SB_DATA (so, nvgl_comparison_op(cso->alpha.func));
386 assert(so->size <= (sizeof(so->state) / sizeof(so->state[0])));
387 return (void *)so;