Skip to content

0.0.1

Pre-release
Pre-release

Choose a tag to compare

@mastercoms mastercoms released this 14 Aug 05:58

The initial release of Team Comtress 2.

Lots of optimizations and fixes, please let me know how they work!

Installation instructions

  • Improved fps_max to be much more accurate and not be off by a few frames on some CPUs
  • Optimized async texture loader to be event based rather than busy wait
  • Reduced texture streaming transition fade time from 5 seconds to 1 second
  • Optimized case insensitive string compares, which most notably improves command execution performance (critically for move commands, voice commands, etc)
  • Optimized shader system
  • Stripped DX8 and DX7 support
  • Dropped support for Windows XP
    • Optimizes filesystem stat call
  • Enabled async model cache by default
  • Enabled frame pointer omission to disable
  • Disabled telemetry and ETW
    • Fixed modules with telemetry disabled not being compatible with ones that do have telemetry enabled
  • Added threaded sound mixing
  • Adjusted default mixahead time from 0.1 to 0.0666667 seconds
  • Added support for g_ragdoll_lvfadespeed and g_ragdoll_fadespeed to TF ragdolls. You can set fade speed to 0 to skip the fading process.
  • Optimized cl_ragdoll_force_fade 1, which now instantly starts fading away with cl_ragdoll_fade_time 0
  • Cosmetics now use cl_ragdoll_fade_time for their fade delay, rather than a hard coded 15 seconds
  • Optimized sound playback by notifying the sound system to async load even when we are playing from cache. This reduces sound latency while reducing stutters related to the sound system.
  • A decal limit of 0 is now respected and dynamic decals will not spawn at all. This optimizes when decals are disabled, by not trying to spawn a decal.
  • Enabled threaded bone setup
  • Fixed shadows double rendering in the main scene
  • Fixed much of the scene being double rendered in the 3D skybox render
  • Fixed a possible crash in pixel shader lighting
  • Increased max -threads parameter from 4 to 12
  • Enabled development cvars
  • Optimized exec command
  • Optimized shadow vertex memory allocation overhead by using a contiguous block of memory as a pool that the shadow code sweeps and wraps around in instead of allocating vertex info on demand
  • Disabled VGUI traversing when element is not visible. This makes the main menu not render when in game, and the game HUD not render when in the main menu (when pressing ESC)
  • Fixed client interp getting desynced from server value due to incorrect bounded cvar implementation
  • Fixed client interp being checked every frame rather than only on change
  • Fixed anti-aliasing being disabled with mat_antialias 1 causing some parts of the engine think it's not disabled and thus run some unnecessary code. On Linux, this used to force a full clear with AMD graphics.
  • Re-enabled code associated with various threading systems
  • Forced particle collision mode 3, which is the most optimized mode (and cached). This is done as a temporary measure while we find a way to fix particle data files to use a proper mode according to their needs. Please let me know of any glitchy particle collision. One known is flamethrower particle visuals.
  • Backported fix from Source 2 which prevents duplicated plane collision logic
  • Enabled queued decals
  • Enabled threaded client shadow manager
  • Enabled threaded client leaf system, which should reduce possible hitches or frame drops when changing rooms/turning corners
  • Enabled support for SSE2
    • Fixed a crash that happened because of lightmap loop being vectorized
  • Optimized function calls by enabling frame pointer omission
  • Enabled whole program optimization through link time code generation
  • Optimized file system by enabling Retail mode
  • Fixed cheap water being disabled if reflections were enabled
  • Implemented SIMD instructions with DirectXMath which used to be Xbox 360 only (now ported to PC!), to accelerate many critical math/animation calls, including:
    • Trig functions (sin, cos, atan2, etc)
    • Quaternion functions (for animation rotations, and more)
    • Slerp bones
    • Calculate bone quaternion
    • Vector add, subtract, muladd, msub, dot product
    • Vector4DWeightMAD
    • Enabled optimized visibility leaf bounding box algorithm (both rough box intersection test and visibility tests)
    • Stripped complex vector conversion logic with DirectXMath
  • Added r_skybox_lowend to enable DX8 skyboxes on DX9
  • Added -particle_fallback launch option to control particle quality. 2 uses DX8 particles, 1 uses lowend DX9 particles, 0 uses default.
  • Enabled many mastercomfig optimizations by default
  • Enabled fast vertex texture support, which optimizes rendering of many different shaders. Only works on dxlevel 100.
  • Added prediction system fix to prioritize server data
  • Added networking and spy fixes to dispenser and teleport
  • Added tf_skip_halloween_bomb_hat_translucency, which enables the DX8 behavior of snapping to invisible halloween bomb hats whenever spy is in the middle of cloaking
  • Disabled D3D multithreaded mode, as it adds overhead and does not add meaningful safety to the multithreaded renderer
  • Fixed crashes associated with hardware morphing when fast vertex textures are enabled and the rendered is queued. This does not add morphing support.
  • Enabled team menu in Mannpower
  • Added tf_use_match_hud, which enables the match HUD in all servers. Large version of the match HUD is used if there are more than 12 players on either team. Work in progress. This is reimplementing a Jungle Inferno feature which is not present in the leak.
  • Added cl_hud_playerclass_playermodel_lod, which controls the LOD of the player class model.
  • Removed server console spam when the player has no Steam ID
  • Added compatibility with the latest Windows 10 SDK and MSVC 2019
  • Added some minor shadow fixes from CS:GO