Quake
Not enough ratings
D3D11 + steam overlay
By Mugnum
A power-user oriented guide that addresses missing steam overlay on DX11, among some other issues.

Take advantage of low input latency of fullscreen mode, stable framepacing and maybe even alt-tab functionality.
   
Award
Favorite
Favorited
Unfavorite
Introduction
If you haven't modified the game in any way, chances are you're playing on Vulkan API and should ignore this guide.

This guide tackles a very niche problem -- for a very specific audience, who would like to use D3D11 API, keep steam overlay working, and maintain the advantages of Fullscreen mode.

Switching to D3D11 mainly benefits in getting better input latency.
Switching to DX11
Instructions:
- Right click on your game in Steam
- Select Properties
- In Launch options, add following text:
-skipmovies +r_rhirenderfamily d3d11
If you have performance issues, try adding +r_gpuCulling 0 as well.
The problem
Here's the thing. Running in D3D11 and in Fullscreen mode disables alt-tabbing and makes steam overlay inaccessible for whatever reason. This guide will provide solutions and workarounds for this issue.
Solutions cheat-sheet
Unmodded DX11
Unmodded DX11
SpecialK DX11
SpecialK DX11
Fullscreen
Borderless
Fullscreen
Borderless
Steam overlay works
no
yes
yes
yes
Alt-tabbing works
no
yes
maybe
yes
Forced v-sync on
no
yes
no
no
Input latency
great
bad
great
decent
1. SIMPLE: Switch to Borderless mode
One of the solutions is to simply switch to borderless mode.

Advantages:
- steam overlay works
- alt-tab works
- easy to setup

Disadvantages:
- added input latency
- forced vsync on

Instructions:
- Navigate to Options -> Display -> Open video settings...
- Set Window mode to Borderless
2. ADVANCED: Setting up SpecialK
Advantages:
- steam overlay works
- low input latency
- vsync can be disabled
- glassfloor frametimes

Disadvantages:
- pain-in-the-butt to setup
- alt-tab still doesn't work in fullscreen

Instructions:
1. Download SpecialK
- Official release: website link[discourse.differentk.fyi]
- Latest experimental release (recommended): Discord link[discord.gg]
2. Extract SpecialK64.dll into ...\Quake\rerelease\ directory
3. Rename SpecialK64.dll into d3d11.dll
4. Launch the game
5. Temporarily switch to Borderless mode
6. Press Ctrl+Shift+Backspace shortcut -- this will bring up SK overlay
7. Setup your preferences similar to these: image link[i.imgur.com]

7.1) Navigate to Framerate limit -> Advanced
- (optional) Enable framerate limit
- Low Latency Mode: on
- NV Reflex: minimal
7.2) Navigate to D3D11 settings -> ChainSwap Management
- Use FlipModel presentation: on
- Waitable ChainSwap: on
- Enable DWM tearing: on
- BackBuffer count and Max device latency: 1 or 2
7.3) Navigate to On screen display
- (optional) Set timer to 0.0 seconds

8. (optional) Switch back to Fullscreen mode
9. Restart the game
10. You're good to go here.

Note: Fullscreen optimizations are recommended to be left enabled. If this doesn't tell you anything, ignore this.
Regarding enabled v-sync
If you really want to keep v-sync enabled, it's recommended to do some adjustments.

1. For g-sync/freesync owners: set framerate limit slightly below refresh rate (e.g. 141 at 144hz).
Otherwise, if your FPS exceeds your HZ, the g-sync will turn off and regular v-sync might kick in, resulting in excessive input lag.

2. For regular displays: you can actually try setting up a low-lag v-sync (similar to g-sync). The only requirement will be maintaining extremely stable fps and having a precise framerate cap.

For that, generally refer to this blurbusters article[blurbusters.com]
You can also use SpecialK's fps limiter instead of RTSS (it's just as good), just make sure your frametimes graph remains FLAT at all times! Example[i.imgur.com]
1 Comments
Silver Knight 31 Aug, 2021 @ 6:52am 
thank you for the run-down of the different options
hope nightdive fixes the vulkan input latency