Commit graph

212 commits

Author SHA1 Message Date
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
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
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
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
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
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
faac0805f0 - implement VKBuffer::Resize 2019-04-18 22:01:42 +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
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
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
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