Lines Matching refs:so

10  * Software is furnished to do so, subject to the following conditions:
91 struct v3d_rasterizer_state *so;
93 so = CALLOC_STRUCT(v3d_rasterizer_state);
94 if (!so)
97 so->base = *cso;
102 so->point_size = MAX2(cso->point_size, .125f);
104 STATIC_ASSERT(sizeof(so->depth_offset) >=
106 v3dx_pack(&so->depth_offset, DEPTH_OFFSET, depth) {
114 /* The HW treats polygon offset units based on a Z24 buffer, so we
117 v3dx_pack(&so->depth_offset_z16, DEPTH_OFFSET, depth) {
125 return so;
133 struct v3d_blend_state *so;
135 so = CALLOC_STRUCT(v3d_blend_state);
136 if (!so)
139 so->base = *cso;
143 so->blend_enables |= cso->rt[i].blend_enable << i;
151 so->blend_enables = (1 << V3D_MAX_DRAW_BUFFERS) - 1;
154 return so;
177 struct v3d_depth_stencil_alpha_state *so;
179 so = CALLOC_STRUCT(v3d_depth_stencil_alpha_state);
180 if (!so)
183 so->base = *cso;
189 so->ez_state = V3D_EZ_LT_LE;
193 so->ez_state = V3D_EZ_GT_GE;
197 so->ez_state = V3D_EZ_UNDECIDED;
200 so->ez_state = V3D_EZ_DISABLED;
213 so->ez_state = V3D_EZ_DISABLED;
221 STATIC_ASSERT(sizeof(so->stencil_front) >=
223 v3dx_pack(&so->stencil_front, STENCIL_CFG, config) {
243 STATIC_ASSERT(sizeof(so->stencil_back) >=
245 v3dx_pack(&so->stencil_back, STENCIL_CFG, config) {
262 return so;
305 struct v3d_vertexbuf_stateobj *so = &v3d->vertexbuf;
307 util_set_vertex_buffers_mask(so->vb, &so->enabled_mask, vb,
311 so->count = util_last_bit(so->enabled_mask);
345 struct v3d_vertex_stateobj *so = CALLOC_STRUCT(v3d_vertex_stateobj);
347 if (!so)
350 memcpy(so->pipe, elements, sizeof(*elements) * num_elements);
351 so->num_elements = num_elements;
353 for (int i = 0; i < so->num_elements; i++) {
362 v3dx_pack(&so->attrs[i * size],
423 &so->defaults_offset, &so->defaults, (void **)&attrs);
429 if (i < so->num_elements &&
430 util_format_is_pure_integer(so->pipe[i].src_format)) {
438 return so;
444 struct v3d_vertex_stateobj *so = hwcso;
446 pipe_resource_reference(&so->defaults, NULL);
447 free(so);
464 struct v3d_constbuf_stateobj *so = &v3d->constbuf[shader];
466 util_copy_constant_buffer(&so->cb[index], cb, take_ownership);
472 so->enabled_mask &= ~(1 << index);
473 so->dirty_mask &= ~(1 << index);
477 so->enabled_mask |= 1 << index;
478 so->dirty_mask |= 1 << index;
566 * clamp the LOD so that we only sample from baselevel.
568 * fractionally over the baselevel, so that the HW can decide
726 struct v3d_sampler_state *so = CALLOC_STRUCT(v3d_sampler_state);
728 if (!so)
731 memcpy(so, cso, sizeof(*cso));
742 so->border_color_variants = false;
764 so->border_color_variants = true;
769 int sampler_align = so->border_color_variants ? 32 : 8;
771 int num_variants = (so->border_color_variants ? ARRAY_SIZE(so->sampler_state_offset) : 1);
775 &so->sampler_state_offset[0],
776 &so->sampler_state,
780 so->sampler_state_offset[i] =
781 so->sampler_state_offset[0] + i * sampler_size;
784 so->border_color_variants ? i : border_variant);
788 v3dx_pack(&so->p0, TEXTURE_UNIFORM_PARAMETER_0_CFG_MODE1, p0) {
794 v3dx_pack(&so->texture_shader_state, TEXTURE_SHADER_STATE, tex) {
799 return so;
861 * at state create time, so any time this sampler view is used
903 * at state create time, so any time this sampler view is used
936 struct v3d_sampler_view *so)
938 struct pipe_resource *prsc = so->texture;
940 const struct pipe_sampler_view *cso = &so->base;
945 assert(so->serial_id != rsc->serial_id);
948 v3d_bo_unreference(&so->bo);
949 so->bo = v3d_bo_alloc(v3d->screen,
951 map = v3d_bo_map(so->bo);
953 STATIC_ASSERT(sizeof(so->texture_shader_state) >=
955 map = &so->texture_shader_state;
975 tex.swizzle_r = v3d_translate_pipe_swizzle(so->swizzle[0]);
976 tex.swizzle_g = v3d_translate_pipe_swizzle(so->swizzle[1]);
977 tex.swizzle_b = v3d_translate_pipe_swizzle(so->swizzle[2]);
978 tex.swizzle_a = v3d_translate_pipe_swizzle(so->swizzle[3]);
1030 so->serial_id = rsc->serial_id;
1039 struct v3d_sampler_view *so = CALLOC_STRUCT(v3d_sampler_view);
1042 if (!so)
1045 so->base = *cso;
1060 v3d_get_format_swizzle(&screen->devinfo, so->base.format);
1061 util_format_compose_swizzles(fmt_swizzle, view_swizzle, so->swizzle);
1063 pipe_reference_init(&so->base.reference, 1);
1064 so->base.texture = prsc;
1065 so->base.context = pctx;
1091 so->sampler_variant = V3D_SAMPLER_STATE_32;
1094 so->sampler_variant = V3D_SAMPLER_STATE_16U;
1097 so->sampler_variant = V3D_SAMPLER_STATE_1010102U;
1100 so->sampler_variant = V3D_SAMPLER_STATE_8U;
1106 so->sampler_variant = V3D_SAMPLER_STATE_32;
1109 so->sampler_variant = V3D_SAMPLER_STATE_16I;
1112 so->sampler_variant = V3D_SAMPLER_STATE_8I;
1120 so->sampler_variant = V3D_SAMPLER_STATE_32_A;
1122 so->sampler_variant = V3D_SAMPLER_STATE_32;
1125 so->sampler_variant = V3D_SAMPLER_STATE_F16_LA;
1127 so->sampler_variant = V3D_SAMPLER_STATE_F16_A;
1129 so->sampler_variant = V3D_SAMPLER_STATE_F16_BGRA;
1131 so->sampler_variant = V3D_SAMPLER_STATE_F16;
1136 so->sampler_variant += (V3D_SAMPLER_STATE_F16_UNORM -
1139 so->sampler_variant += (V3D_SAMPLER_STATE_F16_SNORM -
1145 /* V3D still doesn't support sampling from raster textures, so we will
1171 free(so);
1180 so->texture = prsc;
1182 pipe_resource_reference(&so->texture, prsc);
1185 v3d_create_texture_shader_state_bo(v3d, so);
1187 return &so->base;
1232 struct v3d_sampler_view *so =
1234 struct v3d_resource *rsc = v3d_resource(so->texture);
1235 if (so->serial_id != rsc->serial_id)
1236 v3d_create_texture_shader_state_bo(v3d, so);
1286 struct v3d_streamout_stateobj *so = &ctx->streamout;
1289 assert(num_targets <= ARRAY_SIZE(so->targets));
1296 if (num_targets == 0 && so->num_targets > 0)
1301 so->offsets[i] = offsets[i];
1303 pipe_so_target_reference(&so->targets[i], targets[i]);
1306 for (; i < so->num_targets; i++)
1307 pipe_so_target_reference(&so->targets[i], NULL);
1309 so->num_targets = num_targets;
1326 struct v3d_ssbo_stateobj *so = &v3d->ssbo[shader];
1332 struct pipe_shader_buffer *buf = &so->sb[n];
1346 so->enabled_mask |= 1 << n;
1348 so->enabled_mask &= ~(1 << n);
1355 struct pipe_shader_buffer *buf = &so->sb[n];
1360 so->enabled_mask &= ~mask;
1368 struct v3d_shaderimg_stateobj *so,
1372 struct v3d_image_view *iview = &so->si[img];
1407 * textures, so it would get lowered in the shader to general memory
1421 struct v3d_shaderimg_stateobj *so = &v3d->shaderimg[shader];
1426 struct v3d_image_view *iview = &so->si[n];
1438 so->enabled_mask |= 1 << n;
1440 so,
1443 so->enabled_mask &= ~(1 << n);
1450 struct v3d_image_view *iview = &so->si[n];
1457 so->enabled_mask = 0;
1459 so->enabled_mask &= ~(((1 << count) - 1) << start);