In light of the other myriad of performance/bug reports with OpenGL applications, I may be able to shed some light on an issue that's been ongoing since the 22.7.1 drivers were released.
I have been playing a game called Vintage Story that needs OpenGL 3.3 Core Profile in order to run optimally. In driver version 22.5.1, this works just fine; the game requests that OpenGL version, and it gets it. However, updating drivers to 22.7.1 or newer, the game ends up running in "OpenGL 4.6 Compatibility Profile," and its performance absolutely tanks.
Is there a bug in the part of the driver API that is returning the wrong OpenGL version when a specific version is requested by an application?
For reference, I am running an RX6800m on Windows 10. Note that while the screenshot with the awful frame time graph is from driver version 22.11.2, I have been testing this with each new driver release, and the results are about the same. This includes the latest driver 23.3.1.
Hi @kurazarrh ,
Thank you for reporting it. I have whitelisted you and moved the post to the OpenGL forum.
Could you please share the steps to reproduce this issue? I will report it to the OpenGL team.
Thanks @dipak !
The steps to reproduce this issue requires access to a game or application that requests a specific Core Profile version of OpenGL, and which will display the version of OpenGL while running. If you reach out to Tyron, the lead developer and owner of Vintage Story and explain the issue, he may be able to provide a game key for tracking down this issue.
1) Install AMD driver version 22.7.1 or newer on a system running a reasonably modern RX**** graphics card. My card is an RX6800m.
2) Launch the vintagestory.exe application.
3) Go to Settings > Graphics and turn on the advanced mode. Ensure that vsync is OFF and the Max FPS slider is all the way to the right, at "Unlimited."
4) Create a new world or load an existing one.
5) Press Ctrl+F3 to display the debug overlay.
6) Observe: the upper-left-hand corner of the screen where the driver, graphics card, and OpenGL version are displayed. With the 22.7.1 drivers or newer, this will display "4.6 Compatibility Profile." With earlier drivers (22.5.1 recommended for testing), it will display "3.3 Core Profile."
7) Observe: the upper-right-hand corner of the screen where the average and minimum FPS are displayed. FPS values for the 22.7.1 (or newer) drivers are lower than the FPS values for the 22.5.1 drivers.
8 ) Observe: the lower-right-hand corner of the screen where the frame graph is displayed. The frame graph for the 22.7.1 (or newer) drivers is far spikier than the graph for the 22.5.1 drivers.
These results can be directly compared to what each of the observed values show when following the above steps but with the 22.5.1 driver installed.
For more extreme results, this comparison can also be run with OBS Studio open in the background and set to record at 60fps. It is not required to actually record any video to see the exaggerated effect this has on the frame rate and frame times.
Please don't hesitate to reach out to me for more information or support. If you are unable to test this with a game key from the developer, I would be happy to help test this on my own system if need be.
Not a problem! I've reached out to the lead developer and owner of Vintage Story, and they have graciously offered to supply a game key for this testing. I've provided them a link to this thread.
If the AMD team prefers to purchase their own game keys, however, they can be purchased here: https://www.vintagestory.at/store/product/1-single-game-account/
If multiple accounts are needed for multiple testers, there is also a 4-pack with a discount.
Hi @kurazarrh ,
As the OpenGL team informed me, it would be helpful if the game developers team can provide a game key to test the issue locally. Could you please help us to contact the game developers to get a game key?
By the way, I tried to send you a private message, but it seems like your PM option is not enabled yet. You can follow the instructions mentioned here to enable it.
Thanks for the reply, @dipak !
I looked at the instructions on how to enable PMs--however, it looks like there is a requirement to be at least of "Novice II" rank, and I am only "Adept I." So I do not see the option in my settings to enable it.
The lead developer, Tyron, tried to reply to this thread in order to provide the game key, but he was not whitelisted. Can you whitelist him? Here is his user profile: https://community.amd.com/t5/user/viewprofilepage/user-id/260781
(It looks like he is also not yet a Novice II, so it may be difficult to PM him, as well.)
Hi @kurazarrh ,
I have whitelisted Tyron (https://community.amd.com/t5/user/viewprofilepage/user-id/260781). Please inform him that now he should be able to reply in this thread.
>>it looks like there is a requirement to be at least of "Novice II" rank, and I am only "Adept I." So I do not see the option in my settings to enable it.
As per this community ranking page, I think "Adept I" is higher rank (level 8 ) than the "Novice II" (level 3). Anyway, I will check with the community admin team to enable the PM option for you and Tyron (if he prefers to share the game key privately).
Hi @kurazarrh ,
Regarding the performance issue, could you please provide a few game save files (also called savegame, savefile, save point etc.) with the exact game state and location in the game where lower performance is experienced? Or the detailed instructions how to get to the in-game location where the performance issue can be observed?
Sure. I wanted to get some more metrics to include, but updating my AMD drivers apparently bricked my laptop for the time being and destroyed my boot record, so I'll be spending the evening recovering my files and reinstalling Windows. Anyway, what I can provide is the following observations and instructions:
Observation: This issue seems to be caused not just by interactions between AMD drivers and Vintage Story, but AMD + Vintage Story + OBS.
Instructions (with AMD driver version 22.7.1 or newer installed):
1) Launch OBS Studio. Create a new Scene in the collection and use the "Game Capture" option targeting VintageStory.exe. Leave other values at their defaults.
2) Launch Vintage Story.
3) Load any Vintage Story world. If you need a world to test with, here is mine (warning, it is 5GB): https://www.mediafire.com/?r61we8v9ec8x2x2gm3e4vphm5np3v22 (this link is valid for then ext 14 days). This will need to go into your %VintageStoryData%\Saves folder.
4) Press Ctrl+F3 and note the frame graph in the lower right corner, and the avg/min framerate in the upper-right corner.
5) With Vintage Story still running, close OBS Studio.
6) Observe the frame graph and frame rates. In my experience, with OBS Studio not running and hooking Vintage Story, the frame rate is much higher and the frame graph is much smoother.
7) Repeat the above steps but with 22.5.1 installed. The outcome is that the frame rate and frame graph are unaffected by running OBS Studio with Vintage Story hooked for video recording.
Hi @kurazarrh ,
>> 3) Load any Vintage Story world. If you need a world to test with, here is mine (warning, it is 5GB): https://www.mediafire.com/?r61we8v9ec8x2x2gm3e4vphm5np3v22 (this link is valid for then ext 14 days). This will need to go into your %VintageStoryData%\Saves folder.
As I have been informed, the OpenGL team was unable to download the save game file using the above link. Could you please check the download link and share it once again?
Hi @kurazarrh ,
We are still unable to access the file using the new link [after clicking the link, the page is not loading]. Could you please use any other website to share the save game file?
@dipak It shouldn't load a web page; it should immediately start a download. I've received notice that one person has already successfully downloaded it.
If it's still not showing up in your browser downloads, I have a different link here using OneDrive: https://1drv.ms/u/s!AuvX4_8JO15V1wgjJChFxewxCu68?e=eueAB8
Give that a whirl and let me know how it goes. The link expires at the end of next week.
Sorry it took me so long to get back to you on this; I was busy and needed to set up a test environment that wouldn't impact my recording workflow.
I tried it with 23.7.1 as requested, and I am still having the issue. However, I have identified another variable that was not accounted for previously: the order in which Vintage Story and OBS are launched.
My usual order is to launch Vintage Story and then OBS. This results in choppy FPS, and choppy video.
However, I tried starting OBS first, and then Vintage Story... and voila. It actually works, and records video of about the same quality as with the 22.5.1 drivers!
The downside is that in both instances, using the 23.7.1 driver, if I attempt to close the game, OBS will not let go of its hook into the game, and vintagestoryclient.exe will still be running in the background. Further, if I close OBS before closing the game, the game crashes. To make matters more complicated, while the video output is relatively smooth with the 23.7.1 driver when launching OBS first, the videos are created without their color space set for some reason, which causes issues during editing unless I reprocess the videos first. None of these behaviors occurs with the 22.5.1 driver.
When the OpenGL team runs the game and they press Ctrl+F3, what "GC Version" appears in the upper-left corner of the screen? Vintage Story wants to use OpenGL 3.3 Core Profile, but with the newer drivers, it uses 4.6 Compatibility Profile. I can't help but think that this has something to do with at least some of these issues.
Hi @TyronX ,
Thanks for your help. You may share the game key via community private message (PM). I will contact the community admin team to enable the PM option for you. Once done, I will send you a PM where you can share the game key.