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
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by Marisa the Magician »

Oh by the way, I commented on the dynamic lights bug that player sprites are still unaffected.
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

That will work for the branching, but it still leaves the problem that the inner loops needs to do several function calls to Sample, Shade and Blend. It isn't until VS2015 that Visual Studio even has a calling convention (__vectorcall) that could support it (most of the arguments to those functions are __m128i). That calling convention works for simple arguments, but look at it funny and it will stop inlining.

The php scripts are arranged in such a way that it is relatively easy to test if this works without any speed regressions, so I can give it a try. But I wouldn't be too surprised if one of them found some lousy excuse for not inlining things.

@MarisaKirisame: yep, didn't implement it for player sprites. Those use a canvas drawing API I'm not very familiar with - not sure how easy it is to add there.
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

Okay, implemented a templated version of the span drawers. Seems to have had no performance impact on MSVC or on clang. So far so good.
User avatar
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by Marisa the Magician »

No problem on GCC either.
User avatar
RaVeN-05
Posts: 288
Joined: Mon Dec 28, 2009 5:57 am
Location: Ukraine

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by RaVeN-05 »

Jaxxoon R wrote:Image
Am I crazy, or are the software dynamic lights being selectively applied to specific parts of the sprites? As in, they might actually be better than the GL ones?
I like this method of lightning, look at this -> viewtopic.php?p=543443#p543443
and this -> http://forum.drdteam.org/viewtopic.php? ... 223#p49223

Image
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

Well, seems the templated version just got Game Over'ed by Microsoft's 32 bit compiler:

Code: Select all

r_draw_wall32_sse2.h(274): error C2719: 'shade_fade': formal parameter with requested alignment of 16 won't be aligned
r_draw_wall32_sse2.h(274): error C2719: 'shade_light': formal parameter with requested alignment of 16 won't be aligned
r_draw_wall32_sse2.h(274): error C2719: 'viewpos_z': formal parameter with requested alignment of 16 won't be aligned
r_draw_sprite32_sse2.h(360): error C2719: 'shade_fade': formal parameter with requested alignment of 16 won't be aligned
r_draw_sprite32_sse2.h(360): error C2719: 'shade_light': formal parameter with requested alignment of 16 won't be aligned
r_draw_sprite32_sse2.h(360): error C2719: 'lightcontrib': formal parameter with requested alignment of 16 won't be aligned
r_draw_span32_sse2.h(352): error C2719: 'shade_fade': formal parameter with requested alignment of 16 won't be aligned
r_draw_span32_sse2.h(352): error C2719: 'shade_light': formal parameter with requested alignment of 16 won't be aligned
r_draw_span32_sse2.h(352): error C2719: 'viewpos_x': formal parameter with requested alignment of 16 won't be aligned
Apparently 32 bit won't even allow a __m128i or __m128 to be a function argument. Trying to switch to the new __vectorcall calling convention produces this:

Code: Select all

r_draw_wall32_sse2.h(274): error C2218: '__vectorcall' cannot be used with '/arch:IA32'
Edit: okay, found a way to make to compile, but that involves switching from /arch:ZXSpectrum to /arch:SSE2.
Gez
 
 
Posts: 17934
Joined: Fri Jul 06, 2007 3:22 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by Gez »

dpJudas wrote:/arch:ZXSpectrum
Heh.



Seriously though,how many people are still using non-SSE2 PCs? Every x86-64 processor has them, so you need to go back to decade-old processors like the Athlon XP or the Pentium M to lack them.
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

The Pentium 4 was the first to have SSE 2 support. It was released in 2001, 16 years ago. But yeah maybe add a couple of more years for the AMD and low end chips.

In any case, I fixed it in QZDoom by bumping up the minimum requirement to SSE 2 in the CMakeLists.txt file. That was the minimum requirement anyway for the TC drawers. If someone wants to target those old platforms they will have to send a patch that restores the support.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49182
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by Graf Zahl »

Never underestimate the upgrade resistance of computer users. :mrgreen: Remember that there have been serious attempts to make a Win98 compatible build.

What this needs to do is separate out the 32 bit drawers into their own group of source files and add the SSE2 option only to that.
The true color renderer won't work with non-SSE2 anyway so having its entire sources SSE2'd won't pose a problem, but what it definitely needs is a safeguard for older hardware which is still nominally supported. Count on it that some people are still out there with such dinosaurs who want to run the classic software renderer.
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

It is already its own file (r_draw_rgba.cpp), but my knowledge of CMake isn't big enough to do it without spending at least an hour on this, maybe more.

I remarked the old checks in the CMakeLists.txt if someone interested in this is willing to do the work. As for those that tried to make a Win98 compatible build - to be a little blunt, the second they realized they actually had to DO something, the efforts quickly ended. Clearly it is only that important if someone else must code it.
TiZ
Posts: 4
Joined: Mon Feb 27, 2017 8:17 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by TiZ »

Hiya! I was wondering if there would eventually be .deb package builds for QZDoom on the DRD Team apt repository, like there presently is for GZDoom.
User avatar
Rachael
Posts: 13791
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by Rachael »

That is entirely up to Blzut3. I'd suggest you PM him. It's more likely now since the LLVM requirement was removed, but not guaranteed. We'll probably have to do a release without the LLVM in order for that to happen.

Also, it might be helpful for us to add back in ARM support, but that is lower priority right now. It's a "want-to-do-but-doing-too-many-other-things-right-now" project.
User avatar
ibm5155
Posts: 1268
Joined: Wed Jul 20, 2011 4:24 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by ibm5155 »

so, did I miss some kind of new testing dynamic light system for qzdoom?
dpJudas
 
 
Posts: 3134
Joined: Sat May 28, 2016 1:01 pm

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by dpJudas »

ibm5155 wrote:so, did I miss some kind of new testing dynamic light system for qzdoom?
There's just the thing you can find in the WIP thread (look for Nash' video there), although that is more a GZDoom feature (it just happens to have been branched off QZ).

I have another new branch there called shadowmaps, which implements something similar with a lot better performance characteristics. I'll post some more about it once I have something to show.
User avatar
RaVeN-05
Posts: 288
Joined: Mon Dec 28, 2009 5:57 am
Location: Ukraine

Re: QZDoom - ZDoom with True-Color (Version 1.2.2 released!)

Post by RaVeN-05 »

What about partial sprite lightning ? viewtopic.php?p=979567#p979567

Return to “Game Engines”