Commit graph

91 commits

Author SHA1 Message Date
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
e21ffc131e - move camtex depthstencil to VkHardwareTexture 2019-05-05 13:36:03 +02: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
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
81e32ecc72 - implement stat gpu on vulkan and fix it on opengl 2019-04-30 22:55:35 +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
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
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
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
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
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
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
d413581ee2 - fix model shutdown crash 2019-04-09 17:06:54 +02:00
Magnus Norddahl
d47891d20a - allocate new texture descriptor pool if it is full 2019-04-09 14:06:24 +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
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
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
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
Magnus Norddahl
88355393df - implement queue family transfers 2019-03-24 18:03: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
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
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
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
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
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
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
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
fed0f0dfab - fix the multisample and image transition validation errors 2019-03-09 23:17:48 +01:00