Skip to content

0.0.15

Pre-release
Pre-release
Compare
Choose a tag to compare
@mastercoms mastercoms released this 05 Sep 23:31

Please set r_fastzreject 0! It was accidentally set to 1 in this release.

  • Fixed thread delays/contention
    • Greatly improves frame consistency, especially when there are many particles rendered
    • Removed spin waits from thread mutexes, which were set too high for large amounts of threads, taking away time from actual work. Ideal wait times are job specific anyway, and job start times are not reliable. So, spinning will usually result in a lot of useless work.
    • Increased global thread pool priority to above normal, to reduce delays in scheduling and finishing a job list. This is especially important for particles, which efficiently split the work up across many threads, but return too early for the blocking thread to efficiently end in most circumstances. Before, particle system rendering time was entirely up to the scheduler to finish, and it would more often than not respond to all jobs being done until 3 to 5ms later.
  • Reduce draw calls by increasing buffer sizes for index and vertex buffer, and uncapping vert/index counts
  • Optimized mouse calculations
    • Mouse no longer locked to center of screen per frame, instead it is bounded within the window passively
      • This was happening twice (now not at all) due to a bug in how VGUI updated the mouse
      • This should also fix issues with the mouse leaving the window on multi monitor set ups
    • Cached window offset so that a transformation from window to screen is not needed
  • Optimized thread distribution to better respect the main thread and better use hyper-threading/SMT threads
    • There seems to have been a few bugs which biased threads towards the first few cores
  • Reduced the number of clears done to RTs and screen
    • Shadows no longer clear twice every frame
    • Additional buffers do not clear as a side effect to being added to the main view
    • Got rid of many duplicate skybox related clears
    • View now relies on clear at end of frame from VGUI, rather than clearing screen twice per frame
    • Optimized some clears related to water reflection and refraction
  • Make beam count optimization default for TF
  • Disabled using inefficient D3D managed texture pool (probably off for most people anyway)