doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
12.95k stars 832 forks source link

16-bit color mode #4088

Closed nolrinale closed 3 months ago

nolrinale commented 3 months ago

Is not really a bug but wanted to know if its possible to force 16-bit color in d3d8 and d3d9 games?

doitsujin commented 3 months ago

Is there any particular use case for this? We generally only expose display modes we get from the system, and even when talking about swap chain formats it seems a bit weird to go all the way down to 16-bit color, especially if the game doesn't want to.

nolrinale commented 3 months ago

Well in PSO I can select in the options to go to either 32-bit and 16-bit, but when I tried to go 16-bit the game always renders everything in 32 bit regardless. I assume it might happen with other games too thats why im not sure if its a bug from dxvk as is not honoring this setting change or something else entirely...

Heres a screenshot of the Options Menu for reference Screenshot_20240624_143942

However if you uncheck the first checkbox (window mode) the game starts in full screen in a very small window (the maximum resolution this game supports is 1600x1200) and the rest of the screen space remains black, but then displays the game correctly in 16-bit color. This only happens in my main desktop running fedora - wine 9.5 - and your latest dxvk

I cropped the fraction of the screen displaying the game with the correct 16 bit color setting in fullscreen you can tell by the color banding in the fog image

Instead I use virtual desktop and switch the game to Windowed Mode and drag the window to stretch it to the size of the monitor to play more comfortably but then its 32 bit in this mode. image

This is why I think 16-bit mode does indeed seems to work somehow but I was wondering if there was a way to force it to render always in 16 bit be it fullscreen or window mode?

On the Steam Deck the game doesnt run in Fullscreen mode only on Window Mode and thus its always in 32 bit color because it's simulating a window.

@K0bin I think theres a confusion with this game from the previous PR but PSOBB is actually natively a d3d8 game not a d3d9 game but people use the d3d9 plugin to mod the client with shaders and whatnot

K0bin commented 3 months ago

What's the advantage of picking 16bit formats over 32?

I think theres a confusion with this game from the previous PR but PSOBB is actually natively a d3d8 game not a d3d9 game but people use the d3d9 plugin to mod the client with shaders and whatnot

That doesn't really matter for us. There were some genuine DXVK bugs which that plugin hit and even besides that, we're looking to add D3D8 support soon-ish.

nolrinale commented 3 months ago

Well there isn't really an advantage/disadvantage more like being able to use all the options the game has to offer kind of situation. In my case it's also a preference for the aesthetic factor of this specific color depth for some games but again this is all very subjective!

looking foward for the d3d8 support coming soon! so i dont have to use d3d8tod9 anymore!!

nolrinale commented 3 months ago

Closing this one as it looks like the 16-bit color functionality is there as long you manage to run the games in proper real full screen (not borderless/windowed modes) and to also free up space in your bug tracker.

Thanks again guys and amazing job as usual!