Magnus Norddahl
bb47230f79
Merge remote-tracking branch 'origin/master' into polybackend
2019-06-10 22:46:32 +02:00
Magnus Norddahl
5dd06de48c
- fix compile error
2019-06-10 22:46:13 +02:00
Magnus Norddahl
a093f686a7
- store the vulkan framebuffer with the image (this ensures the framebuffer object is destroyed along with the image)
2019-06-10 22:14:02 +02:00
Christoph Oelckers
2766303cfc
- consolidated the 3 atterm implementations.
...
Each platform had its own copy. Why?
2019-06-10 12:01:01 +02:00
Christoph Oelckers
9f2fbc1294
- renamed GLViewpointBuffer to HWViewpointBuffer.
2019-06-10 10:50:45 +02:00
Magnus Norddahl
13cab1c0b6
- delay postprocess texture destruction until the end of the frame
2019-06-10 09:13:56 +02:00
Magnus Norddahl
8853872bb4
- fix wipe screen when using -loadgame
2019-06-10 08:40:49 +02:00
Christoph Oelckers
037b69c8a7
- reworked buffer binding logic.
...
This shouldn't be in the hardware independent interface because the semantics on OpenGL and Vulkan are too different, so a common implementation is not possible.
Most bind calls were in the GL interface anyway, so these no longer pass through hardware independent code.
This also moves the bind calls in the shadowmap code into the GL interface - these never did anything useful in Vulkan and aren't needed there.
Last but not least, this moves the legacy buffer binding handling into FGLRenderState and performs the initial binding for the light buffer in a more suitable place so that this doesn't have to pollute the render state.
2019-06-09 20:37:11 +02:00
Gutawer
324a720d56
- added a linear transformation system to Shape2D so that things like rotations and scales can be changed without having to clear and push a large amount of data
2019-06-08 14:05:32 +02:00
Magnus Norddahl
c9ee880196
- fix loadgame crash
2019-06-06 18:56:34 +02:00
Magnus Norddahl
ae69abc049
- FXAA_DISCARD should never be enabled. It only works when the output framebuffer is the same as the original.
2019-06-05 19:06:33 +02:00
alexey.lysiuk
4d29b5b5e7
- limited disabling of FXAA discard to Vulkan on AMD hardware
2019-06-04 12:43:08 +03:00
alexey.lysiuk
dc8a944382
- implemented GPU vendor string assingment in Vulkan backend
2019-06-04 12:42:01 +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
Edoardo Prezioso
589f9b5c24
- Fixed uninitialized variable in case GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS does not exist.
...
Old graphics, like mine (Intel Sandybridge Mobile, GL 3.0 Mesa) do not support this, therefore most of the time RFL_SHADER_STORAGE_BUFFER wasn't unset (I found no consequence of this on my machine, but better safe than sorry).
Found out by Valgrind.
2019-06-02 21:20:53 +02:00
Magnus Norddahl
91ec1463b8
- add line drawer
2019-05-31 08:49:08 +02:00
Magnus Norddahl
80805656ed
- implement alpha test
2019-05-31 06:43:24 +02:00
Magnus Norddahl
a5608c67b5
- upload using all threads
2019-05-31 05:42:04 +02:00
Magnus Norddahl
4a7824c380
- implement vsync and letterbox
2019-05-31 05:22:06 +02:00
Christoph Oelckers
6ace482266
- fixed fillSimplePoly for indexed data.
...
On OpenGL this merely caused some visual glitches on the cheat automap - but the bad data in the buffer can make Vulkan abort entirely.
2019-05-30 13:32:42 +02:00
Magnus Norddahl
b9230d4425
- fix negative uLightLevel being applied
2019-05-29 06:42:02 +02:00
Magnus Norddahl
a1229be5c6
- implement camera textures
2019-05-29 05:45:19 +02:00
Magnus Norddahl
be5ecce598
- fix fill color and translucency
2019-05-29 02:22:45 +02:00
Magnus Norddahl
eff38393af
- fix stencil writing color
2019-05-29 01:14:42 +02:00
Magnus Norddahl
555beb58f0
- tell softpoly backend which hwrenderer shader is active and use that to decide which drawer to use
2019-05-28 08:13:19 +02:00
Magnus Norddahl
bd591c75fb
- implement depth bias
2019-05-28 06:45:21 +02:00
Magnus Norddahl
b6e00cb208
- fix use after delete of some textures
2019-05-27 21:23:58 +02:00
Magnus Norddahl
c2535519e8
- fix blend mode for the fireballs
2019-05-27 20:20:20 +02:00
Magnus Norddahl
9f8cd68211
- fix use after delete
2019-05-27 20:03:11 +02:00
Magnus Norddahl
117617aad8
- minor blend and light adjustment
2019-05-27 19:18:27 +02:00
Magnus Norddahl
0d8d50c23e
- fix viewport location
...
- add scissor support
2019-05-27 16:51:54 +02:00
Magnus Norddahl
8db5e72254
- add PolyTriangleDrawer functions for the operations needed by PolyRenderState
2019-05-27 07:57:27 +02:00
Magnus Norddahl
3a3de13abd
- hook up main.vp and the data it uses for input
2019-05-26 01:00:36 +02:00
Magnus Norddahl
fbaeb11fba
- convert main.vp to c++ so softpoly can use it
2019-05-25 01:27:20 +02:00
Magnus Norddahl
b453e15929
- adjust PolyTriangleDrawer to closer match what PolyRenderState receives as input
2019-05-24 22:30:14 +02:00
Magnus Norddahl
4fd4bfa092
Merge remote-tracking branch 'origin/master' into polybackend
2019-05-24 19:21:36 +02: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
756c593e96
- create a new error class for vulkan errors as they are only recoverable during initialization (unlike CRecoverableError which is recoverable during normal processing)
...
- improve vulkan errors by including the status code returned by vulkan if they fail
2019-05-23 14:09:05 +02:00
Magnus Norddahl
0cb3605c70
- fix null drawers
...
- slightly better renderstyle drawer selection
2019-05-22 21:23:10 +02:00
Magnus Norddahl
d724b623d1
- enable the depth buffer
...
- support vid_scalefactor
2019-05-22 17:56:29 +02:00
Magnus Norddahl
48d2d423f6
- remove softpoly scene drawer
2019-05-22 17:16:07 +02:00
Magnus Norddahl
0eda298db2
- create a renderer backend based on softpoly's drawers
2019-05-22 06:29:52 +02:00
Magnus Norddahl
e4dab707e4
- don't run the custom shaders twice on screenshots
2019-05-20 12:46:05 +02:00
Magnus Norddahl
2a15f65065
- apply present shader on screenshots
2019-05-20 12:36:45 +02:00
alexey.lysiuk
bbb75a40ca
- fixed erroneous texture mipmapping in Vulkan render
...
https://forum.zdoom.org/viewtopic.php?t=64257
2019-05-19 14:24:59 +02:00
Magnus Norddahl
680a6f348b
- use one render pass for the entire scene or until postprocess or command buffer flushing forces it to end
2019-05-18 08:12:46 +02:00
Magnus Norddahl
7e37d640dc
- avoid creating a new render pass if a pipeline bind will suffice
2019-05-18 06:54:35 +02:00
Magnus Norddahl
9ab19d057d
- centralize how image transitions are done in the vulkan backend
2019-05-16 18:26:47 +02:00
Magnus Norddahl
99f58855ad
- transition scene images used for the screenshot to color attachment optimal before rendering to them
2019-05-15 16:11:43 +02:00
Magnus Norddahl
3a112c2a47
- fix stencil test not being active when applying SSAO to portals
2019-05-13 22:06:17 +02:00
Magnus Norddahl
f2e37d506e
- fix model chasecam crash
2019-05-12 23:05:31 +02:00
Christoph Oelckers
cf58666708
- fixed: The software renderer was accessing the global viewpoint in several places.
...
Aside from using incorrect values this could crash the renderer if used in the very first rendering frame because the software renderer always operates on a copy.
2019-05-12 09:16:17 +02:00
Magnus Norddahl
7957c423aa
- fix wrong screenshot gamma
2019-05-10 18:02:27 +02:00
Magnus Norddahl
7c3e99a6f1
- Intel on Linux used the footnote in the standard saying a descriptor pool can become fragmented (thanks guys!)
2019-05-10 02:16:26 +02:00
Magnus Norddahl
ce73fe5b16
- fix command buffer invalidation bug when DynamicSet is updated
2019-05-10 01:53:09 +02:00
Magnus Norddahl
a7e8541341
- add fragment shader texture reading as an additional subpass external dependency
2019-05-10 01:04:45 +02:00
Magnus Norddahl
25e23d6ac5
- add vk_debug_callstack for getting the location where a vulkan warning or error happens
2019-05-09 22:41:47 +02:00
Magnus Norddahl
d5761740d3
- fix burn crash on vulkan
2019-05-09 17:55:29 +02:00
Magnus Norddahl
cace5079fe
- oops, patched the wrong file
2019-05-09 16:06:18 +02:00
Magnus Norddahl
d0c4f28162
- only write the warning if r_multithreaded has its default value
2019-05-09 16:01:39 +02:00
Magnus Norddahl
7727263599
- Write out a warning if std: 🧵 :hardware_concurrency returns zero.
...
- If the number of cores cannot be determined, turn of multithreading in the software renderer as it is most likely a low end system
2019-05-09 15:57:23 +02:00
alexey.lysiuk
7e998c2261
- added handling of GLSL noise() functions to Vulkan backend
...
https://forum.zdoom.org/viewtopic.php?t=64516
2019-05-09 13:29:58 +03:00
alexey.lysiuk
56557a17f1
- fixed output of software renderers with Vulkan backend
...
Vulkan hardware buffer for software canvas may have some padding
Software renderers should be aware of buffer's pitch in order to copy pixels properly
https://forum.zdoom.org/viewtopic.php?t=64562
2019-05-08 22:02:05 +03:00
David Carlier
b0a9d63292
OpenBSD build fix.
...
As FreeBSD, does not have malloc.h
aligned_alloc stricly available since C++17/C11, using the local impl.
2019-05-08 09:25:14 +03:00
alexey.lysiuk
a897751fb7
- fixed compilation warning reported by Clang
...
src/rendering/hwrenderer/postprocessing/hw_postprocess.cpp:1007:13: warning: delete called on non-final 'PPTexture' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
2019-05-06 16:02:44 +03:00
Magnus Norddahl
97375feee6
- fix mirror effect shader
2019-05-06 00:15:02 +02:00
Magnus Norddahl
e21ffc131e
- move camtex depthstencil to VkHardwareTexture
2019-05-05 13:36:03 +02:00
pkubaj
3d63f63fb2
Fix build on FreeBSD ( #829 )
...
On FreeBSD malloc.h is deprecated.
<cwctype> is needed for iswalpha.
2019-05-05 08:28:46 +03:00
Magnus Norddahl
e1ae8bbc59
- rendering to texture requires a separate depth/stencil image as the image used by the main view may be using multisampling
2019-05-05 01:58:36 +02:00
Magnus Norddahl
a6515765c8
- fix vkGetQueryPoolResults: parameter dataSize must be greater than 0
2019-05-03 16:10:14 +02:00
Magnus Norddahl
80c09c52bd
- call SetActiveRenderTarget before drawing the software renderer scene
2019-05-03 16:05:41 +02:00
Magnus Norddahl
d1554aed37
- VMA_MEMORY_USAGE_CPU_TO_GPU does not require VK_MEMORY_PROPERTY_HOST_COHERENT_BIT to bet set. Current implementation requires this flag as vkFlushMappedMemoryRanges is never called.
2019-05-02 01:35:04 +02:00
Magnus Norddahl
ea9be6c225
- fix vulkan crash when changing resolution when using the software renderer
2019-05-02 00:30:54 +02:00
alexey.lysiuk
b23958b204
- fixed saved game thumbnails generation with Vulkan renderer
...
GZDoom aborts with 'Failed to submit command buffer' error on saving a game when open source Intel Vulkan driver (part of Mesa 3D package) is used on Linux
This driver generates VK_DEVICE_LOST error when vkWaitForFences() is called with zero fence count. It must be greater than zero according to Vulkan spec
2019-05-01 13:42:07 +03: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
81e32ecc72
- implement stat gpu on vulkan and fix it on opengl
2019-04-30 22:55:35 +02:00
Magnus Norddahl
692aed0551
- add VulkanQueryPool::getResults
2019-04-30 21:11:44 +02:00
Magnus Norddahl
d504acad68
- add VulkanQueryPool and QueryPoolBuilder
2019-04-30 21:01:55 +02:00
Magnus Norddahl
23d0cce395
- fix shutdown crash due to GetVulkanFrameBuffer returning null when VulkanFrameBuffer is destroyed
2019-04-30 20:02:00 +02:00
Magnus Norddahl
ab8378152f
- make the VkHardwareTexture and VKBuffer linked lists private
2019-04-30 19:49:29 +02:00
Magnus Norddahl
d985d98122
- release staging buffer after the frame it was used in
2019-04-30 19:36:34 +02:00
Magnus Norddahl
34a8e9050b
- this should be better for when vsync is off if I read the vulkan spec correctly
2019-04-30 19:26:28 +02:00
alexey.lysiuk
dffe45835d
- postponed destruction of Vulkan resources
...
Provided uniform way to handle lifetime of some of Vulkan resources
This helps to avoid issues like descriptor set that outlives its pool
https://forum.zdoom.org/viewtopic.php?t=64341
2019-04-30 18:43:41 +03:00
Magnus Norddahl
188714dc14
- the light storage buffer is not dynamic
2019-04-28 23:51:09 +02:00
Christoph Oelckers
15d2b47798
- fixed: RenderCommand::isCompatible failed to properly compare the SpecialColormap.
...
This resulted in always returning 'false' which prevented merging line draws, ultimately crashing the Vulkan renderer on a buffer overflow.
2019-04-24 20:35:10 +02:00
Christoph Oelckers
90cc0cf35b
Merge remote-tracking branch 'remotes/origin/vulkan2'
2019-04-22 11:43:43 +02:00
Christoph Oelckers
0640a86c1e
- removed InitPalette call from VulkanFrameBuffer constructor.
...
It is as wrong here as in OpenGL because it destroys already set up data.
2019-04-22 11:00:40 +02:00
Christoph Oelckers
ec13d0e4c1
Merge remote-tracking branch 'remotes/origin/vulkan2'
2019-04-22 10:45:32 +02:00
Christoph Oelckers
6f3982865f
- refinement of font substitution logic.
2019-04-22 10:23:28 +02:00
Magnus Norddahl
09883431bf
- fix wrong clamp mode used in OpenGL
...
- fix sampler array size on Vulkan
2019-04-20 19:19:34 +02:00
Magnus Norddahl
a3587009e7
- the semaphore should never be added when its the last submit before waiting
2019-04-20 16:42:52 +02:00
Magnus Norddahl
401a4944b4
- fix Queue is signaling semaphore that has not been waited on by any queue
2019-04-20 16:35:26 +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
da7a4ceb34
- change drawcalls to measure the Apply time rather than the individual draw calls (Apply is what costs something on vulkan while the draw call queuing is so cheap its an uninteresting thing to measure)
2019-04-20 00:38:38 +02:00
Magnus Norddahl
a8e7f38150
- minor code cleanup
2019-04-19 23:56:54 +02:00
Magnus Norddahl
779cb42578
- remove vk_submit_multithread again as it seemed to have no effect on performance and only complicated the code
2019-04-19 23:26:06 +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
3957a19bd0
- flush the commands for every 1000th Apply call
2019-04-19 21:08:15 +02:00
Magnus Norddahl
8fadf3d9bd
- add support for flushing commands during drawing
2019-04-19 20:55:15 +02:00
Magnus Norddahl
62fa74485d
Merge remote-tracking branch 'origin/master' into vulkan2
2019-04-19 18:49:00 +02:00
Christoph Oelckers
5e8aa0a963
- removed InitPalette call from OpenGLFrameBuffer's constructor.
...
This was destroying some already set up data like the special colormaps.
2019-04-19 10:36:34 +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
e332011995
- fix wrong model culling
2019-04-18 17:56:43 +02:00
Magnus Norddahl
47fa7dafe3
- fix shader timer not always being applied correctly
2019-04-18 17:14:26 +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
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
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
06222a1fbf
- update glslang to 7.11.3113 (stable release February 8, 2019). This fixes the SPIR-V validation error reported for the shadowmap shader
2019-04-15 04:53:43 +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
b8dfb3c136
Merge remote-tracking branch 'origin/master' into vulkan2
2019-04-14 06:12:32 -04:00
Christoph Oelckers
d73f8faafa
- added monospacing support to Screen.DrawText and its native counterparts.
2019-04-13 12:17:38 +02:00
Rachael Alexanderson
3deda0efd2
Merge remote-tracking branch 'origin/master' into vulkan2
2019-04-11 17:45:35 -04: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
40a72c71f5
- fix shutdown crash
2019-04-11 18:21:51 +02:00
Magnus Norddahl
1e7911d1f9
- we cannot recover from this
2019-04-11 05:36:36 +02:00
Magnus Norddahl
59904faff4
- slightly adjust AcquireImage to avoid border cases in the spec
2019-04-11 05:28:37 +02:00
Magnus Norddahl
a0f618311a
- change SubmitCommands to handle all parts of the present
2019-04-11 04:52:57 +02:00
Magnus Norddahl
095ea3ce76
- apply vk_hdr immediately and delay initial swapchain creation until first image needs to be acquired
2019-04-11 04:26:43 +02:00
Christoph Oelckers
28c8bb47fb
- added generic font support for intermission text screen.
2019-04-11 00:14:53 +02:00
Christoph Oelckers
9e096c62fd
- allow the automap HUD to use the VGA font.
2019-04-10 20:39:15 +02:00
Magnus Norddahl
5f70ce2148
- fix SubmitCommands bug if it no swapchain image was acquired
2019-04-10 16:39:33 +02:00
Magnus Norddahl
85b754b9ca
- fix model rendering glitch
2019-04-09 18:19:14 +02:00
Magnus Norddahl
d413581ee2
- fix model shutdown crash
2019-04-09 17:06:54 +02:00
Magnus Norddahl
eb9f6ec313
- remove the 6 layer texture descriptor set limitation
2019-04-09 16:30:49 +02:00
Magnus Norddahl
c9dbb589e2
- once the Vulkan backend booted all the remaining vulkan calls are unrecoverable (unless the code calling it gets actively involved, which means that particular action is not exceptional in nature and shouldn't be done as an exception)
2019-04-09 14:25:18 +02:00
Magnus Norddahl
d47891d20a
- allocate new texture descriptor pool if it is full
2019-04-09 14:06:24 +02:00
Magnus Norddahl
2cbd1c4736
- Fix inverted check in last commit
2019-04-09 12:41:05 +02:00
Magnus Norddahl
d3dacfc2cb
- improve error handling during vulkan initialization
2019-04-09 12:28:25 +02:00
Christoph Oelckers
ab256945aa
- use I_Error for throwing errors in the Vulkan backend and print the message if one gets thrown during init.
2019-04-08 23:48:46 +02:00
Magnus Norddahl
2694b0a167
- workaround for drivers that bug by never acquiring an image
2019-04-08 21:01:40 +02:00
Magnus Norddahl
c98dfd1790
- improve swap chain resize and handle the edge cases for the swap chain
2019-04-08 19:23:37 +02:00
Magnus Norddahl
20fde9f8be
- clean up swapchain class
2019-04-08 18:14:07 +02: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
b30ed99672
- remove the old OpenGL postprocess custom shader implementation
2019-04-08 01:31:22 +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
Magnus Norddahl
f7069c4ddc
- there is no need to track a transfer family - yet another pointless detour thanks to vulkan-tutorial..
2019-04-04 15:58:48 +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
2dc12aef71
- removed the NetUpdate calls from the software renderer.
...
These can cause highly dangerous recursions and execute play code deep inside the renderer and since the hardware renderer does not have these, there is very little point for the software renderer to retain them.
2019-03-31 09:02:11 +02:00
alexey.lysiuk
df8fa90a34
- fixed compilation warnings reported by Clang
...
src/rendering/vulkan/renderer/vk_renderpass.cpp:44:22: warning: comparison of integers of different signs: 'std::__1::vector<FVertexBufferAttribute, std::__1::allocator<FVertexBufferAttribute> >::size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]
src/rendering/vulkan/system/vk_framebuffer.cpp:860:55: warning: format specifies type 'int' but the argument has type 'VkDeviceSize' (aka 'unsigned long long') [-Wformat]
src/rendering/vulkan/system/vk_objects.h:471:23: warning: suggest braces around initialization of subobject [-Wmissing-braces]
2019-03-30 11:15:49 +02:00
Christoph Oelckers
4619fc5622
- removed unused (now always active) gl_trimsprites option from the menu.
2019-03-29 19:10:10 +01:00
Magnus Norddahl
4cc9880f50
Merge remote-tracking branch 'origin/master' into vulkan2
2019-03-26 13:08:59 +01:00
Magnus Norddahl
9f0f659db0
- remove old vid_maxfps implementations as they were garbage anyway and the new one works on all the platforms
2019-03-26 11:10:17 +01:00
Magnus Norddahl
6078428b84
- fix typo in sleep
2019-03-26 10:46:31 +01:00
Magnus Norddahl
9f758b0032
- implement vid_maxfps
2019-03-26 10:40:43 +01:00
Christoph Oelckers
b40983be61
- fixed bad Printf formatter.
2019-03-26 08:48:10 +01:00
usernameak
95bcc46acc
Fixed postprocess shaders with 2 or more textures
2019-03-25 22:12:00 +01:00
Magnus Norddahl
1c9bf262e6
- hook up VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
2019-03-25 21:30:03 +01:00
Magnus Norddahl
7256af0b32
- fix sort bug
2019-03-25 20:41:53 +01:00
Magnus Norddahl
2d8516b2ca
- make shaderClipDistance optional
2019-03-25 19:44:46 +01:00
Magnus Norddahl
be74675e5e
- change vk_hdr default to false
2019-03-25 01:41:16 +01:00
Magnus Norddahl
c010c5e818
- fully enable vk_hdr as a feature since it works now after the queue family selection was improved
2019-03-25 01:39:27 +01:00
Magnus Norddahl
954b72915c
- improve the queue family selection process to pick first entry in the list over later ones
2019-03-24 18:33:59 +01:00
Magnus Norddahl
0be5cc7d1d
- initialize array
2019-03-24 18:32:36 +01:00
Magnus Norddahl
88355393df
- implement queue family transfers
2019-03-24 18:03:10 +01:00
alexey.lysiuk
90c4e62e67
- removed duplicated expressions
2019-03-24 16:09:01 +02:00
Magnus Norddahl
0c6d0de3ab
- do not use persistent buffers for models as it is a limited resource where each consumes a vkDeviceMemory object
2019-03-23 14:58:37 +01:00
Christoph Oelckers
d500cedf49
- call SetData in VKBuffer::Lock so that the buffer is valid.
...
This allows models to render, but a proper fix should handle mapping of static buffers for real. This workaround just allocates a non-static persistent buffer in CPU memory which is not the most efficient solution here.
2019-03-22 21:14:32 +01:00
Christoph Oelckers
10e62e7b5d
- fixed: VkBuffer::mPersistent was not initialized.
2019-03-22 20:32:59 +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
Magnus Norddahl
d03839dfef
- do not signal mRenderFinishedSemaphore if the submitted commands aren't about to be presented
2019-03-22 13:54:13 +01:00
Christoph Oelckers
4d768e5a49
- use a vector instead of a map to store a texture's descriptor sets.
...
In this case a map is total overkill and its poor memory locality will always incur some performance hit. A vector here can only collect a very small amount of entries so the time to search is nearly irrelevant.
2019-03-21 23:41:24 +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
7b3350ae1e
- the material descriptor set must be bound again if the pipeline changes and the new shader uses more textures than the old one
2019-03-18 00:38:09 +01:00
Magnus Norddahl
b62d5784af
- bind a texture in all descriptor slots
2019-03-17 23:24:50 +01:00
Magnus Norddahl
ec7a874a61
- implement PrecacheMaterial
2019-03-17 22:41:02 +01:00
Magnus Norddahl
bf85ad4b6a
- remove tracking translation in VkHardwareTexture
...
- only reset the descriptors when recreating the samplers
2019-03-17 22:27:48 +01:00
Magnus Norddahl
2429eba8f6
- remove the old incomplete VkHardwareTexture implementation
2019-03-17 22:10:49 +01:00
Magnus Norddahl
40ee32a0ce
- minor adjustments
2019-03-17 21:14:51 +01:00
Magnus Norddahl
29a30037cb
- delay destruction of VkHardwareTexture resources until current frame has finished rendering
2019-03-17 20:36:08 +01:00
Magnus Norddahl
c00a46043d
- implement ssao
2019-03-16 23:37:38 +01:00
Magnus Norddahl
990d61f41a
- fix compile error
2019-03-16 04:18:35 +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
Magnus Norddahl
836938440c
- move swapchain and the presentation related synchronization objects out of VulkanDevice
2019-03-14 23:33:19 +01:00
Magnus Norddahl
9b207b8fe6
- implement save pic
2019-03-14 23:07:52 +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
2d885d4e4c
- add some support for using the HDR10 ST2084 color space on monitors that support it (unfortunately it doesn't work, and with virtually no documentation either from nvidia or khronos it is hard to say why)
2019-03-14 00:21:53 +01:00
Magnus Norddahl
625cc11ea2
- capture screenshot support
2019-03-13 14:10:13 +01:00
Magnus Norddahl
5d2917bb4f
- implement RenderTextureView
2019-03-13 11:14:42 +01:00
Magnus Norddahl
d78cb959a7
- implement wipe screen copy
2019-03-13 02:23:33 +01:00
Magnus Norddahl
a585a90d81
- VkHardwareTexture needs to BFF with FTexture
2019-03-13 01:15:50 +01:00
Magnus Norddahl
83ee884ffc
- remove dead code
2019-03-13 00:59:39 +01: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
903f8b6696
- move the active render target from VkRenderPass to VkRenderState
2019-03-13 00:18:27 +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
Magnus Norddahl
db6a4781c8
- clip scissors (tired of my computer blue screening - thanks NVidia!)
...
- wrap viewport
2019-03-12 16:17:26 +01:00
Magnus Norddahl
aa84f7b3e6
- fix shaders only being loaded from the engine pk3
2019-03-12 15:02:21 +01:00
Rachael Alexanderson
879aae1bd3
Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
2019-03-11 22:07:46 -04:00
Rachael Alexanderson
916f21942c
- Reverse the status bar offset when shearing the viewport in Vulkan - fixes the issue with a black bar at the top of the screen
2019-03-11 22:06:51 -04:00
Christoph Oelckers
22cf35c1c7
- reworked the load/save menu to use the new console font.
...
Parts of this menu suffered badly from lack of screen space to convey the intended information due to the oversized fonts. With the new font this is a lot less problematic (unless using 320x200, of course)
2019-03-11 20:59:43 +01:00
Christoph Oelckers
eb4eb1ac00
- use a wide string for the console input buffer.
...
Since this needs to do cursor positioning calculations it's the one spot in the entire engine where UTF-8 would simply be to messy, especially when having to deal with double wide characters.
2019-03-10 17:54:03 +01:00
Christoph Oelckers
0884057ae1
- use a higher resolution console font with better Unicode support.
2019-03-10 17:54:03 +01:00
Magnus Norddahl
2ca112bef7
- create a helper for doing the PP image transitions
2019-03-10 01:47:55 +01:00
Magnus Norddahl
eb41e5fcd7
- fix transition error when no PP effects are active
2019-03-10 00:47:28 +01:00
Magnus Norddahl
fed0f0dfab
- fix the multisample and image transition validation errors
2019-03-09 23:17:48 +01:00
Magnus Norddahl
5581fbfd93
- fix wrong layout and image format for the swap chain
2019-03-09 22:07:46 +01:00
Magnus Norddahl
ff68d2e651
- hooked up the debug names for objects, which was a bit of a waste of time since the validation layer is brain dead and doesn't use the information in its messages..
2019-03-09 21:34:29 +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
b7d09c95dd
- cleanup of savegame picture code.
...
* re-added screen blends for images from the hardware renderer.
* moved all postprocessing of the image out of the renderers.
* cleaned out a large piece of cruft for handling the palette in the frame buffer class. This was all a remnant of the old paletted backend that no longer exists. Nowadays the screen blend is just a postprocessing effect drawn over the 3D screen, there is no need to maintain any of it as global state anymore.
* since the engine doesn't produce paletted screenshots anymore there is no need to have handling for it in the generation code. This depended on otherwise obsolete information so it got removed along with that information.
2019-03-09 14:48:14 +01:00
Christoph Oelckers
29012a89c6
- for got to save this.
2019-03-09 13:34:22 +01:00
Christoph Oelckers
f9d4ea8424
- missed the part that the blend function was still drawing multiplicative blends.
...
This should be cleanly separated.
2019-03-09 13:12:24 +01:00
Christoph Oelckers
0e4a860c5e
- fixed uninitialized screen flash color for savegame images in the software renderer.
2019-03-09 12:52:07 +01: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
0ca7723c0e
- disable player sprite drawing on canvases for the softpoly renderer.
2019-03-09 12:17:57 +01:00
Christoph Oelckers
1a29d39355
- do not render player sprites to canvases in the software renderer.
...
This applies to both savegame images and camera textures.
2019-03-09 12:12:33 +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
alexey.lysiuk
4ac82c18be
- eliminated last triangle fans usage in Vulkan renderer on macOS
...
Thanks dpJudas
2019-03-09 12:37:45 +02:00
Magnus Norddahl
21c83950a5
- add vk_device and vk_listdevices that will allow selecting a different device on systems where this is desirable
...
- clean up the VulkanDevice class
2019-03-09 10:20:14 +01:00
Magnus Norddahl
389469c604
- pick the first device that supports our required features
2019-03-08 22:53:32 +01:00
Magnus Norddahl
aa1ff58353
- convert triangle fan to triangle list on macOS
2019-03-08 21:34:21 +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
alexey.lysiuk
965acde9c0
- added initial support of Vulkan renderer to Cocoa backend
2019-03-08 16:47:02 +02:00
Magnus Norddahl
ca1d8191aa
- enable the binding code for the ssao gbuffers
2019-03-08 03:17:59 +01:00
Magnus Norddahl
c0c2743e89
- add multisample support
...
- fix BlurScene
- create the gbuffers needed by ssao
2019-03-08 02:24:54 +01:00
Magnus Norddahl
e823d5da52
- remove compute and sparse requirements as we use neither
2019-03-07 18:23:04 +01:00
Magnus Norddahl
6db231596f
- hook up postprocessing
2019-03-07 18:05:12 +01:00
Christoph Oelckers
a5c820e1e6
- update volk to the latest version.
...
The main feature that got added is macOS support which should be useful.
2019-03-07 13:40:27 +01:00
alexey.lysiuk
16008e4aa8
- set viewport dimensions each frame in Vulkan framebuffer
...
This fixes visual artifacts when resolution is changed without a level running, i.e. from menu or fullscreen console
2019-03-07 13:24:56 +02:00
Magnus Norddahl
0679b493ec
- hook up the present shader
2019-03-06 22:59:21 +01:00
Magnus Norddahl
30756ec112
- wrong image transition direction
2019-03-06 19:44:48 +01:00
Magnus Norddahl
a857bec846
- implemented VkPostprocess::GetInput
2019-03-06 19:42:02 +01:00
Magnus Norddahl
9d061cbef6
- implement VkPostprocess::GetOutput
2019-03-06 18:33:31 +01:00
Magnus Norddahl
40c14bcd67
- create pipeline images
...
- fix some minor typos
2019-03-06 17:59:11 +01:00
alexey.lysiuk
108ea066f3
- added initial support of Vulkan to SDL backend
...
Removed all platform-specific code from vulkan device
2019-03-06 13:38:45 +02:00
alexey.lysiuk
08d8ea5d31
- fixed compilation with GCC and Clang
...
src/rendering/vulkan/renderer/vk_postprocess.cpp:219:54: error: cannot pass non-trivial object of type 'const FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2019-03-06 11:39:39 +02:00
Magnus Norddahl
c280153ac2
- implement VkPostprocess::RenderScreenQuad
2019-03-05 23:31:38 +01:00
Magnus Norddahl
fb983186b1
- upload the pp textures
2019-03-05 20:39:27 +01:00
Magnus Norddahl
a07e4601e7
- compile the effect shaders
2019-03-05 19:49:06 +01:00
Magnus Norddahl
b313f91ab0
- add layout location decl to all postprocess shaders
2019-03-05 18:55:31 +01:00
alexey.lysiuk
87441dd0a1
- fixed infinite loop and out-of-bound read in shader patcher
2019-03-05 13:06:39 +02:00
alexey.lysiuk
741d44d263
- fixed compilation with GCC 7+
...
src/rendering/vulkan/renderer/vk_postprocess.h:16:48: error: ‘function’ in namespace ‘std’ does not name a template type
2019-03-05 10:21:39 +02:00
Magnus Norddahl
d65de299e8
- add some classes for managing postprocess and render buffers
2019-03-05 04:59:17 +01:00
Magnus Norddahl
319099fee9
Merge remote-tracking branch 'origin/master' into vulkan2
2019-03-05 03:07:30 +01:00
Magnus Norddahl
e06f8f172d
- use the uniform buffer alignment as returned by the vulkan device
2019-03-05 02:50:30 +01:00
Magnus Norddahl
95116e8580
- fix dynamic buffer offset not getting updated
...
- fix lightbuffer blocksize being hardcoded
2019-03-05 02:06:20 +01:00
Magnus Norddahl
c137e868de
- patch in/out layout declarations for OpenGL
2019-03-05 01:17:23 +01:00
Magnus Norddahl
c70aff99e7
- enable RenderFirstSkyPortal
2019-03-04 15:55:43 +01:00
Magnus Norddahl
32ad6dc887
- draw the weapon
2019-03-04 15:27:54 +01:00
Magnus Norddahl
d23fbb07cd
Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2
2019-03-04 15:24:30 +01:00
Magnus Norddahl
a8a444f010
- missed two places where VK_FORMAT_D24_UNORM_S8_UINT was used
2019-03-04 15:23:49 +01:00
alexey.lysiuk
84a4c9c3a7
- reorderer member initialization in Vulkan objects
...
This is needed to prevent compilation warnings spam with GCC and Clang
While the warning itself is useful, in this case it's rather pointless and annoying
2019-03-04 16:18:37 +02:00
Magnus Norddahl
2532e4bba6
- fall back to VK_FORMAT_D32_SFLOAT_S8_UINT if VK_FORMAT_D24_UNORM_S8_UINT is not supported
2019-03-04 14:47:49 +01:00
Magnus Norddahl
0a6d77a861
- fall back to linear if tiling is not supported by the device
2019-03-04 13:51:58 +01:00
Magnus Norddahl
9861642fcc
- add missing vulkan used features
2019-03-04 13:28:29 +01:00
Christopher Bruns
0fb940632a
Reduce number of blits required in stereo 3D by tracking current eye.
2019-03-04 13:14:41 +01:00
alexey.lysiuk
802d37f377
- fixed compilation of Linux target
...
Base and OpenGL framebuffer classes still require proper splitting
2019-03-04 12:47:00 +02:00
alexey.lysiuk
7efa231e4e
- fixed compilation of macOS target
...
Base and OpenGL framebuffer classes still require proper splitting
2019-03-04 12:46:37 +02:00
alexey.lysiuk
6144f02f67
- initialized all members of VkWin32SurfaceCreateInfoKHR
...
Without such initialization vkCreateWin32SurfaceKHR() crashed inside AMD Vulkan driver
2019-03-04 11:36:38 +02:00
alexey.lysiuk
30c6ae5078
- fixed compilation of 32-bit Windows targets and MSVC 2015
2019-03-04 11:35:12 +02:00
Magnus Norddahl
0e43979c28
- fix colormask alpha typo
2019-03-04 01:54:57 +01:00
Magnus Norddahl
f04522c397
- fix depthstencil attachment not being attached when only stencil tests were enabled
2019-03-04 01:49:27 +01:00
Magnus Norddahl
99c3d72aa0
- fix typos
2019-03-04 01:23:13 +01:00
Magnus Norddahl
ddf21ffd72
- create a descriptor for each texture+sampler configuration in use
2019-03-04 00:28:37 +01:00
Magnus Norddahl
eaf367e876
- add depth bias
2019-03-04 00:14:28 +01:00
Magnus Norddahl
cf49e1ec21
- add depth clamp support
2019-03-03 23:54:13 +01:00
Magnus Norddahl
56afcd210b
- fix: gl_PointSize is required in Vulkan when drawing points
...
- fix: add depthstencil attachment when stencil is active while depth is not
2019-03-03 23:30:36 +01:00
Magnus Norddahl
923fb5c127
- implement the depth and stencil states
2019-03-03 22:25:38 +01:00
Christopher Bruns
52ab4b968f
Remove Quad-buffered from list of VR-modes if we know it won't work.
2019-03-03 16:15:38 +01:00
Magnus Norddahl
d516b2ff7b
- fix typo and add color
2019-03-03 14:40:56 +01:00
Magnus Norddahl
9d792f79f1
- add vulkan info to startup log
2019-03-03 14:32:03 +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
fd752dec54
- don't search for a renderpass if the current one matches
2019-03-03 00:16:00 +01:00
Magnus Norddahl
cab441591f
- add some of the same checks that glrenderstate uses
2019-03-03 00:06:17 +01:00
Magnus Norddahl
c657d8fd1e
- only bind vertex and index buffers if they change
2019-03-02 23:56:06 +01:00
Magnus Norddahl
c30edaa21a
- only update matrices if they change
2019-03-02 23:47:56 +01:00
Magnus Norddahl
2a6d37dd73
- clean up Apply function
2019-03-02 23:39:44 +01:00
Magnus Norddahl
0c9d27d078
- create an array for the stream data
2019-03-02 23:20:29 +01:00
Magnus Norddahl
656a3b8fba
- allocate more descriptors in the pool
2019-03-02 22:41:36 +01:00
Magnus Norddahl
b0b4028e0b
- align by 256 instead of 128
2019-03-02 17:51:57 +01:00
Magnus Norddahl
327b9a91f1
- fix one more validation error
2019-03-02 17:27:19 +01:00
Magnus Norddahl
47ce44e5f0
- add missing image usage flag
2019-03-02 17:20:14 +01:00
Magnus Norddahl
1bdaf24fa8
- add features reported by validation layer
2019-03-02 17:17:33 +01:00
Magnus Norddahl
09ea775b40
- make the vulkan logging a bit more readable
2019-03-02 17:11:23 +01:00
Magnus Norddahl
28f83fc9db
- found the stupid bug that caused validation layer not to work..
2019-03-02 16:52:33 +01:00
Magnus Norddahl
8854fad165
- fix some additional image transition errors reported by RenderDoc during the first frame
2019-03-02 16:36:29 +01:00
Magnus Norddahl
718f9e36fa
Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2
2019-03-02 16:02:43 +01:00
Magnus Norddahl
b1f161040d
- transition image layouts and setup pipeline barriers (fixes some errors reported by RenderDoc)
2019-03-02 16:02:27 +01:00
Christoph Oelckers
dc9a995695
- output the error code when submitting a command buffer fails.
2019-03-02 15:57:43 +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
1430d9012e
- fix shutdown crash and some minor adjustments
2019-03-02 00:46:25 +01:00
Magnus Norddahl
d86a56086c
Merge remote-tracking branch 'origin/master' into vulkan2
2019-03-01 21:50:06 +01:00
Magnus Norddahl
7871ec06ae
- add depth/stencil attachment to the render pass
2019-03-01 21:34:08 +01:00
Magnus Norddahl
d73b0b3146
- create helper function for copying
2019-03-01 20:15:56 +01:00
Magnus Norddahl
ee8349d168
- add support for specifying the topology
2019-03-01 20:06:20 +01:00
Magnus Norddahl
01c78d7238
- add a bit of bounds checking just to be safe
2019-03-01 19:15:52 +01:00
Magnus Norddahl
195e91adc9
- hook up the hardware renderer
2019-03-01 19:01:06 +01:00
Magnus Norddahl
308c884d02
- use a linked list to keep track of all allocated VkHardwareTexture objects
2019-03-01 18:31:33 +01:00
Magnus Norddahl
c691a8fe64
- bind the vertex inputs as specified by its vertex buffer format
2019-03-01 15:37:13 +01:00
Magnus Norddahl
b0fd5db616
- remove misplaced todo
2019-03-01 02:42:24 +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
f1f8797d3c
- bind the layer textures
2019-03-01 01:30:10 +01:00
Magnus Norddahl
7f3e473f56
- create a render pass for each blend setup
2019-03-01 00:42:51 +01:00
Magnus Norddahl
e472050f36
- use dynamic state for viewport and scissor
2019-02-28 15:45:59 +01:00
Magnus Norddahl
45061e8b44
- no need to debug with a red clear anymore
2019-02-28 01:22:38 +01:00
Magnus Norddahl
9a5112c1c9
- tell the memory allocator when we are going to persistently map something
2019-02-28 01:18:29 +01:00
Magnus Norddahl
2e0b34ca72
- hook up enough of renderstate to enable all of main.vp and main.fp
2019-02-28 00:26:49 +01:00
Magnus Norddahl
c2e0eba270
- hook up vid_vsync and vk_debug
2019-02-27 22:20:18 +01:00
Magnus Norddahl
b4154f1772
- fix palette color problem
2019-02-27 16:28:29 +01:00
Magnus Norddahl
96547713d9
- hook up the software renderer
2019-02-27 15:37:37 +01:00
Christopher Bruns
8becc0e78d
Enable menu blur in stereo 3d.
...
Use more blitting to avoid confusing framebuffer state management in stereo 3D.
2019-02-27 09:51:02 +01:00
Magnus Norddahl
a3c21e0b01
- upload some real texture contents
2019-02-26 22:45:18 +01:00
Magnus Norddahl
fe67a2c24f
- fix enough bugs to finally get some visuals
2019-02-26 20:19:54 +01:00
Magnus Norddahl
e1d1358249
- add missing field
2019-02-26 20:18:30 +01:00
Magnus Norddahl
19f4133768
- move most push constants to dynamic uniform buffers
2019-02-26 16:50:54 +01:00
Magnus Norddahl
d958c4fec5
- upload and bind some textures
2019-02-26 15:29:08 +01:00
Magnus Norddahl
347339b254
- add a very basic present shader using a blit
...
- avoid dealing with image layout transitions for the blit by using VK_IMAGE_LAYOUT_GENERAL for now
2019-02-26 12:25:17 +01:00
Magnus Norddahl
854526dee4
- submit the upload commands
2019-02-26 11:58:03 +01:00
Magnus Norddahl
e875198b37
- create raii objects for semaphore and fence
2019-02-26 11:44:29 +01:00
Magnus Norddahl
27e78e7d8d
- remove unused code
2019-02-26 11:31:09 +01:00
Magnus Norddahl
9ed1c7f40b
- add render pass manager and setup a pipeline for VkRenderState
2019-02-26 11:27:29 +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
413412f603
Merge branch 'master' into vulkan2
2019-02-23 19:53:38 +01:00
Rachael Alexanderson
7098748e9e
- fix building on case sensitive systems
2019-02-23 13:51:24 -05:00
Christoph Oelckers
c3890342e6
- moved the 2D drawing code to its own directory under 'rendering'.
2019-02-23 18:08:57 +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
Magnus Norddahl
52460d53d9
- compile main.vp and main.fp for vulkan
2019-02-22 11:30:48 +01:00
Magnus Norddahl
a97d736bd9
- add vulkan renderstate and shadermanager classes
2019-02-21 22:49:00 +01:00
Magnus Norddahl
c606346ae3
- remove dead code
2019-02-21 21:23:44 +01:00
Magnus Norddahl
478ef05a0a
- create vulkan buffer objects implementation
2019-02-21 12:31:14 +01:00
Magnus Norddahl
fc79cd1280
- present an empty back buffer while keeping vsync
2019-02-21 10:19:59 +01:00
Magnus Norddahl
75403ec744
- hook up the glsl compiler
2019-02-21 00:25:51 +01:00
Magnus Norddahl
c6b29846d0
- add 3rd party vulkan dependencies
...
- add stubs for a vulkan hw renderer backend
- add RAII wrappers for vulkan object types
- add builder classes to isolate vulkan boilerplate code
- add a swap chain class
2019-02-20 21:21:57 +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
0b2494f9ca
- fixed: The global viewpoint's Level member was accessed before it was set.
...
All affected code needs to get a Level parameter passed in through its arguments.
2019-02-08 13:12:46 +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