VIA gfx driver: fixed overlay on DDR166 and DDR200 memory. v0.19, updated docs.

This commit is contained in:
Rudolf Cornelissen
2016-02-07 22:46:49 +01:00
parent cfdffb0c14
commit 2e3e1a5902
3 changed files with 31 additions and 12 deletions
+24 -6
View File
@@ -1,5 +1,5 @@
/* VIA Unichrome Back End Scaler functions */
/* Written by Rudolf Cornelissen 05/2002-1/2016 */
/* Written by Rudolf Cornelissen 05/2002-2/2016 */
#define MODULE_BIT 0x00000200
@@ -49,13 +49,21 @@ bool eng_bes_chk_bandwidth()
switch (((CRTCR(MEMCLK)) & 0x70) >> 4)
{
case 0: /* SDR 66 */
case 1: /* SDR 100 */
case 2: /* SDR 133 */
/* memory is too slow, sorry. */
LOG(8,("Overlay: System memory is type SDR 66\n"));
return false;
break;
case 3: /* DDR 100 */
case 1: /* SDR 100 */
LOG(8,("Overlay: System memory is type SDR 100\n"));
return false;
break;
case 2: /* SDR 133 */
/* memory is too slow, sorry. */
LOG(8,("Overlay: System memory is type SDR 133\n"));
return false;
break;
case 3: /* DDR 100 (PC1600) */
/* DDR100's basic limit... */
LOG(8,("Overlay: System memory is type DDR 100\n"));
if (bandwidth > 921600000.0) return false;
/* ... but we have constraints at higher than 800x600 */
if (si->dm.timing.h_display > 800)
@@ -65,10 +73,20 @@ bool eng_bes_chk_bandwidth()
if (refresh > 60.2) return false;
}
break;
case 4: /* DDR 133 */
case 4: /* DDR 133 (PC2100) */
LOG(8,("Overlay: System memory is type DDR 133\n"));
if (bandwidth > 4045440000.0) return false;
break;
case 5: /* DDR 166 (PC2700) */
LOG(8,("Overlay: System memory is type DDR 166\n"));
if (bandwidth > 5210000000.0) return false;//fixme: set more correct limit?
break;
case 6: /* DDR 200 (PC3200) */
LOG(8,("Overlay: System memory is type DDR 200\n"));
if (bandwidth > 6170000000.0) return false;//fixme: set more correct limit?
break;
default: /* not (yet?) used */
LOG(8,("Overlay: System memory is (yet) unknown type!\n"));
return false;
break;
}
+2 -2
View File
@@ -1,7 +1,7 @@
/* Authors:
Mark Watson 12/1999,
Apsed,
Rudolf Cornelissen 10/2002-1/2016
Rudolf Cornelissen 10/2002-2/2016
*/
#define MODULE_BIT 0x00008000
@@ -90,7 +90,7 @@ status_t eng_general_powerup()
{
status_t status;
LOG(1,("POWERUP: Haiku VIA Accelerant 0.18 running.\n"));
LOG(1,("POWERUP: Haiku VIA Accelerant 0.19 running.\n"));
/* preset no laptop */
si->ps.laptop = false;
@@ -4,7 +4,7 @@
</head>
<body>
<p><h2>Changes done for each driverversion:</h2></p>
<p><h1>via_driver (Haiku repository 0.18, Rudolf)</h1></p>
<p><h1>via_driver (Haiku repository 0.19, Rudolf)</h1></p>
<ul>
<li>Initial setup based on nVidia driver 0.30;
<li>Kerneldriver uses MTR-WC mapping where available;
@@ -24,7 +24,8 @@
<li>Added returning correct information in GET_ACCELERANT_DEVICE_INFO (displayed in Haiku screenprefs panel);
<li>Fixed wrong PLL registerdefines for K8M800 and added seperate pixelPLL calculation routine: K8M800 now works correctly whereas previously you'd have a black screen (tested different resolutions, refreshrates and colordepths);
<li>Fixed blocking overlay hooks if current videomode is not supported (before overlay could kick in while it should not, resulting in bad video or desktop pictures);
<li>Fixed K8M800 video overlay: apparantly the engine was modified for this revision of the Unichrome video chipset: at least the 'V1' engine doesn't work here, while ' V3' does (using V3 now on K8M800).
<li>Fixed K8M800 video overlay: apparantly the engine was modified for this revision of the Unichrome video chipset: at least the 'V1' engine doesn't work here, while ' V3' does (using V3 now on K8M800);
<li>Added overlay support on system memory types DDR 166 and DDR 200. Before on these memory types overlay would block.
</ul>
<p><h1>Still todo:</h1></p>
<ul>
@@ -34,7 +35,7 @@
</p>
<hr><br>
<br>
<a href="mailto:[email protected]">Rudolf Cornelissen.</a>
<p>(Page last updated on January 28, 2016)</p>
Rudolf Cornelissen.<br>
<p>(Page last updated on February 7, 2016)</p>
</body>
</html>