2
* Copyright © 2020 Google LLC
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:
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
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
24
#include "freedreno_layout.h"
25
#include "fd_layout_test.h"
26
#include "adreno_common.xml.h"
27
#include "adreno_pm4.xml.h"
32
static const struct testcase
35
/* A straightforward first testcase, linear, with an obvious format. */
37
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
44
{.offset = 0, .pitch = 256},
45
{.offset = 8192, .pitch = 256},
46
{.offset = 12288, .pitch = 256},
47
{.offset = 14336, .pitch = 256},
48
{.offset = 15360, .pitch = 256},
49
{.offset = 15872, .pitch = 256},
54
/* A tiled/ubwc layout from the blob driver, at a size where the a630
55
* blob driver does something interesting for linear.
58
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
67
{.offset = 0, .pitch = 4096},
68
{.offset = 65536, .pitch = 2048},
69
{.offset = 98304, .pitch = 1024},
70
{.offset = 114688, .pitch = 512},
71
{.offset = 122880, .pitch = 256},
72
{.offset = 126976, .pitch = 256},
73
{.offset = 131072, .pitch = 256},
74
{.offset = 135168, .pitch = 256},
75
{.offset = 139264, .pitch = 256},
76
{.offset = 143360, .pitch = 256},
77
{.offset = 147456, .pitch = 256},
81
{.offset = 0, .pitch = 64},
82
{.offset = 4096, .pitch = 64},
83
{.offset = 8192, .pitch = 64},
84
{.offset = 12288, .pitch = 64},
85
{.offset = 16384, .pitch = 64},
86
{.offset = 20480, .pitch = 64},
87
{.offset = 24576, .pitch = 64},
88
{.offset = 28672, .pitch = 64},
89
{.offset = 32768, .pitch = 64},
90
{.offset = 36864, .pitch = 64},
91
{.offset = 40960, .pitch = 64},
96
/* An interesting layout from the blob driver on a630, showing that
97
* per-level pitch must be derived from level 0's pitch, not width0. We
98
* don't do this level 0 pitch disalignment (we pick 4096), so disabled
103
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
105
.width0 = 1024, .height0 = 1,
107
{ .offset = 0, .pitch = 5120 },
108
{ .offset = 5120, .pitch = 2560 },
109
{ .offset = 7680, .pitch = 1280 },
110
{ .offset = 8960, .pitch = 768 },
111
{ .offset = 9728, .pitch = 512 },
112
{ .offset = 10240, .pitch = 256 },
113
{ .offset = 10496, .pitch = 256 },
114
{ .offset = 10752, .pitch = 256 },
115
{ .offset = 11008, .pitch = 256 },
116
{ .offset = 11264, .pitch = 256 },
117
{ .offset = 11520, .pitch = 256 },
123
/* A layout that we failed on (129 wide has a surprise level 1 pitch
124
* increase), and the sizes bracketing it.
127
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
134
{.offset = 0, .pitch = 512},
135
{.offset = 512, .pitch = 256},
136
{.offset = 768, .pitch = 256},
137
{.offset = 1024, .pitch = 256},
138
{.offset = 1280, .pitch = 256},
139
{.offset = 1536, .pitch = 256},
140
{.offset = 1792, .pitch = 256},
141
{.offset = 2048, .pitch = 256},
146
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
153
{.offset = 0, .pitch = 768},
154
{.offset = 768, .pitch = 512},
155
{.offset = 1280, .pitch = 256},
156
{.offset = 1536, .pitch = 256},
157
{.offset = 1792, .pitch = 256},
158
{.offset = 2048, .pitch = 256},
159
{.offset = 2304, .pitch = 256},
160
{.offset = 2560, .pitch = 256},
165
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
172
{.offset = 0, .pitch = 768},
173
{.offset = 768, .pitch = 512},
174
{.offset = 1280, .pitch = 256},
175
{.offset = 1536, .pitch = 256},
176
{.offset = 1792, .pitch = 256},
177
{.offset = 2048, .pitch = 256},
178
{.offset = 2304, .pitch = 256},
179
{.offset = 2560, .pitch = 256},
184
/* The 129 failure seems to be across formats, let's test some cpps */
186
.format = PIPE_FORMAT_R8_UNORM,
193
{.offset = 0, .pitch = 192},
194
{.offset = 192, .pitch = 128},
195
{.offset = 320, .pitch = 64},
196
{.offset = 384, .pitch = 64},
197
{.offset = 448, .pitch = 64},
198
{.offset = 512, .pitch = 64},
199
{.offset = 576, .pitch = 64},
200
{.offset = 640, .pitch = 64},
205
.format = PIPE_FORMAT_R16_UINT,
212
{.offset = 0, .pitch = 384},
213
{.offset = 384, .pitch = 256},
214
{.offset = 640, .pitch = 128},
215
{.offset = 768, .pitch = 128},
216
{.offset = 896, .pitch = 128},
217
{.offset = 1024, .pitch = 128},
218
{.offset = 1152, .pitch = 128},
219
{.offset = 1280, .pitch = 128},
224
.format = PIPE_FORMAT_R32G32B32A32_FLOAT,
231
{.offset = 0, .pitch = 3072},
232
{.offset = 3072, .pitch = 2048},
233
{.offset = 5120, .pitch = 1024},
234
{.offset = 6144, .pitch = 1024},
235
{.offset = 7168, .pitch = 1024},
236
{.offset = 8192, .pitch = 1024},
237
{.offset = 9216, .pitch = 1024},
238
{.offset = 10240, .pitch = 1024},
243
/* The 129 failure replicated at every +256 pixels wide. Pick one of
244
* them, and this time increase the height as a new variable as well.
247
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
254
{.offset = 0, .pitch = 1792},
255
{.offset = 229376, .pitch = 1024},
256
{.offset = 294912, .pitch = 512},
257
{.offset = 311296, .pitch = 256},
258
{.offset = 315392, .pitch = 256},
259
{.offset = 317440, .pitch = 256},
260
{.offset = 318464, .pitch = 256},
261
{.offset = 318976, .pitch = 256},
262
{.offset = 319232, .pitch = 256},
267
/* At 257-259 (and replicated every +256 pixels) we had another
270
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
277
{.offset = 0, .pitch = 1280},
278
{.offset = 1280, .pitch = 768},
279
{.offset = 2048, .pitch = 512},
280
{.offset = 2560, .pitch = 256},
281
{.offset = 2816, .pitch = 256},
282
{.offset = 3072, .pitch = 256},
283
{.offset = 3328, .pitch = 256},
284
{.offset = 3584, .pitch = 256},
285
{.offset = 3840, .pitch = 256},
290
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
297
{.offset = 0, .pitch = 1280},
298
{.offset = 1280, .pitch = 768},
299
{.offset = 2048, .pitch = 512},
300
{.offset = 2560, .pitch = 256},
301
{.offset = 2816, .pitch = 256},
302
{.offset = 3072, .pitch = 256},
303
{.offset = 3328, .pitch = 256},
304
{.offset = 3584, .pitch = 256},
305
{.offset = 3840, .pitch = 256},
310
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
317
{.offset = 0, .pitch = 1280},
318
{.offset = 1280, .pitch = 768},
319
{.offset = 2048, .pitch = 512},
320
{.offset = 2560, .pitch = 256},
321
{.offset = 2816, .pitch = 256},
322
{.offset = 3072, .pitch = 256},
323
{.offset = 3328, .pitch = 256},
324
{.offset = 3584, .pitch = 256},
325
{.offset = 3840, .pitch = 256},
330
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
337
{.offset = 0, .pitch = 1280},
338
{.offset = 1280, .pitch = 768},
339
{.offset = 2048, .pitch = 512},
340
{.offset = 2560, .pitch = 256},
341
{.offset = 2816, .pitch = 256},
342
{.offset = 3072, .pitch = 256},
343
{.offset = 3328, .pitch = 256},
344
{.offset = 3584, .pitch = 256},
345
{.offset = 3840, .pitch = 256},
350
/* And, again for the 257-9 failure, test a replica with a larger size*/
352
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
359
{.offset = 0, .pitch = 2304},
360
{.offset = 73728, .pitch = 1280},
361
{.offset = 94208, .pitch = 768},
362
{.offset = 100352, .pitch = 512},
363
{.offset = 102400, .pitch = 256},
364
{.offset = 102912, .pitch = 256},
365
{.offset = 103168, .pitch = 256},
366
{.offset = 103424, .pitch = 256},
367
{.offset = 103680, .pitch = 256},
368
{.offset = 103936, .pitch = 256},
373
/* Oh, look. The 513-517 failure extends up to 518 at the next texture
377
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
384
{.offset = 0, .pitch = 2304},
385
{.offset = 2304, .pitch = 1280},
386
{.offset = 3584, .pitch = 768},
387
{.offset = 4352, .pitch = 512},
388
{.offset = 4864, .pitch = 256},
389
{.offset = 5120, .pitch = 256},
390
{.offset = 5376, .pitch = 256},
391
{.offset = 5632, .pitch = 256},
392
{.offset = 5888, .pitch = 256},
393
{.offset = 6144, .pitch = 256},
398
/* Tiled mode testing of the unusual 1/2-bytes-per-pixel pitch
401
.format = PIPE_FORMAT_R8_UNORM,
404
.tile_mode = TILE6_3,
409
{.offset = 0, .pitch = 256},
410
{.offset = 8192, .pitch = 128},
411
{.offset = 12288, .pitch = 128},
412
{.offset = 16384, .pitch = 128},
413
{.offset = 20480, .pitch = 128},
414
{.offset = 20608, .pitch = 128},
415
{.offset = 20736, .pitch = 128},
416
{.offset = 20864, .pitch = 128},
421
/* Single-level RGBA8888 UBWC following UBWC alignment rules laid out
422
* in msm_media_info.h to verify that we don't break buffer sharing.
425
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
428
.tile_mode = TILE6_3,
434
{.offset = 1024 * 48, .pitch = 16384 * 4},
438
{.offset = 0, .pitch = 1024},
443
/* UBWC: Pitch comes from POT-aligned level 0. */
444
/* Pitch fixed in this commit, but offsets broken. Will be fixed in
448
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
451
.tile_mode = TILE6_3,
457
{.offset = 0, .pitch = 8448},
458
{.offset = 1081344, .pitch = 4352},
459
{.offset = 1359872, .pitch = 2304},
460
{.offset = 1433600, .pitch = 1280},
461
{.offset = 1454080, .pitch = 768},
462
{.offset = 1466368, .pitch = 512},
463
{.offset = 1474560, .pitch = 256},
464
{.offset = 1478656, .pitch = 256},
465
{.offset = 1482752, .pitch = 256},
466
{.offset = 1486848, .pitch = 256},
467
{.offset = 1490944, .pitch = 256},
468
{.offset = 1495040, .pitch = 256},
472
{.offset = 0, .pitch = 256},
473
{.offset = 16384, .pitch = 128},
474
{.offset = 24576, .pitch = 64},
475
{.offset = 28672, .pitch = 64},
476
{.offset = 32768, .pitch = 64},
477
{.offset = 36864, .pitch = 64},
478
{.offset = 40960, .pitch = 64},
479
{.offset = 45056, .pitch = 64},
480
{.offset = 49152, .pitch = 64},
481
{.offset = 53248, .pitch = 64},
482
{.offset = 57344, .pitch = 64},
483
{.offset = 61440, .pitch = 64},
487
/* UBWC: Height comes from POT-aligned level 0. */
489
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
492
.tile_mode = TILE6_3,
498
{.offset = 0, .pitch = 4096},
499
{.offset = 4259840, .pitch = 2048},
500
{.offset = 5308416, .pitch = 1024},
501
{.offset = 5570560, .pitch = 512},
502
{.offset = 5636096, .pitch = 256},
503
{.offset = 5652480, .pitch = 256},
504
{.offset = 5660672, .pitch = 256},
505
{.offset = 5664768, .pitch = 256},
506
{.offset = 5668864, .pitch = 256},
507
{.offset = 5672960, .pitch = 256},
508
{.offset = 5677056, .pitch = 256},
512
{.offset = 0, .pitch = 64},
513
{.offset = 32768, .pitch = 64},
514
{.offset = 49152, .pitch = 64},
515
{.offset = 57344, .pitch = 64},
516
{.offset = 61440, .pitch = 64},
517
{.offset = 65536, .pitch = 64},
518
{.offset = 69632, .pitch = 64},
519
{.offset = 73728, .pitch = 64},
520
{.offset = 77824, .pitch = 64},
521
{.offset = 81920, .pitch = 64},
522
{.offset = 86016, .pitch = 64},
527
/* UBWC: Get at minimum height of a level across cpps */
529
.format = PIPE_FORMAT_R16_UINT,
532
.tile_mode = TILE6_3,
538
{.offset = 0, .pitch = 32768},
539
{.offset = 524288, .pitch = 16384},
540
{.offset = 786432, .pitch = 8192},
541
{.offset = 917504, .pitch = 4096},
542
{.offset = 983040, .pitch = 2048},
543
{.offset = 1015808, .pitch = 1024},
544
{.offset = 1032192, .pitch = 512},
545
{.offset = 1040384, .pitch = 256},
546
{.offset = 1044480, .pitch = 256},
547
{.offset = 1048576, .pitch = 256},
548
{.offset = 1052672, .pitch = 256},
549
{.offset = 1056768, .pitch = 256},
550
{.offset = 1060864, .pitch = 256},
551
{.offset = 1064960, .pitch = 256},
552
{.offset = 1069056, .pitch = 256},
556
{.offset = 0, .pitch = 1024},
557
{.offset = 65536, .pitch = 512},
558
{.offset = 98304, .pitch = 256},
559
{.offset = 114688, .pitch = 128},
560
{.offset = 122880, .pitch = 64},
561
{.offset = 126976, .pitch = 64},
562
{.offset = 131072, .pitch = 64},
563
{.offset = 135168, .pitch = 64},
564
{.offset = 139264, .pitch = 64},
565
{.offset = 143360, .pitch = 64},
566
{.offset = 147456, .pitch = 64},
567
{.offset = 151552, .pitch = 64},
568
{.offset = 155648, .pitch = 64},
569
{.offset = 159744, .pitch = 64},
570
{.offset = 163840, .pitch = 64},
575
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
578
.tile_mode = TILE6_3,
584
{.offset = 0, .pitch = 65536},
585
{.offset = 1048576, .pitch = 32768},
586
{.offset = 1572864, .pitch = 16384},
587
{.offset = 1835008, .pitch = 8192},
588
{.offset = 1966080, .pitch = 4096},
589
{.offset = 2031616, .pitch = 2048},
590
{.offset = 2064384, .pitch = 1024},
591
{.offset = 2080768, .pitch = 512},
592
{.offset = 2088960, .pitch = 256},
593
{.offset = 2093056, .pitch = 256},
594
{.offset = 2097152, .pitch = 256},
595
{.offset = 2101248, .pitch = 256},
596
{.offset = 2105344, .pitch = 256},
597
{.offset = 2109440, .pitch = 256},
598
{.offset = 2113536, .pitch = 256},
602
{.offset = 0, .pitch = 1024},
603
{.offset = 65536, .pitch = 512},
604
{.offset = 98304, .pitch = 256},
605
{.offset = 114688, .pitch = 128},
606
{.offset = 122880, .pitch = 64},
607
{.offset = 126976, .pitch = 64},
608
{.offset = 131072, .pitch = 64},
609
{.offset = 135168, .pitch = 64},
610
{.offset = 139264, .pitch = 64},
611
{.offset = 143360, .pitch = 64},
612
{.offset = 147456, .pitch = 64},
613
{.offset = 151552, .pitch = 64},
614
{.offset = 155648, .pitch = 64},
615
{.offset = 159744, .pitch = 64},
616
{.offset = 163840, .pitch = 64},
621
.format = PIPE_FORMAT_R32G32B32A32_FLOAT,
624
.tile_mode = TILE6_3,
630
{.offset = 0, .pitch = 262144},
631
{.offset = 4194304, .pitch = 131072},
632
{.offset = 6291456, .pitch = 65536},
633
{.offset = 7340032, .pitch = 32768},
634
{.offset = 7864320, .pitch = 16384},
635
{.offset = 8126464, .pitch = 8192},
636
{.offset = 8257536, .pitch = 4096},
637
{.offset = 8323072, .pitch = 2048},
638
{.offset = 8355840, .pitch = 1024},
639
{.offset = 8372224, .pitch = 1024},
640
{.offset = 8388608, .pitch = 1024},
641
{.offset = 8404992, .pitch = 1024},
642
{.offset = 8421376, .pitch = 1024},
643
{.offset = 8437760, .pitch = 1024},
644
{.offset = 8454144, .pitch = 1024},
648
{.offset = 0, .pitch = 4096},
649
{.offset = 262144, .pitch = 2048},
650
{.offset = 393216, .pitch = 1024},
651
{.offset = 458752, .pitch = 512},
652
{.offset = 491520, .pitch = 256},
653
{.offset = 507904, .pitch = 128},
654
{.offset = 516096, .pitch = 64},
655
{.offset = 520192, .pitch = 64},
656
{.offset = 524288, .pitch = 64},
657
{.offset = 528384, .pitch = 64},
658
{.offset = 532480, .pitch = 64},
659
{.offset = 536576, .pitch = 64},
660
{.offset = 540672, .pitch = 64},
661
{.offset = 544768, .pitch = 64},
662
{.offset = 548864, .pitch = 64},
668
.format = PIPE_FORMAT_R8G8B8A8_UNORM,
671
.tile_mode = TILE6_3,
678
{.offset = 0, .pitch = 7168},
682
{.offset = 0, .pitch = 128},
687
/* Easy 32x32x32 3d case */
689
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
693
.tile_mode = TILE6_3,
700
{.offset = 0, .pitch = 256, .size0 = 8192},
701
{.offset = 262144, .pitch = 256, .size0 = 4096},
702
{.offset = 327680, .pitch = 256, .size0 = 4096},
703
{.offset = 360448, .pitch = 256, .size0 = 4096},
704
{.offset = 376832, .pitch = 256, .size0 = 4096},
705
{.offset = 385024, .pitch = 256},
710
/* Scale up a bit to 128x128x32 3d */
712
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
716
.tile_mode = TILE6_3,
723
{.offset = 0, .pitch = 512, .size0 = 65536},
724
{.offset = 2097152, .pitch = 256, .size0 = 16384},
725
{.offset = 2359296, .pitch = 256, .size0 = 8192},
726
{.offset = 2424832, .pitch = 256, .size0 = 8192},
727
{.offset = 2457600, .pitch = 256, .size0 = 8192},
728
{.offset = 2473984, .pitch = 256},
729
{.offset = 2482176, .pitch = 256},
730
{.offset = 2490368, .pitch = 256},
735
/* Changing width to 1 changes where minimum layer size happens. */
737
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
741
.tile_mode = TILE6_LINEAR,
748
{.offset = 0, .pitch = 256, .size0 = 32768},
749
{.offset = 1048576, .pitch = 256, .size0 = 16384},
750
{.offset = 1310720, .pitch = 256, .size0 = 16384},
751
{.offset = 1441792, .pitch = 256, .size0 = 16384},
752
{.offset = 1507328, .pitch = 256, .size0 = 16384},
753
{.offset = 1540096, .pitch = 256},
754
{.offset = 1556480, .pitch = 256},
755
{.offset = 1572864, .pitch = 256},
760
/* And increasing width makes it happen later. */
762
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
766
.tile_mode = TILE6_3,
773
{.offset = 0, .pitch = 4096, .size0 = 524288},
774
{.offset = 16777216, .pitch = 2048, .size0 = 131072},
775
{.offset = 18874368, .pitch = 1024, .size0 = 32768},
776
{.offset = 19136512, .pitch = 512, .size0 = 8192},
777
{.offset = 19169280, .pitch = 256, .size0 = 4096},
778
{.offset = 19177472, .pitch = 256},
779
{.offset = 19181568, .pitch = 256},
780
{.offset = 19185664, .pitch = 256},
781
{.offset = 19189760, .pitch = 256},
782
{.offset = 19193856, .pitch = 256},
783
{.offset = 19197952, .pitch = 256},
788
/* NPOT height case that piglit was catching 3d texture failure in, we
789
* use a higher depth though to get more slice pitches detected from
793
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
797
.tile_mode = TILE6_3,
804
{.offset = 0, .pitch = 512, .size0 = 73728},
805
{.offset = 1179648, .pitch = 256, .size0 = 20480},
806
{.offset = 1343488, .pitch = 256, .size0 = 20480},
807
{.offset = 1425408, .pitch = 256, .size0 = 20480},
808
{.offset = 1466368, .pitch = 256},
809
{.offset = 1486848, .pitch = 256},
810
{.offset = 1507328, .pitch = 256},
811
{.offset = 1527808, .pitch = 256},
816
/* NPOT height case that my first 3d layout ideas failed on. */
818
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
822
.tile_mode = TILE6_3,
829
{.offset = 0, .pitch = 512, .size0 = 73728},
830
{.offset = 1179648, .pitch = 256, .size0 = 20480},
831
{.offset = 1343488, .pitch = 256, .size0 = 20480},
832
{.offset = 1425408, .pitch = 256, .size0 = 20480},
833
{.offset = 1466368, .pitch = 256},
834
{.offset = 1486848, .pitch = 256},
835
{.offset = 1507328, .pitch = 256},
836
{.offset = 1527808, .pitch = 256},
841
/* blob used MIN_LAYERSZ = 0x3000 here.
843
* This is an interesting case for 3d layout, since pitch stays NPOT for a while.
846
.format = PIPE_FORMAT_R9G9B9E5_FLOAT,
850
.tile_mode = TILE6_3,
857
{.offset = 0, .pitch = 3072, .size0 = 98304},
858
{.offset = 12582912, .pitch = 1536, .size0 = 24576},
859
{.offset = 14155776, .pitch = 768, .size0 = 12288},
860
{.offset = 14548992, .pitch = 512, .size0 = 12288},
861
{.offset = 14745600, .pitch = 256, .size0 = 12288},
862
{.offset = 14843904, .pitch = 256, .size0 = 12288},
863
{.offset = 14893056, .pitch = 256, .size0 = 12288},
864
{.offset = 14917632, .pitch = 256},
865
{.offset = 14929920, .pitch = 256},
866
{.offset = 14942208, .pitch = 256},
871
/* dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rg11_eac.texture3d_to_texture2d */
872
#if 0 /* XXX: We disagree with the blob about level 0 size0, but the testcase passes. */
874
.format = PIPE_FORMAT_R32G32B32A32_FLOAT,
878
.tile_mode = TILE6_3,
885
{.offset = 0, .pitch = 3072, .size0 = 524288},
886
{.offset = 8912896, .pitch = 2048, .size0 = 131072},
887
{.offset = 9961472, .pitch = 1024, .size0 = 32768},
888
{.offset = 10092544, .pitch = 1024, .size0 = 16384},
889
{.offset = 10125312, .pitch = 1024},
890
{.offset = 10141696, .pitch = 1024},
891
{.offset = 10158080, .pitch = 1024},
892
{.offset = 10174464, .pitch = 1024},
898
/* Size minification issue found while looking at the above test. */
900
.format = PIPE_FORMAT_R32G32B32A32_FLOAT,
904
.tile_mode = TILE6_3,
911
{.offset = 0, .pitch = 3072, .size0 = 49152},
912
{.offset = 393216, .pitch = 2048, .size0 = 32768},
913
{.offset = 524288, .pitch = 1024, .size0 = 32768},
914
{.offset = 589824, .pitch = 1024},
915
{.offset = 622592, .pitch = 1024},
916
{.offset = 655360, .pitch = 1024},
917
{.offset = 688128, .pitch = 1024},
918
{.offset = 720896, .pitch = 1024},
926
main(int argc, char **argv)
930
for (int i = 0; i < ARRAY_SIZE(testcases); i++) {
931
if (!fdl_test_layout(&testcases[i], 630))