Lines Matching refs:layout

34 /* Shared freedreno mipmap layout helper
59 * levels (layer_first layout).
64 * but in layer_first layout it only includes the first layer, and
85 /* parameters for explicit (imported) layout */
92 * Encapsulates the layout of a resource, including position of given 2d
136 fdl_cpp_shift(const struct fdl_layout *layout)
138 assert(util_is_power_of_two_or_zero(layout->cpp));
139 return layout->cpp_shift;
143 fdl_pitch(const struct fdl_layout *layout, unsigned level)
145 return align(u_minify(layout->pitch0, level), 1 << layout->pitchalign);
153 fdl_ubwc_pitch(const struct fdl_layout *layout, unsigned level)
155 if (!layout->ubwc)
157 return align(u_minify(layout->ubwc_width0, level), RGB_TILE_WIDTH_ALIGNMENT);
161 fdl_layer_stride(const struct fdl_layout *layout, unsigned level)
163 if (layout->layer_first)
164 return layout->layer_size;
166 return layout->slices[level].size0;
171 fdl2_pitch(const struct fdl_layout *layout, unsigned level)
173 uint32_t pitch = fdl_pitch(layout, level);
180 fdl2_pitch_pixels(const struct fdl_layout *layout, unsigned level)
182 return fdl2_pitch(layout, level) >> fdl_cpp_shift(layout);
186 fdl_surface_offset(const struct fdl_layout *layout, unsigned level,
189 const struct fdl_slice *slice = &layout->slices[level];
190 return slice->offset + fdl_layer_stride(layout, level) * layer;
194 fdl_ubwc_offset(const struct fdl_layout *layout, unsigned level, unsigned layer)
196 const struct fdl_slice *slice = &layout->ubwc_slices[level];
197 return slice->offset + layer * layout->ubwc_layer_size;
200 /* Minimum layout width to enable UBWC. */
204 fdl_level_linear(const struct fdl_layout *layout, int level)
206 if (layout->tile_all)
209 unsigned w = u_minify(layout->width0, level);
217 fdl_tile_mode(const struct fdl_layout *layout, int level)
219 if (layout->tile_mode && fdl_level_linear(layout, level))
222 return layout->tile_mode;
226 fdl_ubwc_enabled(const struct fdl_layout *layout, int level)
228 return layout->ubwc;
231 const char *fdl_tile_mode_desc(const struct fdl_layout *layout, int level);
233 void fdl_layout_buffer(struct fdl_layout *layout, uint32_t size);
235 void fdl5_layout(struct fdl_layout *layout, enum pipe_format format,
240 bool fdl6_layout(struct fdl_layout *layout, enum pipe_format format,
246 fdl_set_pitchalign(struct fdl_layout *layout, unsigned pitchalign)
248 uint32_t nblocksx = util_format_get_nblocksx(layout->format, layout->width0);
249 layout->pitchalign = pitchalign;
250 layout->pitch0 = align(nblocksx * layout->cpp, 1 << pitchalign);
253 void fdl_dump_layout(struct fdl_layout *layout);
255 void fdl6_get_ubwc_blockwidth(struct fdl_layout *layout, uint32_t *blockwidth,