1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker * Copyright © 2018 Rob Clark <[email protected]>
3*61046927SAndroid Build Coastguard Worker * Copyright © 2018 Google, Inc.
4*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
5*61046927SAndroid Build Coastguard Worker *
6*61046927SAndroid Build Coastguard Worker * Authors:
7*61046927SAndroid Build Coastguard Worker * Rob Clark <[email protected]>
8*61046927SAndroid Build Coastguard Worker */
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard Worker #include <inttypes.h>
11*61046927SAndroid Build Coastguard Worker #include <stdio.h>
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard Worker #include "freedreno_layout.h"
14*61046927SAndroid Build Coastguard Worker
15*61046927SAndroid Build Coastguard Worker void
fdl_layout_buffer(struct fdl_layout * layout,uint32_t size)16*61046927SAndroid Build Coastguard Worker fdl_layout_buffer(struct fdl_layout *layout, uint32_t size)
17*61046927SAndroid Build Coastguard Worker {
18*61046927SAndroid Build Coastguard Worker layout->width0 = size;
19*61046927SAndroid Build Coastguard Worker layout->height0 = 1;
20*61046927SAndroid Build Coastguard Worker layout->depth0 = 1;
21*61046927SAndroid Build Coastguard Worker layout->cpp = 1;
22*61046927SAndroid Build Coastguard Worker layout->cpp_shift = 0;
23*61046927SAndroid Build Coastguard Worker layout->size = size;
24*61046927SAndroid Build Coastguard Worker layout->format = PIPE_FORMAT_R8_UINT;
25*61046927SAndroid Build Coastguard Worker layout->nr_samples = 1;
26*61046927SAndroid Build Coastguard Worker }
27*61046927SAndroid Build Coastguard Worker
28*61046927SAndroid Build Coastguard Worker const char *
fdl_tile_mode_desc(const struct fdl_layout * layout,int level)29*61046927SAndroid Build Coastguard Worker fdl_tile_mode_desc(const struct fdl_layout *layout, int level)
30*61046927SAndroid Build Coastguard Worker {
31*61046927SAndroid Build Coastguard Worker if (fdl_ubwc_enabled(layout, level))
32*61046927SAndroid Build Coastguard Worker return "UBWC";
33*61046927SAndroid Build Coastguard Worker else if (fdl_tile_mode(layout, level) == 0) /* TILE6_LINEAR and friends */
34*61046927SAndroid Build Coastguard Worker return "linear";
35*61046927SAndroid Build Coastguard Worker else
36*61046927SAndroid Build Coastguard Worker return "tiled";
37*61046927SAndroid Build Coastguard Worker }
38*61046927SAndroid Build Coastguard Worker
39*61046927SAndroid Build Coastguard Worker void
fdl_dump_layout(struct fdl_layout * layout)40*61046927SAndroid Build Coastguard Worker fdl_dump_layout(struct fdl_layout *layout)
41*61046927SAndroid Build Coastguard Worker {
42*61046927SAndroid Build Coastguard Worker for (uint32_t level = 0;
43*61046927SAndroid Build Coastguard Worker level < ARRAY_SIZE(layout->slices) && layout->slices[level].size0;
44*61046927SAndroid Build Coastguard Worker level++) {
45*61046927SAndroid Build Coastguard Worker struct fdl_slice *slice = &layout->slices[level];
46*61046927SAndroid Build Coastguard Worker struct fdl_slice *ubwc_slice = &layout->ubwc_slices[level];
47*61046927SAndroid Build Coastguard Worker
48*61046927SAndroid Build Coastguard Worker fprintf(
49*61046927SAndroid Build Coastguard Worker stderr,
50*61046927SAndroid Build Coastguard Worker "%s: %ux%ux%u@%ux%u:\t%2u: stride=%4u, size=%6u,%6u, "
51*61046927SAndroid Build Coastguard Worker "aligned_height=%3u, offset=0x%x,0x%x, layersz %5" PRIu64 ",%5" PRIu64 " %s\n",
52*61046927SAndroid Build Coastguard Worker util_format_name(layout->format), u_minify(layout->width0, level),
53*61046927SAndroid Build Coastguard Worker u_minify(layout->height0, level), u_minify(layout->depth0, level),
54*61046927SAndroid Build Coastguard Worker layout->cpp, layout->nr_samples, level, fdl_pitch(layout, level),
55*61046927SAndroid Build Coastguard Worker slice->size0, ubwc_slice->size0,
56*61046927SAndroid Build Coastguard Worker slice->size0 / fdl_pitch(layout, level), slice->offset,
57*61046927SAndroid Build Coastguard Worker ubwc_slice->offset, layout->layer_size, layout->ubwc_layer_size,
58*61046927SAndroid Build Coastguard Worker fdl_tile_mode_desc(layout, level));
59*61046927SAndroid Build Coastguard Worker }
60*61046927SAndroid Build Coastguard Worker }
61