Page 1 of 1

Working on a minor derivative for Voxel Doom

Posted: Thu Feb 22, 2024 10:46 pm
by Ultimate Freedoomer
As you guys may know, Cheello recently released the newest version of his Voxel/Parallax Doom mod. Would it be possible to modify the texture scripting so that the parallax effect works in the GLES renderer as well as the Vulkan/OpenGL renderers?

Re: Working on a minor derivative for Voxel Doom

Posted: Fri Feb 23, 2024 12:40 am
by ramon.dexter
The parallax effect is done by shaders. Since shaders basically dont work in opengl-es, there is really nothing that could be done about it.

Re: Working on a minor derivative for Voxel Doom

Posted: Fri Feb 23, 2024 3:06 am
by Ultimate Freedoomer
What version of GLES does GZDoom use?

Re: Working on a minor derivative for Voxel Doom

Posted: Sat Feb 24, 2024 10:31 am
by Redneckerz
Ultimate Freedoomer wrote: Fri Feb 23, 2024 3:06 am What version of GLES does GZDoom use?
GLES 2.0.

Re: Working on a minor derivative for Voxel Doom

Posted: Sat Feb 24, 2024 10:54 am
by Ultimate Freedoomer
Alright. Hopefully it’ll get updated to 3.2 eventually. That version apparently does support shaders, given that the Delta Touch port uses it & it supports parallax textures there.

Re: Working on a minor derivative for Voxel Doom

Posted: Sun Feb 25, 2024 12:38 am
by ramon.dexter
But delta touch doesnt support user shaders...

Re: Working on a minor derivative for Voxel Doom

Posted: Sun Feb 25, 2024 12:58 am
by Ultimate Freedoomer
The most recent version does, apparently. Someone mentioned that enabling them is part of GLES compatibility with parallax textures for that port

Re: Working on a minor derivative for Voxel Doom

Posted: Tue Feb 27, 2024 10:40 am
by Redneckerz
Ultimate Freedoomer wrote: Sat Feb 24, 2024 10:54 am Alright. Hopefully it’ll get updated to 3.2 eventually. That version apparently does support shaders, given that the Delta Touch port uses it & it supports parallax textures there.
That's not the point of the GLES renderer. Its purpose is to render GZDoom the same as OpenGL, but with simplified shaders suitable for older GPU's.

Re: Working on a minor derivative for Voxel Doom

Posted: Fri Mar 01, 2024 9:30 pm
by Ultimate Freedoomer
A lot of it is that despite how new my GPU is, it basically becomes a potato unless I use GLES. That’s why I’m hoping for a future update to use the current version of GLES: so I can get normal OpenGL shader versatility with the speed of GLES.

Re: Working on a minor derivative for Voxel Doom

Posted: Sat Mar 02, 2024 10:56 am
by phantombeta
GLES 2.0 supports shaders just fine, and GZDoom uses GLES 3.3 when it can. GZDoom simply ignores user shaders for performance- gl_customshader is always set to false with the GLES renderer.
The point of the GLES backend is to improve performance by splitting shaders into smaller ones (mobile GPUs and older, weaker GPUs hate "ubershaders") and disabling a significant amount of rendering features to further improve performance.

GLES in Delta Touch supports user shaders and most (all?) of GZDoom's features because GLES is what mobile GPUs use, whereas GLES in GZDoom exists solely for computers too weak to run the OpenGL or Vulkan backends at full performance.

Re: Working on a minor derivative for Voxel Doom

Posted: Sun Mar 03, 2024 3:47 am
by ramon.dexter
phantombeta wrote: Sat Mar 02, 2024 10:56 am GLES in Delta Touch supports user shaders and most (all?) of GZDoom's features because GLES is what mobile GPUs use, whereas GLES in GZDoom exists solely for computers too weak to run the OpenGL or Vulkan backends at full performance.
That's good to hear. Bexause everytime I wanted to use shaders in Delta Touch, it always returned an error and crashed. So there must be some error in the shaders I use or Delat Touch has some problems with the shaders I use. But these shaders work in gzdoom on windows/linux, so there must bo something with use of these shaders on Delta Touch.

Re: Working on a minor derivative for Voxel Doom

Posted: Sun Mar 03, 2024 2:42 pm
by phantombeta
ramon.dexter wrote: Sun Mar 03, 2024 3:47 am That's good to hear. Bexause everytime I wanted to use shaders in Delta Touch, it always returned an error and crashed. So there must be some error in the shaders I use or Delat Touch has some problems with the shaders I use. But these shaders work in gzdoom on windows/linux, so there must bo something with use of these shaders on Delta Touch.
Different GLSL versions. GLES 3.x has features GLES 2.x doesn't. Desktop GL also has features that GLES, whether 2.x or 3.x, doesn't have either.

Nvidia and AMD also have implicitly-enabled vendor-specific extensions that add features to GLSL, which can then cause shader compilation errors in mobile GPUs because those don't have said features.
That's somewhat easier to deal with, though. Just run GZDoom with Vulkan, because then GZDoom is the one compiling the GLSL, and the compiler it uses doesn't do those things.
I'd actually generally recommend testing shaders with Vulkan in general, because there's other things, like Nvidia, AMD and Intel initializing uninitialized variables to 0, which hides bugs.