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

Software projects like source ports (3DGE, Eternity, etc), launchers like ZDL, and other useful utilities belong in this forum.

NOTE: This is NOT a Q&A or troubleshooting forum! This is for active projects only! Please use the General or its subforums for such questions.
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 (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

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

Postby Rachael » Sun Sep 25, 2016 6:25 am

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/raa-eruanna/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 12:28 pm, edited 26 times in total.
User avatar
Rachael
 
Joined: 13 Jan 2004

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

Postby Nash » Sun Sep 25, 2016 7:32 am

So this is basically "GZDoom for people who can't run the latest OpenGL", am I understanding this correctly... ?
User avatar
Nash
Nash Muhandes [Audio Engineer | Game Designer | Scripting]
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

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

Postby _mental_ » Sun Sep 25, 2016 9:48 am

This PR fixes it on macOS. I can probably miss something but software (true color and original) and OpenGL renderers work now.
_mental_
 
Joined: 07 Aug 2011

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

Postby Rachael » Sun Sep 25, 2016 12:13 pm

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. :)
User avatar
Rachael
 
Joined: 13 Jan 2004

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

Postby Lud » Sun Sep 25, 2016 12:16 pm

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
Lud
Pirates of the Somallean
 
Joined: 11 Feb 2016
Location: Somalia

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

Postby Rachael » Sun Sep 25, 2016 12:32 pm

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
Rachael
 
Joined: 13 Jan 2004

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

Postby YukiHerz » Sun Sep 25, 2016 12:36 pm

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.
User avatar
YukiHerz
Cheap Spaghetti Dude
 
Joined: 02 Dec 2013
Location: Why tho.

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

Postby dpJudas » Sun Sep 25, 2016 4:17 pm

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.
dpJudas
 
Joined: 28 May 2016

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

Postby Rachael » Sun Sep 25, 2016 4:44 pm

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
Rachael
 
Joined: 13 Jan 2004

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

Postby Nash » Sun Sep 25, 2016 11:14 pm

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
Nash
Nash Muhandes [Audio Engineer | Game Designer | Scripting]
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

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

Postby Rachael » Mon Sep 26, 2016 3:12 am

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
Rachael
 
Joined: 13 Jan 2004

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

Postby Hipnotic Rogue » Mon Sep 26, 2016 4:48 am

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
Hipnotic Rogue
 
Joined: 15 Jul 2016

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

Postby Rachael » Mon Sep 26, 2016 4:54 am

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.
User avatar
Rachael
 
Joined: 13 Jan 2004

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

Postby dpJudas » Mon Sep 26, 2016 12:11 pm

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 retarded 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.
dpJudas
 
Joined: 28 May 2016

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

Postby Rachael » Tue Sep 27, 2016 9:14 pm

Updated.

New fixes are pretty much just Randi's round of fixes from today.
Code: Select allExpand view
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
User avatar
Rachael
 
Joined: 13 Jan 2004

Next

Return to Software and Ports

Who is online

Users browsing this forum: Google Feedfetcher and 2 guests