Page 1 of 1

GZDoom 2.0.01 Second beta release

Posted: Sun Aug 03, 2014 8:43
by Graf Zahl
The first beta release of the new renderer is available now. Please note that this is a beta release, intended for finding bugs. It should be stable on Geforce cards but no guarantees.

A few notes about compatibility:

This release uses very recent OpenGL 4.4 features, most importantly persistently mapped buffers. This means that the minimum requirements are either a working OpenGL 4.4 driver or support of the GL_ARB_buffer_storage extension. As of this writing this extension is supported by the most recent drivers of NVidia, AMD and Intel for their OpenGL 4.x supporting hardware. If you got hardware that supports GL 4.x but GZDoom shows an error that this extension is missing, please update your driver.

Also, as of this writing there seems to be no driver for Windows XP, supporting this extension, so the binary was compiled without Windows XP support. This will change if I find out that such a driver has been released - but I consider that unlikely.

So why no compatibility handling? The answer to that is that any working attempt of doing this would utterly defeat the intent of the rewrite. All my tests have shown that the only other way to get the data to the GPU fast enough in this particular scenario is (what irony!), to use immediate mode functionality. The classic buffer update methods are simply too slow to perform hundreds or thousands of buffer updates per frame and the current structure of the renderer requires this many buffer updates. Work is in progress to reduce this but this is a time consuming task, so no immediate results would be presentable for older hardware. For now it is important to have this work properly on all modern and future graphics hardware.

Of course I know that there's still a significant amount of hardware out there that does not meet these requirements so for the time being the existing GZDoom 1.8 version will continue to be developed - but it will be feature-frozen on the renderer side.


So what is this about?

GZDoom 2.x features a rewrite of the rendering code to run on modern OpenGL with a core profile. That means that all rendering is now using hardware buffers to pass its data to the graphics card. Depending on the maps being played this provides a performance increase of up to 20% on modern NVidia and Intel hardware. I have no reliable numbers for AMD yet, but it may be less there due to higher driver overhead for issuing draw calls.
This release does not have any new rendering features as the most recent 1.8.x version, but during the rewrite I was able to elimintate some precision issues with the lighting code for sprites so there may be some minor improvement there.

UPDATE: The download was replaced with 2.0.01 which corrects a bug with not rendering the sides of 3D floors.

Re: GZDoom 2.0.01 Second beta release

Posted: Mon Aug 04, 2014 2:40
by Tiger
Great stuff!

Re: GZDoom 2.0.01 Second beta release

Posted: Mon Aug 04, 2014 19:06
by NeuralStunner
Graf Zahl wrote:This release does not have any new rendering features as the most recent 1.8.x version, but during the rewrite I was able to elimintate some precision issues with the lighting code for sprites so there may be some minor improvement there.
Does "feature frozen" mean you won't be reflecting any such rendering fixes into 1.8 (if they're possible)?

Also, would you be accepting community-submitted backports of 2.x features to the 1.x branch? (Assuming anyone would bother, it's hard enough to get anyone to do more with the GL renderer than complain about it. :ninja: )

Re: GZDoom 2.0.01 Second beta release

Posted: Mon Aug 04, 2014 21:00
by Graf Zahl
It depends on the situation. If there's changes to code that's identical in both branches it's just one git merge. But if something depends on the newly added buffer code or the streamlined shader it may not be possible to backport.