matrox G450/G550 (apparantly) can do HDTV overlay (720p, 1080p). Bumped version to 0.33.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33865 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
/* Written by Rudolf Cornelissen 05-2002/4-2006 */
|
/* Written by Rudolf Cornelissen 05-2002/11-2009 */
|
||||||
|
|
||||||
/* 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'
|
||||||
@@ -175,24 +175,44 @@ const overlay_buffer *ALLOCATE_OVERLAY_BUFFER(color_space cs, uint16 width, uint
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check if the requested buffer width is supported */
|
/* check if the requested buffer width is supported */
|
||||||
if (si->overlay.myBuffer[offset].width > 1024)
|
if (si->ps.card_type < G450) {
|
||||||
{
|
if (si->overlay.myBuffer[offset].width > 1024) {
|
||||||
LOG(4,("Overlay: Sorry, requested buffer width not supported, aborted\n"));
|
LOG(4,("Overlay: Sorry, requested buffer width not supported, aborted\n"));
|
||||||
|
|
||||||
/* release the shared benaphore */
|
/* release the shared benaphore */
|
||||||
RELEASE_BEN(si->overlay.lock)
|
RELEASE_BEN(si->overlay.lock)
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* check if the requested buffer height is supported */
|
|
||||||
if (height > 1024)
|
|
||||||
{
|
|
||||||
LOG(4,("Overlay: Sorry, requested buffer height not supported, aborted\n"));
|
|
||||||
|
|
||||||
/* release the shared benaphore */
|
/* check if the requested buffer height is supported */
|
||||||
RELEASE_BEN(si->overlay.lock)
|
if (height > 1024) {
|
||||||
|
LOG(4,("Overlay: Sorry, requested buffer height not supported, aborted\n"));
|
||||||
|
|
||||||
return NULL;
|
/* release the shared benaphore */
|
||||||
|
RELEASE_BEN(si->overlay.lock)
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (si->overlay.myBuffer[offset].width > 1920) {
|
||||||
|
LOG(4,("Overlay: Sorry, requested buffer width not supported, aborted\n"));
|
||||||
|
|
||||||
|
/* release the shared benaphore */
|
||||||
|
RELEASE_BEN(si->overlay.lock)
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check if the requested buffer height is supported */
|
||||||
|
if (height > 1080) {
|
||||||
|
LOG(4,("Overlay: Sorry, requested buffer height not supported, aborted\n"));
|
||||||
|
|
||||||
|
/* release the shared benaphore */
|
||||||
|
RELEASE_BEN(si->overlay.lock)
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* store slopspace (in pixels) for each bitmap for use by 'overlay unit' (BES) */
|
/* store slopspace (in pixels) for each bitmap for use by 'overlay unit' (BES) */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* G200-G550 Back End Scaler functions */
|
/* G200-G550 Back End Scaler functions */
|
||||||
/* Written by Rudolf Cornelissen 05/2002-12/2005 */
|
/* Written by Rudolf Cornelissen 05/2002-11/2009 */
|
||||||
|
|
||||||
#define MODULE_BIT 0x00000200
|
#define MODULE_BIT 0x00000200
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ static void gx00_bes_calc_move_overlay(move_overlay_info *moi)
|
|||||||
/* take zoom into account */
|
/* take zoom into account */
|
||||||
moi->hsrcstv += ((uint32)si->overlay.my_ov.h_start) << 16;
|
moi->hsrcstv += ((uint32)si->overlay.my_ov.h_start) << 16;
|
||||||
/* AND below required by hardware */
|
/* AND below required by hardware */
|
||||||
moi->hsrcstv &= 0x03fffffc;
|
moi->hsrcstv &= 0x07fffffc;
|
||||||
LOG(4,("Overlay: first hor. (sub)pixel of input bitmap contributing %f\n", moi->hsrcstv / (float)65536));
|
LOG(4,("Overlay: first hor. (sub)pixel of input bitmap contributing %f\n", moi->hsrcstv / (float)65536));
|
||||||
|
|
||||||
/* Setup horizontal source end: last (sub)pixel contributing to output picture */
|
/* Setup horizontal source end: last (sub)pixel contributing to output picture */
|
||||||
@@ -247,7 +247,7 @@ static void gx00_bes_calc_move_overlay(move_overlay_info *moi)
|
|||||||
moi->hsrcendv = (((uint32)((si->overlay.my_ov.h_start + si->overlay.my_ov.width) - 1)) << 16);
|
moi->hsrcendv = (((uint32)((si->overlay.my_ov.h_start + si->overlay.my_ov.width) - 1)) << 16);
|
||||||
}
|
}
|
||||||
/* AND below required by hardware */
|
/* AND below required by hardware */
|
||||||
moi->hsrcendv &= 0x03fffffc;
|
moi->hsrcendv &= 0x07fffffc;
|
||||||
LOG(4,("Overlay: last horizontal (sub)pixel of input bitmap contributing %f\n", moi->hsrcendv / (float)65536));
|
LOG(4,("Overlay: last horizontal (sub)pixel of input bitmap contributing %f\n", moi->hsrcendv / (float)65536));
|
||||||
|
|
||||||
|
|
||||||
@@ -581,13 +581,13 @@ status_t gx00_configure_bes
|
|||||||
* this is the last pixel that will be used for calculating interpolated pixels */
|
* this is the last pixel that will be used for calculating interpolated pixels */
|
||||||
hsrclstv = ((ob->width - 1) - si->overlay.myBufInfo[offset].slopspace) << 16;
|
hsrclstv = ((ob->width - 1) - si->overlay.myBufInfo[offset].slopspace) << 16;
|
||||||
/* AND below required by hardware */
|
/* AND below required by hardware */
|
||||||
hsrclstv &= 0x03ff0000;
|
hsrclstv &= 0x07ff0000;
|
||||||
|
|
||||||
/* setup field 1 (is our complete frame) vertical source last position.
|
/* setup field 1 (is our complete frame) vertical source last position.
|
||||||
* this is the last pixel that will be used for calculating interpolated pixels */
|
* this is the last pixel that will be used for calculating interpolated pixels */
|
||||||
v1srclstv = (ob->height - 1);
|
v1srclstv = (ob->height - 1);
|
||||||
/* AND below required by hardware */
|
/* AND below required by hardware */
|
||||||
v1srclstv &= 0x000003ff;
|
v1srclstv &= 0x000007ff;
|
||||||
|
|
||||||
|
|
||||||
/*****************************
|
/*****************************
|
||||||
@@ -670,13 +670,10 @@ status_t gx00_configure_bes
|
|||||||
LOG(6,("Overlay: using horizontal dropping or replication on scaling\n"));
|
LOG(6,("Overlay: using horizontal dropping or replication on scaling\n"));
|
||||||
}
|
}
|
||||||
/* enable vertical filtering on scaling if asked for: if we are *upscaling* only */
|
/* enable vertical filtering on scaling if asked for: if we are *upscaling* only */
|
||||||
if ((ow->flags & B_OVERLAY_VERTICAL_FILTERING) && (viscalv < (0x01 << 16)))
|
if ((ow->flags & B_OVERLAY_VERTICAL_FILTERING) && (viscalv < (0x01 << 16)) && (ob->width <= 1024)) {
|
||||||
{
|
|
||||||
ctlv |= 1 << 11;
|
ctlv |= 1 << 11;
|
||||||
LOG(6,("Overlay: using vertical interpolation on scaling\n"));
|
LOG(6,("Overlay: using vertical interpolation on scaling\n"));
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
ctlv |= 0 << 11;
|
ctlv |= 0 << 11;
|
||||||
LOG(6,("Overlay: using vertical dropping or replication on scaling\n"));
|
LOG(6,("Overlay: using vertical dropping or replication on scaling\n"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ status_t gx00_general_powerup()
|
|||||||
status_t status;
|
status_t status;
|
||||||
uint8 card_class;
|
uint8 card_class;
|
||||||
|
|
||||||
LOG(1,("POWERUP: Haiku Matrox Accelerant 0.32 running.\n"));
|
LOG(1,("POWERUP: Haiku Matrox Accelerant 0.33 running.\n"));
|
||||||
|
|
||||||
/* log VBLANK INT usability status */
|
/* log VBLANK INT usability status */
|
||||||
if (si->ps.int_assigned)
|
if (si->ps.int_assigned)
|
||||||
|
|||||||
@@ -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 (svn 0.32, Rudolf)</h1></p>
|
<p><h1>head (svn 0.33, Rudolf)</h1></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>G100-G200:</strong>
|
<li><strong>G100-G200:</strong>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -20,6 +20,10 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Coldstarting now works on more cards: fixed RAM reset trouble so RAM access now works (no more ghosting on the screen).
|
<li>Coldstarting now works on more cards: fixed RAM reset trouble so RAM access now works (no more ghosting on the screen).
|
||||||
</ul>
|
</ul>
|
||||||
|
<li><strong>G450-G550:</strong>
|
||||||
|
<ul>
|
||||||
|
<li>Hardware overlay now also works for HDTV video (720p, 1080p).
|
||||||
|
</ul>
|
||||||
<li><strong>General:</strong>
|
<li><strong>General:</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Hook GET_ACCELERANT_DEVICE_INFO now returns more detailed info about the card in use;
|
<li>Hook GET_ACCELERANT_DEVICE_INFO now returns more detailed info about the card in use;
|
||||||
|
|||||||
Reference in New Issue
Block a user