Starcraft Remastered | Can't enable real time lighting
I have been playing Starcraft Remastered, the game is running perfectly but I can't enable the real time lighting option, which requires a minimum of 2gb of vram, even though my GPU is supported.
Software information
Lutris, playing Starcraft remastered through the battle.net in lutris.
System information
- GPU: RTX 3070 Ti
- Driver: 560.35.03
- Wine version: ProtonGE9-16
- DXVK version: v2.4.1-194-g763b82b1e482e3b
Screenshots
The conditions are having hardware with more than 2gbs of VRAM, and not having the cartooned skin set enabled (Which I haven't enabled)
dxvk hud shows the gpu correctly
This may be fixed in the next release of dxvk-nvapi if the game uses that. They recently added some functionality that games can use to get VRAM amount. Will try to test here later.
IIRC we had a report about this game before. I don't remember what the issue was, but it's probably not using DXGI to query the available amount of VRAM because (some) game developers really hate writing simple and reliable code for some reason.
Game might also just not support ≥4GB of VRAM, in which case DXVK_CONFIG="dxgi.maxDeviceMemory=4095" might help.
Game might also just not support ≥4GB of VRAM, in which case
DXVK_CONFIG="dxgi.maxDeviceMemory=4095"might help.
Since I dualboot, I also tried running the game natively in Windows and It works fine with 8GB of VRAM (I could enable real time lighting without issues).
Just so it is noted in the issue. I have only been able to reproduce this issue myself when using older Wine builds like Proton 8 or Wine-GE. When using Proton 9, Experimental, Proton-GE 9-16 etc it works fine. The game doesn't use nvapi and i haven't found that the problem is something to do with dxvk as using a newer dxvk version in Proton 8 doesn't prevent the issue from showing.
Tested with a RTX 4080 (system also have a AMD iGPU)
https://gitlab.winehq.org/wine/wine/-/merge_requests/4466
Ah nice :+1:
Seems to be a wayland issue. On wayland the real-time lighting setting is disabled, but I tried in X11 and the setting works correctly. (I am using KDE Plasma, version 6.2.2)
I guess you are running this under Xwayland and not the experimental native Wayland driver? Then open a bug report for Wine, component "winex11.drv":
https://bugs.winehq.org/buglist.cgi?component=winex11.drv&product=Wine&resolution=---
I guess you are running this under Xwayland and not the experimental native Wayland driver?
Yes, I am running the game using ProtonGE9-16 under Xwayland
Then open a bug report for Wine, component "winex11.drv":
https://bugs.winehq.org/buglist.cgi?component=winex11.drv&product=Wine&resolution=---
Okay, I will later create a bug report on the component you gave, saying that in Starcraft Remastered VRAM is not reported correctly under Xwayland
Linking the new Wine issue: https://bugs.winehq.org/show_bug.cgi?id=57351
For what it's worth, I attempted to work around / test this by using the native Wayland driver and couldn't find a version that could get past the Battle.net login for me to see. All I can do is confirm this occurs using Xwayland but does not in a regular X session. It also occurs for me even in Proton Experimental, latest GE versions, etc.
Here's something, actually: This bug did not occur under Xwayland when I launched it outside of Lutris with system-installed WINE Staging 9.21-1.1. I'm not sure how to get the Lutris flatpak to use this exact WINE version to see if it works there and narrow down the culprit, but that is at least a workaround.
...a couple other tests, this time through Bottles:
Caffe 9.7 (based on staging): Bug does not occur Soda 9.0-1: Bug does occur
Seems like something in staging avoids the problem but all Valve and stable WINE-based stuff has it. For those looking to work around the issue, the smoothest solution I've found is Bottles with Caffe 9.7 and dxvk 2.5.1.
Can confirm: Using Bottles with its Caffe runner the setting works.
Same problem here, a workaround that works for me is to manually set the GPU Device and Vendor Id in a custom dxvk.conf file, for example:
[StarCraft.exe]
dxgi.customDeviceId = 10DE # Nvidia
dxgi.customVendorId = 139B # GTX 960M
d3d9.customDeviceId = 10DE # Nvidia
d3d9.customVendorId = 139B # GTX 960M
With this in place, real-time lighting is enabled.
Tested on two different machines with a Nvidia and an AMD gpu, running Debian Testing, KDE Plasma 6 Wayland session, ProtonGE 9-16 and 9-22.
Interesting fact, the workaround seems to work even when the IDs do not match the GPU in use.
With ProtonGE10-1, It looks like a custom dxvk.conf is no longer necessary with xwayland