modesetting: set capabilities up after glamor and enable offload caps.
This moves the capabilites setting to after glamor is initialised, and enables the offload caps in cases where they work. This enables DRI2 PRIME support with modesetting. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
258588224d
commit
2378adde67
|
@ -820,18 +820,6 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
|||
return FALSE;
|
||||
ms->drmmode.fd = ms->fd;
|
||||
|
||||
pScrn->capabilities = 0;
|
||||
#ifdef DRM_CAP_PRIME
|
||||
ret = drmGetCap(ms->fd, DRM_CAP_PRIME, &value);
|
||||
if (ret == 0) {
|
||||
if (value & DRM_PRIME_CAP_IMPORT)
|
||||
pScrn->capabilities |= RR_Capability_SinkOutput;
|
||||
#if GLAMOR_HAS_GBM_LINEAR
|
||||
if (value & DRM_PRIME_CAP_EXPORT)
|
||||
pScrn->capabilities |= RR_Capability_SourceOutput;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
drmmode_get_default_bpp(pScrn, &ms->drmmode, &defaultdepth, &defaultbpp);
|
||||
if (defaultdepth == 24 && defaultbpp == 24)
|
||||
bppflags = SupportConvert32to24 | Support24bppFb;
|
||||
|
@ -907,6 +895,22 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
|||
ms->drmmode.pageflip = FALSE;
|
||||
}
|
||||
|
||||
pScrn->capabilities = 0;
|
||||
#ifdef DRM_CAP_PRIME
|
||||
ret = drmGetCap(ms->fd, DRM_CAP_PRIME, &value);
|
||||
if (ret == 0) {
|
||||
if (value & DRM_PRIME_CAP_IMPORT) {
|
||||
pScrn->capabilities |= RR_Capability_SinkOutput;
|
||||
if (ms->drmmode.glamor)
|
||||
pScrn->capabilities |= RR_Capability_SourceOffload;
|
||||
}
|
||||
#if GLAMOR_HAS_GBM_LINEAR
|
||||
if (value & DRM_PRIME_CAP_EXPORT && ms->drmmode.glamor)
|
||||
pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SinkOffload;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (drmmode_pre_init(pScrn, &ms->drmmode, pScrn->bitsPerPixel / 8) == FALSE) {
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "KMS setup failed\n");
|
||||
goto fail;
|
||||
|
|
Loading…
Reference in New Issue
Block a user