Commit graph

306 commits

Author SHA1 Message Date
Magnus Norddahl
6a005e3a2a Switch vulkan backend to use the zvulkan library 2022-12-05 07:49:43 +01:00
Shiny Metagross
cd4345373d Fixed improper casting
- Made a mistake on the casting in the shader that only worked for Intel
2022-10-19 22:48:57 +02:00
Shiny Metagross
a8bab6a21d Intel fix
- GZDoom can launch for Intel users - IQMs work for Intel too
2022-10-19 22:48:57 +02:00
Shiny Metagross
08f520f1c6 IQM Support Implemented
More info to come
2022-10-19 22:48:57 +02:00
Magnus Norddahl
0f08a0f511 Re-enable ray query in the shader 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5cc21c5a4a Upgrade glslang to 11.10.0 2022-06-22 07:55:19 +02:00
Magnus Norddahl
821bd3b460 Adjust some init/deinit code and rename some things 2022-06-22 07:55:19 +02:00
Magnus Norddahl
0c1aab074c Hook up the acceleration structure to the shader and start shooting some rays! 2022-06-22 07:55:19 +02:00
Rachael Alexanderson
7652fd7ee0 Revert "- model normals fix"
This worked in some instances but it also broke attenuated lights in other instances, and also caused the shaders to fail to compile on Mac.

This reverts commit 679518f8e5.
2022-05-08 07:07:54 -04:00
Rachael Alexanderson
679518f8e5 - model normals fix 2022-05-03 23:39:40 -04:00
Magnus Norddahl
604c4ff8e0 Fix vertex layout locations and add lightmap to vulkan shader 2021-09-24 16:21:23 +02:00
nashmuhandes
2f8cff90b6 - Add lightmaps to the main shader (currently only OpenGL)
- Create a version of CreateIndexedSectorVertices that works with lightmap sectors
2021-09-24 16:56:15 +08:00
Christoph Oelckers
0db7a6206b - fixed shader compilation. 2021-09-21 21:07:46 +02:00
Christoph Oelckers
da806b354d - cleanup of the revised y-clamping feature.
This integrates better with the existing features.
2021-09-21 20:31:42 +02:00
Christoph Oelckers
fc2818b195 - menu system update from Raze for better control of animated menus. 2021-09-18 12:19:35 +02:00
Christoph Oelckers
918e9e9b0d - fixed texture clamping for elements that are partially behind a slope.
This is mainly mid textures on linedefs and decals.
2021-09-17 00:25:28 +02:00
Christoph Oelckers
c7db3875e1 - fixed: colors from brightmaps and glowmaps need to be desaturated. 2021-09-14 19:49:41 +02:00
Christoph Oelckers
e1a5f61f8c - fixed: shaders with NO_LAYERS defined may not apply brightmap and glowmap.
These are undefined for such fragments.
2021-09-14 19:49:41 +02:00
Christoph Oelckers
39513cf7ae Revert "- eliminate an unexpected slow path in the fragment shader."
This reverts commit cd5aa65fda.

This does not work as expected, needs more investigation.
2021-08-09 20:31:21 +02:00
Christoph Oelckers
cd5aa65fda - eliminate an unexpected slow path in the fragment shader.
Apparently with checking uLightLevel the shader cannot discard the slow software lighting path entirely adding a significant amount of processing time.
Changed to check the actual lightmode value, which re-enables the fast path again.
2021-08-09 19:50:45 +02:00
Marisa Kirisame
fd07183585 Fix model normals being distorted by MODELDEF scaling. 2020-12-12 00:21:33 +01:00
Christoph Oelckers
b20de184a0 - made the new Build light mode operational 2020-06-11 08:48:33 +02:00
Christoph Oelckers
5896f24eba - added a new light mode that emulates Build's depth fading.
Not active yet, this needs some testing and finetuning.
2020-06-08 23:37:20 +02:00
Christoph Oelckers
9e51a2f63c - added Build's NPOT emulation to the backend.
For GZDoom this is completely disabled, of course, because the Doom engine does not need it, but in order to have the same backend code in both engines it needs to be present.
2020-06-08 23:37:20 +02:00
Christoph Oelckers
f8dcb09ff0 - moved postprocessing shaders to their own folder. 2020-04-26 21:22:57 +02:00
Christoph Oelckers
7c46dace03 - this still doesn't work on Vulkan. :( 2020-04-19 10:57:44 +02:00
Christoph Oelckers
8381092cce - major shader rework
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.

Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
Christoph Oelckers
738b9ceb08 - fixed incompletely changed shader.
It was still using a variable from the first revision that no longer exists.
2019-12-21 21:07:00 +01:00
Christoph Oelckers
bb8db9422f - scaled down the texture colorization feature for easier usability.
It makes little sense exposing every minute detail of this through UDMF.
Setting it up that way is far too complicated. Using virtual textures that map to a real texture plus a colorization record should be far easier to use by mappers.
This also doesn't piggyback on the Doom64 color feature anymore and is completely separate, despite some redundancies.
This is still missing the texture definition part, though.
2019-12-20 22:25:10 +01:00
Christoph Oelckers
3209d4ed23 - added a few more texture coloring options to the shader.
Aside from adding an additive component it can now also do:

- desaturation (not limited to the range of 0..1 so it can also be used for oversaturation by applying a negative number or negative saturation by going above 1.0.
- invert the texture
- apply a blend, including 3 special mode taken from EDuke32.

Currently only the implementation is done, it is not exposed to UDMF yet.
2019-12-20 16:05:00 +01:00
alexey.lysiuk
b6ada166fc - fixed compilation of FXAA shader by macOS OpenGL
Compile Shader 'shaders/glsl/fxaa.fp':
ERROR: 0:250: '' : syntax error: incorrect preprocessor directive
ERROR: 0:250: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:265: '' : syntax error: incorrect preprocessor directive
ERROR: 0:265: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:266: '' :   Macro Redefined lumaM
ERROR: 0:301: '' : syntax error: incorrect preprocessor directive
ERROR: 0:301: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:599: '' : syntax error: incorrect preprocessor directive
ERROR: 0:599: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline

https://forum.zdoom.org/viewtopic.php?t=65003
2019-06-11 08:20:24 +03:00
alexey.lysiuk
addcad8ac0 - disabled discard in FXAA shader with Vulkan backend
Discard caused graphical corruptions on AMD hardware with Vulkan backend enabled

https://forum.zdoom.org/viewtopic.php?t=64230
2019-06-04 11:32:00 +03:00
alexey.lysiuk
da2d0e47e6 - removed array length() function from shadowmap shader
Array's length() function is not yet supported by SPIRV-cross and MoltenVK
Its usage was replaced by explicit nodes count value passed as uniform
2019-05-24 14:29:37 +03:00
Magnus Norddahl
f3cb5e09e4 - SIMPLE is never ever defined for main.fp 2019-05-13 22:38:16 +02:00
Magnus Norddahl
bab5862383 - fix some vulkan warnings 2019-05-13 21:15:10 +02:00
Magnus Norddahl
5f12191c05 - fix validation error for shader input not declared by main.vp 2019-05-12 23:15:49 +02:00
Magnus Norddahl
e75ab8ed09 - fix wrong fog color used for ssao when using multisampling 2019-05-05 23:23:47 +02:00
Magnus Norddahl
1973001834 - use the exact sRGB->linear transfer function in HDR mode as the 2.2 gamma approximation is visibly inaccurate in this case 2019-05-01 00:55:31 +02:00
Magnus Norddahl
d63513ec14 - fix normal vectors on models 2019-04-17 20:42:00 +02:00
Magnus Norddahl
15dae4cfe6 - rewrite depthblur.fp to workaround what seemed to be a bug in the NVidia driver 2019-04-16 16:17:23 +02:00
Magnus Norddahl
9d29a460de - simplify depthblur.fp into a single function 2019-04-16 08:59:29 +02:00
Magnus Norddahl
67490d13cb - add gl_ssao_debug mode showing the depth 2019-04-16 05:29:32 +02:00
Magnus Norddahl
558760c090 - fix the gl_ssao_debug cvar 2019-04-16 03:32:54 +02:00
Magnus Norddahl
db4310ca6b - prevent excessively bright pixels as this is actually visible on a HDR monitor 2019-04-11 03:34:34 +02:00
Magnus Norddahl
c28e56f9e8 - workaround buggy preprocessor in old AMD OpenGL drivers 2019-04-07 19:42:32 +02:00
Magnus Norddahl
2d8516b2ca - make shaderClipDistance optional 2019-03-25 19:44:46 +01:00
Magnus Norddahl
cce96ca87a - implement shadow maps 2019-03-15 07:54:34 +01:00
Magnus Norddahl
dca0b75038 - change the images to be upside down until presentation to increase compatibility with shaders designed for OpenGL
- clamp scissors fully to avoid NVidia's awful drivers locking up the entire system if they end up out of bounds
- perform buffer clears as part of the render pass. this puts some restrictions on how FRenderState.Clear can be used
- add an offset uniform to the present shaders so the vulkan target can flip the image during presentation
2019-03-12 23:53:20 +01:00
Magnus Norddahl
0620041228 - remove screenquadscale.vp 2019-03-12 16:24:55 +01:00
alexey.lysiuk
02ed758447 Merge branch 'master' into vulkan2
# Conflicts:
#	src/posix/cocoa/i_video.mm
2019-03-09 16:45:49 +02:00