Commit graph

15484 commits

Author SHA1 Message Date
Christoph Oelckers
0422f40d80 - restored calling OnRegister for event handlers after loading a savegame
It should be said in no uncertain terms that OnRegister operates on an uninitialized level so it should only be used for setting up the registering process of the event handler itself and nothing else - not even the event handler's data!!!
2019-03-26 17:02:40 +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
651d749eea - limited MoltenVK logging without vk_debug
If vk_debug is set to zero (which is by default) only errors will be reported
2019-03-24 16:19:39 +02:00
alexey.lysiuk
15e0b6c8a7 - gave vid_autoswitch CVAR a priority over vk_device selection
Try to mimic OpenGL GPU selection behavior with MoltenVK when automated graphics switching is disabled
The CVAR isn't exposed in menu and its target audience is advanced users only
2019-03-24 16:18:08 +02:00
alexey.lysiuk
90c4e62e67 - removed duplicated expressions 2019-03-24 16:09:01 +02:00
Christoph Oelckers
a0b0467e91 - restrict Vulkan to 64 bit builds. 2019-03-24 14:34:48 +01:00
Rachael Alexanderson
91dfebd211 Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
# Conflicts:
#	wadsrc/static/menudef.txt
2019-03-24 09:08:55 -04:00
Christoph Oelckers
04c103811c - changed Strife dialogue setup so that STRIFE00 is being processed and the random texts explicitly excluded.
This fixes the stray "Peasant" in this file.
2019-03-24 12:52:03 +01:00
Christoph Oelckers
dc67355e95 - added A_Explode compatibility options.
There are two options here - one only disables the vertical thrust and the other goes back fully to the original non-z-aware code.
Both options are settable through MAPINFO.
For the compatibility presets, the normal ones only disable the vertical thrust, the strict ones force use of the old code entirely.
2019-03-24 12:42:57 +01:00
alexey.lysiuk
48a5476ec4 - fixed compilation with older macOS SDK like 10.9
src/posix/cocoa/i_video.mm:564:23: error: property 'layer' not found on object of type 'id'
2019-03-23 17:27:47 +02:00
Christoph Oelckers
5da2ecda66 - fix the compat_pointonline flag. 2019-03-23 15:28:10 +01: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
7606b22d0b - fixed the substitution logic in FTexture::GetRawTexture.
This may only perform a substitution if the offset is not 0 and if the size matches.
2019-03-23 12:48:57 +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
Christoph Oelckers
4aef99632d Merge branch 'master' into vulkan2 2019-03-21 18:56:06 +01:00
Christoph Oelckers
b28c984075 - fixed bad default for scaleoverride. 2019-03-19 23:01:30 +01:00
Rachael Alexanderson
3c594c6c93 Merge remote-tracking branch 'origin/master' into vulkan2 2019-03-19 15:12:18 -04:00
Christoph Oelckers
561ce41723 - fixed lifetime of ScaleOverrider for Strife dialogues. 2019-03-19 18:46:20 +01:00
Christoph Oelckers
a1acc4adc4 - fixed layout issues with Strife's dialogues.
They were using some settings from the option menu which they never should have used to begin with.
2019-03-19 17:46:59 +01:00
Christoph Oelckers
be7d6241c2 - localize 'By' 2019-03-19 01:23:54 +01:00
Christoph Oelckers
cda248df66 - localized some user-facing texts that were still string literals. 2019-03-19 00:37:43 +01:00
Christoph Oelckers
e07d413095 - fixed: A pusher thinker must destroy itself if the point pusher/puller thing is gone. 2019-03-18 23:46:13 +01:00
Christoph Oelckers
b48f4032d8 - draw the FPS counter with the new console font.
With the current scale settings the original one is simply too small.
2019-03-18 14:27:42 +01:00
Christoph Oelckers
d86dd902fb Merge branch 'master' into vulkan2 2019-03-18 13:31:04 +01:00
Christoph Oelckers
4120e72dbd - explicitly mark all unresolved textures as invalid. 2019-03-18 11:45:00 +01:00
Christoph Oelckers
c2c9126453 - replaced the XLSX parser with a CSV parser.
Since Google can export this as well it makes a lot more sense here because it is a textual format better suited for version control and does not carry along all the formatting baggage that isn't needed for a string table.
2019-03-18 10:18:30 +01:00
alexey.lysiuk
1f16fd7801 - fixed clipping of automap background with althud and screenblocks < 10 2019-03-18 10:23:55 +02: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
Christoph Oelckers
13f3bf2331 - add an option to print the kill, item and secret stats on the alternative HUD with the NewSmallFont.
This has to be set in the console, the default is still the regular small font. Mainly added because some mods have really hard to read fonts where it is not easy to decipher the numbers.
2019-03-17 21:35:33 +01:00
Magnus Norddahl
40ee32a0ce - minor adjustments 2019-03-17 21:14:51 +01:00
Magnus Norddahl
c2df818012 Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2 2019-03-17 20:36:23 +01:00
Magnus Norddahl
29a30037cb - delay destruction of VkHardwareTexture resources until current frame has finished rendering 2019-03-17 20:36:08 +01:00
Christoph Oelckers
099ddea0e1 - use the console font for printing sound debug info.
The unscaled small font is simply far too small for this on modern displays.
2019-03-17 19:02:15 +01:00
Christoph Oelckers
a3103588f3 - fixed: The software renderer was destroying global state when initializing a camera texture.
As a result the HUD wasn't drawn.
2019-03-17 18:32:55 +01:00
Christoph Oelckers
81801ccac0 - use NewSmallFont instead of NewConsoleFont for on-screen messages if enabled. 2019-03-17 18:32:49 +01:00
Christoph Oelckers
2227c15010 - create a second font based on the VGA glyphs that is stylistically more similar to the SmallFont and use that for the option menus. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
2e260c6367 - use the new console font for the options menu to gain space and better character support.
So far this is just an experiment, this needs a bit of work to become viable.
2019-03-17 18:32:47 +01:00
alexey.lysiuk
be9a43f177 - added temp hack for perf issue with Metal layer in fullscreen 2019-03-17 18:20:24 +02:00
alexey.lysiuk
97fc3aa9a6 - avoid Vulkan initialization when it's disabled in Cocoa backend 2019-03-17 14:45:47 +02:00
alexey.lysiuk
83de8ae5a0 - fixed white flash on startup with Metal-based view 2019-03-17 14:44:16 +02:00
alexey.lysiuk
250e4ed622 - do not use OpenGL function to clear screen in Cocoa backend
In fullscreen mode there is a white flash (of the default background color) on startup
To overcome this an explicit glClear() with flush buffers was used
In order to make video mode switch more generic, any backend specific functionality should be avoided here
2019-03-17 14:42:14 +02:00
Christoph Oelckers
7d93983669 - fixed: SpawnShootDecal tried to get the current level from a value that could point to actor defaults which do not have a level. 2019-03-17 13:19:17 +01:00
Christoph Oelckers
4f7ad5b130 - make the clean scaling system more consistent.
Now, all menus will use the same scale, i.e. it only depends on the screen width and a base size of 640. This nearly universally yields better results than trying to make a 320x200 screen fit.
The only exceptions to this are the intermission screens and the level summary. These, unlike the menu need to try to make a 320x200 screen fit, but without all the hackery that was present to adjust the menu display.
Note that since this affects globally visible script variables, both the intermission and summary drawers will not use their own set but instead temporarily override the global setting as long as they run their own code.
Changing the use of variables here might cause much worse problems with menu code so it wasn't attempted
2019-03-17 12:06:09 +01:00
Christoph Oelckers
0ff703c361 - fixed: Doom's episode names were not translatable. 2019-03-17 10:11:02 +01:00
Christoph Oelckers
ba13a540e4 - changed default graphics substitution rules to be more localization friendly.
The default was changed to replace graphics if only known content is affected.
This also required blocking the feature for Hacx, Harmony and Action Doom 2 which have no localization yet and would fall back on Doom's texts if not blocked.
2019-03-17 09:27:40 +01:00
Magnus Norddahl
c00a46043d - implement ssao 2019-03-16 23:37:38 +01:00
Christoph Oelckers
3fde5535c7 - replaced the "or" in the keybind menu with a darker comma so that this part is language neutral. 2019-03-16 19:00:56 +01:00
Alexander
73d81d3983 added option search menu 2019-03-16 18:40:13 +01:00
alexey.lysiuk
540e180fb1 - fixed log text output to console
src/p_user.cpp:429:42: warning: data argument not used by format string [-Wformat-extra-args]
2019-03-16 14:45:16 +02:00
alexey.lysiuk
ac9a428196 - fixed compilation error with some versions of GCC and Clang
src/p_acs.cpp:8719:100: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2019-03-16 14:39:29 +02:00
Christoph Oelckers
669b13ab8a - cleanup and fixes in console code
* consolidated C_MidPrint and C_MidPrintBold.
* removed some unused code from the console buffer.
* handle console output of centered messages to ensure they get written to the log file and to stdout.
* replaced the non-standard bar strings with simple '-'s. These were making things needlessly complicated when redirecting console output and the new font does not have the characters anyway.
* removed some old code from a time when during console drawing new network events could come and have more text printed. This can not happen anymore with how 2D elements are being handled now so all this code was redundant.
2019-03-16 13:02:38 +01:00
Christoph Oelckers
714c656753 - set a Unicode capable font for the Windows console.
The default raster font only contains the OEM 437 code page which is quite useless.
2019-03-16 10:50:53 +01:00
Magnus Norddahl
990d61f41a - fix compile error 2019-03-16 04:18:35 +01:00
Christoph Oelckers
dbd6c2eabf - removed the automatic system language detection for Windows.
Default language is now always American English, just like on Linux and macOS.
2019-03-16 00:07:18 +01:00
Magnus Norddahl
05f0730c9d - convert PPStep to PPRenderState 2019-03-15 23:24:31 +01:00
Christoph Oelckers
2573ca8ac4 - disabled the error message spam from the demo loop
These messages are useful for the playdemo CCMD, but since the demo loop is mostly non-functional anyway they better be disabled there.
2019-03-15 12:18:12 +01:00
alexey.lysiuk
c0d843b596 - fixed crash on startup inside userinfo_t::GetGender()
This function is required for localization handling but when it's called userinfo_t may not be fully initialized yet

https://forum.zdoom.org/viewtopic.php?t=63959
2019-03-15 13:12:53 +02: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
Christoph Oelckers
50ebca20bb - do not use iswspace to check raw UTF-8.
At least under MSVC this function reports 0x85 as whitespace, but it is a continuation byte for UTF-8 sequences and may not be treated as whitespace.
2019-03-14 21:42:02 +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
Rachael Alexanderson
5fef5d13ce Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2 2019-03-13 22:08:11 -04: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
Christoph Oelckers
613cf15b31 - fixed: player_t::GetGender needs to check if the CVAR exists.
This function can get called before the player's userinfo is available
2019-03-13 18:06:59 +01:00
Magnus Norddahl
625cc11ea2 - capture screenshot support 2019-03-13 14:10:13 +01:00
Chronos Ouroboros
8dea4f9523 Fixed arrays of dynamic arrays causing a compilation error. 2019-03-13 12:42:45 +01:00
Magnus Norddahl
5d2917bb4f - implement RenderTextureView 2019-03-13 11:14:42 +01:00
Christoph Oelckers
04bf975796 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-03-13 10:39:22 +01:00
Christoph Oelckers
561444f921 added printlocalized CCMD to check strings in-game. 2019-03-13 10:38:51 +01:00
Chronos Ouroboros
7165b40657 Fixed nested dynamic array indexing causing a compilation error. 2019-03-13 10:23:06 +01:00
Christoph Oelckers
43ca814da8 - fixed: The FFont* serializer was unable to handle null pointers. 2019-03-13 07:11:46 +01:00
Christoph Oelckers
7f8b048347 - added a fallback mapping for the typographic upper quotation mark to the generic form 2019-03-13 07:07:56 +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
a26e2cd8e0 Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2 2019-03-12 16:17:39 +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
alexey.lysiuk
3dd25bd4c0 - implemented OpenGL / Vulkan switch in Cocoa backend 2019-03-12 16:12:23 +02:00
alexey.lysiuk
7b5eedea32 - implemented OpenGL / Vulkan switch in SDL backend 2019-03-12 16:12:14 +02:00
Magnus Norddahl
aa84f7b3e6 - fix shaders only being loaded from the engine pk3 2019-03-12 15:02:21 +01:00
Rachael Alexanderson
6be5769746 - implement backend switcher for Windows. NYD: Still needs to be done for Mac and Linux 2019-03-11 23:36:44 -04: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
2d5210ccf2 - added lowercase->uppercase mapping for ß and moved all glyphs to the uppercase code point for consistency. 2019-03-12 00:00:54 +01:00
Christoph Oelckers
8b4690bc44 - use international date format for all places that print a date.
The most important one is the autosave tagging. This was done because the old printout was missing the year and printed the month as a 3 character English string, sabotaging any attempt to sort the autosaves by anything meaningful.
2019-03-11 21:21:37 +01: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
60c5350e8b - added an option to use the new console font for centered messages.
Like the notification messages, this is optional to not affect existing settings.
2019-03-11 19:54:03 +01:00
Christoph Oelckers
ed1615babb - allow using the console font for notification messages (e.g. item pickup)
This is optional because it impacts display of game content, but for readability the new font definitely has advantages.
2019-03-11 19:09:37 +01:00
Christoph Oelckers
e2d3c6feea - use the new console font for the chat input. 2019-03-11 18:42:28 +01:00
Christoph Oelckers
414a38c19d - use the new console font to display stat output. 2019-03-11 18:27:46 +01:00
Christoph Oelckers
109413b3a1 - fixed cursor positioning in console with double-wide characters present. 2019-03-11 18:24:42 +01:00
alexey.lysiuk
d5410a8828 - added missing #include
src/c_console.cpp:167:7: error: no type named 'u32string' in namespace 'std'
2019-03-11 10:39:06 +02:00
Christoph Oelckers
02836b3c3f - fixed: The command line parser of the console was incapable of handling non-ASCII characters. 2019-03-11 00:26:37 +01:00
Christoph Oelckers
4532c2c489 - fixed crash when inserting CJK text. 2019-03-11 00:06:44 +01:00
Christoph Oelckers
b605ae5213 - reactivated the formatting for the secret hints.
This had to be temporarily disabled for the font switch and wasn't undone afterward.
2019-03-10 23:29:33 +01:00
Christoph Oelckers
561d5a3d8b - fixed: IsPointInLevel must explicitly check for minisegs, which can be one-sided on maps with unclosed sectors.
Obviously, in such a case it is impossible to decide whether a point is really inside the map, so if this happens, behavior is undefined.
2019-03-10 19:07:48 +01:00
Christoph Oelckers
90c47e7497 - fixed character counting in TypeOn HUD message. 2019-03-10 18:54:57 +01:00
Christoph Oelckers
ec476877ac - handle double wide characters in the console buffer. 2019-03-10 17:54:03 +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
alexey.lysiuk
f2a311dfca - fixed mouse cursor positioning in Cocoa backend with Vulkan renderer 2019-03-10 13:37:36 +02:00
alexey.lysiuk
34cbb7c276 - added HiDPI support to Cocoa backend with Vulkan renderer 2019-03-10 13:36:18 +02:00
alexey.lysiuk
0909a67676 - removed explicit deallocation of Cocoa window 2019-03-10 11:00:24 +02: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
alexey.lysiuk
784e0347c0 - removed excessive std::move() reported by Clang
src/utility/xlsxread/xlsxio_read.cpp:69:27: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
2019-03-09 16:36:12 +02:00
alexey.lysiuk
bc69941514 - fixed compilation of Cocoa backend
src/posix/cocoa/i_video.mm:297:2: error: use of undeclared identifier 'SetFlash'
2019-03-09 16:34:54 +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
alexey.lysiuk
f7a95f612e - extended RPATH for macOS with executable's directory
Dynamic libraries placed in the directory with the main executable now can be loaded by dlopen() function
This is required in order to enable Vulkan support without additional steps like SDK installed in the system
2019-03-09 15:46:18 +02: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
d2475b68d0 - removed unnecessary variable clear. 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
8270abcb7e Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2 2019-03-09 10:20:28 +01: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
Christoph Oelckers
54efbf3edd Merge remote-tracking branch 'remotes/origin/master' into vulkan2 2019-03-09 08:55:40 +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
alexey.lysiuk
c30b1a1f4a - split base and OpenGL Cocoa framebuffers properly 2019-03-08 14:39:00 +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
Sterling Parker
81059aee1d Fix faulty multiplication logic for LookScale
Turns out the entire thing was getting shortcutted because FOVScale is 0 unless set explicitly or via A_ZoomFactor.
2019-03-07 21:22:33 +01:00
Sterling Parker
ae1a1df02d Add LookScale variable on weapon
This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale / DesiredFOV hacks.
2019-03-07 21:22:33 +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
Christoph Oelckers
0fa4e03db6 - process escape sequences for episode and skill names
For these, colorization is a desirable feature.
2019-03-05 00:22:26 +01:00
Christoph Oelckers
97ae74081a - special remapping for the Hungarian double accented letters.
Instead of entirely stripping away the accent when they are not found, let's go to the Umlaut-variants first.
2019-03-04 20:06:19 +01:00
Alexander
77cb9ae866 added MakeScreenShot and MakeAutoSave functions to FLevelLocals 2019-03-04 19:16:51 +01:00
Christoph Oelckers
525b0214a7 - fixed macro substitution.
It was retrieving the macro from the wrong string.
2019-03-04 17:31:11 +01:00
alexey.lysiuk
a3554bda70 - replaced all usages of insecure vsprintf() function 2019-03-04 17:35:38 +02: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
Rachael Alexanderson
068522f9c8 - fix building on FreeBSD 2019-03-03 17:08:45 +01:00
Christopher Bruns
73c7afe409 Fix typo and add clarifying comment. 2019-03-03 16:15: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
Rachael Alexanderson
8fab907885 - set language cvar to global config, it should not be game-specific 2019-03-03 16:14:58 +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
Christoph Oelckers
3698a5edc1 - replaced the assignment operator in player_t with a named function.
This didn't behave like an assignment operator so it shouldn't be one, especially since the two places where it got called need different functionality.
2019-03-03 12:12:17 +01:00
Christoph Oelckers
b3cff43be3 - fixed: SBARInfo's Tick function was using actor references from its last Draw operation.
Between these two calls these can change so these need to be retrieved each time either Draw or Tick are called.
2019-03-03 09:59:08 +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
1d003ca3fc Merge branch 'vulkan2' of https://github.com/coelckers/gzdoom into vulkan2 2019-03-03 00:06:33 +01:00
Magnus Norddahl
cab441591f - add some of the same checks that glrenderstate uses 2019-03-03 00:06:17 +01:00
Christoph Oelckers
6ba8fee5c2 Merge branch 'master' into vulkan2 2019-03-03 00:04:19 +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
Christoph Oelckers
eacc6c8e08 - fixed: ACS's LocalAmbientSound did not check the activator before calling its methods. 2019-03-02 23:01:42 +01:00
Magnus Norddahl
656a3b8fba - allocate more descriptors in the pool 2019-03-02 22:41:36 +01:00
Christoph Oelckers
0dc3485990 - fixed: in CollectWithinRadius, make pos a value variable instead of a reference.
The underlying data here can be reallocated and invalidate what it points to.
2019-03-02 22:10:44 +01:00
Magnus Norddahl
ef30ddbd40 - fix typo 2019-03-02 21:34:34 +01:00
Magnus Norddahl
763e33badb - fix typo 2019-03-02 21:12:50 +01:00
Christoph Oelckers
0f184a0f28 - reject all DMX sounds shorter than or equal 8 bytes.
8 bytes is the minimum header size for DMX, so for one byte of sample data it has to be 9 bytes.
This was causing access to invalid memory when trying to read the header of something too short.
For other file formats this is of no concern because none has a header this short.
2019-03-02 21:10:24 +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
Christoph Oelckers
d893299185 - fixed: static event handlers must also receive WorldLoaded events on loading a savegame. 2019-03-02 13:50:58 +01:00
Christoph Oelckers
9ab57e242b - fixed: PlayerStartStomp must check for NOTELEFRAG. 2019-03-02 13:35:35 +01:00
Christoph Oelckers
00febf0498 - fixed: FLevelLocals did not set the owner for its event manager. 2019-03-02 13:24:52 +01:00
Christoph Oelckers
0febe20a08 - fixed: Unmorphing a monster did not clear its UNMORPHED flag. 2019-03-02 13:15:38 +01:00
Christoph Oelckers
4cf90d70ae - fixed: cl_maxdecals did not reset the decal counter when deleting decals. 2019-03-02 12:58:28 +01:00
Christoph Oelckers
5f6198f4e4 - let IWAD and PWAD BigFonts override BigUpper for consistency. 2019-03-02 12:54:46 +01:00
Christoph Oelckers
ce1ecd0d4b - implemented string table macros. 2019-03-02 12:06:24 +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
Christoph Oelckers
fa123f37c7 - adjustment for renamed spreadsheet. 2019-03-01 22:04:39 +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
Christoph Oelckers
a5d9d334d2 - fixed: The lump renaming was not performed for Doom, even for those pieces where needed. 2019-03-01 20:21:15 +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
alexey.lysiuk
2939bc701e - fixed compilation error with GCC and Clang
src/intermission/intermission_parse.cpp:941:2: error: no matching function for call to 'F_StartFinale'
2019-03-01 10:06:34 +02: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
Marisa Kirisame
bc5baae827 Folder casing changes for Linux compatibility. 2019-02-28 23:56:29 +01:00
Christoph Oelckers
23a62cbe12 - added a 'testfinale' CCMD, so that the layout of finale texts can be tested more easily 2019-02-28 23:52:47 +01:00
Christoph Oelckers
86620aaba5 - allow reading xlsx spreadsheets directly for language definitions. 2019-02-28 22:21:55 +01:00
Christoph Oelckers
cad2f49ceb - use BigUpper font for option menu captions. 2019-02-28 22:19:53 +01:00
Major Cooke
b48f7da43e Renamed to musplaying. 2019-02-28 18:47:28 +01:00
Major Cooke
210af0d414 Exported MusPlayingInfo to ZScript.
- Allows grabbing the currently playing song, base order, and loop properties.
2019-02-28 18:47:28 +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
Christoph Oelckers
fab8fed8df - reformat the intermission screen if the text is very long.
This will ensure better visibility on widescreen displays, at least.
2019-02-27 22:52:08 +01:00
Magnus Norddahl
c2e0eba270 - hook up vid_vsync and vk_debug 2019-02-27 22:20:18 +01:00
nashmuhandes
407983749a Added a master volume setting. 2019-02-27 14:17:45 -05: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
Christoph Oelckers
90ab830ff9 - added a workaround for mods using the name CONFONT directly.
In the old system it just loaded the font a second time, but with the folder based setup there is no file named CONFONT anymore so it needs to be dealt with explicitly.
2019-02-26 19:19:03 +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
Christoph Oelckers
4a427694ac - changed calculation of the scaling value for the option menu.
This was already far too generous and caused space problems, but with localization these became a lot worse, so now it will try to allocate at least 640 virtual pixels for the menu width and only go below that for small resolution ranges where the smaller value would result in too small text.
2019-02-26 00:07:09 +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