fixed NV31 acceleration engine granularity constraints
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5827 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
/* Authors:
|
/* Authors:
|
||||||
Mark Watson 12/1999,
|
Mark Watson 12/1999,
|
||||||
Apsed,
|
Apsed,
|
||||||
Rudolf Cornelissen 10/2002-10/2003
|
Rudolf Cornelissen 10/2002-12/2003
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00008000
|
#define MODULE_BIT 0x00008000
|
||||||
@@ -852,21 +852,6 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
|
|||||||
/* determine pixel multiple based on 2D/3D engine constraints */
|
/* determine pixel multiple based on 2D/3D engine constraints */
|
||||||
switch (si->ps.card_arch)
|
switch (si->ps.card_arch)
|
||||||
{
|
{
|
||||||
case NV20A:
|
|
||||||
/* confirmed for:
|
|
||||||
* GeForce4 Ti4200 */
|
|
||||||
switch (target->space)
|
|
||||||
{
|
|
||||||
case B_CMAP8: acc_mask = 0x3f; depth = 8; break;
|
|
||||||
case B_RGB15: acc_mask = 0x1f; depth = 16; break;
|
|
||||||
case B_RGB16: acc_mask = 0x1f; depth = 16; break;
|
|
||||||
case B_RGB24: acc_mask = 0x3f; depth = 24; break;
|
|
||||||
case B_RGB32: acc_mask = 0x0f; depth = 32; break;
|
|
||||||
default:
|
|
||||||
LOG(8,("INIT: unknown color space: 0x%08x\n", target->space));
|
|
||||||
return B_ERROR;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
/* confirmed for:
|
/* confirmed for:
|
||||||
* TNT1, TNT2, TNT2-M64, GeForce2 MX400, GeForce4 MX440, GeForceFX 5200 */
|
* TNT1, TNT2, TNT2-M64, GeForce2 MX400, GeForce4 MX440, GeForceFX 5200 */
|
||||||
@@ -881,6 +866,23 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
|
|||||||
LOG(8,("INIT: unknown color space: 0x%08x\n", target->space));
|
LOG(8,("INIT: unknown color space: 0x%08x\n", target->space));
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
/* NV31 (confirmed GeForceFX 5600) has NV20A granularity!
|
||||||
|
* So let it fall through... */
|
||||||
|
if (si->ps.card_type != NV31) break;
|
||||||
|
case NV20A:
|
||||||
|
/* confirmed for:
|
||||||
|
* GeForce4 Ti4200 */
|
||||||
|
switch (target->space)
|
||||||
|
{
|
||||||
|
case B_CMAP8: acc_mask = 0x3f; depth = 8; break;
|
||||||
|
case B_RGB15: acc_mask = 0x1f; depth = 16; break;
|
||||||
|
case B_RGB16: acc_mask = 0x1f; depth = 16; break;
|
||||||
|
case B_RGB24: acc_mask = 0x3f; depth = 24; break;
|
||||||
|
case B_RGB32: acc_mask = 0x0f; depth = 32; break;
|
||||||
|
default:
|
||||||
|
LOG(8,("INIT: unknown color space: 0x%08x\n", target->space));
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -947,26 +949,6 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NV20A:
|
|
||||||
/* confirmed for:
|
|
||||||
* GeForce4 Ti4200 */
|
|
||||||
switch(target->space)
|
|
||||||
{
|
|
||||||
case B_CMAP8:
|
|
||||||
if (target->virtual_width > 16320) si->acc_mode = false;
|
|
||||||
break;
|
|
||||||
case B_RGB15_LITTLE:
|
|
||||||
case B_RGB16_LITTLE:
|
|
||||||
if (target->virtual_width > 8160) si->acc_mode = false;
|
|
||||||
break;
|
|
||||||
case B_RGB24_LITTLE:
|
|
||||||
if (target->virtual_width > 5440) si->acc_mode = false;
|
|
||||||
break;
|
|
||||||
case B_RGB32_LITTLE:
|
|
||||||
if (target->virtual_width > 4080) si->acc_mode = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
/* confirmed for:
|
/* confirmed for:
|
||||||
* GeForce2 MX400, GeForce4 MX440, GeForceFX 5200 */
|
* GeForce2 MX400, GeForce4 MX440, GeForceFX 5200 */
|
||||||
@@ -986,6 +968,28 @@ status_t nv_general_validate_pic_size (display_mode *target, uint32 *bytes_per_r
|
|||||||
if (target->virtual_width > 4092) si->acc_mode = false;
|
if (target->virtual_width > 4092) si->acc_mode = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
/* NV31 (confirmed GeForceFX 5600) has NV20A granularity!
|
||||||
|
* So let it fall through... */
|
||||||
|
if (si->ps.card_type != NV31) break;
|
||||||
|
case NV20A:
|
||||||
|
/* confirmed for:
|
||||||
|
* GeForce4 Ti4200 */
|
||||||
|
switch(target->space)
|
||||||
|
{
|
||||||
|
case B_CMAP8:
|
||||||
|
if (target->virtual_width > 16320) si->acc_mode = false;
|
||||||
|
break;
|
||||||
|
case B_RGB15_LITTLE:
|
||||||
|
case B_RGB16_LITTLE:
|
||||||
|
if (target->virtual_width > 8160) si->acc_mode = false;
|
||||||
|
break;
|
||||||
|
case B_RGB24_LITTLE:
|
||||||
|
if (target->virtual_width > 5440) si->acc_mode = false;
|
||||||
|
break;
|
||||||
|
case B_RGB32_LITTLE:
|
||||||
|
if (target->virtual_width > 4080) si->acc_mode = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* virtual_height */
|
/* virtual_height */
|
||||||
|
|||||||
Reference in New Issue
Block a user