Lines Matching defs:modifier
70 * Given an AFBC modifier, return the superblock size.
77 panfrost_afbc_superblock_size(uint64_t modifier)
79 unsigned index = (modifier & AFBC_FORMAT_MOD_BLOCK_SIZE_MASK);
81 assert(drm_is_afbc(modifier));
88 * Given an AFBC modifier, return the width of the superblock.
91 panfrost_afbc_superblock_width(uint64_t modifier)
93 return panfrost_afbc_superblock_size(modifier).width;
97 * Given an AFBC modifier, return the height of the superblock.
100 panfrost_afbc_superblock_height(uint64_t modifier)
102 return panfrost_afbc_superblock_size(modifier).height;
106 * Given an AFBC modifier, return if "wide blocks" are used. Wide blocks are
111 panfrost_afbc_is_wide(uint64_t modifier)
113 return panfrost_afbc_superblock_width(modifier) > 16;
119 * is 16x16, hence the modifier name.
136 panfrost_block_size(uint64_t modifier, enum pipe_format format)
138 if (modifier == DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED)
140 else if (drm_is_afbc(modifier))
141 return panfrost_afbc_superblock_size(modifier);
151 pan_afbc_tile_size(uint64_t modifier)
153 return (modifier & AFBC_FORMAT_MOD_TILED) ? 8 : 1;
164 pan_afbc_row_stride(uint64_t modifier, uint32_t width)
166 unsigned block_width = panfrost_afbc_superblock_width(modifier);
168 return (width / block_width) * pan_afbc_tile_size(modifier) *
179 pan_afbc_stride_blocks(uint64_t modifier, uint32_t row_stride_bytes)
182 (AFBC_HEADER_BYTES_PER_TILE * pan_afbc_tile_size(modifier));
191 pan_afbc_body_align(uint64_t modifier)
193 return (modifier & AFBC_FORMAT_MOD_TILED) ? 4096 : 64;
224 else if (drm_is_afbc(layout->modifier))
236 panfrost_block_size(layout->modifier, layout->format);
238 if (drm_is_afbc(layout->modifier)) {
251 uint64_t modifier)
254 panfrost_block_size(modifier, format);
256 if (drm_is_afbc(modifier)) {
259 return pan_afbc_row_stride(modifier, width);
337 bool afbc = drm_is_afbc(layout->modifier);
338 bool linear = layout->modifier == DRM_FORMAT_MOD_LINEAR;
344 panfrost_block_size(layout->modifier, layout->format);
355 align_w *= pan_afbc_tile_size(layout->modifier);
356 align_h *= pan_afbc_tile_size(layout->modifier);
399 pan_afbc_row_stride(layout->modifier, effective_width);
402 pan_afbc_body_align(layout->modifier));
487 if (drm_is_afbc(iview->image->layout.modifier)) {