static struct pipe_surface * nv50_surface_create(struct pipe_context *pipe, struct pipe_resource *pres, const struct pipe_surface *templ) { if (unlikely(pres->target == PIPE_BUFFER)) return nv50_surface_from_buffer(pipe, pres, templ); return nv50_miptree_surface_new(pipe, pres, templ); }
static struct pipe_surface * nv50_surface_create(struct pipe_context *pipe, struct pipe_resource *pres, const struct pipe_surface *templ) { /* surfaces are assumed to be miptrees all over the place. */ assert(pres->target != PIPE_BUFFER); if (unlikely(pres->target == PIPE_BUFFER)) return nv50_surface_from_buffer(pipe, pres, templ); return nv50_miptree_surface_new(pipe, pres, templ); }
static void nv50_blit_set_dst(struct nv50_context *nv50, struct pipe_resource *res, unsigned level, unsigned layer) { struct pipe_context *pipe = &nv50->base.pipe; struct pipe_surface templ; if (util_format_is_depth_or_stencil(res->format)) templ.format = nv50_blit_zeta_to_colour_format(res->format); else templ.format = res->format; templ.usage = PIPE_USAGE_STREAM; templ.u.tex.level = level; templ.u.tex.first_layer = templ.u.tex.last_layer = layer; nv50->framebuffer.cbufs[0] = nv50_miptree_surface_new(pipe, res, &templ); nv50->framebuffer.nr_cbufs = 1; nv50->framebuffer.zsbuf = NULL; nv50->framebuffer.width = nv50->framebuffer.cbufs[0]->width; nv50->framebuffer.height = nv50->framebuffer.cbufs[0]->height; }