added support for all HDTV modes video overlay for all GeForce cards that have overlay support. TNT1/2/2-M64 users remain in bitmap mode: the overlay engine there can't handle above DVD quality. Bumped version to 0.88.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30535 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
73af36d459
commit
ce6115a180
|
@ -1,4 +1,4 @@
|
|||
/* Written by Rudolf Cornelissen 05/2002-4/2006 */
|
||||
/* Written by Rudolf Cornelissen 05/2002-5/2009 */
|
||||
|
||||
/* 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'
|
||||
|
@ -133,26 +133,50 @@ const overlay_buffer *ALLOCATE_OVERLAY_BUFFER(color_space cs, uint16 width, uint
|
|||
break;
|
||||
}
|
||||
|
||||
/* checkout input picture size */
|
||||
switch (si->ps.card_arch) {
|
||||
case NV04A:
|
||||
/* all DVD's are OK, but HDTV 1280x720p is not: it displays ghost images
|
||||
* (still find exact limit..) */
|
||||
|
||||
/* check if the requested buffer width is supported */
|
||||
if (si->overlay.myBuffer[offset].width > 1024)
|
||||
{
|
||||
if (si->overlay.myBuffer[offset].width > 1024) {
|
||||
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 > 1024)
|
||||
{
|
||||
if (height > 1024) {
|
||||
LOG(4,("Overlay: Sorry, requested buffer height not supported, aborted\n"));
|
||||
|
||||
/* release the shared benaphore */
|
||||
RELEASE_BEN(si->overlay.lock)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* HDTV 1920x1080p is confirmed OK on NV11 and higher cards */
|
||||
|
||||
/* check if the requested buffer width is supported */
|
||||
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;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* store slopspace (in pixels) for each bitmap for use by 'overlay unit' (BES) */
|
||||
si->overlay.myBufInfo[offset].slopspace = si->overlay.myBuffer[offset].width - width;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Nvidia TNT and GeForce Back End Scaler functions */
|
||||
/* Written by Rudolf Cornelissen 05/2002-12/2005 */
|
||||
/* Written by Rudolf Cornelissen 05/2002-5/2009 */
|
||||
|
||||
#define MODULE_BIT 0x00000200
|
||||
|
||||
|
@ -225,8 +225,8 @@ static void nv_bes_calc_move_overlay(move_overlay_info *moi)
|
|||
}
|
||||
/* take zoom into account */
|
||||
moi->hsrcstv += ((uint32)si->overlay.my_ov.h_start) << 16;
|
||||
/* AND below required by hardware */
|
||||
moi->hsrcstv &= 0x03fffffc;
|
||||
/* AND below required by hardware (> 1024 support confirmed on all cards) */
|
||||
moi->hsrcstv &= 0x07fffffc;
|
||||
LOG(4,("Overlay: first hor. (sub)pixel of input bitmap contributing %f\n", moi->hsrcstv / (float)65536));
|
||||
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ status_t nv_general_powerup()
|
|||
{
|
||||
status_t status;
|
||||
|
||||
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.87 running.\n"));
|
||||
LOG(1,("POWERUP: Haiku nVidia Accelerant 0.88 running.\n"));
|
||||
|
||||
/* log VBLANK INT usability status */
|
||||
if (si->ps.int_assigned)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<p><h2>Changes done for each driverversion:</h2></p>
|
||||
<p><h1>head (SVN 0.87, Rudolf)</h1></p>
|
||||
<p><h1>head (SVN 0.88, Rudolf)</h1></p>
|
||||
<ul>
|
||||
<li>Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
|
||||
<li>Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition.
|
||||
|
@ -14,10 +14,10 @@
|
|||
<li>'pgm_panel' is now preset to 'false' since this will probably increase chances of a good picture on panels outthere.
|
||||
<li>'force_ws' is now (re-enabled but) preset to 'true' since the number of widescreen monitors outthere is rapidly becoming mainstream.<br> <strong>Note please:</strong><br>
|
||||
'force_ws' was hardcoded to setting 'true' some time ago by the Haiku team because of these monitors.
|
||||
</ul>
|
||||
<li>Added 'block_acc' option in nvidia.settings to completely disable the acceleration engine. Use this as a work-around if the acceleration engine misbehaves.
|
||||
<li>Fixed card/system hanging after trying to log LVDS/TMDS distinction info. This (at least) fixes one NV34 trying to startup after a failed kernel VESA modeswitch without using the driver's coldstart option. Might very well help on other type cards too.
|
||||
</ul>
|
||||
</ul>
|
||||
<li>HDTV video upto/including 1920x1080p can now be played back using overlay on Geforce cards where overlay is supported. On TNT1/TNT2/TNT2-M64 this can't be done and bitmap output is used.
|
||||
</ul>
|
||||
<p><h1>nv_driver 0.80 (Rudolf)</h1></p>
|
||||
<ul>
|
||||
|
|
Loading…
Reference in New Issue