Lines Matching refs:cso

87                         const struct pipe_blend_state *cso)
97 so->pipe = *cso;
100 if (cso->independent_blend_enable) {
101 for (r = 0; r < 8 && !cso->rt[r].blend_enable; ++r);
104 if (!cso->rt[i].blend_enable)
107 if (cso->rt[i].rgb_func != cso->rt[r].rgb_func ||
108 cso->rt[i].rgb_src_factor != cso->rt[r].rgb_src_factor ||
109 cso->rt[i].rgb_dst_factor != cso->rt[r].rgb_dst_factor ||
110 cso->rt[i].alpha_func != cso->rt[r].alpha_func ||
111 cso->rt[i].alpha_src_factor != cso->rt[r].alpha_src_factor ||
112 cso->rt[i].alpha_dst_factor != cso->rt[r].alpha_dst_factor) {
118 blend_en |= (cso->rt[i].blend_enable ? 1 : 0) << i;
121 if (cso->rt[i].colormask != cso->rt[0].colormask) {
128 if (cso->rt[0].blend_enable)
132 if (cso->logicop_enable) {
135 SB_DATA (so, nvgl_logicop_func(cso->logicop_func));
145 if (cso->rt[i].blend_enable) {
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));
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));
164 SB_DATA (so, nvc0_blend_fac(cso->rt[r].alpha_dst_factor));
171 SB_DATA(so, nvc0_colormask(cso->rt[i].colormask));
174 SB_DATA (so, nvc0_colormask(cso->rt[0].colormask));
179 if (cso->alpha_to_coverage)
181 if (cso->alpha_to_one)
209 const struct pipe_rasterizer_state *cso)
217 so->pipe = *cso;
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);
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);
236 if (cso->line_smooth)
240 SB_DATA (so, fui(cso->line_width));
242 SB_IMMED_3D(so, LINE_STIPPLE_ENABLE, cso->line_stipple_enable);
243 if (cso->line_stipple_enable) {
245 SB_DATA (so, (cso->line_stipple_pattern << 8) |
246 cso->line_stipple_factor);
250 SB_IMMED_3D(so, VP_POINT_SIZE_EN, cso->point_size_per_vertex);
251 if (!cso->point_size_per_vertex) {
253 SB_DATA (so, fui(cso->point_size));
256 reg = (cso->sprite_coord_mode == PIPE_SPRITE_COORD_UPPER_LEFT) ?
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);
266 SB_DATA (so, nvgl_polygon_mode(cso->fill_front));
268 SB_DATA (so, nvgl_polygon_mode(cso->fill_back));
269 SB_IMMED_3D(so, POLYGON_SMOOTH_ENABLE, cso->poly_smooth);
272 SB_DATA (so, cso->cull_face != PIPE_FACE_NONE);
273 SB_DATA (so, cso->front_ccw ? NVC0_3D_FRONT_FACE_CCW :
275 switch (cso->cull_face) {
288 SB_IMMED_3D(so, POLYGON_STIPPLE_ENABLE, cso->poly_stipple_enable);
290 SB_DATA (so, cso->offset_point);
291 SB_DATA (so, cso->offset_line);
292 SB_DATA (so, cso->offset_tri);
294 if (cso->offset_point || cso->offset_line || cso->offset_tri) {
296 SB_DATA (so, fui(cso->offset_scale));
298 SB_DATA (so, fui(cso->offset_units * 2.0f));
300 SB_DATA (so, fui(cso->offset_clamp));
303 if (cso->depth_clip)
336 const struct pipe_depth_stencil_alpha_state *cso)
340 so->pipe = *cso;
342 SB_IMMED_3D(so, DEPTH_TEST_ENABLE, cso->depth.enabled);
343 if (cso->depth.enabled) {
344 SB_IMMED_3D(so, DEPTH_WRITE_ENABLE, cso->depth.writemask);
346 SB_DATA (so, nvgl_comparison_op(cso->depth.func));
349 if (cso->stencil[0].enabled) {
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));
357 SB_DATA (so, cso->stencil[0].valuemask);
358 SB_DATA (so, cso->stencil[0].writemask);
363 if (cso->stencil[1].enabled) {
364 assert(cso->stencil[0].enabled);
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));
372 SB_DATA (so, cso->stencil[1].writemask);
373 SB_DATA (so, cso->stencil[1].valuemask);
375 if (cso->stencil[0].enabled) {
379 SB_IMMED_3D(so, ALPHA_TEST_ENABLE, cso->alpha.enabled);
380 if (cso->alpha.enabled) {
382 SB_DATA (so, fui(cso->alpha.ref_value));
383 SB_DATA (so, nvgl_comparison_op(cso->alpha.func));
568 const struct pipe_shader_state *cso, unsigned type)
578 if (cso->tokens)
579 prog->pipe.tokens = tgsi_dup_tokens(cso->tokens);
581 if (cso->stream_output.num_outputs)
582 prog->pipe.stream_output = cso->stream_output;
600 const struct pipe_shader_state *cso)
602 return nvc0_sp_state_create(pipe, cso, PIPE_SHADER_VERTEX);
616 const struct pipe_shader_state *cso)
618 return nvc0_sp_state_create(pipe, cso, PIPE_SHADER_FRAGMENT);
632 const struct pipe_shader_state *cso)
634 return nvc0_sp_state_create(pipe, cso, PIPE_SHADER_GEOMETRY);