Lines Matching refs:spr
56 struct softpipe_resource *spr,
59 struct pipe_resource *pt = &spr->base;
79 spr->stride[level] = util_format_get_stride(pt->format, width);
81 spr->level_offset[level] = buffer_size;
84 if ((uint64_t)spr->stride[level] * nblocksy > SP_MAX_TEXTURE_SIZE) {
89 spr->img_stride[level] = spr->stride[level] * nblocksy;
91 buffer_size += (uint64_t) spr->img_stride[level] * slices;
102 spr->data = align_malloc(buffer_size, 64);
103 return spr->data != NULL;
119 struct softpipe_resource spr;
120 memset(&spr, 0, sizeof(spr));
121 spr.base = *res;
122 return softpipe_resource_layout(screen, &spr, FALSE);
131 struct softpipe_resource *spr,
138 spr->dt = winsys->displaytarget_create(winsys,
139 spr->base.bind,
140 spr->base.format,
141 spr->base.width0,
142 spr->base.height0,
145 &spr->stride[0] );
147 return spr->dt != NULL;
159 struct softpipe_resource *spr = CALLOC_STRUCT(softpipe_resource);
160 if (!spr)
165 spr->base = *templat;
166 pipe_reference_init(&spr->base.reference, 1);
167 spr->base.screen = screen;
169 spr->pot = (util_is_power_of_two_or_zero(templat->width0) &&
173 if (spr->base.bind & (PIPE_BIND_DISPLAY_TARGET |
176 if (!softpipe_displaytarget_layout(screen, spr, map_front_private))
180 if (!softpipe_resource_layout(screen, spr, TRUE))
184 return &spr->base;
187 FREE(spr);
203 struct softpipe_resource *spr = softpipe_resource(pt);
205 if (spr->dt) {
208 winsys->displaytarget_destroy(winsys, spr->dt);
210 else if (!spr->userBuffer) {
212 align_free(spr->data);
215 FREE(spr);
226 struct softpipe_resource *spr = CALLOC_STRUCT(softpipe_resource);
227 if (!spr)
230 spr->base = *templat;
231 pipe_reference_init(&spr->base.reference, 1);
232 spr->base.screen = screen;
234 spr->pot = (util_is_power_of_two_or_zero(templat->width0) &&
238 spr->dt = winsys->displaytarget_from_handle(winsys,
241 &spr->stride[0]);
242 if (!spr->dt)
245 return &spr->base;
248 FREE(spr);
261 struct softpipe_resource *spr = softpipe_resource(pt);
263 assert(spr->dt);
264 if (!spr->dt)
267 return winsys->displaytarget_get_handle(winsys, spr->dt, whandle);
276 softpipe_get_tex_image_offset(const struct softpipe_resource *spr,
279 unsigned offset = spr->level_offset[level];
281 offset += layer * spr->img_stride[level];
363 struct softpipe_resource *spr = softpipe_resource(resource);
424 pt->stride = spr->stride[level];
425 pt->layer_stride = spr->img_stride[level];
427 spt->offset = softpipe_get_tex_image_offset(spr, level, box->z);
435 if (spr->dt) {
436 map = winsys->displaytarget_map(winsys, spr->dt, usage);
439 map = spr->data;
460 struct softpipe_resource *spr;
463 spr = softpipe_resource(transfer->resource);
465 if (spr->dt) {
468 winsys->displaytarget_unmap(winsys, spr->dt);
473 spr->timestamp++;
489 struct softpipe_resource *spr;
491 spr = CALLOC_STRUCT(softpipe_resource);
492 if (!spr)
495 pipe_reference_init(&spr->base.reference, 1);
496 spr->base.screen = screen;
497 spr->base.format = PIPE_FORMAT_R8_UNORM; /* ?? */
498 spr->base.bind = bind_flags;
499 spr->base.usage = PIPE_USAGE_IMMUTABLE;
500 spr->base.flags = 0;
501 spr->base.width0 = bytes;
502 spr->base.height0 = 1;
503 spr->base.depth0 = 1;
504 spr->base.array_size = 1;
505 spr->userBuffer = TRUE;
506 spr->data = ptr;
508 return &spr->base;