From 63b7e9bb263905c780d5e689d829ffb0bc6e28c9 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 26 Jul 2012 10:43:29 +1000 Subject: intel: query kernel for caps to setup scrn capabilities. This queries the kernel for prime support before advertising the capabilities. Signed-off-by: Dave Airlie --- src/intel_driver.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/intel_driver.c b/src/intel_driver.c index f58ef5b4..0144c825 100644 --- a/src/intel_driver.c +++ b/src/intel_driver.c @@ -436,6 +436,25 @@ static Bool can_accelerate_blt(struct intel_screen_private *intel) return TRUE; } +static void intel_setup_capabilities(ScrnInfoPtr scrn) +{ +#ifdef INTEL_PIXMAP_SHARING + intel_screen_private *intel = intel_get_screen_private(scrn); + uint64_t value; + int ret; + + scrn->capabilities = 0; + + ret = drmGetCap(intel->drmSubFD, DRM_CAP_PRIME, &value); + if (ret == 0) { + if (value & DRM_PRIME_CAP_EXPORT) + scrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SinkOffload; + if (value & DRM_PRIME_CAP_IMPORT) + scrn->capabilities |= RR_Capability_SinkOutput; + } +#endif +} + /** * This is called before ScreenInit to do any require probing of screen * configuration. @@ -527,6 +546,7 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags) if (!I830GetEarlyOptions(scrn)) return FALSE; + intel_setup_capabilities(scrn); intel_check_chipset_option(scrn); intel_check_dri_option(scrn); -- cgit v1.2.3