Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/freedreno/fdl/fd5_layout_test.c
4561 views
1
/*
2
* Copyright © 2020 Google LLC
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a
5
* copy of this software and associated documentation files (the "Software"),
6
* to deal in the Software without restriction, including without limitation
7
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
* and/or sell copies of the Software, and to permit persons to whom the
9
* Software is furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice (including the next
12
* paragraph) shall be included in all copies or substantial portions of the
13
* Software.
14
*
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21
* IN THE SOFTWARE.
22
*/
23
24
#include "freedreno_layout.h"
25
#include "fd_layout_test.h"
26
#include "adreno_common.xml.h"
27
#include "util/half_float.h"
28
#include "util/u_math.h"
29
#include "a5xx.xml.h"
30
31
#include <stdio.h>
32
33
/* Testcases generated from cffdump --script texturator-to-unit-test-5xx.lua
34
* on a Pixel 2
35
*/
36
static const struct testcase testcases[] = {
37
/* Basic POT, non-UBWC layout test */
38
{
39
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
40
.layout =
41
{
42
.tile_mode = TILE5_3,
43
.width0 = 32,
44
.height0 = 32,
45
.slices =
46
{
47
{.offset = 0, .pitch = 256},
48
{.offset = 8192, .pitch = 256},
49
{.offset = 12288, .pitch = 256},
50
{.offset = 14336, .pitch = 256},
51
{.offset = 15360, .pitch = 256},
52
{.offset = 15872, .pitch = 256},
53
},
54
},
55
},
56
57
/* Some 3D cases of sizes from the CTS, when I was suspicious of our 3D
58
* layout.
59
*/
60
{
61
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
62
.is_3d = true,
63
.layout =
64
{
65
.tile_mode = TILE5_3,
66
.ubwc = false,
67
.width0 = 59,
68
.height0 = 37,
69
.depth0 = 11,
70
.slices =
71
{
72
{.offset = 0, .pitch = 256},
73
{.offset = 135168, .pitch = 256},
74
{.offset = 176128, .pitch = 256},
75
{.offset = 192512, .pitch = 256},
76
{.offset = 200704, .pitch = 256},
77
{.offset = 208896, .pitch = 256},
78
},
79
},
80
},
81
{
82
.format = PIPE_FORMAT_R32G32_FLOAT,
83
.is_3d = true,
84
.layout =
85
{
86
.tile_mode = TILE5_3,
87
.ubwc = false,
88
.width0 = 63,
89
.height0 = 29,
90
.depth0 = 11,
91
.slices =
92
{
93
{.offset = 0, .pitch = 512},
94
{.offset = 180224, .pitch = 512},
95
{.offset = 221184, .pitch = 512},
96
{.offset = 237568, .pitch = 512},
97
{.offset = 245760, .pitch = 512},
98
{.offset = 253952, .pitch = 512},
99
},
100
},
101
},
102
};
103
104
int
105
main(int argc, char **argv)
106
{
107
int ret = 0;
108
109
for (int i = 0; i < ARRAY_SIZE(testcases); i++) {
110
if (!fdl_test_layout(&testcases[i], 540))
111
ret = 1;
112
}
113
114
return ret;
115
}
116
117