Lines Matching refs:cso

117                         const struct pipe_blend_state *cso)
121 boolean emit_common_func = cso->rt[0].blend_enable;
126 SB_DATA (so, cso->independent_blend_enable);
129 so->pipe = *cso;
132 SB_DATA (so, !cso->independent_blend_enable);
135 SB_DATA (so, !cso->independent_blend_enable);
137 if (cso->independent_blend_enable) {
140 SB_DATA(so, cso->rt[i].blend_enable);
141 if (cso->rt[i].blend_enable)
149 if (!cso->rt[i].blend_enable)
152 SB_DATA (so, nvgl_blend_eqn(cso->rt[i].rgb_func));
153 SB_DATA (so, nv50_blend_fac(cso->rt[i].rgb_src_factor));
154 SB_DATA (so, nv50_blend_fac(cso->rt[i].rgb_dst_factor));
155 SB_DATA (so, nvgl_blend_eqn(cso->rt[i].alpha_func));
156 SB_DATA (so, nv50_blend_fac(cso->rt[i].alpha_src_factor));
157 SB_DATA (so, nv50_blend_fac(cso->rt[i].alpha_dst_factor));
162 SB_DATA (so, cso->rt[0].blend_enable);
167 SB_DATA (so, nvgl_blend_eqn(cso->rt[0].rgb_func));
168 SB_DATA (so, nv50_blend_fac(cso->rt[0].rgb_src_factor));
169 SB_DATA (so, nv50_blend_fac(cso->rt[0].rgb_dst_factor));
170 SB_DATA (so, nvgl_blend_eqn(cso->rt[0].alpha_func));
171 SB_DATA (so, nv50_blend_fac(cso->rt[0].alpha_src_factor));
173 SB_DATA (so, nv50_blend_fac(cso->rt[0].alpha_dst_factor));
176 if (cso->logicop_enable) {
179 SB_DATA (so, nvgl_logicop_func(cso->logicop_func));
185 if (cso->independent_blend_enable) {
188 SB_DATA(so, nv50_colormask(cso->rt[i].colormask));
191 SB_DATA (so, nv50_colormask(cso->rt[0].colormask));
195 if (cso->alpha_to_coverage)
197 if (cso->alpha_to_one)
225 const struct pipe_rasterizer_state *cso)
233 so->pipe = *cso;
237 SB_DATA (so, cso->scissor);
241 SB_DATA (so, cso->flatshade ? NV50_3D_SHADE_MODEL_FLAT :
244 SB_DATA (so, !cso->flatshade_first);
246 SB_DATA (so, cso->light_twoside);
249 SB_DATA (so, cso->clamp_fragment_color ? 0x11111111 : 0x00000000);
252 SB_DATA (so, cso->multisample);
255 SB_DATA (so, fui(cso->line_width));
257 SB_DATA (so, cso->line_smooth);
260 if (cso->line_stipple_enable) {
263 SB_DATA (so, (cso->line_stipple_pattern << 8) |
264 cso->line_stipple_factor);
269 if (!cso->point_size_per_vertex) {
271 SB_DATA (so, fui(cso->point_size));
274 SB_DATA (so, cso->point_quad_rasterization);
276 SB_DATA (so, cso->point_smooth);
279 SB_DATA (so, nvgl_polygon_mode(cso->fill_front));
280 SB_DATA (so, nvgl_polygon_mode(cso->fill_back));
281 SB_DATA (so, cso->poly_smooth);
284 SB_DATA (so, cso->cull_face != PIPE_FACE_NONE);
285 SB_DATA (so, cso->front_ccw ? NV50_3D_FRONT_FACE_CCW :
287 switch (cso->cull_face) {
301 SB_DATA (so, cso->poly_stipple_enable);
303 SB_DATA (so, cso->offset_point);
304 SB_DATA (so, cso->offset_line);
305 SB_DATA (so, cso->offset_tri);
307 if (cso->offset_point || cso->offset_line || cso->offset_tri) {
309 SB_DATA (so, fui(cso->offset_scale));
311 SB_DATA (so, fui(cso->offset_units * 2.0f));
313 SB_DATA (so, fui(cso->offset_clamp));
316 if (cso->depth_clip) {
353 const struct pipe_depth_stencil_alpha_state *cso)
357 so->pipe = *cso;
360 SB_DATA (so, cso->depth.writemask);
362 if (cso->depth.enabled) {
365 SB_DATA (so, nvgl_comparison_op(cso->depth.func));
370 if (cso->stencil[0].enabled) {
373 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].fail_op));
374 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].zfail_op));
375 SB_DATA (so, nvgl_stencil_op(cso->stencil[0].zpass_op));
376 SB_DATA (so, nvgl_comparison_op(cso->stencil[0].func));
378 SB_DATA (so, cso->stencil[0].writemask);
379 SB_DATA (so, cso->stencil[0].valuemask);
385 if (cso->stencil[1].enabled) {
386 assert(cso->stencil[0].enabled);
389 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].fail_op));
390 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].zfail_op));
391 SB_DATA (so, nvgl_stencil_op(cso->stencil[1].zpass_op));
392 SB_DATA (so, nvgl_comparison_op(cso->stencil[1].func));
394 SB_DATA (so, cso->stencil[1].writemask);
395 SB_DATA (so, cso->stencil[1].valuemask);
402 if (cso->alpha.enabled) {
405 SB_DATA (so, fui(cso->alpha.ref_value));
406 SB_DATA (so, nvgl_comparison_op(cso->alpha.func));
456 const struct pipe_sampler_state *cso)
464 (nv50_tsc_wrap_mode(cso->wrap_s) << 0) |
465 (nv50_tsc_wrap_mode(cso->wrap_t) << 3) |
466 (nv50_tsc_wrap_mode(cso->wrap_r) << 6));
469 if (cso->seamless_cube_map)
471 if (!cso->normalized_coords)
475 switch (cso->mag_img_filter) {
485 switch (cso->min_img_filter) {
495 switch (cso->min_mip_filter) {
508 if (cso->max_anisotropy >= 16)
511 if (cso->max_anisotropy >= 12)
514 so->tsc[0] |= (cso->max_anisotropy >> 1) << 20;
516 if (cso->max_anisotropy >= 4)
519 if (cso->max_anisotropy >= 2)
523 if (cso->compare_mode == PIPE_TEX_COMPARE_R_TO_TEXTURE) {
526 so->tsc[0] |= (nvgl_comparison_op(cso->compare_func) & 0x7) << 10;
529 f[0] = CLAMP(cso->lod_bias, -16.0f, 15.0f);
532 f[0] = CLAMP(cso->min_lod, 0.0f, 15.0f);
533 f[1] = CLAMP(cso->max_lod, 0.0f, 15.0f);
537 so->tsc[4] = fui(cso->border_color.f[0]);
538 so->tsc[5] = fui(cso->border_color.f[1]);
539 so->tsc[6] = fui(cso->border_color.f[2]);
540 so->tsc[7] = fui(cso->border_color.f[3]);
672 const struct pipe_shader_state *cso, unsigned type)
681 prog->pipe.tokens = tgsi_dup_tokens(cso->tokens);
683 if (cso->stream_output.num_outputs)
684 prog->pipe.stream_output = cso->stream_output;
702 const struct pipe_shader_state *cso)
704 return nv50_sp_state_create(pipe, cso, PIPE_SHADER_VERTEX);
718 const struct pipe_shader_state *cso)
720 return nv50_sp_state_create(pipe, cso, PIPE_SHADER_FRAGMENT);
734 const struct pipe_shader_state *cso)
736 return nv50_sp_state_create(pipe, cso, PIPE_SHADER_GEOMETRY);