drm/fourcc: add vivante tiled layout format modifiers
Vivante GC hardware uses simple 4x4 tiled and nested 64x64 supertiled formats as well as so-called split-tiled variants for dual-pipe hardware, where even and odd tiles start at different base addresses. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-By: Wladimir J. van der Laan <laanwj@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20170126153217.26916-1-p.zabel@pengutronix.de
This commit is contained in:
parent
fcc8a22cc9
commit
73f1a5858b
@ -167,6 +167,7 @@ extern "C" {
|
|||||||
#define DRM_FORMAT_MOD_VENDOR_NV 0x03
|
#define DRM_FORMAT_MOD_VENDOR_NV 0x03
|
||||||
#define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
|
#define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
|
||||||
#define DRM_FORMAT_MOD_VENDOR_QCOM 0x05
|
#define DRM_FORMAT_MOD_VENDOR_QCOM 0x05
|
||||||
|
#define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06
|
||||||
/* add more to the end as needed */
|
/* add more to the end as needed */
|
||||||
|
|
||||||
#define fourcc_mod_code(vendor, val) \
|
#define fourcc_mod_code(vendor, val) \
|
||||||
@ -251,6 +252,46 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
|
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
|
||||||
|
|
||||||
|
/* Vivante framebuffer modifiers */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vivante 4x4 tiling layout
|
||||||
|
*
|
||||||
|
* This is a simple tiled layout using tiles of 4x4 pixels in a row-major
|
||||||
|
* layout.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_VIVANTE_TILED fourcc_mod_code(VIVANTE, 1)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vivante 64x64 super-tiling layout
|
||||||
|
*
|
||||||
|
* This is a tiled layout using 64x64 pixel super-tiles, where each super-tile
|
||||||
|
* contains 8x4 groups of 2x4 tiles of 4x4 pixels (like above) each, all in row-
|
||||||
|
* major layout.
|
||||||
|
*
|
||||||
|
* For more information: see
|
||||||
|
* https://github.com/etnaviv/etna_viv/blob/master/doc/hardware.md#texture-tiling
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED fourcc_mod_code(VIVANTE, 2)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vivante 4x4 tiling layout for dual-pipe
|
||||||
|
*
|
||||||
|
* Same as the 4x4 tiling layout, except every second 4x4 pixel tile starts at a
|
||||||
|
* different base address. Offsets from the base addresses are therefore halved
|
||||||
|
* compared to the non-split tiled layout.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vivante 64x64 super-tiling layout for dual-pipe
|
||||||
|
*
|
||||||
|
* Same as the 64x64 super-tiling layout, except every second 4x4 pixel tile
|
||||||
|
* starts at a different base address. Offsets from the base addresses are
|
||||||
|
* therefore halved compared to the non-split super-tiled layout.
|
||||||
|
*/
|
||||||
|
#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user