From 80c6a1c49966af01be3dcc211d7ade55c198ad55 Mon Sep 17 00:00:00 2001 From: Melissa Goad Date: Sun, 15 Oct 2017 21:19:03 -0500 Subject: [PATCH] Minor speed improvement for nVidia cards --- src/video/vid_nv_riva128.c | 52 ++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/src/video/vid_nv_riva128.c b/src/video/vid_nv_riva128.c index c935cea45..e8df78401 100644 --- a/src/video/vid_nv_riva128.c +++ b/src/video/vid_nv_riva128.c @@ -2813,33 +2813,41 @@ void riva128_ptimer_tick(void *p) svga->clock = cpuclock / freq; } - freq = 13500000.0; - - if(riva128->pramdac.m_m == 0) freq = 0; - else + if(riva128->card_id == 0x03) { - freq = (freq * riva128->pramdac.m_n) / (1 << riva128->pramdac.m_p) / riva128->pramdac.m_m; - //pclog("RIVA 128 Memory clock is %f Hz\n", freq); + freq = 13500000.0; + + if(riva128->pramdac.m_m == 0) freq = 0; + else + { + freq = (freq * riva128->pramdac.m_n) / (1 << riva128->pramdac.m_p) / riva128->pramdac.m_m; + //pclog("RIVA 128 Memory clock is %f Hz\n", freq); + } + + riva128->mfreq = freq; + riva128->menable = 0; + riva128->mtime = (int)((TIMER_USEC * 1000000.0) / riva128->mfreq); + riva128->menable = 1; } + else riva128->menable = 0; - riva128->mfreq = freq; - riva128->menable = 0; - riva128->mtime = (int)((TIMER_USEC * 1000000.0) / riva128->mfreq); - riva128->menable = 1; - - freq = 13500000.0; - - if(riva128->pramdac.nv_m == 0) freq = 0; - else + if(riva128->card_id >= 0x04) { - freq = (freq * riva128->pramdac.nv_n) / (1 << riva128->pramdac.nv_p) / riva128->pramdac.nv_m; - //pclog("RIVA 128 Core clock is %f Hz\n", freq); - } + freq = 13500000.0; - riva128->nvfreq = freq; - riva128->nvenable = 0; - riva128->nvtime = (int)((TIMER_USEC * 1000000.0) / riva128->nvfreq); - riva128->nvenable = 1; + if(riva128->pramdac.nv_m == 0) freq = 0; + else + { + freq = (freq * riva128->pramdac.nv_n) / (1 << riva128->pramdac.nv_p) / riva128->pramdac.nv_m; + //pclog("RIVA 128 Core clock is %f Hz\n", freq); + } + + riva128->nvfreq = freq; + riva128->nvenable = 0; + riva128->nvtime = (int)((TIMER_USEC * 1000000.0) / riva128->nvfreq); + riva128->nvenable = 1; + } + else riva128->nvenable = 0; }