QZDoom - ZDoom with True-Color (Version 1.3.0 released!)

Game Engines like EDGE, LZDoom, QZDoom, ECWolf, and others, go in this forum
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

QZDoom - ZDoom with True-Color (Version 1.3.0 released!)

Post by Rachael »

Image

Bugs go here (registration not required)

What is QZDoom?

QZDoom is a continuation of dpJudas's truecolor software rendering, merged with and forked from GZDoom.

Why merge with GZDoom?

Compatibility. It helps with the ever-growing wishlist of features for the port. If it runs on GZDoom, it runs on QZDoom, and hopefully QZDoom will eventually be able to "borrow" some of GZDoom's effects. It is also a goal that if this project is able to inherit enough of GZDoom's features, it will allow GZDoom itself to move forward further than would otherwise be possible since some users will no longer be held back by such a move. This is not intended to replace GZDoom, but rather, to exist alongside it, simply to offer an alternate renderer for development, testing, and playing.

Project Wishlist

These are features that are planned for QZDoom. Not all of them may make it in.
  • Bloom/tonemaps
  • "GL" Lights
  • "GL" Skyboxes
  • Model support (will be done in a similar manner to voxels, so it won't be as good as GZDoom's)
  • True freelook support
  • GZDoom's texture upscaling filters (HQNx, xBRZ, etc)
  • Floor decals
  • Flat&Wall sprites
Screenshots?

Image Image Image Image Image Image Image Image

Download

Home Page: http://qzdoom.drdteam.org/
Source: https://github.com/madame-rachelle/qzdoom
Official Release: http://qzdoom.drdteam.org/page.php?p=download
Git Builds: http://devbuilds.drdteam.org/qzdoom

Special thanks
  • dpJudas for his extensive work and efforts to make this a reality!
  • Graf Zahl for GZDoom
  • Randy Heit for ZDoom
  • id Software, Raven, Velocity, etc - All the games that ZDoom supports
  • All the various contributors and mod authors over the years, some of whom's work has been featured in these screenshots, but also those who have contributed code to both Doom and ZDoom and its family projects.
  • Blzut3 & _mental_ - Mac OS support
Last edited by Rachael on Sat Jan 07, 2017 11:28 am, edited 26 times in total.
User avatar
Nash
 
 
Posts: 17462
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Nash »

So this is basically "GZDoom for people who can't run the latest OpenGL", am I understanding this correctly... ?
_mental_
 
 
Posts: 3819
Joined: Sun Aug 07, 2011 4:32 am

Re: QZDoom - ZDoom with True-Color (WIP)

Post by _mental_ »

This PR fixes it on macOS. I can probably miss something but software (true color and original) and OpenGL renderers work now.
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

Nash wrote:So this is basically "GZDoom for people who can't run the latest OpenGL", am I understanding this correctly... ?
It's still ZDoom's software renderer - just with Truecolor changes. Eventually, I am hoping to make it into something that is compatible with GZDoom.
_mental_ wrote:This PR fixes it on macOS. I can probably miss something but software (true color and original) and OpenGL renderers work now.
Merged - thank you. :)
Accensus
Posts: 2383
Joined: Thu Feb 11, 2016 9:59 am

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Accensus »

There's an issue with the QZDoom image in this thread. Can't load it. Says the site can't be reached.

EDIT: Works now. Probably an issue on my side if you haven't touched anything.
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

Could just be Dreamhost. Everything on this thread is loaded from a mirror thread on DRD Team where everything is actually stored. I've nailed the problem down to Dreamhost's mySQL servers - for some reason they're slower than snails in the middle of February, but there's nothing I can do about it unless I move to a different host. Since DRD Team isn't that big, I haven't seen much reason to.
User avatar
YukiHerz
Global Moderator
Posts: 1503
Joined: Mon Dec 02, 2013 6:01 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Where corruption is redefined daily.

Re: QZDoom - ZDoom with True-Color (WIP)

Post by YukiHerz »

Just what i needed, since my computer was cursed with a non-descript intel gpu for which i can't install drivers beyond 9.somethingthatbreaksalotofthings.

Thanks for putting this together, and thanks to dpJudas for his work on the renderer, lets hope this takes off smoothly.
dpJudas
 
 
Posts: 3130
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (WIP)

Post by dpJudas »

Thanks HazeBandicoot. Maybe I'll do some improvements on this - we'll see. I have some old LLVM code that I'm thinking about resurrecting that could turn out to be very useful for QZDoom.
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

Fixed Linux compile. Have fun, all. ^_^
HazeBandicoot wrote:Thanks for putting this together, and thanks to dpJudas for his work on the renderer, lets hope this takes off smoothly.
You're welcome. :) This project is mostly for fun (and more of a learning experience for me). I'm hoping it takes off smoothly, too. :)
User avatar
Nash
 
 
Posts: 17462
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Nash »

So why was it decided that the true colour renderer be a separate program instead of being merged into ZDoom? Was there any discussion that led to this decision?
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

I'm not going to speak for dpJudas on this one - he can speak for himself - but for my part, the decision was made to do it simply because the original code submission had been waiting in queue for so long.

Also, when I discovered that the code was incompatible with GZDoom, I realized it needed to be fixed, anyway. Randi cares about GZDoom enough that I don't think she'll merge in such code if she knew it would cause major problems down the line with GZDoom. I had a little bit of help from dpJudas doing that, but for the most part, I was able to resolve most of the conflicts and function reprototyping on my own in order to get it working. But hey, if I can do that, I know Graf/Randi can too, so it's not impossible - especially since I already did most of the work for them, anyway, now.

When it comes to that, and the lack of response Randi has given the issue for well over 4 months now, it was decided in order to keep this alive, forking would be the best option. As far as I know Randi's still welcome to take the true-color renderer in the state that it is in, right now, but it's going to get harder than it is to do it right now, and it will only get harder as time goes on and the merge history starts getting buried under new features with both GZDoom and ZDoom themselves moving forward, and QZDoom right along with them.

I think what it really comes down to, is after reading some of the docs and things that Randi typed up specifically about the renderer she didn't see much future for the software renderer in its current state, anyhow, if I had to guess, without some significant changes that were made unnecessary by the later introduction of ZDoomGL and GZDoom.
User avatar
Hipnotic Rogue
Posts: 110
Joined: Fri Jul 15, 2016 5:06 am

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Hipnotic Rogue »

This looks really interesting. A true colour software renderer seems pretty cool. I look forward to playing around with it.

A quick question though. Are the computer overheads much higher than ZDoom?
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

From what I can tell it's about the same. An important thing to note is with the new truecolor renderer each column is split into worker threads, granting a huge benefit to multicore CPU's.

The best map is the one of the ones that are most notorious for causing problems in all versions of ZDoom and GZDoom - Frozen Time. I recommend testing this in ZDoom, GZDoom, and QZDoom, to compare renderer speeds. The trouble spot is at "Warp 4700 6200" facing out towards the bridge. Note that lower resolutions will be significantly faster with all 3, but especially moreso with ZDoom and QZDoom.
dpJudas
 
 
Posts: 3130
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (WIP)

Post by dpJudas »

Given the size of the truecolor patch, it might be better to just give it its own fork like Eruanna has done. The only catch is, as Eruanna also mentioned, that getting any of it back into zdoom would require some extra work as it diverges from my original PR.

On the plus side, it having its own fork will allow it to do some things that probably would never been accepted into zdoom. At the end of my initial coding on the true color stuff I had gotten quite annoyed at how poorly MSVC was doing at optimizing the drawers. There are too many of them to type them by hand using intrinsics, and my template "magic" approaches fed MSVC with immutable constants but the compiler was too [censored word] to take advantage of it. So I ended up in a situation where the drawer functions were still very difficult to read, but already had lost some speed since earlier, less readable, iterations.

I've added an experimental 'llvmcompiler' branch to qzdoom that uses LLVM to JIT functions. Its goal is to solve the above problem by talking to the compiler backend at a much lower level where inlining, constants, pointer aliasing, and optimization passes can be controlled a lot better. It also can compile to exactly the CPU running on the target machine. And, theoretically, it could parse gzdoom hardware shaders' glsl and emit optimized code on the fly. The catch is that this adds LLVM to the dependency libraries - maybe not a price everyone would be willing to pay.

I'll post something again once I got it to codegen some of the main drawers so I'll get some actual speed numbers to compare against the MSVC intrinsics drawers.

Another thing I'd also like to do at some point is get rid of the old assembly drawers for palette mode. Not so much because they are bad, but because the multithreading done for true color can also be done for palette mode, but I don't have the skills or interest to code in assembly. Just ditching them probably wouldn't fly in a PR request either.
User avatar
Rachael
Posts: 13780
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (WIP)

Post by Rachael »

Updated.

New fixes are pretty much just Randi's round of fixes from today.

Code: Select all

Fixed: Y and Z were flipped for sound velocity
Fixed: Heretic platforms make a mid-move sound, unlike Doom's
Fixed: The menu no longer refreshed the screen border

Return to “Game Engines”