Lines Matching defs:surface
243 struct d3d12_surface *surface = CALLOC_STRUCT(d3d12_surface);
244 if (!surface)
247 pipe_resource_reference(&surface->base.texture, pres);
248 pipe_reference_init(&surface->base.reference, 1);
249 surface->base.context = pctx;
250 surface->base.format = tpl->format;
251 surface->base.width = u_minify(pres->width0, tpl->u.tex.level);
252 surface->base.height = u_minify(pres->height0, tpl->u.tex.level);
253 surface->base.u.tex.level = tpl->u.tex.level;
254 surface->base.u.tex.first_layer = tpl->u.tex.first_layer;
255 surface->base.u.tex.last_layer = tpl->u.tex.last_layer;
259 initialize_dsv(pctx, pres, tpl, &surface->desc_handle, dxgi_format);
261 initialize_rtv(pctx, pres, tpl, &surface->desc_handle, dxgi_format);
263 return &surface->base;
270 struct d3d12_surface *surface = (struct d3d12_surface*) psurf;
274 d3d12_descriptor_handle_free(&surface->desc_handle);
275 if (d3d12_descriptor_handle_is_allocated(&surface->uint_rtv_handle))
276 d3d12_descriptor_handle_free(&surface->uint_rtv_handle);
280 pipe_resource_reference(&surface->rgba_texture, NULL);
281 FREE(surface);
285 blit_surface(struct pipe_context *pctx, struct d3d12_surface *surface, bool pre)
289 info.src.resource = pre ? surface->base.texture : surface->rgba_texture;
290 info.dst.resource = pre ? surface->rgba_texture : surface->base.texture;
291 info.src.format = pre ? surface->base.texture->format : PIPE_FORMAT_R8G8B8A8_UNORM;
292 info.dst.format = pre ? PIPE_FORMAT_R8G8B8A8_UNORM : surface->base.texture->format;
297 info.src.box.width = info.dst.box.width = surface->base.width;
298 info.src.box.height = info.dst.box.height = surface->base.height;
307 struct d3d12_surface *surface,
310 struct d3d12_screen *screen = d3d12_screen(surface->base.context->screen);
311 struct d3d12_resource *res = d3d12_resource(surface->base.texture);
312 DXGI_FORMAT dxgi_format = d3d12_get_resource_rt_format(surface->base.format);
325 if (!surface->rgba_texture) {
327 struct pipe_resource *src = surface->base.texture;
340 surface->rgba_texture = screen->base.resource_create(&screen->base, &templ);
343 blit_surface(pctx, surface, true);
344 res = d3d12_resource(surface->rgba_texture);
347 if (!d3d12_descriptor_handle_is_allocated(&surface->uint_rtv_handle)) {
348 initialize_rtv(surface->base.context, &res->base.b, &surface->base,
349 &surface->uint_rtv_handle, DXGI_FORMAT_R8G8B8A8_UINT);
357 struct d3d12_surface *surface,
361 blit_surface(pctx, surface, false);
365 d3d12_surface_get_handle(struct d3d12_surface *surface,
369 return surface->uint_rtv_handle.cpu_handle;
370 return surface->desc_handle.cpu_handle;