Canvas contents are not persistent

Is there something that doesn't work right in the latest GZDoom? Post about it here.

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!
User avatar
Marisa the Magician
Posts: 3804
Joined: Fri Feb 08, 2008 9:15 am
Discord: Marisa the Magician#1666
Twitch ID: MarisaDOOM
Github ID: OrdinaryMagician
Preferred Pronouns: She/Her
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Canvas contents are not persistent

Post by Marisa the Magician »

I thought this was supposed to be the case, yet somehow I'm finding that unless I draw to a canvas every frame, it immediately gets cleared on the next.

Again, a map is provided. This should draw an ouch face with a blue background every 50 frames. Ideally what should happen is that there's no flickering and the drawn contents remain static, but instead it flickers once every 50 frames.
User avatar
Posts: 1242
Joined: Tue Jul 15, 2003 4:18 pm

Re: Canvas contents are not persistent

Post by AFADoomer »

Can confirm this behavior. I had to put my canvas update calls inside of a RenderOverlay/Underlay call inside an event handler to get clean drawing... I assumed this was intended behavior.
User avatar
Posts: 1982
Joined: Thu May 02, 2013 1:27 am
Graphics Processor: nVidia with Vulkan support

Re: Canvas contents are not persistent

Post by phantombeta »

Seems to be a Vulkan bug. If I run the test file in OpenGL, the image stays persistent.
Posts: 2861
Joined: Sat May 28, 2016 1:01 pm

Re: Canvas contents are not persistent

Post by dpJudas »

There must be two bugs at play here. First is the vulkan backend opens the drawing with a renderpass that clears the buffer. The second is that it must be actively updating the texture those 49 frames where nobody is drawing to it. It isn't supposed to even setup drawing for the texture unless one of the canvas draw functions have been called.

Return to “Bugs”