summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2021-02-18Reorganize Project Settingsreduz
-Advanced Settings toggle also hides advanced properties when disabled -Simplified Advanced Bar (errors were just plain redundant) -Reorganized rendering quality settings. -Reorganized miscelaneous settings for clean up.
2021-02-18Don't clobber original library symbolsHein-Pieter van Braam-Stewart
It appears that we can get a fun circle dependency on a shared object on some system configurations causing issues with our 'fake' function pointer names. This can lead to a crash. The new wrapper generator renames all the symbols so this can't happen anymore. See https://github.com/hpvb/dynload-wrapper/commit/704135e This closes #46140
2021-02-17RasterizerDummy now instances Image(s).Fabio Alessandrelli
Avoid crash on start-up, we will need to slowly re-implement the various methods with dummy objects so exporting works again like in 3.2
2021-02-16Dynamically load libpulse.so.0 and libasound.so.1 on LinuxHein-Pieter van Braam-Stewart
By generating stubs using https://github.com/hpvb/dynload-wrapper we can dynamically load libpulse and libasound on systems where it is available. Both are still a build-time requirement but no longer a run-time dependency. For maintenance purposes the wrappers should not need to be re-generated unless we want to bump pulse or asound to an incompatible version. It is unlikely we will want to do this any time soon. This closes #20978
2021-02-11Improve resource load cachereduz
-Added a new method in Resource: reset_state , used for reloading the same resource from disk -Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type) -Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11Sync and cleanup Rasterizer Dummy.Fabio Alessandrelli
Code diverged too much, removing disabled code too as it's unlikely it can be reused now.
2021-02-06Simplify Volumetric Fogreduz
-Always use temporal reproject, it just loos way better than any other filter. -By always using termporal reproject, the shadowmap reduction can be done away with, massively improving performance. -Disadvantage of temporal reproject is update latency so.. -Made sure a gaussian filter runs in XY after fog, this allows to keep stability and lower latency.
2021-02-05Fixes to get Godot running again on Intel IGPreduz
-Fixed strange bug with shadowed instance_param (this should not have worked anywhere, odd..) -Cleaned up barrier usage further.
2021-02-04Merge pull request #45672 from reduz/barrier-optimizationRémi Verschelde
Rewrote how barriers work for faster rendering
2021-02-04Rewrote how barriers work for faster renderingreduz
-Added more finegrained control in RenderingDevice API -Optimized barriers (use less ones for thee same) -General optimizations -Shadows render all together unbarriered -GI can render together with shadows. -SDFGI can render together with depth-preoass. -General fixes -Added GPU detection
2021-02-03Sync RasterizerDummy.Fabio Alessandrelli
2021-02-02Always init `DEBUG_UTILS_MESSENGER_CREATE_INFO` structure if `DEBUG_UTILS` ↵bruvzg
functions are used. Add temporary variables to fix potential use-after-free.
2021-01-31Merge pull request #45315 from RandomShaper/modernize_threadRémi Verschelde
Modernize Thread
2021-01-29Modernize ThreadPedro J. Estébanez
- Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)
2021-01-28Unify URI encoding/decoding and add to C#Aaron Franke
http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
2021-01-26Merge pull request #45476 from qarmin/add_temp_variableRémi Verschelde
Add temporary variable to not use freed memory
2021-01-26Reorganize RenderingDevice barriersreduz
-Removed sync to draw, now everything syncs to draw by default. -Fixed many validation layer errors. -Added support for VkImageViewUsageCreateInfo to fix validation layer warnings. -Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
2021-01-26Add temporary variable to not use freed memoryRafał Mikrut
2021-01-25Add named resources and debug labels in RenderDocclayjohn
2021-01-25DummyRasterizer Sync.Fabio Alessandrelli
2021-01-24Shadow map rendering optimizationreduz
-All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
2021-01-22Merge pull request #45314 from RandomShaper/modernize_rwlockRémi Verschelde
Modernize RWLock
2021-01-19Added GPU based cluster builderreduz
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19Modernize RWLockPedro J. Estébanez
- Based on C++14's `shared_time_mutex` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed - Simpler for `NO_THREADS`
2021-01-13Merge pull request #45157 from madmiraal/fix-44514Rémi Verschelde
Raise SIGKILL instead of CRASH_NOW in child process when fork fails
2021-01-13Raise SIGKILL instead of CRASH_NOW in child process when fork failsMarcel Admiraal
2021-01-13Fix OS::execute() and OS::create_process() command line argument CharStrings ↵bruvzg
freed before use.
2021-01-12Merge pull request #44514 from madmiraal/split-os-executeRémi Verschelde
Split OS::execute into two methods
2021-01-11Merge pull request #42740 from lolleko/fix-nanosleep-usageRémi Verschelde
Fix nanosleep usage
2021-01-10Sync RasterizerDummy.Fabio Alessandrelli
2021-01-09Split OS::execute into two methodsMarcel Admiraal
1. execute(): Executes a command and returns the results. 2. create_process(): Creates a new process and returns the new process' id.
2021-01-08spirv-reflect: Update to upstream commit c0ce03a (Jan 6, 2021)Rémi Verschelde
2021-01-05Threaded optimizations to cull and renderreduz
-Reorganize thread work pool for rendering -Fixes to make secondary command buffers to work (disabled because they need more testing)
2021-01-04Merge pull request #44842 from clayjohn/VULKAN-SSAO-2Rémi Verschelde
SSAO renames and move push constant binding
2021-01-03SSAO cleanup and fixesclayjohn
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-21Port ASSAO to Godot to replace SAOclayjohn
2020-12-19Merge pull request #44521 from madmiraal/rename-rect2-clipRémi Verschelde
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19Fix error spam on wrong attachmentreduz
-For now, disable reading from depth this was always broken, needs to be fixed later -Give better error showing binding and set when this happens.
2020-12-19Rename Rect2 and Rect2i clip() to intersection()Marcel Admiraal
2020-12-18Turn off robust buffer access by default.reduz
It can be a performance bottleneck in some hardware.
2020-12-18SCons: Add explicit dependencies on thirdparty code in cloned envRémi Verschelde
Since we clone the environments to build thirdparty code, we don't get an explicit dependency on the build objects produced by that environment. So when we update thirdparty code, Godot code using it is not necessarily rebuilt (I think it is for changed headers, but not for changed .c/.cpp files), which can lead to an invalid compilation output (linking old Godot .o files with a newer, potentially ABI breaking version of thirdparty code). This was only seen as really problematic with bullet updates (leading to crashes when rebuilding Godot after a bullet update without cleaning .o files), but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
2020-12-17Add override keywords to core/os.h derived classes.Marcel Admiraal
2020-12-16Reimplement skeletons and blend shapesreduz
Uses compute shaders, which only once, on demand, and all in parallel.
2020-12-09Sync RasterizerDummy changes.Fabio Alessandrelli
Will also need to be renamed.
2020-12-09Merge pull request #44199 from bruvzg/pvs_fixes_1Rémi Verschelde
PVS-Studio static analyzer fixes
2020-12-09Static analyzer fixes:bruvzg
Removes unused code in OS. Fixes return types. Fixes few typos.
2020-12-09Merge pull request #44161 from Faless/fix/fa_buffered_removeRémi Verschelde
Remove unused FileAccessBuffered
2020-12-06Fix dummy rasterizer so that javascript can build againDavid Snopek