diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-08-24 20:42:13 -0400 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-08-24 20:42:13 -0400 |
commit | 3469e1aa08792890fa6a5c72da52a1992a0b382c (patch) | |
tree | cc3125e98cc1e92f174965aa5263c899cc2243df /src | |
parent | 71f650d1bc432514516f7ac64a5e8a54c5227881 (diff) |
RADEON: add extra green data in depth 16
Apparently some radeons need this?
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_crtc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c index 6211b029..3ee7760e 100644 --- a/src/radeon_crtc.c +++ b/src/radeon_crtc.c @@ -912,6 +912,9 @@ void radeon_crtc_load_lut(xf86CrtcPtr crtc) } else if (pScrn->depth == 16) { for (i = 0; i < 64; i++) { OUTPAL(i * 4, radeon_crtc->lut_r[i], radeon_crtc->lut_g[i], radeon_crtc->lut_b[i]); + if (i <= 31) { + OUTPAL(i * 8, radeon_crtc->lut_r[i + 64], radeon_crtc->lut_g[i + 64], radeon_crtc->lut_b[i + 64]); + } } } else { for (i = 0; i < 256; i++) { @@ -935,6 +938,11 @@ radeon_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, radeon_crtc->lut_r[i] = red[i/2] >> 8; radeon_crtc->lut_g[i] = green[i] >> 8; radeon_crtc->lut_b[i] = blue[i/2] >> 8; + if (i <= 31) { + radeon_crtc->lut_r[i + 64] = red[i] >> 8; + radeon_crtc->lut_g[i + 64] = green[(i * 2) + 1] >> 8; + radeon_crtc->lut_b[i + 64] = blue[i] >> 8; + } } } else { for (i = 0; i < 256; i++) { |