| 1 | --- a/hw/xfree86/modes/xf86RandR12.c |
| 2 | +++ b/hw/xfree86/modes/xf86RandR12.c |
| 3 | @@ -1569,10 +1569,16 @@ xf86RandR12CreateObjects12(ScreenPtr pSc |
| 4 | } |
| 5 | |
| 6 | if (config->name) { |
| 7 | + uint32_t caps = pScrn->capabilities; |
| 8 | config->randr_provider = RRProviderCreate(pScreen, config->name, |
| 9 | strlen(config->name)); |
| 10 | |
| 11 | - RRProviderSetCapabilities(config->randr_provider, pScrn->capabilities); |
| 12 | + if (!pScreen->isGPU) |
| 13 | + caps &= RR_Capability_SinkOffload | RR_Capability_SourceOutput; |
| 14 | + else |
| 15 | + caps &= RR_Capability_SourceOffload | RR_Capability_SinkOutput; |
| 16 | + |
| 17 | + RRProviderSetCapabilities(config->randr_provider, caps); |
| 18 | } |
| 19 | |
| 20 | return TRUE; |