Open TheDimensioner opened 5 years ago
Does it help if you set r_scaleMenusTo43 0
(and maybe restart the game)?
I don't remember if this affects all the places where scaling to 4:3 is used, but it's worth a try
Well, like I show on the video, I do set it to "0". That changes menus on the fly, and after restarting, they do stay "stretched" at 1280x480, but the crosshair is still squished on the fullscreen 4:3 aspect ratio of the monitor. Even putting the setting directly on the game config doesn't help.
I could use a 4:3 resolution like a sane person, but 640x480@120Hz or 800x600@110Hz, which is the maximum "quality vs. refresh" ratio at 4:3 that my monitor supports, is just too "grainy". 1280x480@120Hz is that much sharper, and I could go even further, like 3840x480@60Hz, or 3840x240@120Hz, which then becomes "4K retro Doom 3" XD. So, just leaving the crosshair at its default 4:3 ratio and leaving the aspect correction to the CRT would be great! Just like in the previous release, but that didn't have the uncapped framerate option...
Speaking of uncapped framerate, does Doom 3 use some kind of "double buffer v-sync"? I might not know what I'm talking about, but when I'm using 120Hz, I do leave v-sync "on" to not put too much stress on my GPU (NVIDIA GeForce 9600GT 1GB, OLD XD), but when there's the occasional FPS drop, it goes all the way down to 60 FPS before recovering. Then, I simply enabled "triple buffering" on the NVIDIA control panel, and that fixed the issue. Another thing to note: at first, I had disabled the game's v-sync and then I enabled the GPU driver's v-sync option with triple buffering, but that added input lag for some reason. Doom 3's "swap interval" option seems to have less lag, and at least triple buffering works well with it, so, that's what I'm using.
Ok, I'll see if I can use r_scaleMenusTo43 to enable/disable all cases that (try to) scale to 4:3 somehow.
Regarding double/triple buffering, yes, we enable double buffering, SDL has no way to set triple buffering, but if your driver lets you set that it should be good enough. It's normal that triple buffering introduces input lag, as the GPU driver buffers one more frame before actually showing it.
It's normal that with VSYNC framerate drops to fractions of the original framerate (=> only every second frame rendered). Newer GPUs/drivers support "smart vsync" or sth like that which only vsyncs when reaching the display refreshrate (at the cost of tearing when it doesn't).
Not sure if your GPU/driver supports that, but if it does, setting r_swapinterval
to -1
should enable that mode, I think (might need a game restart or at least vid_restart
before it's applied).
Oh, thank you for that! I'm pretty sure I would be the only guy using anamorphic resolutions, though. I also used 4:3 resolutions corrected to 16:9 when I had a widescreen monitor... My PC was already weak back then to support full 720p / 1080p XD.
And regarding v-sync, r_swapInterval "-1"
did the trick! Framerate is now capped at 120 FPS, and whenever it drops, it just goes down to the 100s~70s, and without triple buffering, instead of all the way to the 60s all the time. I really don't care about tearing, since at such a high refresh rate it's practically invisible.
I only use v-sync to spare the ol' GPU. I noticed that when I had v-sync disabled for any game that would render 200+ frames at a time, thermals would go too high, even at low resolutions, so I just coped with the input lag that v-sync introduced. And now I know that triple buffering also introduces lag, contrary to what the GPU driver's description always told me... Maybe I was getting some sort of "placebo effect" because of that XD.
EDIT: I just confirmed that, while the "smart" v-sync option of the GPU driver also works, it does add more input lag than the game's r_swapInterval
, and that's not placebo XD. Maybe the engine option is more "native", I don't know...
So, I read some of the comments on the implementation of the 4:3 menus and videos, and the correction of the crosshair in non 4:3 resolutions. But in the crosshair side, I kinda wanted the opposite XD. You see, I play using a CRT monitor, which allows for ridiculous X and Y resolutions (which some call "super resolutions), and with a low enough vertical Y resolution, it allows for high refresh rates. The unlocked framerate option was very welcomed, since now I can play at 120FPS using the custom resolution of 1280x480@120Hz. But now the crosshair gets "squished", which is kinda distracting for me... Here's a video to highlight what I see:
https://youtu.be/6h3udshd70U
The resolution is set to 1280x480, but since my monitor is 4:3, the aspect ratio is also set to 4:3. But even though the new command line for disabling the scaling works for menus and videos, it doesn't for the crosshair. I saw that some separate work had to be done to allow this behavior for the crosshair, but is it possible to add an option to disable it (or maybe some directions on how I could do it myself XD)? Doom 3 is much faster in my PC than the BFG Edition, keeping 120FPS most of the time (when not recording in my 10+ years old PC XD), so, I would be thankful if that small nitpick could be reverted back to how it was!