Commit graph

122 commits

Author SHA1 Message Date
Christoph Oelckers
c203df5edb - consolidated the 3 virtually identical instances of DrawScene and moved the function to HWDrawInfo.
The only backend dependent call in there, ambient occlusion, has been made a virtual of DFrameBuffer.
2020-04-24 21:47:18 +02:00
Christoph Oelckers
90585c4931 - added a RenderState virtual to the FrameBuffer class. 2020-04-24 16:15:18 +02:00
Christoph Oelckers
b2281c38e1 - fixed texture layer management so that each material layer can decide for itself if it wants to allow upscaling.
- rewrote the hardware texture precacher to use the new texture management to properly track the data to delete.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
5a2a72fc95 - store the Vulkan descriptor sets in the material - where they belong!
Having them in the base texture object was a major maintenance issue.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
8843761bf8 - moved most of the texture size maintenance to the FGameTexture class. 2020-04-19 10:57:53 +02:00
Christoph Oelckers
8505c7ee7d - major refactor of texture upscaling control.
All decisions were done deep inside the texture creation code, leaving zero options to the higher level code for controlling the feature.
Changed this so that the option to upscale must be passed as a parameter to FRenderState::SetMaterial and extended all needed variables to manage the added texture variants.
Still not solved: Material layers need explicit control, not only for scaling but also for filtering.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
662fa6e667 - removed the conversion helper code and fixed a few places where FMaterial was only used to access the hardware textures in the FTexture class. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
83817080bb - more texture cleanup.
It is now in a state where FTexture really needs to be separated from FGameTexture.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
31035a6cea - cleaned out the coordinate code in FMaterial. 2020-04-19 10:57:48 +02:00
Christoph Oelckers
aeba304715 - texture code refactoring to consolidate multiple textures referencing the same backing image. 2020-04-19 10:57:44 +02:00
Christoph Oelckers
932f5c64c2 - moved stats.cpp to common. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
5490ffcd77 - removed the obsolete Doomsday 1.8-style texture pack support.
This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
2020-04-04 12:55:24 +02:00
Rachael Alexanderson
7c9d8a0b99 - fix nullptr crash in player.camera reference when player.camera is nullptr 2020-03-26 17:53:32 +01:00
Magnus Norddahl
fca3da8af4 Update and clarify the licenses for the postprocess, vulkan and softpoly parts 2020-01-03 05:52:01 +01:00
Christoph Oelckers
5179a69fdb - don't let Vulkan access the vid_vsync variable directly.
Since the FrameBuffers have a SetVsync method anything these last set must count, not the global variable directly.
2019-10-01 20:50:15 +02:00
Magnus Norddahl
7d73616fda - release any references to command buffer when flushed 2019-08-25 12:12:29 +02:00
Christoph Oelckers
5e4de10f97 - fixed survey data retrieval for Vulkan. 2019-08-11 21:26:08 +02:00
Magnus Norddahl
d1026e4b5b - call vkDeviceWaitIdle before RAII tears down buffers 2019-08-08 20:56:11 +02:00
Christoph Oelckers
afbd7f7a24 - increased StreamBuffer size because I got it to crash with comatose.wad once due to an overflow here. 2019-07-28 19:05:39 +02:00
Magnus Norddahl
76675a4d61 - add VkMatrixBufferWriter so that both buffers are used same way in VkRenderState 2019-07-28 17:04:56 +02:00
Magnus Norddahl
4adac3fe59 - move streaming uniform buffers out of VkRenderState 2019-07-28 16:28:43 +02:00
Dzmitry Malyshau
e7e46f8c7c vk: Check for the time query support on the graphics queue (#884) 2019-07-03 16:49:06 +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
9f2fbc1294 - renamed GLViewpointBuffer to HWViewpointBuffer. 2019-06-10 10:50:45 +02:00
Magnus Norddahl
8853872bb4 - fix wipe screen when using -loadgame 2019-06-10 08:40:49 +02:00
alexey.lysiuk
dc8a944382 - implemented GPU vendor string assingment in Vulkan backend 2019-06-04 12:42:01 +03:00
Magnus Norddahl
2a15f65065 - apply present shader on screenshots 2019-05-20 12:36:45 +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
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
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