Home | History | Annotate | Download | only in a5xx

Lines Matching refs:cso

85 		const struct pipe_sampler_state *cso)
88 unsigned aniso = util_last_bit(MIN2(cso->max_anisotropy >> 1, 8));
95 so->base = *cso;
97 if (cso->min_mip_filter == PIPE_TEX_MIPFILTER_LINEAR)
108 clamp_to_edge = (cso->min_img_filter == PIPE_TEX_FILTER_NEAREST);
110 so->saturate_s = (cso->wrap_s == PIPE_TEX_WRAP_CLAMP);
111 so->saturate_t = (cso->wrap_t == PIPE_TEX_WRAP_CLAMP);
112 so->saturate_r = (cso->wrap_r == PIPE_TEX_WRAP_CLAMP);
118 A5XX_TEX_SAMP_0_XY_MAG(tex_filter(cso->mag_img_filter, aniso)) |
119 A5XX_TEX_SAMP_0_XY_MIN(tex_filter(cso->min_img_filter, aniso)) |
121 A5XX_TEX_SAMP_0_WRAP_S(tex_clamp(cso->wrap_s, clamp_to_edge, &so->needs_border)) |
122 A5XX_TEX_SAMP_0_WRAP_T(tex_clamp(cso->wrap_t, clamp_to_edge, &so->needs_border)) |
123 A5XX_TEX_SAMP_0_WRAP_R(tex_clamp(cso->wrap_r, clamp_to_edge, &so->needs_border));
127 COND(!cso->seamless_cube_map, A5XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF) |
128 COND(!cso->normalized_coords, A5XX_TEX_SAMP_1_UNNORM_COORDS);
130 if (cso->min_mip_filter != PIPE_TEX_MIPFILTER_NONE) {
131 so->texsamp0 |= A5XX_TEX_SAMP_0_LOD_BIAS(cso->lod_bias);
133 A5XX_TEX_SAMP_1_MIN_LOD(cso->min_lod) |
134 A5XX_TEX_SAMP_1_MAX_LOD(cso->max_lod);
137 if (cso->compare_mode)
138 so->texsamp1 |= A5XX_TEX_SAMP_1_COMPARE_FUNC(cso->compare_func); /* maps 1:1 */
221 const struct pipe_sampler_view *cso)
231 so->base = *cso;
238 A5XX_TEX_CONST_0_FMT(fd5_pipe2tex(cso->format)) |
239 fd5_tex_swiz(cso->format, cso->swizzle_r, cso->swizzle_g,
240 cso->swizzle_b, cso->swizzle_a);
242 if (util_format_is_srgb(cso->format)) {
243 if (use_astc_srgb_workaround(pctx, cso->format))
248 if (cso->target == PIPE_BUFFER) {
249 unsigned elements = cso->u.buf.size / util_format_get_blocksize(cso->format);
256 A5XX_TEX_CONST_2_FETCHSIZE(fd5_pipe2fetchsize(cso->format)) |
258 so->offset = cso->u.buf.offset;
262 lvl = fd_sampler_first_level(cso);
263 miplevels = fd_sampler_last_level(cso) - lvl;
264 layers = cso->u.tex.last_layer - cso->u.tex.first_layer + 1;
271 A5XX_TEX_CONST_2_FETCHSIZE(fd5_pipe2fetchsize(cso->format)) |
274 cso->format, rsc->slices[lvl].pitch) * rsc->cpp);
275 so->offset = fd_resource_offset(rsc, lvl, cso->u.tex.first_layer);
278 so->texconst2 |= A5XX_TEX_CONST_2_TYPE(tex_type(cso->target));
280 switch (cso->target) {
303 while (lvl < cso->u.tex.last_level && sz2 != rsc->slices[lvl+1].size0)