Commit graph

1008 commits

Author SHA1 Message Date
Magnus Norddahl
5cc21c5a4a Upgrade glslang to 11.10.0 2022-06-22 07:55:19 +02:00
Magnus Norddahl
32d059e432 Tell the debug layer what the name of the shader is
Always bind both buffer descriptor sets
2022-06-22 07:55:19 +02:00
Magnus Norddahl
821bd3b460 Adjust some init/deinit code and rename some things 2022-06-22 07:55:19 +02:00
Magnus Norddahl
4644221454 Make sure everything has finished rendering or uploading before changing the render buffers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
24bf0c685c Remove GetVulkanFrameBuffer() so nobody is tempted to call it in the future 2022-06-22 07:55:19 +02:00
Magnus Norddahl
1c4798f059 Move lightmap and shadowmap textures to VkTextureManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
3d43819a3f Move null texture to the texture manager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
63d40ffbf9 Avoiding adding empty objects to the delete list 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ba88303527 Move more code into the correct managers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
69cfadf411 Manage buffers in VkBufferManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ef802b85e7 Manage postprocess texture lifetimes in the same way as for hw textures 2022-06-22 07:55:19 +02:00
Magnus Norddahl
b3316fbe21 Let VkTextureManager manage the VkHardwareTexture resources
Let VkDescriptorSetManager manage the VkMaterial resources
Add the resources to the delete list instead of freeing them immediately as the backend cannot rely on exactly when the hardware renderer decides to destroy them
2022-06-22 07:55:19 +02:00
Magnus Norddahl
298c023b1d Add buffer and texture managers for handling object lifetimes 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8004532cba Begin detaching internal vulkan object lifetimes from the hardware renderer layer 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8ebad1003b Split postprocess part into more files 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ecd2dc6300 Move command buffers out of vk_framebuffer and into its own manager class 2022-06-22 07:55:19 +02:00
Magnus Norddahl
a4e82766d7 Move inlined builder functions to the cpp file and remove FixedVector (none of it is on the critical path anyway) 2022-06-22 07:55:19 +02:00
Magnus Norddahl
3f28a7e5e4 Add some more pipeline barriers hoping it will make any difference to Nvidia drivers crashing on a worker thread (yay, nvidia!) 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8517c9713a Move descriptor sets from VkRenderPassManager into a new class called VkDescriptorSetManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
e26fb04adf Some minor bug fixes 2022-06-22 07:55:19 +02:00
Magnus Norddahl
138d3e86ce Fix null pointer crash when writing debug messages 2022-06-22 07:55:19 +02:00
Magnus Norddahl
0c1aab074c Hook up the acceleration structure to the shader and start shooting some rays! 2022-06-22 07:55:19 +02:00
Magnus Norddahl
e08965b0b3 Improve vk_debug output a lot by throwing away the useless parts of the message and limit the callstack to the first 5 gzdoom calls 2022-06-22 07:55:19 +02:00
Magnus Norddahl
0c90a72c66 Upgrade SPV and GLSL version if using Vulkan 1.2 2022-06-22 07:55:19 +02:00
Magnus Norddahl
97073410c4 Upload acceleration structures for the level mesh 2022-06-22 07:55:19 +02:00
Magnus Norddahl
bf1732904f Enable vulkan 1.2 and ray tracing extensions, if available 2022-06-22 07:55:19 +02:00
Magnus Norddahl
c6416a2afe Update volk to a newer version 2022-06-22 07:55:19 +02:00
Christoph Oelckers
d5888dfa0a - validate fountaincolor before using it. 2022-06-21 19:47:08 +02:00
Jan Engelhardt
3213f046c2 Resolve build failure on i686-linux
gcc had to say:
gzdoom-g4.8.0/src/common/engine/stats.h:83:13: error: 'CPU' was not declared in this scope
   83 |         if (CPU.bRDTSC)
2022-06-19 07:53:21 +02:00
alexey.lysiuk
cd998edf86 - added detection of macOS Ventura 2022-06-18 13:14:48 +03:00
Christoph Oelckers
14fc2a011e - ZScript: don't allow multiple assignment syntax with only one element. 2022-06-16 10:47:11 +02:00
Christoph Oelckers
74866c28ce - allow taking screenshots in cutscenes. 2022-06-16 09:51:09 +02:00
Christoph Oelckers
18115ef455 - fixed JIT target function for GetTimeFrac.
I_GetTimeFrac has default parameters so it cannot be used directly.
2022-06-16 09:34:40 +02:00
Christoph Oelckers
c5eec7b8bb - fixed: For cutscenes the alternative clean scaling factors need to be activated.
This setting was at odds with the internals of the intermission and summary screen handlers.
2022-06-16 09:18:27 +02:00
Christoph Oelckers
e62fe65d00 - silenced a few more float conversion warnings. 2022-06-16 08:21:27 +02:00
Magnus Norddahl
34f1b23c3f Fix the discolored sky bug 2022-06-13 21:34:30 -04:00
Christoph Oelckers
851a211be2 - fixed some warnings 2022-06-13 00:08:08 +02:00
RaveYard
519f9f4298 Fix JIT pointer offsets 2022-06-12 17:57:44 +02:00
RaveYard
f9bf6f9311 Implement FVector ZScript for Actor Scale 2022-06-12 17:57:44 +02:00
Christoph Oelckers
013f2003e8 Revert "-got rid of shared_ptr in postprocessing system"
This reverts commit 40872a2b21.

This crashed on Vulkan in a very weird way.
2022-06-09 09:16:58 +02:00
Christoph Oelckers
eb56eb380e - reinstated con_scale. 2022-06-08 16:42:32 +02:00
Christoph Oelckers
07a8701f8d - make sure the last notch on the start screen is rendered. 2022-06-07 23:14:17 +02:00
Ricardo Luís Vaz Silva
121045e48d move relative path resolution earlier, to prevent problems with include deduplication 2022-06-07 20:16:50 +02:00
Ricardo Luís Vaz Silva
6f6942609c fix relative include path when loading folders 2022-06-07 10:02:12 -04:00
Christoph Oelckers
9454ba1009 - eliminated more unneeded shared_ptr’s. 2022-06-07 14:09:00 +02:00
Christoph Oelckers
40872a2b21 -got rid of shared_ptr in postprocessing system 2022-06-07 13:59:00 +02:00
Christoph Oelckers
c7798d5503 - use a unique_ptr for the GL debug object.
This doesn’t get shared and the containing class doesn’t need to be copied so this is sufficient.
2022-06-07 00:11:56 +02:00
Christoph Oelckers
989dcfcf1c - avoid storing texture pointers in longer lived data
* these circumvented all internal texture replacement logic. Texture objects should only be resolved right before drawing them
* added an explicit ‚tilebackground‘ option for the summary screen to fix problems with bad decision logic based on incorrect texture type checks. Automatic tiling no longer depends on texture type, but solely on size.
* added a DrawTexture variant that can be passed a texture ID instead of a pointer
2022-06-07 00:00:54 +02:00
Christoph Oelckers
d1caf3a471 - made TObjPtr as trivial as possible.
Mainly to avoid problems with Raze, but eliminating this constructor lets us catch erroneous local definitions via 'auto', which can cause major problems if left undetected.
2022-06-06 15:19:31 +02:00
Christoph Oelckers
71ce8aa79a - block wipes when streaming movies are playing.
For synchronization purposes they cannot be interrupted by the wipe loop.
This also groups the cutscene state in a struct for readability purposes.
2022-06-06 12:30:47 +02:00
Christoph Oelckers
c62e14d2c1 - Backend update from Raze
Mostly cleanup and better separation of game/backend concerns.
2022-06-06 12:09:29 +02:00
Christoph Oelckers
a59436c4c2 - fixed auto-scaling for console. 2022-06-05 12:34:22 +02:00
Christoph Oelckers
e266fb1c16 - removed all vid_fps offsetting.
To compensate there is now also a "stat fps" which displays the FPS rate in the lower left corner. This had to go because unconditionally altering positions was causing problems with custom HUDs.
2022-06-05 12:16:56 +02:00
Christoph Oelckers
efaaa3c118 - added Raze-style HUD scaling. 2022-06-05 10:57:21 +02:00
Christoph Oelckers
0ee1cc85ec - fixed: The IVF decoder never accounted for odd dimensions when applying the UV subsampling.
To simplify the code the 'optimized' loop was replaced with one iterating over all pixels - even in the worst of cases the little savings are hardly performance relevant.
2022-06-05 08:09:50 +02:00
Christoph Oelckers
608b387e04 - use correct mapping for IBM437’s lower characters
For use on text screens these need to be mapped to the printable characters they represent on screen, not the control characters of ASCII.
2022-06-03 00:12:45 +02:00
Christoph Oelckers
05c846c4eb - fixed: the last column of a text-type start screen was not rendered. 2022-06-02 08:32:39 +02:00
Christoph Oelckers
092eb1eb6f - use StartupTexture, not HeaderTexture to clear the screen.
HeaderTexture does not exist for the Endoom screen.
2022-06-01 18:00:03 +02:00
Christoph Oelckers
c11729c2bb - fixed: Vulkan descriptor sets must check the real translation, not just the translation ID.
In particular the one for the menu's player sprite and ACS translations can alter a translation ID's actual translation at run time, these changes never triggered a descriptor set change.
2022-06-01 16:47:54 +02:00
Christoph Oelckers
298407aaf3 - workaround for clearing the start screen in Vulkan.
There seems to be a bug in the backend, but I have no idea what's wrong.
Clearing the start screen with a ClearRect call renders the 2D drawer in an unstable state. So for now, clear the screen by rendering a texture, but with light color black, which produces the same effect without later breaking stuff.
2022-06-01 16:02:24 +02:00
Rachael Alexanderson
c8156fa581 - add keybinds for F17-F24 2022-06-01 10:23:08 +02:00
Christoph Oelckers
3b87c19b5b - fixed startuo screen creation 2022-06-01 10:20:32 +02:00
Christoph Oelckers
7787a410ea - Startscreen fixes.
* for Strife the game palette must be loaded before the start screen.
* increase update frequency of start screen to roughly 35 fps
* fixed Strife's laser sprite names.
* do not show the native progress bar if a graphical start screen is used.
2022-06-01 09:30:20 +02:00
Christoph Oelckers
da30b6f6f0 - fixed some GCC warnings 2022-06-01 08:37:00 +02:00
Christoph Oelckers
077aa6b0ae - cleaned out some duplicates in Posix platform code 2022-06-01 08:37:00 +02:00
Christoph Oelckers
59cddf1601 - hooked up graphical start screens with the in-game renderer. 2022-06-01 08:37:00 +02:00
Christoph Oelckers
79f4a9c0f3 - removed the native graphical startup screens.
ENDOOM is already working with this commit, the start screens still require some work to connect them.
2022-06-01 08:37:00 +02:00
Christoph Oelckers
d6886ed44f - route the StartScreen#::Net... functions through a global interface.
These will require different treatment later, so best only have one place where each method is called.
2022-06-01 08:37:00 +02:00
Christoph Oelckers
21c60c931e - warning fixes and cleanup from old startscreen branch. 2022-06-01 08:36:59 +02:00
Christoph Oelckers
1aa3a5ea16 - platform independent classes for start screen rendering.
These use the internal 2D drawer. Not hooked up yet.
2022-06-01 08:36:59 +02:00
Christoph Oelckers
3b3a3a31e8 - Win32 i_main.cpp cleanup
Moved SetWndowTitle into the menu class
Removed the dead Windows session code
Removed the unused modules for Win32 core DLLs.
removed dynamic function calls for post-XP features
2022-06-01 08:36:59 +02:00
Magnus Norddahl
6670bc09b9 Create a MainWindow class that manages the main win32 window of the application 2022-06-01 08:36:59 +02:00
Christoph Oelckers
2c69afa118 - fixed SDL version check 2022-05-31 11:00:10 +02:00
RicardoLuis0
d6516f5c3b Relative Includes for ZScript 2022-05-31 09:09:42 +02:00
Rachael Alexanderson
f1ad0961be - remove m_filter and simplify related code 2022-05-29 17:58:06 +02:00
Christoph Oelckers
b218b8de6a - removed the unused SCREENPITCH #define 2022-05-23 15:52:30 +02:00
Christoph Oelckers
3ad6793ba3 - fixed yet another index issue in the shader code. 2022-05-18 20:14:43 +02:00
Christoph Oelckers
1d9da40f5b - fixed user shader compilation in OpenGL 2022-05-15 11:37:46 +02:00
Christoph Oelckers
648dc87101 - fixed two index out of range issues in Vulkan's shader compiler code. 2022-05-15 09:12:30 +02:00
Christoph Oelckers
c95b1b0149 - fixed shader selection logic in OpenGL. 2022-05-14 12:08:31 +02:00
Christoph Oelckers
c23abd1930 - silenced some warnings. 2022-05-14 11:55:56 +02:00
Christoph Oelckers
2be13e1b9f - changed shader loader to load only one shader at a time
This is merely preparation - the actual loading is still in one uninterrupted piece.
2022-05-13 08:22:22 +02:00
Magnus Norddahl
1452dd06a7 Fix that vk_debug doesn't output anything for newer versions of the vulkan sdk 2022-05-13 08:18:17 +02:00
Christoph Oelckers
beeb5f00aa - added JPEG YCCK decoding.
Just for completeness - the formula was pieced together from stb_image's handling.
2022-05-12 12:14:14 +02:00
Rachael Alexanderson
c9e01353b0 - define ARM64's endianness in rapidjson 2022-05-10 16:43:57 -04:00
Christoph Oelckers
3fb292ac71 Revert "- added a bit of hackery so that compatmode CVAR can be set up on startup"
This reverts commit c4408d8536.

This does not work. It always overwrites the saved compatibility settings with the current compatmode.
2022-05-06 08:31:16 +02:00
temx
0dfa632d29 Fix off-by-one in Vulkan multisample sample count selection 2022-05-04 18:19:29 +02:00
Christoph Oelckers
c86d9f60d0 - added handlers to load Strife’s startup screen images as textures 2022-05-03 00:04:28 +02:00
Christoph Oelckers
73abb2dfac - added image source handlers for Hexen’s special startup image types 2022-05-02 00:28:56 +02:00
Christoph Oelckers
265122bb97 - removed all remaining code for handling 4 bpp startup screens. 2022-05-01 15:04:58 +02:00
Christoph Oelckers
3f2374c0f9 - use 8 bit for Hexen start up as well. 2022-05-01 14:59:12 +02:00
Christoph Oelckers
82fe5b8150 - use 8 bit bitmaps for Heretic's startup screen. 2022-05-01 14:46:09 +02:00
Christoph Oelckers
010f41a3aa - load the hex font as early as possible. 2022-05-01 14:12:21 +02:00
Christoph Oelckers
7832ada2fc - use the hex font for the Heretic/Endoom text screens. 2022-05-01 13:41:03 +02:00
Christoph Oelckers
0a208597c6 - fixed return type of MSTimeF script function. 2022-04-30 12:13:20 +02:00
Christoph Oelckers
72be9bcc27 - pass ´hashfile´ to filesystem as parameter
Avoid global variables, also check args as late as possible.
2022-04-29 02:20:35 +02:00
Christoph Oelckers
65a37856ec -fix TArray::Append with rvalue parameter
This must clear the source array to obey move rules.
2022-04-29 02:10:43 +02:00
Christoph Oelckers
2bc787b1cc - only check „allowduplicates“ for the final file system init
The other calls to InitMultipleFiles should not use it.

Also fix the check to not skip some entries.
2022-04-29 01:36:06 +02:00
Christoph Oelckers
bd885977e8 - added MSTimef script function
This also deprecates MSTime due to value range / overflow issues.
2022-04-29 00:47:06 +02:00
Christoph Oelckers
739b015a4d - reinstated code that has gotten lost.
Fixes texture trimming.
2022-04-28 21:14:50 +02:00
Christoph Oelckers
0de3ff81e1 - add wipe transition support to the screenjob runner. 2022-04-26 20:50:37 +02:00
Christoph Oelckers
4e72ea1cfa - Backend update from Raze 2022-04-26 20:50:36 +02:00
Christoph Oelckers
feb65bcb99 - moved wipe code into the backend 2022-04-26 20:50:36 +02:00
Christoph Oelckers
ccdf5fb23c - moved the wipe loop out of d_main.cpp into f_wipe.cpp
As preparation fior fully moving it into the backend
2022-04-26 20:50:36 +02:00
Christoph Oelckers
336c45aaa4 - SCreenjob fixes
Still doesn’r show anything but we got it all set up now.
2022-04-26 20:50:35 +02:00
Christoph Oelckers
7ed8d3b3e2 - screenjob. fixes from Raze 2022-04-26 20:50:35 +02:00
Christoph Oelckers
390bf58698 - first stage of migrating intermissions to screenjobs. 2022-04-26 20:50:35 +02:00
Christoph Oelckers
d994369fd0 - timer code fixes. 2022-04-26 20:50:35 +02:00
Christoph Oelckers
9898ee542c - route all accesses to gameaction from the backend through the sysCallbacks.
gameactions are frontend specific so this needs to be decoupled.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
e5baef837a - text screen helper stuff for cutscene system. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
df0412d634 - a few things may not be static anymore. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
5aaabbeb01 - did some project file cleanup. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
69a7715a02 - added all the prerequisites for the cutscene system from Raze:
* libvpx library
* libsmackerdec
* playmve
* MoviePlayer class.
* ScreenJob engine core.
2022-04-26 20:50:34 +02:00
Kevin Caccamo
ecc0afd2f2 Fix usage of -1 as OBJ model FrameIndex
So that what is said on the ZDoom Wiki (see https://zdoom.org/wiki/MODELDEF#Notes) holds true for OBJ models.
2022-04-24 19:40:08 +02:00
Christoph Oelckers
4aa04f11ce - zip64 handling 2022-04-22 11:10:25 +02:00
Rachael Alexanderson
0fa830ddd7 Revert "- change cvars gl_custompost and gl_customshader to archive and save to .ini since there are uses for these shaders beyond mere debugging."
This reverts commit 2420371c46.
2022-04-21 02:49:39 -04:00
Rachael Alexanderson
991b4725dd Revert "- don't modify gl_customshader cvar in GLES backend; the backend will not show custom shaders anyhow"
This reverts commit ab27d1dd33.
2022-04-21 02:48:07 -04:00
Christoph Oelckers
2f90f49931 - validate the index argument for GetSavegame and abort if out of range. 2022-04-16 22:27:59 +02:00
Christoph Oelckers
c8296f0d7c - cast arguments for fastcos/sinbam
Use xs_Float to ensure proper wraparound which is important here.
2022-04-15 22:31:12 +02:00
Christoph Oelckers
a669d3718f - copy size info from defaults when starting a list menu block. 2022-04-15 22:30:11 +02:00
Christoph Oelckers
c4408d8536 - added a bit of hackery so that compatmode CVAR can be set up on startup 2022-04-12 00:31:31 +02:00
Christoph Oelckers
dfdf330722 - make menu scale adjustments for ultra-wide aspect ratios. 2022-04-12 00:30:43 +02:00
Christoph Oelckers
a97a2ec133 - backend sync with Raze
Nothing really useful here…
2022-04-11 00:26:50 +02:00
Christoph Oelckers
45e7badb71 - avoid passing game structs to common backend code
InitLightmap was using a „FLevelLocals“ pointer, better pass the needed elements separately instead.
2022-04-11 00:01:30 +02:00
Emanuele Disco
71dedf6c87 Fixed GUS Emulation with DMXGUS(C) lump conf.
- changed default value for midi_config to empty string since gus is not working with sf2 file
- fixed SetupDMXGUS not loading lump correctly, wrong use of CheckNumForFullName
- midi_config default to empty string, since lzdoom.sf2 doesn't seem supported (distorted sound)
- added absolute paths to FZipPatReader so we can add custom patches to resource files by using gus_patchdir and/or ULTRADIR variable (some custom maps has custom patches that can be added this way without putting them inside the resource file or in the same folder of the configuration file)
- set timidity_reverb_level min value to 0 in menudef.txt, set to 9 by mistake?
2022-04-09 22:45:31 +02:00
Christoph Oelckers
e0289eb0ac - fixed Font struct export and removed the duplicate handler. 2022-04-07 15:11:50 +02:00
Marisa Kirisame
eeb67bcec3 Use RDTSC equivalent on AARCH64. 2022-03-25 17:01:39 +01:00
Rachael Alexanderson
b9e0473392 - move richpresence into common code to be sync with Raze 2022-03-18 03:36:34 -04:00
Marisa Kirisame
7ba5a74f2e correct preprocessor fall-through for stats.h (linux) 2022-03-15 18:12:53 -04:00
Marisa Kirisame
0937068dad Fix compilation on GCC7. 2022-03-15 18:12:53 -04:00
Marisa Kirisame
9578c23aa1 Use RDTSC on Linux if possible for stats. 2022-03-15 18:12:53 -04:00
Rachael Alexanderson
8fe07f1449 - add steamappid field for DRPC 2022-03-10 00:03:50 -05:00
Rachael Alexanderson
85c432c699 - Discord RPC presence. Adds new IWADINFO and GAMEINFO keys: DiscordAppId - this should point to your AppId for your game. It will use a default GZDoom one if not found. 2022-03-09 22:45:59 -05:00
Rachael Alexanderson
eb6aa9f5d3 - correct the processor fall-through on stats.h 2022-03-08 17:17:09 -05:00
Rachael Alexanderson
ab27d1dd33 - don't modify gl_customshader cvar in GLES backend; the backend will not show custom shaders anyhow 2022-03-07 08:46:45 -05:00
Rachael Alexanderson
28d9fe68ae - add duplication checking to file list, prevent loading the same file twice unless explicitly asked by the user 2022-02-17 01:05:39 -05:00
Chronos Ouroboros
590f45441f - fix the wrong register type being freed when initializing arrays. 2022-02-17 00:19:34 -05:00
nashmuhandes
396bac5e4f - Initialize some variables in FModelVertex::Set
- Fix wrong normal vector in the FModelVertexBuffer constructor

This fixes models having strange flickering when the model animation frame changes
2022-02-14 12:16:45 -05:00
Chronos Ouroboros
238952da35 - fixed local array initialization for const values. 2022-02-13 22:42:15 -05:00
Chronos Ouroboros
2f56ff3833 - fixed local vector array initialization. 2022-02-12 10:44:58 -05:00
Emile Belanger
3ff27b4281 GLES: Fix data buffer resize 2022-02-10 23:46:52 +01:00
Rachael Alexanderson
e7e5bd99fc - fix compiling on Linux/et-al 2022-02-01 12:32:44 -05:00
Rachael Alexanderson
267e714bf1 - implement direct cvar linking to custom shader uniforms 2022-02-01 11:42:55 -05:00
Rachael Alexanderson
95c5449a75 - silence some warning spam in textures.h 2022-01-26 18:30:55 -05:00
Christoph Oelckers
6a92470846 - made a few more names common.
These are needed by the ZScript compiler backend.
2022-01-24 19:05:46 +01:00
Christoph Oelckers
673f06c05f - make m_alloc optional for tarray and memarena 2022-01-24 19:05:46 +01:00
emily
20d16381f8 Add TexMan.SetCameraTextureAspectRatio
Allows ZScript to change the aspect ratio of a camera texture.
2022-01-24 12:18:55 -05:00
Rachael Alexanderson
688e5ac694 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps-new 2022-01-24 12:10:18 -05:00
drfrag
6112307cc8 - Fix decals in Softpoly.
(partial revert of "- cleanup of the revised y-clamping feature.")
2022-01-24 12:01:34 -05:00
Blue Shadow
fefb0e9702 - make m_quickexit a global CVAR 2022-01-24 12:01:04 -05:00
nashmuhandes
db92e63e22 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2022-01-22 18:06:05 +08:00
Rachael Alexanderson
4c4fafc2c0 - add debug ccmds to manipulate custom postprocess shaders and their uniforms from the console 2022-01-20 22:38:46 -05:00
nashmuhandes
8ea47fdcc3 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2
# Conflicts:
#	src/common/engine/namedef.h
2022-01-21 01:39:37 +08:00
nashmuhandes
f79bbed130 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2022-01-20 14:19:45 +08:00
Christoph Oelckers
851d058a4b - split up namedef.h into a shared and game specific part and cleaned out many unused names. 2022-01-20 00:14:08 +01:00
Xaser Acheron
25f28c4b50 fix mbf21 A_ConsumeAmmo taking 0 ammo instead of 1 if ammopershot field not set (need to amend the spec for this, argh) 2022-01-18 08:06:29 +01:00
Christoph Oelckers
e6c6471e2f - fixed logic error with depth bias state in hardware renderer. 2022-01-17 00:32:54 +01:00
Christoph Oelckers
84458ddb9f - redid postprocessing shader interface to be free of the player dependency.
This is something that really should be done in higher level code - the shader interface should only concern itself with the shader and not the conditions that block its use.
The Shader class has been redone as a thin wrapper and been deprecated.
2022-01-17 00:07:43 +01:00
Rachael Alexanderson
12ed24d066 - separate i_pauseinbackground and i_soundinbackground - they probably should ultimately be moved out of the sound code 2022-01-15 20:17:11 -05:00
nashmuhandes
57112742fe Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2
# Conflicts:
#	src/common/rendering/gl/gl_shader.cpp
#	src/common/rendering/hwrenderer/data/buffers.h
#	src/common/rendering/v_video.h
2022-01-16 01:57:38 +08:00
Christoph Oelckers
79c9b979d2 - backend update from Raze. 2022-01-11 17:19:16 +01:00
Marisa Heit
a1d0d27278 Make GC::CheckTime 64-bit, just in case. 2022-01-11 13:01:31 +01:00
Marisa Heit
e529f2d4d1 Revert "- be a bit more aggressive with the GC when not running the game loop."
This reverts commit b4d03501af.
2022-01-11 13:01:31 +01:00
Marisa Heit
31549997b4 Fix GC so collection rate is proportional to alloc rate
- Previous comments in dobjgc.cpp suggested that StepMul was used
  to determine how quickly garbage was collected based on how quickly
  memory was being allocated. This was not the case. Now it is.
- Remove calls to CheckGC from the thinkers. With GC running at a
  stable rate (once per frame), there should be no need to inject
  pauses into the collection process to keep it from injecting stutters
  (provided StepMul is sane). The risk of running out of memory because
  we don't run a collection pass absolutely every thinker should be
  practically zero.
- Reduce DEFAULT_GCMUL from 400 to 200, since it does what it says now
  instead of something else.
2022-01-11 13:01:31 +01:00
Christoph Oelckers
64ef03428d - added proper range check to the main sound playing function.
We got a report where this crashed on a bad sound index.
2022-01-07 00:16:30 +01:00
Marisa Kirisame
ee1774e956 Relicense UE1 model loader as MIT.
Match up with the same relicensing that affected umeshtools,
which this loader takes most of its code from.
2022-01-02 18:09:10 +01:00
Christoph Oelckers
e60e6967c0 - whitespace cleanup, updated from Raze. 2022-01-02 12:23:42 +01:00
Christoph Oelckers
3b879c5656 - changed the license of 3 more files free of external contributions to LGPL v2. 2022-01-02 12:08:47 +01:00
Christoph Oelckers
9d2431187d - reverted the license of the stereo3D code to BSD.
None of this was ever put under the GPL by its original author, so it is now back to its original license.
2022-01-02 11:41:32 +01:00
Christoph Oelckers
1c517d19fa - Backend update from Raze.
This is mainly code cleanup from setting the compiler to a stricter warning level.
2022-01-02 11:39:17 +01:00
Major Cooke
bbd91be5d5 Added NoTrim for TEXTURES.
- This can be applied either in or outside of a definition of a sprite.
- Simply adding "NoTrim" inside a definition will apply it.
- Syntax outside of a sprite is `NoTrim <SpriteName>`.
2021-12-14 15:22:01 +01:00
Player701
d0697d9801 - Fixed some issues with the scaling feature of DStatusBarCore::DrawString 2021-11-25 15:42:27 +01:00
Emile Belanger
54ad3433b1 GLES: Load default shader if we try to load user shader to avoid crash 2021-11-21 13:14:02 +01:00
Christoph Oelckers
4530a7b583 - minor optimization to last PR to use a FixedBitArray to reduce stack impact of the check array. 2021-11-21 10:10:58 +01:00
Mitch Richters
b1fea228be - D_ProcessEvents(): Fix bad setup with delayedevents array that was holding pointers to items in the events[] array instead of making a copy. 2021-11-21 10:03:26 +01:00
Mitch Richters
c4f7760ab2 - D_ProcessEvents(): Delay EV_KeyUp events until any EV_KeyDown events for the corresponding key have been processed. This makes the mouse under SDL a lot better. 2021-11-21 10:03:26 +01:00
Rachael Alexanderson
312b5ce66e - add SDL hint to not minimize the window on focus loss 2021-11-19 15:26:04 +01:00
nashmuhandes
2ed99c735d Merge branch 'lightmaps2' of https://github.com/dpjudas/gzdoom into lightmaps2 2021-11-15 02:56:10 +08:00
Magnus Norddahl
8c54015b4b Fix upload and sampling bug for array textures in the vulkan backend 2021-11-14 19:53:10 +01:00
nashmuhandes
879c514120 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-11-14 22:01:03 +08:00
Christoph Oelckers
c598d9bab7 - Backend update from Raze.
* TArray extensions
* MSVC setup so that [[deprecated]] emits warnings.
2021-11-12 09:36:46 +01:00
nashmuhandes
9b853dd275 - Remove ALightProbe from the engine (light probes are now stored inside a map's LIGHTMAP lump)
- Recognize the new ZDRayInfo UDMF keywords
2021-11-11 19:21:45 +08:00
nashmuhandes
1b95f2515b Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-11-10 19:57:49 +08:00
drfrag
5ca3ab3fc9 - Fix abort with dir command and empty string on Windows. 2021-10-30 12:46:36 +02:00
Christoph Oelckers
ce99cda019 - fixed compilation on non-Windows.
In this header we must explicitly use the std:: namespace for min/max.
2021-10-30 11:38:20 +02:00
Christoph Oelckers
77d74a11d1 - removed most templates.h includes. 2021-10-30 10:49:12 +02:00
Christoph Oelckers
eb69bbcae0 - replaced MIN/MAX in common code. 2021-10-30 10:46:17 +02:00
Christoph Oelckers
75c8e0af7c - use the standard library's 'clamp' function instead of our homegrown variant. 2021-10-30 10:21:50 +02:00
Christoph Oelckers
cc617d9085 - Backend update from Raze.
Mostly warning fixes reported by Clang, plus GLES update.
2021-10-30 09:29:21 +02:00
Magnus Norddahl
8e59ed754e Fix vulkan validation errors for wrong image transitions and buffers used after destroyed 2021-10-29 22:38:18 +02:00
nashmuhandes
c2b3600981 Add a render style parameter to Screen.Dim 2021-10-29 21:08:32 +02:00
Magnus Norddahl
d853961a83 Fix vulkan buffers not using the stream usage for the 2d drawer
Add BufferUsageType enum to clarify what kind of usage is expected by the buffer allocated by SetData
2021-10-26 22:43:38 -04:00
alexey.lysiuk
8e1dd7d2c5 - removed obsolete code from Cocoa backend 2021-10-23 13:46:59 +03:00
nashmuhandes
b657478f6f Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-21 20:56:36 +08:00
Rachael Alexanderson
2420371c46 - change cvars gl_custompost and gl_customshader to archive and save to .ini since there are uses for these shaders beyond mere debugging. 2021-10-20 11:23:05 -04:00
nashmuhandes
5c20a5918e Merge branch 'master' of https://github.com/nashmuhandes/gzdoom into lightmaps2 2021-10-20 21:59:37 +08:00
Rachael Alexanderson
bb44f3dcd9 - add cvar r_skipmats - speeds up rendering on slower cards for mods that use a lot of specularity/pbr, effective on both the opengl and vulkan backends 2021-10-20 06:49:45 -04:00
nashmuhandes
ab3146054b Fixed: SBar_DrawTextureRotated was missing the angle parameter 2021-10-19 11:44:34 +02:00
alexey.lysiuk
8ec6c21195 - fixed deprecation warnings in Cocoa backend 2021-10-18 11:03:34 +03:00
alexey.lysiuk
b85282fe5e - disabled nullability warnings in Vulkan memory allocator 2021-10-18 10:27:03 +03:00
alexey.lysiuk
e0cdb1e32e - removed NoVirtualRefCountedBase class 2021-10-18 10:26:21 +03:00
alexey.lysiuk
94b77de5ed - fixed Vulkan memory allocator initialization 2021-10-18 09:50:33 +03:00
alexey.lysiuk
df2d07e0d5 - update Vulkan headers to the latest released SDK
https://github.com/KhronosGroup/Vulkan-Headers/releases/tag/sdk-1.2.189.1

This fixes missing `VK_ERROR_UNKNOWN` definition
2021-10-18 09:47:44 +03:00
alexey.lysiuk
80b8ab8fa2 - add missing vk_mem_alloc.natvis
1b0bd18053/src/vk_mem_alloc.natvis
2021-10-18 09:44:47 +03:00
Christoph Oelckers
eb9f752db8 - updated vk_mem_alloc. 2021-10-17 09:12:03 +02:00
Magnus Norddahl
6a804cd4c7 Fix lightmaps got applied to model meshes 2021-10-14 06:11:54 +02:00
nashmuhandes
635a279186 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-08 16:26:26 +08:00
Magnus Norddahl
a77dfae0bc Fix out of pool memory error 2021-10-08 10:15:01 +02:00
Christoph Oelckers
19aac25f19 - fixed some imprecisions in font luminosity calculation.
This was still going through the palette which could result in off-by-one errors.
2021-10-07 00:13:34 +02:00
Christoph Oelckers
60bf096912 - fixed palette initialization for single lump fonts (FON2 and BMF)
The bad increment was due to the palette being a byte array in older versions.
2021-10-06 20:30:29 +02:00
nashmuhandes
52004f36b4 Add sunlight actor for ZDRay 2021-10-05 18:09:00 +08:00
nashmuhandes
d35cd9549f Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-05 12:53:05 +08:00
Christoph Oelckers
6e9e75c02c - disallow changing the line spacing for option menus.
With the VGA font this makes no sense anymore.
2021-10-03 15:54:08 +02:00
Christoph Oelckers
b4d03501af - be a bit more aggressive with the GC when not running the game loop.
Since most CheckGC calls are within the main game ticker, the engine can accumulate a lot of data when creating/deleting objects in the menu or other UI parts and never manage to collect everything
2021-10-03 14:01:27 +02:00
Christoph Oelckers
88be3b8a1b - fixed base class for DShape2DBufferInfo. 2021-10-03 13:09:39 +02:00
Christoph Oelckers
6da9f00e6e - allow "INDEXFON" as an alias for "INDEXFONT". 2021-10-03 09:00:24 +02:00
nashmuhandes
70b72a2157 - Recognize the new lightmap UDMF keywords
- Add dummy actors to hold the UDMF keys for lightmapping. These actors will despawn at map start
- Make light probe despawn at map start as well
2021-09-29 17:42:48 +08:00
nashmuhandes
ff3cdb7e56 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-09-27 07:32:30 +08:00
Emile Belanger
8f54de99e0 GLES: Fix texture MapBuffer and AllocateBuffer create client side memory. 2021-09-25 11:14:18 -04:00
Magnus Norddahl
b59554f319 Fix "out of memory" errors when the vulkan backend is asked to create zero byte sized buffers 2021-09-25 08:42:31 -04:00
Jan Engelhardt
25350109e8 gles: look for libGLESv2.so.2
Distros do not have the .so files at all times, because those are
counted as development and not runtime.
2021-09-25 04:21:16 -04:00
nashmuhandes
d2b8f1aaff Add light probe actor 2021-09-25 12:00:25 +08:00
Magnus Norddahl
8a2f445dd6 Fix lightmap texture not getting bound by the OpenGL backend 2021-09-25 00:39:28 +02:00
Magnus Norddahl
63ecb36889 Add lightmap texture support to vulkan backend
Also fix a warning in SetFlatVertex
2021-09-25 00:13:25 +02:00
Magnus Norddahl
24070cba2d Add missing LightMap bind call 2021-09-24 17:24:59 +02:00
Magnus Norddahl
604c4ff8e0 Fix vertex layout locations and add lightmap to vulkan shader 2021-09-24 16:21:23 +02:00
nashmuhandes
2f8cff90b6 - Add lightmaps to the main shader (currently only OpenGL)
- Create a version of CreateIndexedSectorVertices that works with lightmap sectors
2021-09-24 16:56:15 +08:00
nashmuhandes
39481f0d07 - Add support for loading lightmap data generated by ZDRay
- Initialize lightmap texture in the hardware abstract parts of the engine
2021-09-24 14:51:48 +08:00
drfrag
c13cd74766 - Fixed broken V_BreakLines. 2021-09-23 15:36:24 +02:00
Christoph Oelckers
da806b354d - cleanup of the revised y-clamping feature.
This integrates better with the existing features.
2021-09-21 20:31:42 +02:00
Emile Belanger
4de6b769d3 GLES: Only use GPU sync if necessary and available.
If there are complaints of reduced performance, or visual artefacts compared to 4.6.1, it may be worth increasing HW_MAX_PIPELINE_BUFFERS to 4 again.
2021-09-21 18:45:55 +02:00
Emile Belanger
db59a4f9af Add buffer synchronisation for GLES when using mapped buffers. 2021-09-20 18:12:20 -04:00
Emile Belanger
76875f0a3c Fix spot lights for GLES 2021-09-20 18:12:20 -04:00
Emile Belanger
e361ff1a9c Removed unused EGL files 2021-09-20 18:12:20 -04:00
Yarn366
6d8862b514 Added detection for IWADs downloaded via the Bethesda.net Launcher 2021-09-20 10:50:19 -04:00
Cacodemon345
567bff403a Fix broken text input when SDL2 is using Wayland 2021-09-20 10:49:41 -04:00
Rachael Alexanderson
cb0c8922e0 - downgrade GL_EXTENSIONS message in OpenGL ES to logging level 2021-09-20 08:46:34 -04:00
Christoph Oelckers
a0043ec09d - better handling of texture clamp state.
Free combination of clamping with all texture modes still missing in GLES and Softpoly renderers!
2021-09-19 14:54:34 +02:00
Christoph Oelckers
fc2818b195 - menu system update from Raze for better control of animated menus. 2021-09-18 12:19:35 +02:00
Christoph Oelckers
7aaea65f28 - fixed GLES startup 2021-09-18 10:18:23 +02:00
Christoph Oelckers
67958833b7 Merge branch 'gles2_merge' 2021-09-17 21:22:41 +02:00
Christoph Oelckers
918e9e9b0d - fixed texture clamping for elements that are partially behind a slope.
This is mainly mid textures on linedefs and decals.
2021-09-17 00:25:28 +02:00
Christoph Oelckers
23a2ccec2b - Consider 'Program Files' a read only location without actually checking.
Due to virtualization the actual check may not produce correct results, plus writing there is bad style anyway.
2021-09-15 00:39:18 +02:00
Christoph Oelckers
17638426b9 - removed the redundant gl_render_precise CVAR.
The menu now uses gl_seamless directly without the redirection.
2021-09-14 19:49:42 +02:00
Christoph Oelckers
b0382599f6 - removed the SSBO block for desktop OS’s when gl_pipeline_depth is enabled 2021-09-14 00:13:08 +02:00
Magnus Norddahl
796890bb98 Limit texture upload transfer buffers to roughly 64 MB 2021-09-13 23:56:15 +02:00
Christoph Oelckers
f783a94835 - treat 'vid_adapter 0' as what Windows considers the primary monitor.
Courtesy of https://devblogs.microsoft.com/oldnewthing/20070809-00/?p=25643
2021-09-12 10:02:30 +02:00
Christoph Oelckers
b5294e9e90 - backend update from Raze. 2021-08-31 07:59:37 +02:00
Christoph Oelckers
03c8fd9956 - block user overrides for the logic module of core fragment shaders. 2021-08-24 10:24:23 +02:00
Christoph Oelckers
8bdd4befbf - replaced deprecated throw() with noexcept in TObjPtr 2021-08-21 12:22:15 +02:00