The WIP Thread

If it's not ZDoom, it goes here.
dpJudas
 
 
Posts: 3172
Joined: Sat May 28, 2016 1:01 pm

Re: The WIP Thread

Post by dpJudas »

Let's play Doom software rendered at 8K (7680x4320) :P



This is with the transposed video buffer that GooberMan demonstrated is faster even if it requires you to do perspective division for the spans.
User avatar
InsanityBringer
Posts: 3392
Joined: Thu Jul 05, 2007 4:53 pm
Location: opening the forbidden box

Re: The WIP Thread

Post by InsanityBringer »

How frequently are you doing perspective division on the spans? I seemingly remember Gooberman only doing the perspective divide every 8 or 16 pixels, going linear between them.

Though it still amuses me greatly that memory speeds and the value of cache is such that it's faster to actually bite the bullet and do the divides because the other way when transposing the framebuffer is so slow because memory is slow.
dpJudas
 
 
Posts: 3172
Joined: Sat May 28, 2016 1:01 pm

Re: The WIP Thread

Post by dpJudas »

On the screenshot I'm doing the perspective divide every pixel. In some of my earlier tests I was using randi's tilted span drawer to do it (it does it every 16 pixels) and I didn't see much speed difference. I had to drop using randi's version though because I needed to support all the blending modes and NPOT textures that flat planes also supports (her drawer only supported opaque). On the plus side it means the tilted spans now also supports those blending modes. On the Frozen Time bridge the transpose makes no speed difference at all. This only really speeds up simpler scenes.

In theory I have no doubt it is faster not to do the divide every pixel, but because the drawer is using integer math for all the other parts they may be working in parallel. The version where you only do the divide once in a while also puts a larger pressure on registers as you need to store the delta values when doing the linear interpolation. In a SSE version it also can do 4 divisions and multiplications at the same time. This stuff gets really complicated on modern CPUs when all cores have multiple ALUs that all can work in parallel.
User avatar
Nash
 
 
Posts: 17501
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: The WIP Thread

Post by Nash »




Actor visibility filtering in mirrors. These are two new flags to make an actor either only be visible in reflections, or make an actor cast no reflections. Works in hardware and software rendering (thanks to dpJudas for helping me figure out the SW part!).

In this demo, the zombieman and player is unaffected. The demon is only ever visible in reflections, while the cyberdemon doesn't have reflections. Works correctly with recursive mirrors, and appears to work fine with renderstyles too (the demon has a ghostly additive translucency applied, for demonstrational purposes).
User avatar
Vostyok
Posts: 1666
Joined: Sat Jan 17, 2015 8:54 am
Preferred Pronouns: No Preference
Location: Discord: Vostyok#3164
Contact:

Re: The WIP Thread

Post by Vostyok »

Oooooh.
Bring on the spooky vampire mods. This is cool, yo.
Blzut3
 
 
Posts: 3212
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Contact:

Re: The WIP Thread

Post by Blzut3 »

dpJudas wrote:This is with the transposed video buffer that GooberMan demonstrated is faster even if it requires you to do perspective division for the spans.
If I recall correctly GooberMan also found a benefit from just transposing the buffer to column major regardless of if the span drawer was changed to columns. (I.e. taking the cache hit on spans instead of columns.) As you've already done the work to go all the way I realize it doesn't really matter now, but based on your wording of "requires" I'm curious if you've tried this and found that the same didn't hold true for GZDoom?

Given that (G)ZDoom already had a multicolumn buffer to mitigate the cache usage issue that it's indeed true that a straight transpose wouldn't have done anything (or made it worse), but curious what your thoughts are?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49235
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: The WIP Thread

Post by Graf Zahl »

The multicolumn buffer has been removed when all the assembly code was replaced because it showed no performance gain.
dpJudas
 
 
Posts: 3172
Joined: Sat May 28, 2016 1:01 pm

Re: The WIP Thread

Post by dpJudas »

Blzut3 wrote:If I recall correctly GooberMan also found a benefit from just transposing the buffer to column major regardless of if the span drawer was changed to columns.
Actually the way I read those numbers it depends on what is more dominant in the scene. A normal (not transposed) scene might be faster than transposing it if you're viewing an area that is dominated by spans. On the other hand if the scene is dominated by columns then the transpose is faster. Some parts of his demo test was dominated by one, some by the other.

Randi's multicolumn mitigation did indeed reduce the pressure on the cache (by a factor of 4), but the devil is in the detail. I removed the multicolumn thing back in the day because I couldn't measure any improvement. This may have been caused by increased setup time when I was already using threads to split up the scene. When randi implemented multicolumn she clearly could see a speed boost. My old multithreading code split the scene into rows, so that row 1 belongs to thread 1, row 2 to thread 2 and so on. That means each thread back then worked on less of the frame buffer and thus less cache was needed for each thread. At the time I couldn't ever get doom to run 60 fps at 4K, which seemed to imply that once I hit that resolution I probably exhausted the cache.
User avatar
zrrion the insect
Posts: 2432
Joined: Thu Jun 25, 2009 1:58 pm
Location: Time Station 1: Moon of Glendale

Re: The WIP Thread

Post by zrrion the insect »

Still messing with my old enhancer mod, finally converted the thing to zscript so I can start adding fun stuff


User avatar
MartinHowe
Posts: 2089
Joined: Mon Aug 11, 2003 1:50 pm
Preferred Pronouns: He/Him
Location: East Suffolk (UK)

Re: The WIP Thread

Post by MartinHowe »

IDK how many people are following it, as it had a few likes but not much comment, but the Black Cats of Doom has been quiet for a while. This is because while it is feature complete, it's probably my biggest Doom-related software development project so far.

There is one serious bug that doesn't manifest often but is a big PITA when it does: the cats can get stuck running around in circles in small areas even when there would be - to a human or a real cat - an obvious way out. This will require upgrading the cats' custom A_Chase() function and while I am not looking forward to writing yet more code, it looks as if something similar to Josh 771's advanced AI pack will be required to fix this. There is also the odd crash of GZDoom now and then which may be down to the cats mod or not.

So it's currently in long-term play testing. I've been meaning to do more playing of the game instead of modding it, so this is as good a reason as any.

I also want to add some sort of artefact to ascend the remaining cats on a level to cat heaven; if I need the level cleared of cats during testing, I don't like killing them; besides, it's more in-keeping with the theme of them being 'black magic cats summoned by the Gods to fight against evil'; I did have this working in my experimental Farmville mod but only used a cheap teleport flash effect; really, they need a Heretic Golem style 'souls ascending to heaven' effect for this to look properly cool.
User avatar
NeuralStunner
 
 
Posts: 12328
Joined: Tue Jul 21, 2009 12:04 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support
Location: capital N, capital S, no space
Contact:

Re: The WIP Thread

Post by NeuralStunner »

Doing some widescreen stuff. Heretic's classic title and credit screens are cheap and easy, but I'm not sure yet what I would do with the expansion title. Low priority frankly since I autoload the classic one anyway. The help screens are practically useless these days but I did them anyway. I added a certain missing weapon to the weapon list, for what that's worth.

The Hexen title has darkening at the edges that keeps it from looking odd when pillarboxed, so there's not much I could add. The expansion is horrible so I'm not worried about that one.
User avatar
Nash
 
 
Posts: 17501
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: The WIP Thread

Post by Nash »

NeuralStunner wrote:Doing some widescreen stuff. Heretic's classic title and credit screens are cheap and easy, but I'm not sure yet what I would do with the expansion title. Low priority frankly since I autoload the classic one anyway. The help screens are practically useless these days but I did them anyway. I added a certain missing weapon to the weapon list, for what that's worth.

The Hexen title has darkening at the edges that keeps it from looking odd when pillarboxed, so there's not much I could add. The expansion is horrible so I'm not worried about that one.
Don't mean to step on your work but these were already completed for WidePix some time ago (including the expansion). :)

(Yes, the non-Doom stuff (as well as in-progress extensions for the non-Doom games) was moved to a separate branch as I wanted "master" to only be for stuff that is already shipped with GZDoom officially... admittedly this branch is a little out of the way for people to notice - probably had a reason for that...)

Currently I'm sitting on a bunch of uncommitted stuff on my hard disk - mostly cuz I don't want to clutter the git with a ton of binary data history - but I've already also completed all of Hexen's weapons and started work on the various fullscreen intermissions... I'll need to go over these a few times before I'm truly happy with them and can push to the repo.
Gez
 
 
Posts: 17946
Joined: Fri Jul 06, 2007 3:22 pm

Re: The WIP Thread

Post by Gez »

NeuralStunner wrote:Heretic's classic title and credit screens are cheap and easy
Yeah, it's pillarboxed even in the original.

I'd kinda wish to have a proper widescreen version of Brom's original scene but well, not even Brom did it.
User avatar
NeuralStunner
 
 
Posts: 12328
Joined: Tue Jul 21, 2009 12:04 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support
Location: capital N, capital S, no space
Contact:

Re: The WIP Thread

Post by NeuralStunner »

Nash wrote:Don't mean to step on your work but these were already completed for WidePix some time ago (including the expansion). :)
Well, my HELP2 is still an improvement (which is what 99% of the work went into anyway). ;) I fixed some cutoff letters while I was at it. I'd be glad if it were added to the project, "iwad canon" be damned.
Gez wrote:I'd kinda wish to have a proper widescreen version of Brom's original scene but well, not even Brom did it.
If I had a good high-res version of this, it could be fun to make a new title that uses the proper player colors (and doesn't just redden everything).
User avatar
Solid-Head
Posts: 57
Joined: Thu Sep 11, 2014 1:07 pm

Re: The WIP Thread

Post by Solid-Head »

Post Reply

Return to “Off-Topic”