added new nv.setting 'force_sync' to force retrace sync for accelerated 3D. Updated docs. Bumped version to 0.73. Note: force_sync will be in place for 3D accelerant alpha4.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16396 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen 2006-02-14 16:07:26 +00:00
parent dad4ff0e52
commit a3a50182a3
4 changed files with 19 additions and 3 deletions

View File

@ -211,6 +211,17 @@ This option only has an effect if you have a card with supported TV encoder chip
If you select <strong>vga_on_tv false</strong> the driver will automatically shut-off your VGA (or DVI) monitor (by means of special internal DPMS settings) when a TVout mode is enabled on the head the monitor is connected to. This means that on singlehead cards and on dualhead cards using singlehead TV modes your only output will be on TV. This is the standard way of doing things.
<li><strong>true:</strong> With this setting VGA (or DVI) output on a head is enabled concurrent with TV output on that head: that is if you select a TVout mode. This setting is a 'tweak' because the modeline used to drive your monitor is the same modeline that is used for the TV output. This means that the monitor picture positioning is probably a bit odd, in some modes it might distort somewhat, and the refreshrate will be 50Hz for PAL modes, and 60Hz for NTSC modes. Make sure you only enable this tweak if you know your monitor supports down to 50Hz refreshrate, and preferably has a failsafe built in that blocks output when out-of-range signals are sent to it (almost every newer monitor has this feature).<br>
</ul>
<li><strong>force_sync:</strong><br>
This option only has an effect on hardware accelerated 3D rendering. When set to <strong>true</strong> it forces the 3D screen updates to be synchronized to your screen's vertical retraces, preventing 'tearing' to occur.
<ul>
<li><strong>false:</strong> (default setting)<br>
If you select <strong>force_sync false</strong> the driver's 3D accelerant will render 3D scenes as fast as it can, without paying attention to the actual screen's refreshrate. The upside of this setting is that you can measure the actual rendering power your card has in a specific mode for a specific application (if that application supports benchmarking). The downside is that you'll be able to witness 'tearing': the effect of seeing random horizontal distortion 'stripes' onscreen, especially when the view moves fast in a horizontal direction (like looking around in a room in Quake2). If you need the last bit of rendering power because you run a heavy app on a relatively 'slow' card, this setting might be your best option: it's a bit faster than using <strong>force_sync true</strong>.
<li><strong>true:</strong> With this setting all tearing effects should be gone. Another reason to use this setting would be 'fixing' the driver's fps (frames per second) rendered. That is, when you are using a screen mode that your card can render at least at the speed your screen's refreshrate is set to: In this case the fps will be virtually independant of the complexity of the rendered scenes. Hardcore gamers amongst us really want this feature to get 'fixed' latencies so they can issue (firing) commands at the exact right time...<br>
</ul>
<strong>Note please:</strong>
<ul>
<li>Forcing vertical retrace synchronisation using the force_sync option 'overrules' retrace sync settings done in your applications: all applications will be synchronized to the vertical retrace events.
</ul>
<li><strong>primary:</strong> (set to disabled by default)<br>
Primary lets you force a certain card to be used as primary card in your system if you have multiple graphics cards installed: so it will display your desktop. To enable this (hack) feature uncomment this item and fill in the exact name of the card that is to be primary (as exported by the kerneldriver in /dev/graphics/). If you are going to select a card other than the one displaying your system's POST messages at bootup, make sure you also set 'usebios false' as otherwise the card(s) aren't coldstarted by the driver.<br>
<strong>Note please:</strong>
@ -223,6 +234,6 @@ Primary lets you force a certain card to be used as primary card in your system
<hr>
<br>
<a href="mailto:info.be-hold@inter.nl.net">Rudolf Cornelissen.</a>
<p>(Page last updated on November 29, 2005)</p>
<p>(Page last updated on February 14, 2006)</p>
</body>
</html>

View File

@ -4,7 +4,7 @@
</head>
<body>
<p><h2>Changes done for each driverversion:</h2></p>
<p><h1>head (SVN 0.72, Rudolf)</h1></p>
<p><h1>head (SVN 0.73, Rudolf)</h1></p>
<ul>
<li>The overlay engine code now respects the B_OVERLAY_COLOR_KEY flag instead of forcing keying ON;
<li>Hook GET_ACCELERANT_DEVICE_INFO now returns much more detailed info about the card in use;
@ -12,7 +12,9 @@
<li>Improved coldstart RAM tests for NV10 and higher: they could fail to correctly program the card on 'high-voltage' AGP 1.0 slots (confirmed a NV11);
<li>Added support for acceleration engine 2D command SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT (as defined by Be) for all cards;
<li>Fixed driver not always finding it's VGA BIOS when started and stopped more than once per system uptime 'session';
<li>Fixed 'BScreen Sync-to-Retrace not working' bug that appeared on all dualhead cards when CRTC2 was used as primary CRTC. On some systems outthere this bug might have shown itself as a 'system (or app) hanging' error occuring while using apps that feature explicit retrace sync. Completely rewrote interrupt handling to now handle retrace syncs on both CRTC1 and CRTC2, although only the CRTC used as primary will be enabled (for now).
<li>Fixed 'BScreen Sync-to-Retrace not working' bug that appeared on all dualhead cards when CRTC2 was used as primary CRTC. On some systems outthere this bug might have shown itself as a 'system (or app) hanging' error occuring while using apps that feature explicit retrace sync. Completely rewrote interrupt handling to now handle retrace syncs on both CRTC1 and CRTC2, although only the CRTC used as primary will be enabled (for now);
<li>Modified hardware 3D rendering colorspace setting for 32bit depth: this gives us upto some 11% gain on accelerated 3D rendering speed using the 3D accelerant;
<li>Added new nv.setting called 'force_sync': this option (if enabled) forces accelerated 3D rendering to be synchronized to the screen's vertical retrace (refreshrate). This option is disabled by default.
</ul>
<p><h1>nv_driver 0.67 (Rudolf)</h1></p>
<ul>

View File

@ -368,6 +368,7 @@ static nv_settings current_settings = { // see comments in nv.settings
true, // pgm_panel
true, // dma_acc
false, // vga_on_tv
false, // force_sync
};
static void dumprom (void *rom, uint32 size, pci_info pcii)
@ -568,6 +569,7 @@ init_driver(void) {
current_settings.pgm_panel = get_driver_boolean_parameter (settings_handle, "pgm_panel", false, false);
current_settings.dma_acc = get_driver_boolean_parameter (settings_handle, "dma_acc", false, false);
current_settings.vga_on_tv = get_driver_boolean_parameter (settings_handle, "vga_on_tv", false, false);
current_settings.force_sync = get_driver_boolean_parameter (settings_handle, "force_sync", false, false);
unload_driver_settings (settings_handle);
}

View File

@ -20,6 +20,7 @@ switchhead false # switch head assignment (dualhead cards only)
force_pci false # block AGP mode use if true (AGP cards only)
dma_acc true # if true enable DMA cmd fetching for 2D acc (instead of using PIO)
#tv_output 0 # disabled or 0 = autodetect, 1 = Y/C (and CVBS if possible), 2 = CVBS
force_sync false # if true forces 3D rendering to be synchronized to the vertical retrace
# WARNING: tweak alert! modify stuff below on your own risk...
unhide_fw false # if true 'unhide' cards AGP fastwrite support on cards that hide it