Commit graph

110 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
40a72c71f5 - fix shutdown crash 2019-04-11 18:21:51 +02:00
Magnus Norddahl
85b754b9ca - fix model rendering glitch 2019-04-09 18:19:14 +02:00
Magnus Norddahl
eb9f6ec313 - remove the 6 layer texture descriptor set limitation 2019-04-09 16:30:49 +02:00
Magnus Norddahl
d47891d20a - allocate new texture descriptor pool if it is full 2019-04-09 14:06:24 +02:00
Magnus Norddahl
d114575bd1 - implement custom post process shaders for vulkan backend 2019-04-08 00:47:55 +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
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
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
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
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
Magnus Norddahl
836938440c - move swapchain and the presentation related synchronization objects out of VulkanDevice 2019-03-14 23:33:19 +01:00
Magnus Norddahl
625cc11ea2 - capture screenshot support 2019-03-13 14:10:13 +01:00
Magnus Norddahl
d78cb959a7 - implement wipe screen copy 2019-03-13 02:23:33 +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
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
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
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