ValveSoftware / ValveSoftware/Proton

[379720] Doom 2016 common issue with Razer-ChromaSDK

Open
#896 8 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cw Game compatibility
Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Hello,
I just want to mention an issue that a lot of people are having with this game. ID-Software added support for the Razer-Chroma effects in one of their updates for the game, but the implementation is really flawed. You get the option to enable or disable the effect in game. But both have their own problem in wine, which results in one or two CPU cores stuck at 100% workload. This can result in unplayable stutter and bad frametimes.

Chroma enabled

With the effect enabled the dll isn't able to load the Chroma animations the game tells it to load. This results in a spamming of load animation, which creates the performance impact.

Chroma disabled

You think that disabling the effect will help, but no it just moves the problem to somewhere else. With this option the game still calls the Chroma dll functions, but fails at the invocation of for example ChromaSDKPlugin::CreateEffectNone2D. This gets also spammed by the game and results in the same performance issue.

My workaround

This is just a fork of the original dll that modifies the exported functions to simple return calls. The Chroma effects don't work with this dll, but it fixes the performance issue.
https://github.com/Riesi/CChromaEditor

The CChromaEditor is licensed under GPL3 as you can see in the eula:
https://github.com/razerofficial/CChromaEditor/blob/master/eula.txt

Here some reddit discussions about bad doom performance where my dll fixed the issue:
Doom 2016 Chroma Fix (CChromaEditorLibrary.dll)
Doom performance

I hope that I described the problem understandable and that it's possible to issue some kind of fix. Keep the great work up!

Kind regards,
Riesi

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no project files, entry points, or tests. Start by reproducing Doom 2016 under Proton with Chroma enabled and disabled, then compare CPU usage and frametimes while investigating the reported Chroma DLL calls. Done means the game no longer causes sustained CPU saturation and stutter in either configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.