Message ID | 1549476133-9172-1-git-send-email-kevin.strasser@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Support 64 bpp half float formats | expand |
Op 06-02-2019 om 19:02 schreef Kevin Strasser: > This series defines new formats and adds implementation to the i915 driver. > Since posting v1 I have removed the pixel normalize property, as it's not needed > for basic functionality. Also, I have been working on adding support to > userspace, but we can't land any patches until drm_fourcc.h has been updated > here. > > I have submitted a series to Mesa to make use of the RGBA ordered formats: > https://patchwork.freedesktop.org/series/54759/ > > My igt branch is reworked to drop usage of pixel normalize and includes use > of f16c intrinsics to speed up conversion: > https://gitlab.freedesktop.org/strassek/igt-gpu-tools/commits/fp16 > > I also have a libdrm branch with fp16 coverage added to modetest: > https://gitlab.freedesktop.org/strassek/drm/commits/fp16 > > To serve as a smoke test of the whole stack I have a modified version of > kmscube: > https://gitlab.freedesktop.org/strassek/kmscube/commits/fp16 > > Kevin Strasser (3): > drm/fourcc: Add 64 bpp half float formats > drm/i915: Refactor icl_is_hdr_plane > drm/i915/icl: Implement half float formats > > drivers/gpu/drm/drm_fourcc.c | 4 ++ > drivers/gpu/drm/i915/intel_atomic.c | 3 +- > drivers/gpu/drm/i915/intel_display.c | 27 ++++++++++++- > drivers/gpu/drm/i915/intel_drv.h | 7 ++-- > drivers/gpu/drm/i915/intel_sprite.c | 73 +++++++++++++++++++++++++++++++----- > include/uapi/drm/drm_fourcc.h | 11 ++++++ > 6 files changed, 110 insertions(+), 15 deletions(-) > It's nice that the igt parts are almost done. I think this might need rebasing on top of I'm glad there are tests, but the internal accuracy of the CAIRO_FORMAT_RGB24 is only 8 bits, so it wouldn't test this properly. Fortunately we will start using CAIRO_FORMAT_RGB96F and RGBA128F soon. :) See https://patchwork.freedesktop.org/patch/284507/ We should be able to convert native float to half float with an intrinsic. ~Maarten
Maarten Lankhorst wrote: > It's nice that the igt parts are almost done. I think this might need rebasing > on top of > > I'm glad there are tests, but the internal accuracy of the CAIRO_FORMAT_RGB24 > is only 8 bits, so it wouldn't test this properly. > > Fortunately we will start using CAIRO_FORMAT_RGB96F and RGBA128F soon. :) > > See https://patchwork.freedesktop.org/patch/284507/ > > We should be able to convert native float to half float with an intrinsic. Thanks for the pointer, native fp32 formats should make for fewer conversions too. I just updated my gitlab branch with a more recent rebase. I already have non-simd f16c instrinsics working, you can take a look at [1]. I experimented with the simd intrinsics too, but they were a bit slower, I would expect better results with pixel data that is already stored in fp32. Thanks, Kevin [1] https://gitlab.freedesktop.org/strassek/igt-gpu-tools/commit/910551867376b8ead3ab738056247486d422fff9