🡅
🡇

Latest News

Sunsetting LDR and DirectX 8 Support

August 12, 2023 - bobatealee
Tags:
announcement
development
The year is 2023, and Team Fortress 2 is a very old game. Back in 2007, the Wii was still in its prime, the GeForce FX5500 was a good card, and the future of PC gaming was Games for Windows – LIVE.

After 16 years, the environment has changed. As we aim to improve the TF2 Classic experience for modern PCs, we've planned out some major changes we're hoping to slowly roll out in the near future. Today, we're here to talk about some of these changes.

Forcing HDR (Patch 2.1.2)​

Believe it or not, HDR (High Dynamic Range) rendering in Source is completely different from what would be considered HDR today. It simulates HDR internally and collapses the image down to LDR. Practically speaking, if you have HDR enabled, that means you're using LDR with bloom and auto-exposure effects.

However, due to HDR and LDR coexisting, every map has to be built twice. This is extremely inefficient, as it makes maps take longer to compile and take up more disk space. Furthermore, if a mapper accidentally only built HDR data, lighting wouldn't work at all for players using LDR.

As such, we are forcibly enabling HDR rendering in Patch 2.1.2. This should not have a big performance impact. Additionally, this update will add a slider to our video settings that will allow the user to tweak the bloom effect. If completely disabled, the game should look the same as it did with HDR disabled.

Ending DirectX 8 Support (Patch 2.1.2)​

Older Source games usually allow users to set a lower DirectX level using a launch option like -dxlevel. This forcibly disables a number of graphical features, and is popular among configs and users trying to squeeze out extra frames.

Unfortunately, this has heavy implications for development. Shaders have to be written twice, once for DirectX 8, and once for DirectX 9. DirectX 8 shader development is a lot of effort only to supplement a small user base.

To make matters more complex, there are two "shader models" for Source, Shader Model 2.0b and 3.0, and shaders also have to be written according to the shader model the game is using. Video cards limited to SM 2.0b were already considered "low-end" back in 2008.

Due to all of this, we are standardizing and forcing DirectX 9 with SM 3.0 in Patch 2.1.2 (also known as "dxlevel 95") for TF2 Classic. This is primarily due to a major upcoming shader overhaul that will add new capabilities, fix countless issues, and improve rendering performance.

For mappers, the end of DirectX 8 support means we will also discontinue support for SDK 2013's map compiler tools (vbsp, vvis, vrad). If you're still using these, please consult our wiki guide on how to update your toolset.

Ending Native Linux Client Support (Soon)​

Some time after we roll out the first two changes in Patch 2.1.2, we are planning to eventually end native Linux Client support. The aging OpenGL wrapper that Valve used when porting the game to Linux is incredibly restrictive, as it does not support SM 3.0, preventing us from fixing some graphical issues or adding new shader features.

The OpenGL renderer in itself has several Linux-exclusive rendering and performance issues that we are unable to address. As such, we will instead pivot towards supporting Proton, Valve's compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it.

Proton's Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users. Note that this change will NOT affect Linux servers.

Final Notes​

In short, we are force-enabling HDR rendering, forcing the use of DirectX 9 SM 3.0, and dropping support for stock SDK 2013 map compiler tools in Patch 2.1.2. Additionally, we are planning to discontinue native Linux support for clients at a later date.

We're very excited for all of these changes, and will be looking into adding new video options (possibly even graphical presets!) that provide a more accessible and reliable way to get playable frame rates on low-end machines.