added preliminary NV40 architecture support. Test and provide feedback please!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9039 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
/* Written by Rudolf Cornelissen 05/2002-7/2004 */
|
/* Written by Rudolf Cornelissen 05/2002-9/2004 */
|
||||||
|
|
||||||
/* Note on 'missing features' in BeOS 5.0.3 and DANO:
|
/* Note on 'missing features' in BeOS 5.0.3 and DANO:
|
||||||
* BeOS needs to define more colorspaces! It would be nice if BeOS would support the FourCC 'definitions'
|
* BeOS needs to define more colorspaces! It would be nice if BeOS would support the FourCC 'definitions'
|
||||||
@@ -449,7 +449,8 @@ status_t GET_OVERLAY_CONSTRAINTS
|
|||||||
oc->v_scale.min = 1.0;
|
oc->v_scale.min = 1.0;
|
||||||
break;
|
break;
|
||||||
case NV30A:
|
case NV30A:
|
||||||
/* GeForceFX series have a new BES engine... */
|
case NV40A:
|
||||||
|
/* GeForceFX series and up have a new BES engine... */
|
||||||
oc->h_scale.min = 0.5;
|
oc->h_scale.min = 0.5;
|
||||||
oc->v_scale.min = 0.5;
|
oc->v_scale.min = 0.5;
|
||||||
/* NV31 (confirmed GeForceFX 5600) has NV20A scaling limits!
|
/* NV31 (confirmed GeForceFX 5600) has NV20A scaling limits!
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* NV Acceleration functions */
|
/* NV Acceleration functions */
|
||||||
/* Author:
|
/* Author:
|
||||||
Rudolf Cornelissen 8/2003-7/2004.
|
Rudolf Cornelissen 8/2003-9/2004.
|
||||||
|
|
||||||
This code was possible thanks to the Linux NV driver.
|
This code was possible thanks to the Linux NV driver.
|
||||||
*/
|
*/
|
||||||
@@ -492,8 +492,8 @@ status_t nv_acc_init()
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* setup some extra stuff for NV30A */
|
/* setup some extra stuff for NV30A and later */
|
||||||
if (si->ps.card_arch == NV30A)
|
if (si->ps.card_arch >= NV30A)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
fixme: Does not belong here (and not needed?)
|
fixme: Does not belong here (and not needed?)
|
||||||
@@ -532,6 +532,7 @@ status_t nv_acc_init()
|
|||||||
break;
|
break;
|
||||||
case NV20A:
|
case NV20A:
|
||||||
case NV30A:
|
case NV30A:
|
||||||
|
case NV40A:
|
||||||
/* location of active screen in framebuffer */
|
/* location of active screen in framebuffer */
|
||||||
ACCW(NV20_OFFSET0, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer));
|
ACCW(NV20_OFFSET0, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer));
|
||||||
ACCW(NV20_OFFSET1, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer));
|
ACCW(NV20_OFFSET1, ((uint8*)si->fbc.frame_buffer - (uint8*)si->framebuffer));
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* Nvidia TNT and GeForce Back End Scaler functions */
|
/* Nvidia TNT and GeForce Back End Scaler functions */
|
||||||
/* Written by Rudolf Cornelissen 05/2002-7/2004 */
|
/* Written by Rudolf Cornelissen 05/2002-9/2004 */
|
||||||
|
|
||||||
#define MODULE_BIT 0x00000200
|
#define MODULE_BIT 0x00000200
|
||||||
|
|
||||||
@@ -543,7 +543,8 @@ status_t nv_configure_bes
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NV30A:
|
case NV30A:
|
||||||
/* GeForceFX series have a downscaling limit of 0.5 (except NV31!) */
|
case NV40A:
|
||||||
|
/* GeForceFX series and up have a downscaling limit of 0.5 (except NV31!) */
|
||||||
if ((hiscalv > (2 << 16)) && (si->ps.card_type != NV31))
|
if ((hiscalv > (2 << 16)) && (si->ps.card_type != NV31))
|
||||||
{
|
{
|
||||||
/* (non-inverse) factor too small, set factor to min. valid value */
|
/* (non-inverse) factor too small, set factor to min. valid value */
|
||||||
@@ -634,7 +635,8 @@ status_t nv_configure_bes
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NV30A:
|
case NV30A:
|
||||||
/* GeForceFX series have a downscaling limit of 0.5 (except NV31!) */
|
case NV40A:
|
||||||
|
/* GeForceFX series and up have a downscaling limit of 0.5 (except NV31!) */
|
||||||
if ((viscalv > (2 << 16)) && (si->ps.card_type != NV31))
|
if ((viscalv > (2 << 16)) && (si->ps.card_type != NV31))
|
||||||
{
|
{
|
||||||
/* (non-inverse) factor too small, set factor to min. valid value */
|
/* (non-inverse) factor too small, set factor to min. valid value */
|
||||||
|
|||||||
@@ -1431,6 +1431,7 @@ void fake_pins(void)
|
|||||||
pinsnv20_arch_fake();
|
pinsnv20_arch_fake();
|
||||||
break;
|
break;
|
||||||
case NV30A:
|
case NV30A:
|
||||||
|
case NV40A:
|
||||||
pinsnv30_arch_fake();
|
pinsnv30_arch_fake();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user