diff options
Diffstat (limited to 'lib/igt_fb.c')
-rw-r--r-- | lib/igt_fb.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c index bfb47622..a02b3621 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); } |