On Fri, Apr 16, 2021 at 06:27:23PM +0200, Mario Kleiner wrote:
On Mon, Mar 22, 2021 at 4:52 PM Ville Syrjälä ville.syrjala@linux.intel.com wrote:
On Fri, Mar 19, 2021 at 10:03:12PM +0100, Mario Kleiner wrote:
Hi,
this patch series adds the fourcc's for 16 bit fixed point unorm framebuffers to the core, and then an implementation for AMD gpu's with DisplayCore.
This is intended to allow for pageflipping to, and direct scanout of, Vulkan swapchain images in the format VK_FORMAT_R16G16B16A16_UNORM. I have patched AMD's GPUOpen amdvlk OSS driver to enable this format for swapchains, mapping to DRM_FORMAT_XBGR16161616: Link: https://github.com/kleinerm/pal/commit/a25d4802074b13a8d5f7edc96ae45469ecbac...
We should also add support for these formats into igt.a Should be semi-easy by just adding the suitable float<->uint16 conversion stuff.
Hi Ville,
Could you point me to a specific test case / file that I should look at for adding this?
lib/igt_fb.c is the main thing. It has a bunch of conversion magic to support rendering into all kinds of weird framebuffer formats via cairo.
In this should be mostly a matter of adding convert_uint16_to_float() and convert_float_to_uint16(), plugging those into fb_convert(), and declaring the new formats in format_desc[]. There might be a few little extra details I'm forgetting though.
Once igt_fb has the required stuff kms_plane/pixel-format* should automagically pick it up if the kernel reports the format as supported.
Oh, and you need some >1.17 version of cairo for the float support.