Commit graph

118 commits

Author SHA1 Message Date
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
81e32ecc72 - implement stat gpu on vulkan and fix it on opengl 2019-04-30 22:55:35 +02:00
Magnus Norddahl
188714dc14 - the light storage buffer is not dynamic 2019-04-28 23:51:09 +02:00
alexey.lysiuk
d1e4b86b9e - fixed compilation with GCC and Clang
src/rendering/hwrenderer/scene/hw_walls.cpp:176:44: error: conditional expression is ambiguous; 'PalEntry' can be converted to 'int' and vice versa
2019-04-20 12:20:32 +03:00
Magnus Norddahl
6699cd5462 - change FRenderState to store directly to the StreamData struct. This simplifies the vulkan backend and also allows the OpenGL backend to use the same uniform block transfer strategy in the future. 2019-04-20 04:16:01 +02:00
Magnus Norddahl
458da39c39 - add vk_submit_multithread for doing command buffer submit calls on a worker thread
- add vk_submit_size for testing various command buffer sizes before flushing them
- add submitted command buffer count to renderstats
2019-04-19 22:42:32 +02:00
Magnus Norddahl
62fa74485d Merge remote-tracking branch 'origin/master' into vulkan2 2019-04-19 18:49:00 +02:00
Christoph Oelckers
ac9133eda0 - fixed radius use in dynamic light traversal for models. 2019-04-19 08:23:08 +02:00
Magnus Norddahl
faac0805f0 - implement VKBuffer::Resize 2019-04-18 22:01:42 +02:00
Magnus Norddahl
e42d11cc34 - change padding to something else than __ since that is restricted 2019-04-18 19:57:03 +02:00
Magnus Norddahl
47f056e882 - improve shader error handling and attempt to remove some bogus declarations 2019-04-18 01:20:28 +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
073f151761 - fix line that shouldn't have been committed 2019-04-16 07:30:13 +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
b5e0451805 - change the wrap mode for custom textures in custom postprocess shaders to repeat 2019-04-14 19:00:29 +02:00
Rachael Alexanderson
482e9c0f2c - fixed: Intel OpenGL did not quite recognize the "layout(location=0)" shader uniform definitions, so this had to be removed for OpenGL mode only so that Intel's compiler will continue to function normally for custom shaders. 2019-04-11 13:21:40 -04:00
Magnus Norddahl
b9900450c7 - remove unused function declaration 2019-04-08 05:31:20 +02:00
Magnus Norddahl
afbd45e1b1 - fix uniform aligment bug for vec3 2019-04-08 05:27:35 +02:00
Magnus Norddahl
a488034065 - fix null pointer crash 2019-04-08 04:57:46 +02:00
Magnus Norddahl
d114575bd1 - implement custom post process shaders for vulkan backend 2019-04-08 00:47:55 +02:00
Magnus Norddahl
d1378364b5 - fix bloom pass regression 2019-04-07 20:52:04 +02:00
Rachael Alexanderson
ead3695844 Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
# Conflicts:
#	src/posix/sdl/gl_sysfb.h
2019-03-31 03:49:08 -04:00
Christoph Oelckers
4619fc5622 - removed unused (now always active) gl_trimsprites option from the menu. 2019-03-29 19:10:10 +01:00
Christoph Oelckers
24a52d65a5 - renamed several data types in the hardware renderer that still had a GL prefix, although they are now generic. 2019-03-22 19:54:19 +01:00
Christoph Oelckers
3ad9783d8f - fixed the hardware rendering precacher not to evict secondary layers of multi-layer textures.
It will now check all layers of a material.
Additionally it will also delete all descriptor sets of Vulkan hardware textures before precaching to make sure that nothing here can accidentally still reference a deleted texture.
2019-03-21 21:57:39 +01:00
Rachael Alexanderson
dd4ef010ab Merge remote-tracking branch 'origin/master' into vulkan2 2019-03-18 04:05:19 -04:00
Magnus Norddahl
40ee32a0ce - minor adjustments 2019-03-17 21:14:51 +01:00
Magnus Norddahl
c00a46043d - implement ssao 2019-03-16 23:37:38 +01:00
Magnus Norddahl
05f0730c9d - convert PPStep to PPRenderState 2019-03-15 23:24:31 +01:00
Magnus Norddahl
cce96ca87a - implement shadow maps 2019-03-15 07:54:34 +01:00
alexey.lysiuk
087353f00b - fixed dynamic lights flickering with GL3 render path
https://forum.zdoom.org/viewtopic.php?t=63755
2019-03-14 14:53:24 +02:00
Magnus Norddahl
e5e9924c5e - remove IShaderProgram and make the old classes an implementation detail of the OpenGL backend. In the long run they should be removed completely as their weird design is mostly an artifact of once having supported OpenGL 2 2019-03-13 00:52:25 +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
Christoph Oelckers
2fa5a88701 - do not render player sprites to canvases in the hardware renderer. 2019-03-09 12:34:10 +01:00
Christoph Oelckers
99c8ba1288 - use uAddColor instead of uObjectColor2 for the ending color of a special colormap range.
Unlike uObjectColor2, this is more global state. uObjectColor2 is part of gradient calculation which may later be offloaded to a secondary buffer which already resulted in only conditionally setting it, resulting in broken special colormap application for the software renderer.
2019-03-09 12:12:33 +01:00
Christoph Oelckers
4668d0b1de - render simple quad-based render hacks as triangle strips. 2019-03-08 17:53:24 +01:00
Christoph Oelckers
f7112786d7 - use triangle strips to render decals. 2019-03-08 17:53:23 +01:00
Magnus Norddahl
ca570f1e78 - move shadowmap uniforms out of FShadowMapShader 2019-03-08 17:45:07 +01:00
Magnus Norddahl
0679b493ec - hook up the present shader 2019-03-06 22:59:21 +01:00
Magnus Norddahl
c280153ac2 - implement VkPostprocess::RenderScreenQuad 2019-03-05 23:31:38 +01:00
alexey.lysiuk
87441dd0a1 - fixed infinite loop and out-of-bound read in shader patcher 2019-03-05 13:06:39 +02:00
Magnus Norddahl
c137e868de - patch in/out layout declarations for OpenGL 2019-03-05 01:17:23 +01:00
Magnus Norddahl
7d56aa4b0b Merge remote-tracking branch 'origin/master' into vulkan2 2019-03-03 13:45:22 +01:00
Christoph Oelckers
213dfd2aaa - fixed: when resizing the viewpoint buffer, the 2D entry must be reset so that for the next frame it gets recalculated. 2019-03-03 13:26:10 +01:00
Rachael Alexanderson
13d07e7912 - fix what appears to have been an accidental debug commit, this broke portals and skies 2019-03-03 03:24:55 -05:00
Christoph Oelckers
f3813c036f - filter out the BIGFONT lump in Chex Quest, now that we have a more complete font internally. 2019-03-03 07:50:10 +01:00
Magnus Norddahl
05a6896d4f - Pass vertex color and normal via uniform buffer when the attribute isn't available 2019-03-02 01:56:08 +01:00
Magnus Norddahl
d86a56086c Merge remote-tracking branch 'origin/master' into vulkan2 2019-03-01 21:50:06 +01:00
Magnus Norddahl
d4118a755c - load all the shaders and use the right one for each renderpass 2019-03-01 02:40:02 +01:00
Magnus Norddahl
e1d1358249 - add missing field 2019-02-26 20:18:30 +01:00
Magnus Norddahl
fbfcc30d00 Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2 2019-02-26 11:21:42 +01:00
Magnus Norddahl
69229d7719 - add missing forward declarations 2019-02-26 11:20:24 +01:00
Christoph Oelckers
e8f690116b - removed unused gl_spritebrightfog CVAR. 2019-02-26 00:07:30 +01:00
Christopher Bruns
051145b2c8 Use flag to avoid second eye stereo color problem 2019-02-25 00:14:41 +01:00
Christopher Bruns
e83092a7eb Fix stereo-3D 2D quad color problem. 2019-02-25 00:14:41 +01:00
Christoph Oelckers
ef3e5ef01e - moved a few parts from g_level.cpp to better fitting places. 2019-02-23 15:21:54 +01:00
Christoph Oelckers
868ac5adf8 - switched the Windows backend to use the Windows Unicode API.
With localization for non-Latin languages on the support list the multibyte API doesn't cut it anymore. It neither can handle system text output outside the local code page nor can an ANSI window receive text input outside its own code page.
Similar problems exist for file names. With the multibyte API it is impossible to handle any file containing characters outside the active local code page.

So as of now, everything that may pass along some Unicode text will use the Unicode API with some text conversion functions. The only places where calls to the multibyte API were left are those where known string literals are passed or where the information is not used for anything but comparing it to other return values from the same API.
2019-02-14 22:23:33 +01:00
Christoph Oelckers
979f1df281 Merge remote-tracking branch 'remotes/origin/master' into new_level_refactor
# Conflicts:
#	src/g_level.cpp
#	src/p_user.cpp
2019-02-05 13:49:07 +01:00
Christoph Oelckers
e41c898817 Merge branch 'master' into new_level_refactor 2019-02-04 13:11:01 +01:00
Christoph Oelckers
53162a8a5c Merge branch 'master' into new_level_refactor
# Conflicts:
#	src/am_map.cpp
2019-02-03 09:20:13 +01:00
Christoph Oelckers
45dc9a7b47 - renamed the level variables.
currentUILevel is now primaryLevel.
For ZScript, currentVMLevel was added. This is also exported as 'level' and will change as needed.
This also means that no breaking deprecations will be needed in the future, because in order to sandbox a level only 4 variables need to be handled: level, players, playeringame and consoleplayer.
The remaining global variables are not relevant for the level state.

The static 'level' has been mostly removed from the code except some places that still need work.
2019-02-02 00:25:51 +01:00
Christoph Oelckers
202f3d7d80 - changed most places where a player index is calculated by subtracting the player array's base access. 2019-02-01 17:31:11 +01:00
Christoph Oelckers
e3eaa5964d - removed v_video.h include from portals.h
This has no business in a play related file which also made no use of it.
2019-02-01 00:30:21 +01:00
Christoph Oelckers
89d607c9a6 - moved all rendering code into a common subdirectory.
No changes to the files themselves was made.
2019-01-31 19:58:17 +01:00