Redneckerz wrote:I don't agree with VC's efforts back then but the general idea - testing against a reference to determine what the cause for the significant degression is is not a unreasonable one. As the Edit post mentions, i don't disagree that there is a performance deficit due to AMD's driver implementation - I am more interested as to why said deficit is so significant to the point of being unreasonable.
I don't think testing against a reference implementation is going to tell us much more than we already know. What counts as "unreasonable"? Let me reiterate again that AMD's OpenGL drivers have been troublesome from the very beginning. I've had AMD's off and on for over two decades now, the only thing that has improved "relatively" in that time was their Direct3D (which used to be a whole lot worse as well).
I can understand getting 20-30 FPS on an AMD sucks, but it's not what I would call "unreasonable". I call that "beyond our control". Unreasonable is when there are actual graphical glitches, or it doesn't render at all, or even just crashes.
Despite your justifications given here I still think you are quoting as "reasonable" what I see as "entitled". For two reasons:
1) From Graf's point of view, GZDoom is purely a hobby/free-time project.
2) Fixing OpenGL code is a massive pain in the ass. No doubt there is a desire to do it in the first place but I am pretty sure leaving an OpenGL debugging session does not give feelings of euphoria, satisfaction, and happiness. You're asking him to trawl in the mud for an issue that is beyond his control and that he does not have the hardware for in the first place, and for what, maybe a minor performance boost if that, for maybe 15% of users? (based on a broad assumption that only 30% of people can't use Vulkan and maybe half of those use AMD - but that number is truthfully likely to be far less anyhow)
The reason why this point is such a stick to me is because I invited Graf to remotely debug on my own machine which at the time had an AMD HD4850, which is an entry-level OpenGL 3.3 card. At the time the card was already a year before the end of its support life, before AMD was to terminate support completely for the card.
And the thing I remember most was just how much he went through the code trying to change things, this and that and the other, and just simply nothing seemed to work. In the end he was able to figure out what the actual problem was (the stencil buffer was effectively broken) but it was an issue that he could not fix at the time. I remember that I felt bad putting him through that.
At least these days the AMD drivers work most of the time. (keyword: most) - yes there are driver pushes that break things but the majority of the time things work, even if they are slow. Furthermore, the Vulkan alternative that is now available works much better anyhow, and pretty much negates the need to work on AMD GL support to begin with because honestly, that platform is rapidly on its way out now, it's really not worth the time and energy to invest into it. If you can run Vulkan, do so.
Honestly, if I didn't need OpenGL support for other things I would have said "fuck you" to NVidia a long time ago. I hate NVidia as a company even more than I hate AMD, and AMD's cards are more reasonably priced. But even today (and outside of GZDoom) I still need good OpenGL support and unfortunately NVidia holds the monopoly on that right now.
Redneckerz wrote:Based on implementation, i would expect a regression, but not in the orders of magnitude on display here.
The thing NVidia and AMD have in common is they are both shitty companies looking out only for the bottom line.
The only point where this diverges where their priorities are. OpenGL simply isn't it for AMD, and I am fairly certain NVidia is well aware of this. Once OpenGL-to-Vulkan wrappers start becoming more available and widespread this paradigm will no doubt shift, but that point will also be a nail in the coffin for OpenGL overall anyhow.
I think this is relevant because you say you don't expect things to be as shitty as they are for AMD - but you fail to realize that AMD is just focusing on what butters their bread. Just like any corporation. Even on NVidia, OpenGL is pretty shitty, it's just less so. Literally anything that uses any other driver interface on Windows simply works better. Be it Vulkan, classic Direct3D, or even D3D12.
Redneckerz wrote:I was collecting evidence to support the general idea of a reference implementation, not to showcase support for the requesters method of trickling down on Graf. If i gave that impression, i apologize.
If it's so important to you, I suggest you read up on the documentation on how to set this up yourself, and then run GZDoom in a debugger with the performance counters enabled. If you really do think there is any insight to be gleaned from this, then I encourage you to collect the data and share it. Keep in mind that using a real-life hardware is always going to give you better information than a reference driver will, but if you do not have an AMD and you do somehow manage to find one of their reference drivers, then that would be the way to go.