etternagame / etterna

Advanced cross-platform rhythm game focused on keyboard play
https://etternaonline.com/
MIT License
474 stars 133 forks source link

"SmoothLines" option breaks D3D fullscreen screenshots #1041

Open joleskins opened 2 years ago

joleskins commented 2 years ago

Describe the bug ok can i just preface this by saying this is really stupid and i hate that a long standing, etterna specific bug (at least since .57 or .60 i believe?) is caused by this

so, taking a FULL SIZE, FULLSCREEN screenshot in D3D has been broken to some degree for a while. it has only worked while holding shift for some users. today i spoke to caliber who never had this issue in d3d fullscreen so i started investigating

i tried using his Preferences.ini file and then it literally just worked. comparing our files i narrowed it down to SmoothLines=0 causing it to work

To Reproduce boot the game up with SmoothLines=0 and VideoRenderers=d3d in Preferences.ini, make sure you're in fullscreen, hit printscreen, and it takes a screenshot

do the same but with SmoothLines=1, and now it doesn't work, though the game still hangs for about 200ms, albeit without any screenshot sound

if the issue isn't present, see below

Additional Context confusing part here; caliber didn't have the issue regardless of SmoothLines being on or off. since i have the issue with an NVIDIA GPU and caliber doesn't with an AMD GPU, i checked with other people who have different models and it doesn't seem to be strictly an NVIDIA issue

results are: NVIDIA GeForce GTX970: Issue present NVIDIA GeForce RTX2070 SUPER: Issue present AMD Radeon HD7950: Issue pressent AMD Radeon RX480: Issue not present

so it doesn't appear to be a brand specific driver issue, but might hint at newer AMD models maybe being immune to this? not sure if this can really be conclusive, may need more AMD people to test

Version Etterna 0.70.3 (but really this should be present on all versions since roughly .57 or .60)

OS Windows 10

joleskins commented 2 years ago

tl;dr if you play fullscreen with D3D and want to take big screenshots by pressing printscreen, turn off smoothlines

(not applicable to all graphics cards though)

poco0317 commented 2 years ago

thats cool but does pressing / or left+right do anything instead

joleskins commented 2 years ago

sorry should've specified, / and left-right works as an alternative but both of them are exclusive to evalscreen

poco0317 commented 1 year ago

the issue is narrowed down to the input of MultiSampleType here https://github.com/etternagame/etterna/blob/08773a50b4d42f4b787304e0d74483ce7520327d/src/RageUtil/Graphics/RageDisplay_D3D.cpp#L537-L538

but i have no idea why being on any setting other than D3DMULTISAMPLE_NONE breaks this. it literally causes the print screen button to never be picked up in the input system. i can tell that it is still functional because the game stutters when it puts my screen on the clipboard (windows default behavior)