First results from the 4.9.0 survey

Here, developers communicate stuff that does not go onto the main News section or the front page of the site.
[Dev Blog] [Development Builds] [Git Change Log] [GZDoom Github Repo]

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

First results from the 4.9.0 survey

Post by Graf Zahl »

We now have 1000 survey reports so I think it is time for a first summary.

Here's the most interesting numbers, in parentheses the numbers from 4.7.0 with roughly 1300 users:

90% (85%) use Vulkan compatible hardware. This can be further divided into 65% on modern upper mid range to high end hardware and 25% low end to mid range.
4% (5.6%) use hardware which can run OpenGL with all features enabled but cannot run Vulkan. Note that this only considers theoretical support. Only 0.5% have hardware that is actually capable performance wise.
6% (9.1%) use legacy hardware which requires fallback solutions in the renderer and only has limited support for some features.


85% (75%) use a system with 4 CPU cores and more - among the Vulkan compatible systems this is 90% (82 %).

Currently Linux sits at 19%, macOS at 3.6%. The numbers were even higher before the download page was updated, so I expect them to shrink further. Over half of the reported Macs are ARM models already.

The numbers here are a bit weird in the low end segment. The lower mid range which includes all high end hardware of the last pre-Vulkan generation of hardware virtually imploded - the mentioned 0.5% is a mere 5 users reporting such hardware. 4 of these 5 users were early reporters so in the last two days only one single person reported such a system. Oddly enough the extreme low end has seen virtually no decline at all - the drop in OpenGL-only hardware almost exclusively came from the better hardware of this segment being on decline.
The same could also be witnessed at the lower end of Vulkan hardware. The vast majority of users these days uses a Geforce 960 or better (including AMD equivalents.)
So the trend that was already observable with 4.7 has continued with the user base getting ever more divided into two very distinct groups whose hardware has little to nothing in common.

User share of Windows 7/8 has dropped to 4.5% (18%), roughly 50/50 between owners of Vulkan compatible hardware and older setups.

I concluded the 4.7 survey with the following statement:
"Interestingly, the situation with CPU cores has not changed much at the low end. At the high end we are starting to see that many systems now come with 8 or even 16 cores, but the low end is virtually unchanged. So essentially we have the same situation as with graphics hardware - a large, fast moving group that frequently updates their systems and a slowly declining group of holdouts with old systems.
All this combined looks like there is a certain group of users which desperately holds on to their extremely outdated systems while everybody around them is updating their computers.
If this trend continues we may soon have a situation where the overwhelming majority of users has a system supporting modern render APIs but the remaining part of the user base cannot even use the OpenGL renderer with all features enabled. I am not sure yet how such a situation may play out - hopefully it gets mitigated by Windows 11 forcing a lot of users to upgrade and flood the second hand market with their Windows-11-incompatible systems, which then in return may drive out more of the truly ancient ones."

So here we are, one year later. I was actually hoping that Windows 11 and the drop in graphics hardware prices would bring some change - but apparently it did not. What we see instead is an increasing vacation of the middle ground while the size of the lowest end has only marginally declined over the last 3 years. This is actually becoming a serious problem by now because the need to support this segment is impeding the future development of the engine for modern hardware as most of our users own. We need two totally incompatible graphics APIs and two totally incompatible ways to use the APIs to serve both sides well - essentially meaning we need two different engines. Yes, there will be changes, we are currently evaluating our options.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

Please note that I had to fix two numbers. When compiling the status for the OpenGL low end I forgot to count the AMD cards that support OpenGL 4.3 or higher and assigned them to the wrong group. This does not change much, though, most of these cards are still laptop based and on the slower side of things, they just have slightly better OpenGL support.
But this brings things into better perspective because now the decline of the two groups of OpenGL hardware is almost equal.

And with this comes one clear conclusion: The low end is on the way out - slowly but certainly.
yum13241
Posts: 853
Joined: Mon May 10, 2021 8:08 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): EndeavorOS (basically Arch)
Graphics Processor: Intel with Vulkan/Metal Support

Re: First results from the 4.9.0 survey

Post by yum13241 »

My crappy iGPU has an identity crisis.

On Linux it supports Vulkan and OGL 4.6 but on Windows it has NO vulkan and only OGL 4.4. I also have an even crappier PC that doesn't even get OGL 4, it think it caps on 3.3. That's on Linux btw. I reported on Windows, so I'm assuming you got "THIS IGPU DOESN'T SUPPORT VULKAN".


This is my processor: https://www.intel.com/content/www/us/en ... tions.html (IK it sucks)
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

Yeah, Intel really sucks with their Windows driver support. They've pulled the same stunt with several product lines, leaving Windows users hanging in the dust with an outdated driver.
Well, in any case, I think you'd be better off using the GLES backend on that thing on either platform.

On my former, now retired computer from 2012 which has an Intel HD4000 it performs significantly better than the full GL backend, on some maps up to 50% faster.
User avatar
KynikossDragonn
Posts: 272
Joined: Sat Dec 12, 2020 10:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Void Linux
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: First results from the 4.9.0 survey

Post by KynikossDragonn »

The Iris Pro 580 on my NUC6i7kyk works really great with GZDoom, but still requires INTEL_DEBUG=reemit to be passed if launched with OpenGL to avoid bizarre graphical corruption, Vulkan has absolutely no graphical corruption and I've been livestreaming on Twitch this very moment for 7 hours now without a single problem.

I get the same framerate problems Marisa does on her own discrete GPU even.

I'm curious how many people are attempting to run GZDoom on a generation higher than mine, I've heard nothing but horror stories for Intel Graphics past the Skylake generation. The Iris Pro 580 in particular seems to be the most powerful thing they put out unless I'm completely placebo.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

The Iris Pro 580 is at least decent and roughly comparable with an 8-9 year old mid range discrete GPU. Unless you enable costly postprocessing features it should run GZDoom just fine.

But make no mistake, even with a relatively high uptake of Vulkan hardware there's still one third of our users running on weaker hardware than yours. A lot of these are older Intel iGPUs. The oldest reported card of all is a Geforce 8600, i.e. a first generation OpenGL 3 entry level card. I had such a thing myself 11-15 years ago and know its performance characteristics. The system I had back then was barely capable of running more complex scenes with 30 fps.

One strange thing here is that few of these users which really would benefit from using the GLES backend do. So one idea we've been tossing around is to retire the fully featured GL backend as the amount of hardware that has a clear advantage on it has nearly completely evaporated. Most pre-Vulkan users are on hardware so weak that using GLES is basically a requirement to get some performance out of it. And for those with Vulkan capable hardware we are running increasingly into driver issues with both Intel and AMD. Especially with AMD, shader miscompilation under GL has happened a few too many times recently. So IMO the best course of action would be to always run Vulkan if the system supports it and otherwise use GLES.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

Here's a small update, mainly focussing on the OpenGL segment. We now got more than 2000 reports and the numbers are starting to solidify

Right now we have:

4.8% which use legacy hardware which requires fallback solutions in the renderer and only has limited support for some features. (i.e. OpenGL 4.3 is not supported)
4.3% use hardware which can run OpenGL with nominally all features enabled but cannot run Vulkan, and have performance that is so weak that use of the GLES renderer is still advised.
0.7% use hardware that can run the full OpenGL renderer, minus the two most costly features, i.e. shadowmaps and SSAO.
We have one single user reporting a higher end pre-Vulkan card that shoiuld be able to handle all features without problems, this one was a Geforce GTX 560 Ti.

That's 9.9% of our users altogether that cannot use Vulkan.

For classifying the Vulkan-capable segment I will need more time, mainly because AMD's GPU model strings are all over the place and very hard to sort out.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

Here's the number crunching for the Vulkan hardware:

54% of our users use high end Vulkan compatible hardware - high end meaning a Geforce GTX 770 or better.
16.4% use mid range Vulkan compatible hardware - this includes virtually every remaining discrete GPU plus some of Intel's most recent offerings (e.g. Iris Xe)
8.6% use low end Vulkan compatible hardware, which for the most part is low end mobile or older Intel iGPUs.
11.1% were not classifiable, this is mainly AMD hardware where no model info is given and the named series spans to wide a spectrum. If I could make a guess, it's split 50/50 between low end and mid range.
User avatar
KynikossDragonn
Posts: 272
Joined: Sat Dec 12, 2020 10:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Void Linux
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: First results from the 4.9.0 survey

Post by KynikossDragonn »

Graf Zahl wrote: Thu Nov 10, 2022 12:18 am So one idea we've been tossing around is to retire the fully featured GL backend as the amount of hardware that has a clear advantage on it has nearly completely evaporated.

Most pre-Vulkan users are on hardware so weak that using GLES is basically a requirement to get some performance out of it. And for those with Vulkan capable hardware we are running increasingly into driver issues with both Intel and AMD.
Vulkan moving forward is probably the best idea since I think OpenGL is long since retired when it hit 4.6, my only problem with Vulkan under my system is that the texture filter modes don't do what you'd expect them to do on Intel's Vulkan driver.

Only "None" will render the World (including the Canvas) in nearest neighbor interpolation, but the moment you switch to "None (nearest)" / "None (linear)" / "None (trilinear)" it will start rendering the World with bilinear or trilinear and only render the Canvas as nearest.

Under OpenGL those options do what I think they're supposed to do, I've always ran stuff under GL_NEAREST_MIPMAP_NEAREST because turning of all mipmaps is a bad idea, for one it introduces distracting moire patterns, second if the textures are large enough it will result in performance hits if that large texture is being used on something that's the size of a ant in terms of distance from the viewport. I know I can't be smoking something fierce because this iGPU does indeed render nearest neighbor surfaces with nearest neighbour mipmaps just fine, so I'm not sure what's going on here. It's really the only bug I have with Vulkan, nothing else seems broken.

I also hope with such a change I don't get mistakenly forced to GLES because my hardware is so many years old and discontinued. (from a manufacturing standpoint atleast)
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

First, nothing has been decided yet. The texture filtering thing is probably something not correct in GZDoom's sampler code that only trips Intel.
Regarding performance, there's other avenues to explore, too. Have you seen that Helion port over at Doomworld? They have done some things with cached static geometry.
That's also something we may try - it has one advantage, namely that OpenGL will also benefit from it and that the effect here is an overall reduction in calculations, not just a better distribution.

Long term the route should be clear, though. It's only a matter of time until OpenGL will be dropped, the API is no longer being extended, so once a new hardware feature comes up that we want to support we might be forced to abandon it.

All other obsolete types of hardware and software eventually disappeared.
It happened for GL 1.x which for all intents and purposes was already dead when we did our first survey, after that the story repeated itself for GL 2.X, 32 bit systems and Windows XP. And the same will also happen with OpenGL 3.x and later with all non-Vulkan hardware. That's pretty much inevitable
User avatar
KynikossDragonn
Posts: 272
Joined: Sat Dec 12, 2020 10:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Void Linux
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: First results from the 4.9.0 survey

Post by KynikossDragonn »

Graf Zahl wrote: Sat Nov 12, 2022 1:48 pm Have you seen that Helion port over at Doomworld? They have done some things with cached static geometry.
Never heard of it since I don't personally frequent Doomworld all that much, I guess it's like only uploading copies of the level geometry once to VRAM and having the GPU refer to that data all the time during rendering rather than regenerating/reuploading a whole scene again?

There's been some huge maps I've seen made for specifically GZDoom but they run horribly for me unless I enter the map with -nomonsters set.
Gez
 
 
Posts: 17934
Joined: Fri Jul 06, 2007 3:22 pm

Re: First results from the 4.9.0 survey

Post by Gez »

Helion thread. Basically they rebuilt the renderer from scratch.


Personally, I believe the ongoing inflation crisis that is happening as a consequence of a paranoid sociopath's belief that we are still in the 19th century will slow down hardware upgrades for many people.
User avatar
Nash
 
 
Posts: 17465
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: First results from the 4.9.0 survey

Post by Nash »

I hope to see the day where GZDoom finally has immutable map uploading. That one branch dpJudas worked on was very promising.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: First results from the 4.9.0 survey

Post by Graf Zahl »

Yes, and if he hadn't lost it it would have gotten in to some degree. :(
It's a good case of why secret development is always bad.
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: First results from the 4.9.0 survey

Post by dpJudas »

My branches never properly worked for a feature-complete version - that's why I abandoned them. :)

First attempt I did never took portals into account at all (it just rendered all sectors). The second version did, but then it lost all its speed due to the BSP visibility test (the clipper) still being the most dominant part of the frame.

This is once again one of those cases where doing it for original Doom is very easy compared to doing it for GZDoom. There aren't that many things that can mutate in vanilla (just light level, sector height, texture change and texture scroll). With that few things you can easy identify them and move them to a storage buffer.

The way I did it in my branches was to take all the mesh generating functions (HWWall, HWFlat, etc.) and let them output to a DrawInfo/RenderState that would record the state and generate a mesh. I'd then call the Process+Draw functions for a full sector and that would become the mesh for the sector. When drawing the scene I would draw the sector mesh if the sector was visible.

The approach had some problems, such as not really working with how dynamic lights are currently done. Since the process functions also identify the portals and such during rendering, not calling them in a frame caused a bunch of other problems. In short: my version would never work without someone with a better understanding of the finer details of the Process functions fixing a number of issues.

Return to “Developer Blog”