Lines Matching refs:cso
62 filter_mode(const struct pipe_sampler_state *cso)
66 switch (cso->mag_img_filter) {
75 switch (cso->min_img_filter) {
77 switch (cso->min_mip_filter) {
90 switch (cso->min_mip_filter) {
108 compare_mode(const struct pipe_sampler_state *cso)
110 if (cso->compare_mode != PIPE_TEX_COMPARE_R_TO_TEXTURE)
113 switch (cso->compare_func) {
129 const struct pipe_sampler_state *cso)
139 so->pipe = *cso;
141 so->wrap = (wrap_mode(cso->wrap_s) << NV30_3D_TEX_WRAP_S__SHIFT) |
142 (wrap_mode(cso->wrap_t) << NV30_3D_TEX_WRAP_T__SHIFT) |
143 (wrap_mode(cso->wrap_r) << NV30_3D_TEX_WRAP_R__SHIFT);
145 so->wrap |= compare_mode(cso);
146 so->filt = filter_mode(cso) | 0x00002000;
147 so->bcol = (float_to_ubyte(cso->border_color.f[3]) << 24) |
148 (float_to_ubyte(cso->border_color.f[0]) << 16) |
149 (float_to_ubyte(cso->border_color.f[1]) << 8) |
150 (float_to_ubyte(cso->border_color.f[2]) << 0);
153 unsigned aniso = cso->max_anisotropy;
155 if (!cso->normalized_coords)
172 if (cso->max_anisotropy >= 8) so->en |= NV30_3D_TEX_ENABLE_ANISO_8X;
173 else if (cso->max_anisotropy >= 4) so->en |= NV30_3D_TEX_ENABLE_ANISO_4X;
174 else if (cso->max_anisotropy >= 2) so->en |= NV30_3D_TEX_ENABLE_ANISO_2X;
177 so->filt |= (int)(cso->lod_bias * 256.0) & 0x1fff;
178 so->max_lod = (int)(CLAMP(cso->max_lod, 0.0, max_lod) * 256.0);
179 so->min_lod = (int)(CLAMP(cso->min_lod, 0.0, max_lod) * 256.0);