[igt-dev] [PATCH i-g-t v6 05/22] lib/igt_fb: Add support for VC4 SAND tiling modes
Paul Kocialkowski
paul.kocialkowski at bootlin.com
Fri Feb 22 09:28:54 UTC 2019
This introduces support for the VC4 SAND tiling modes, that take a
specific parameter indicating their column height. This parameter acts
as a height-based stride equivalent, that shall be equal or greater
than the displayed height.
The parameter is extracted and returned as tile height so that enough
memory can be reserved for column heights containing extra padding.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski at bootlin.com>
Reviewed-by: Maxime Ripard <maxime.ripard at bootlin.com>
Reviewed-by: Lyude Paul <lyude at redhat.com>
---
lib/igt_fb.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index bfb47622a474..a02b3621102f 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -271,8 +271,12 @@ static const struct format_desc_struct *lookup_drm_format(uint32_t drm_format)
void igt_get_fb_tile_size(int fd, uint64_t tiling, int fb_bpp,
unsigned *width_ret, unsigned *height_ret)
{
- if (is_vc4_device(fd))
+ uint32_t vc4_tiling_param = 0;
+
+ if (is_vc4_device(fd)) {
+ vc4_tiling_param = fourcc_mod_broadcom_param(tiling);
tiling = fourcc_mod_broadcom_mod(tiling);
+ }
switch (tiling) {
case LOCAL_DRM_FORMAT_MOD_NONE:
@@ -332,6 +336,26 @@ void igt_get_fb_tile_size(int fd, uint64_t tiling, int fb_bpp,
*width_ret = 128;
*height_ret = 32;
break;
+ case DRM_FORMAT_MOD_BROADCOM_SAND32:
+ igt_require_vc4(fd);
+ *width_ret = 32;
+ *height_ret = vc4_tiling_param;
+ break;
+ case DRM_FORMAT_MOD_BROADCOM_SAND64:
+ igt_require_vc4(fd);
+ *width_ret = 64;
+ *height_ret = vc4_tiling_param;
+ break;
+ case DRM_FORMAT_MOD_BROADCOM_SAND128:
+ igt_require_vc4(fd);
+ *width_ret = 128;
+ *height_ret = vc4_tiling_param;
+ break;
+ case DRM_FORMAT_MOD_BROADCOM_SAND256:
+ igt_require_vc4(fd);
+ *width_ret = 256;
+ *height_ret = vc4_tiling_param;
+ break;
default:
igt_assert(false);
}
--
2.20.1
More information about the igt-dev
mailing list