fixed move_display distortions (both heads)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6333 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -383,6 +383,7 @@ status_t nv_crtc_set_display_pitch()
|
|||||||
status_t nv_crtc_set_display_start(uint32 startadd,uint8 bpp)
|
status_t nv_crtc_set_display_start(uint32 startadd,uint8 bpp)
|
||||||
{
|
{
|
||||||
uint8 temp;
|
uint8 temp;
|
||||||
|
uint32 timeout = 0;
|
||||||
|
|
||||||
LOG(4,("CRTC: setting card RAM to be displayed bpp %d\n", bpp));
|
LOG(4,("CRTC: setting card RAM to be displayed bpp %d\n", bpp));
|
||||||
|
|
||||||
@@ -390,7 +391,15 @@ status_t nv_crtc_set_display_start(uint32 startadd,uint8 bpp)
|
|||||||
LOG(2,("CRTC: frameRAM: $%08x\n", si->framebuffer));
|
LOG(2,("CRTC: frameRAM: $%08x\n", si->framebuffer));
|
||||||
LOG(2,("CRTC: framebuffer: $%08x\n", si->fbc.frame_buffer));
|
LOG(2,("CRTC: framebuffer: $%08x\n", si->fbc.frame_buffer));
|
||||||
|
|
||||||
/* retrace sync not needed here: doublebuffering in hardware */
|
/* we might have no retraces during setmode! */
|
||||||
|
/* wait 25mS max. for retrace to occur (refresh > 40Hz) */
|
||||||
|
while (((NV_REG32(NV32_RASTER) & 0x000007ff) < si->dm.timing.v_display) &&
|
||||||
|
(timeout < (25000/10)))
|
||||||
|
{
|
||||||
|
/* don't snooze much longer or retrace might get missed! */
|
||||||
|
snooze(10);
|
||||||
|
timeout++;
|
||||||
|
}
|
||||||
|
|
||||||
/* enable access to CRTC1 on dualhead cards */
|
/* enable access to CRTC1 on dualhead cards */
|
||||||
if (si->ps.secondary_head) CRTCW(OWNER, 0x00);
|
if (si->ps.secondary_head) CRTCW(OWNER, 0x00);
|
||||||
@@ -424,8 +433,7 @@ status_t nv_crtc_set_display_start(uint32 startadd,uint8 bpp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* set NV4/NV10 byte adress: (b0 - 1) */
|
/* set NV4/NV10 byte adress: (b0 - 1) */
|
||||||
temp = (ATBR(HORPIXPAN) & 0xf9);
|
ATBW(HORPIXPAN, ((startadd & 0x00000003) << 1));
|
||||||
ATBW(HORPIXPAN, (temp | ((startadd & 0x00000003) << 1)));
|
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ status_t nv_crtc2_set_display_pitch()
|
|||||||
|
|
||||||
status_t nv_crtc2_set_display_start(uint32 startadd,uint8 bpp)
|
status_t nv_crtc2_set_display_start(uint32 startadd,uint8 bpp)
|
||||||
{
|
{
|
||||||
uint8 temp;
|
uint32 timeout = 0;
|
||||||
|
|
||||||
LOG(4,("CRTC2: setting card RAM to be displayed bpp %d\n", bpp));
|
LOG(4,("CRTC2: setting card RAM to be displayed bpp %d\n", bpp));
|
||||||
|
|
||||||
@@ -372,7 +372,15 @@ status_t nv_crtc2_set_display_start(uint32 startadd,uint8 bpp)
|
|||||||
LOG(2,("CRTC2: frameRAM: $%08x\n", si->framebuffer));
|
LOG(2,("CRTC2: frameRAM: $%08x\n", si->framebuffer));
|
||||||
LOG(2,("CRTC2: framebuffer: $%08x\n", si->fbc.frame_buffer));
|
LOG(2,("CRTC2: framebuffer: $%08x\n", si->fbc.frame_buffer));
|
||||||
|
|
||||||
/* retrace sync not needed here: doublebuffering in hardware */
|
/* we might have no retraces during setmode! */
|
||||||
|
/* wait 25mS max. for retrace to occur (refresh > 40Hz) */
|
||||||
|
while (((NV_REG32(NV32_RASTER2) & 0x000007ff) < si->dm.timing.v_display) &&
|
||||||
|
(timeout < (25000/10)))
|
||||||
|
{
|
||||||
|
/* don't snooze much longer or retrace might get missed! */
|
||||||
|
snooze(10);
|
||||||
|
timeout++;
|
||||||
|
}
|
||||||
|
|
||||||
/* enable access to CRTC2 */
|
/* enable access to CRTC2 */
|
||||||
CRTC2W(OWNER, 0x03);
|
CRTC2W(OWNER, 0x03);
|
||||||
@@ -386,8 +394,7 @@ status_t nv_crtc2_set_display_start(uint32 startadd,uint8 bpp)
|
|||||||
NV_REG32(NV32_NV10FB2STADD32) = (startadd & 0xfffffffc);
|
NV_REG32(NV32_NV10FB2STADD32) = (startadd & 0xfffffffc);
|
||||||
|
|
||||||
/* set byte adress: (b0 - 1) */
|
/* set byte adress: (b0 - 1) */
|
||||||
temp = (ATB2R(HORPIXPAN) & 0xf9);
|
ATB2W(HORPIXPAN, ((startadd & 0x00000003) << 1));
|
||||||
ATB2W(HORPIXPAN, (temp | ((startadd & 0x00000003) << 1)));
|
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ status_t nv_general_powerup()
|
|||||||
{
|
{
|
||||||
status_t status;
|
status_t status;
|
||||||
|
|
||||||
LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.08-7 running.\n"));
|
LOG(1,("POWERUP: nVidia (open)BeOS Accelerant 0.08-8 running.\n"));
|
||||||
|
|
||||||
/* preset no laptop */
|
/* preset no laptop */
|
||||||
si->ps.laptop = false;
|
si->ps.laptop = false;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p><h2>Changes done for each driverversion:</h2></p>
|
<p><h2>Changes done for each driverversion:</h2></p>
|
||||||
<p><h1>head (0.08-7, Rudolf)</h1></p>
|
<p><h1>head (0.08-8, Rudolf)</h1></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed GeForceFX 5600 and FX 5700 monitor 'refresh out of range' / shutoff fault. nVidia changed the pixelPLL for the NV31 and NV36;
|
<li>Fixed GeForceFX 5600 and FX 5700 monitor 'refresh out of range' / shutoff fault. nVidia changed the pixelPLL for the NV31 and NV36;
|
||||||
<li>Fixed acceleration engine restrictions code to adhere to GeForceFX 5600 restrictions: those are still NV20 style for this card;
|
<li>Fixed acceleration engine restrictions code to adhere to GeForceFX 5600 restrictions: those are still NV20 style for this card;
|
||||||
@@ -18,7 +18,8 @@
|
|||||||
<li>Improved startup code: this should (could) fix random trouble on some cards like for instance hardcursor trouble on especially laptops;
|
<li>Improved startup code: this should (could) fix random trouble on some cards like for instance hardcursor trouble on especially laptops;
|
||||||
<li>Added dualhead support (use Mark Watson's 'G400 Dualhead Setup' from BeBits for now): Note that dualhead switch mode still has to be setup, and overlay is fixed to the primary head for now;
|
<li>Added dualhead support (use Mark Watson's 'G400 Dualhead Setup' from BeBits for now): Note that dualhead switch mode still has to be setup, and overlay is fixed to the primary head for now;
|
||||||
<li>Updated mode granularity and max virtual size checking/limiting to adhere to new CRTC setup for dualhead cards;
|
<li>Updated mode granularity and max virtual size checking/limiting to adhere to new CRTC setup for dualhead cards;
|
||||||
<li>Added dualhead support for 8- and 16bit colordepths.
|
<li>Added dualhead support for 8- and 16bit colordepths;
|
||||||
|
<li>Fixed move_display distortions in virtualscreens especially visible in 8-bit colordepth (for both heads).
|
||||||
</ul>
|
</ul>
|
||||||
<p><h1>nv_driver 0.07 (Rudolf)</h1></p>
|
<p><h1>nv_driver 0.07 (Rudolf)</h1></p>
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
Reference in New Issue
Block a user