• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright © 2018 Rob Clark <robclark@freedesktop.org>
3  * SPDX-License-Identifier: MIT
4  *
5  * Authors:
6  *    Rob Clark <robclark@freedesktop.org>
7  */
8 
9 #include "fd5_resource.h"
10 
11 static void
setup_lrz(struct fd_resource * rsc)12 setup_lrz(struct fd_resource *rsc)
13 {
14    struct fd_screen *screen = fd_screen(rsc->b.b.screen);
15    fdl5_lrz_layout_init(&rsc->lrz_layout, rsc->b.b.width0, rsc->b.b.height0,
16                         rsc->b.b.nr_samples);
17    rsc->lrz = fd_bo_new(screen->dev, rsc->lrz_layout.lrz_total_size,
18                         FD_BO_NOMAP, "lrz");
19 }
20 
21 uint32_t
fd5_setup_slices(struct fd_resource * rsc)22 fd5_setup_slices(struct fd_resource *rsc)
23 {
24    struct pipe_resource *prsc = &rsc->b.b;
25 
26    if (FD_DBG(LRZ) && has_depth(prsc->format) && !is_z32(prsc->format))
27       setup_lrz(rsc);
28 
29    fdl5_layout(&rsc->layout, prsc->format, fd_resource_nr_samples(prsc),
30                prsc->width0, prsc->height0, prsc->depth0, prsc->last_level + 1,
31                prsc->array_size, prsc->target == PIPE_TEXTURE_3D);
32 
33    return rsc->layout.size;
34 }
35