xfree86/modes: Handle no palette case better in xf86RandR12CrtcSetGamma
Just use the RandR gamma ramp directly. Fixes random on-monitor colours with drivers which don't call xf86HandleColormaps, e.g. modesetting. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97154 Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									c833c0866f
								
							
						
					
					
						commit
						8bb9d460fb
					
				| 
						 | 
					@ -1310,9 +1310,17 @@ xf86RandR12CrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr randr_crtc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (randrp->palette_size) {
 | 
					    if (randrp->palette_size) {
 | 
				
			||||||
        xf86RandR12CrtcComputeGamma(pScreen, randr_crtc);
 | 
					        xf86RandR12CrtcComputeGamma(pScreen, randr_crtc);
 | 
				
			||||||
        xf86RandR12CrtcReloadGamma(randr_crtc);
 | 
					    } else {
 | 
				
			||||||
 | 
					        memcpy(crtc->gamma_red, randr_crtc->gammaRed,
 | 
				
			||||||
 | 
					               crtc->gamma_size * sizeof(crtc->gamma_red[0]));
 | 
				
			||||||
 | 
					        memcpy(crtc->gamma_green, randr_crtc->gammaGreen,
 | 
				
			||||||
 | 
					               crtc->gamma_size * sizeof(crtc->gamma_green[0]));
 | 
				
			||||||
 | 
					        memcpy(crtc->gamma_blue, randr_crtc->gammaBlue,
 | 
				
			||||||
 | 
					               crtc->gamma_size * sizeof(crtc->gamma_blue[0]));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xf86RandR12CrtcReloadGamma(randr_crtc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue