Video Driver Compatibility Fixes
Added a new graphics option to tessellate the entire track surface and walls/fences into static video memory during track loading, which then avoids any dynamic track tessellation during racing. Previously, portions of track would be pre-tessellated at only 2 levels of detail, but the highest levels of detail would be provided via CPU side dynamic tessellation. This option adds a 3rd level of detail to the pre-tessellated track, allowing dynamic tessellation to be completely disabled at run-time. The primary benefits of using this option include avoiding CPU usage to tessellate the track, avoiding track related dynamic geometry transfers to the GPUs and between GPUs, and we believe and sincerely hope that this option may also work around a bug that was causing freezes and corruption for some GPUs with certain versions of video drivers (nVidia’s latest few WHQL drivers with 400/500 series GPUs). The drawbacks of enabling this option include using up to an additional 12MB of video memory to store the extra geometry (at the largest track), and an overall slightly higher triangle count per frame – due to the loss of the continuous levels of detail that is available with dynamic tessellation. This new option is available on the “graphics options” screen, and is labeled “Store racetrack in GPU mem”. It will automatically be enabled by default when you first launch the sim if you have more than 384MB of
video memory specified, and also have pixel shaders enabled. If you change this option, you must exit and restart the simulator for it to take effect.
Altered the generation of distant shadow maps to cast the distant track side object’s shadows using lower levels of detail. This speeds up the generation of distant shadow maps.
Slightly altered a portion of the loading sequence that renders the track and objects at several spots before loading completes. This step now performs screen updates more often, rather than doing the entire process as one frame render. This change probably has no effect, but it may reduce stress on the video drivers.
Made a change to the renderer’s scene compiler to help reduce the potential of it accidently reusing memory after that memory has been released.