struct legacy_surf_level {
uint64_t offset;
- uint64_t slice_size;
- uint64_t dcc_offset;
- uint64_t dcc_fast_clear_size;
- uint16_t nblk_x;
- uint16_t nblk_y;
- enum radeon_surf_mode mode;
+ uint32_t slice_size_dw; /* in dwords; max = 4GB / 4. */
+ uint32_t dcc_offset; /* relative offset within DCC mip tree */
+ uint32_t dcc_fast_clear_size;
+ unsigned nblk_x:15;
+ unsigned nblk_y:15;
+ enum radeon_surf_mode mode:2;
};
struct legacy_surf_layout {
*/
unsigned num_dcc_levels:4;
unsigned is_linear:1;
+ unsigned has_stencil:1;
+ /* This might be true even if micro_tile_mode isn't displayable or rotated. */
+ unsigned is_displayable:1;
/* Displayable, thin, depth, rotated. AKA D,S,Z,R swizzle modes. */
unsigned micro_tile_mode:3;
uint32_t flags;
uint8_t tile_swizzle;
uint64_t surf_size;
- uint64_t dcc_size;
- uint64_t htile_size;
+ /* DCC and HTILE are very small. */
+ uint32_t dcc_size;
+ uint32_t htile_size;
uint32_t htile_slice_size;