summaryrefslogtreecommitdiff
path: root/servers/rendering
AgeCommit message (Collapse)Author
2021-02-19doc: Sync classref with current sourceRémi Verschelde
And fix various bogus bindings following previous PRs.
2021-02-18Merge pull request #45326 from clayjohn/VULKAN-ign-shadowsClay John
Use Interleaved gradient noise for shadow samples
2021-02-18Merge pull request #45617 from RandomShaper/modernize_atomicsRémi Verschelde
Modernize atomics (and fix `volatile`)
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-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-17Fix math error in blend shape application toleranceKayomn
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-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-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-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-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-21Use Interleaved gradient noise for shadow samplesclayjohn
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-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
2021-01-09Use Math_TAU and deg2rad/rad2deg in more places and optimize codeAaron Franke
2021-01-06Added ability to visualize native shadersreduz
2021-01-05Change the light attenuation formulas.reduz
-Much better looking, physically based. -Almost negligible extra cost.
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-05Rewrite render code to be more cache and thread friendly.reduz
2021-01-05Reorganize renderer code.reduz
So it can hopefully be made more cache efficient afterwards.