From 69e25c27b79b346847472112884039a0e7c63e7e Mon Sep 17 00:00:00 2001 From: Rudolf Cornelissen Date: Sat, 13 May 2006 21:44:30 +0000 Subject: [PATCH] removed 8 and 15bit TVout support for G100,G200: 8bit mode is troublesome indeed (at least). Tuned a bit more with picture position. Most modes for MGA_TVO revC seem OK (PAL DVD/VCD not OK yet, PAL 640x480 has a green triangle shaped distortion left onscreen). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17445 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/accelerants/matrox/ProposeDisplayMode.c | 3 +++ src/add-ons/accelerants/matrox/SetDisplayMode.c | 2 +- src/add-ons/accelerants/matrox/engine/mga_maventv.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c index cfc34895bf..1234b2a573 100644 --- a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c +++ b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c @@ -389,7 +389,9 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con { case G100: case G200: + /* confirmed most 8-bit modes to be troublesome for TVout (data fetch errors). */ if (si->ps.tvout && + ((target->space == B_RGB16_LITTLE) || (target->space == B_RGB32_LITTLE)) && (target->timing.h_display <= 1024) && (target->timing.v_display <= 768)) { @@ -399,6 +401,7 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con case G400: case G400MAX: if (si->ps.tvout && + ((target->space == B_RGB16_LITTLE) || (target->space == B_RGB32_LITTLE)) && (target->timing.h_display <= 1024) && (target->timing.v_display <= 768)) { diff --git a/src/add-ons/accelerants/matrox/SetDisplayMode.c b/src/add-ons/accelerants/matrox/SetDisplayMode.c index 2b79155c24..8f81b22690 100644 --- a/src/add-ons/accelerants/matrox/SetDisplayMode.c +++ b/src/add-ons/accelerants/matrox/SetDisplayMode.c @@ -390,7 +390,7 @@ status_t SET_DISPLAY_MODE(display_mode *mode_to_set) { /* calculate MAVEN-CRTC delay: only used during TVout */ si->crtc_delay = 17; - if (colour_depth1 <= 16) si->crtc_delay += 4; + if (colour_depth1 == 16) si->crtc_delay += 4; /* setup CRTC1 and it's pixelclock for TVout */ maventv_init(target); } diff --git a/src/add-ons/accelerants/matrox/engine/mga_maventv.c b/src/add-ons/accelerants/matrox/engine/mga_maventv.c index ca0338a3d5..7b60fc03ac 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_maventv.c +++ b/src/add-ons/accelerants/matrox/engine/mga_maventv.c @@ -783,6 +783,8 @@ int maventv_init(display_mode target) case ((TV_NTSC << (14 - 9)) | 720): /* NTSC DVD mode */ /* horizontal: adhere to CRTC granularity (8) */ tv_target.timing.h_total = 784; + /* MGA_TVOs need additional tweaking */ + if (!si->ps.secondary_head) si->crtc_delay += 12; break; case ((TV_PAL << (14 - 9)) | 768): /* PAL VCD mode */ /* horizontal: adhere to CRTC granularity (8) */