summaryrefslogtreecommitdiff
path: root/servers
AgeCommit message (Collapse)Author
2021-02-18Modernize atomicsPedro J. Estébanez
- Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile bool` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-17Fix math error in blend shape application toleranceKayomn
2021-02-15[TextServer] Restore character and space extra spacing support.bruvzg
2021-02-12Merge pull request #45931 from nekomatata/cylinder-contact-points-fixRémi Verschelde
Revised cylinder contact point generation in Godot Physics
2021-02-12Revised cylinder contact point generationPouleyKetchoupp
Cylinder contact points generation is adjusted to make it more stable when standing on triangle meshes. Point-Circle: Switched to simpler plane projection as it's done for Point-Face contact points. It solves some cases where discrepancies between the two points caused the cylinder to jump. Edge-Circle: Same as before, the case for edge has just been moved from Face-Circle to a specific method. Face-Circle: The previous method was clipping edges against the circle, and then tried to add contact points when there wasn't enough support and failed in some cases. Now using a different algorithm which adds proper contact points around the circle more consistently. First, by clipping edges against circle segments using Face-Face algorithm. Second, by clipping edges against the circle plane.
2021-02-12Merge pull request #45859 from Kayomn/masterRémi Verschelde
Accomodate blend shape ranges of -1 to +1 for Vulkan
2021-02-11Allow passing varying from fragment to light shader functionYuri Roubinsky
2021-02-10Cylinder support in Godot Physics 3DPouleyKetchoupp
Cylinder collision detection uses a mix of SAT and GJKEPA. GJKEPA is used to find the best separation axis in cases where finding it analytically is too complex. Changes in SAT solver: Added support for generating separation axes for cylinder shape. Added support for generating contact points with circle feature. Changes in GJKEPA solver: Updated from latest Bullet version which includes EPA fixes in some scenarios. Setting a lower EPA_ACCURACY to fix accuracy problems with cylinder vs. cylinder in some cases.
2021-02-10Make Servers truly Thread Safereduz
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread). -RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault. -Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory). -3D physics server changed to be made multithread friendly. -Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads. -Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-09Accomodate blend shape ranges of -1 to +1Kayomn
2021-02-07Improve SDFGI indirect light feedback loopreduz
-Use occlusion for feedback, further reduces light leaking. -More control on feedback, now its a slider.
2021-02-07Invert spotlight angle attenuationjfons
Inverted the spotlight angle attenuation so a higher value results in a dimmer light, this makes it more consistent with the distance attenuation. Also changed the way spotlighs are computed in SDFGI and GIPorbes and GPU lightmapper, now it matches the falloff used in the scene rendering code.
2021-02-07Merge pull request #45786 from reduz/fix-sdfgi-radeonRémi Verschelde
Fixed an SDFGI reflections bug in Radeon
2021-02-07Fixed a SDFGI reflections bug in Radeonreduz
-Code was using too many conditionals. -Rewrote it to use less and it now works fine.
2021-02-07Fix volumetric fog for SpotLightsjfons
The code for spot lights was referencing the omni light list. Most likely a copy-paste mistake :)
2021-02-06Fix SDFGI bug after previous optimization.reduz
Was causing arctifacts, should be good 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-05Fix mismatched define in scene_forward.glsl for POSITION overrideLyuma
2021-02-05Added temporal reprojection to Volumetric Fogreduz
-It's an option, just enable it -Just works, don't have to do anything else.
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-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-03Merge pull request #45658 from RandomShaper/fix_frozen_peakRémi Verschelde
Make audio bus channels' peak volume consistent
2021-02-02Add AudioEffectCaptureLyuma
AudioEffectCapture allows access to the microphone and other audio on an audio bus in real-time. Co-Authored-By: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2021-02-02Make audio bus channels' peak volume consistentPedro J. Estébanez
Channels that are inactive -or when playback has not started yet- will report -200 dB as their peak value (which is also the lowest value possible during playback).
2021-02-01Don't use trashy max_decals value to prevent crashesRafał Mikrut
2021-02-01Merge pull request #37547 from aaronfranke/tauRémi Verschelde
Use Math_TAU and deg2rad/etc in more places and optimize code
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-28Use real_t in physics codeAaron Franke
2021-01-28Make hex_to_int and bin_to_int handle the prefix automaticallyAaron Franke
Also add BinToInt to C#
2021-01-28doc: Sync classref with current sourceRémi Verschelde
2021-01-27Correctly expose transform as 3D transformWinston Yallow
2021-01-26Fix zero scaling and material mappings being mapped to wrong fieldsGordon MacPherson
- fixes scale values of 0.0013 (det == 0.00004) not rendering, they should render even at small values, but not at zero like the editor grid plugin supplies zero exactly. - fixes node_3d_editor_plugin visibility bug when scale is zero - fix culling with small scaling values - which are still valid to be rendered like 0.00004 note: grid is still not fixed, it has det == 0 issues but this fixes one of them.
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-25Add named resources and debug labels in RenderDocclayjohn
2021-01-25Implement shadow meshesreduz
-When importing, a vertex-only version of the mesh is created. -This version is used when rendering shadows, and improves performance by reducing bandwidth -It's automatic, but can optionally be used by users, in case they want to make special versions of geometry for shadow casting.
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-24Several GI related optimizations and fixesreduz
-SDFGI direct light is done over many frames -SDFGI Changed settings for rays/frame -SDFGI Misc optimizations -SDFGI Bug fix on probe scroll -GIProbe was not working, got it to work again -GIProbe dynamic objects were not working, fixed -Added a half size GI option.
2021-01-20Merge pull request #44668 from clayjohn/VULKAN-downsampleRémi Verschelde
Use cubemap downsampler for reflection mipmaps
2021-01-19Added GPU based cluster builderreduz
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19Shader optimizations to reduce VGPR usage and increase occupancyreduz
2021-01-16Fixes #45025 - Protects _last_mix_time and _last_frame_time with the ↵Sean LaPlante
AudioDriver lock() and unlock() methods
2021-01-14Merge pull request #43923 from madmiraal/fix-43588Rémi Verschelde
Fix cast_motion sometimes failing
2021-01-13Merge pull request #45136 from akien-mga/clang-format-11Rémi Verschelde
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-12CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde
2021-01-12Renamed `emit_particle` to `emit_subparticle` shader functionYuri Roubinsky
2021-01-11Fix shader uniform instances compilationYuri Roubinsky
2021-01-11Merge pull request #45066 from Chaosus/shader_fix_uniform_crashRémi Verschelde
Prevent editor crash due to modify the order of non-instance shader uniforms by instance uniforms
2021-01-10Prevent crash due to assigning incorrect order of instance uniformYuri Roubinsky
2021-01-09Fix LIGHT compilation for canvas shaderYuri Roubinsky