Commit Graph

2918 Commits

Author SHA1 Message Date
Fabio Alessandrelli 87f4bbd668 [Debugger] Move most profilers to ServersDebugger.
Also splits bandwidth/rpc profiler (RPCProfiler is now in
SceneDebugger).
2022-02-06 17:36:48 +01:00
jmb462 1ce81dc5f2 Add missing SNAME macro optimization in some function calls 2022-02-06 15:54:04 +01:00
Hugo Locurcio 7721e19ccc
Tweak default SDFGI settings for better quality
- Enable Read Sky Light to get proper outdoors lighting out of the box.
- Set bounce feedback to 0.5 by default to get a better quality result.
  - Higher values may cause infinite feedback with bright surfaces.
- Increase the number of frames to converge to improve quality
  at the cost of latency. Most scenes are fairly static after all.
- Use 75% Y scale by default as most scenes are not highly vertical.

- Reorder the Y scale enum to go from the lowest Y scale to the highest.
  Also rename the "Disabled" setting to "100%" for clarity.
2022-02-06 15:28:59 +01:00
Hugo Locurcio b9cfc74f29
Decrease the default number of SDFGI cascades to 4
This improves rendering performance noticeably, especially when the
camera moves fast.

On a medium-sized test scene on a GTX 1080 in 2560×1440, going
from 6 to cascades saves 0.5 ms of frame time while looking visually
identical (as most of the scene fits within the 4 cascades).
2022-02-06 15:01:25 +01:00
Yuri Roubinsky a2484c3293 Fix unknown identifier error in for loop 2022-02-06 08:38:33 +03:00
clayjohn 60d8df3fee Optimize and fix backbuffer gaussian blur 2022-02-05 15:03:39 -08:00
reduz 74adf0bf2e Remove RID_Owner.get_rid_by_index
* Implementing this function efficiently is not really possible.
* Replaced by an option to get all RIDs into a buffer for performance.
2022-02-05 11:59:34 +01:00
Rémi Verschelde eb371dee01
Merge pull request #57651 from theoniko/theoniko-effects_rc.cpp
Fix copy paste bug in renderer_rd/effects_rd.cpp
2022-02-05 10:15:38 +01:00
Yuri Roubinsky e01d08159c Few more fixes to for loop in shaders 2022-02-05 08:42:32 +03:00
theoniko 0c0ff5da50 Fix copy paste bug in renderer_rd/effects_rd.cpp 2022-02-05 06:41:30 +01:00
Hugo Locurcio e4eafb254a
Enable 16-bit shadow atlas by default in the RenderingServer methods
16-bit shadow atlases are already the default in the project settings,
but low-level methods used 24-bit shadows by default.

This makes low-level methods more consistent with the default project
settings to avoid accidental performance issues when users change
the shadow size at run-time.
2022-02-04 16:41:08 +01:00
Rémi Verschelde 225a3b2545
Merge pull request #57341 from bruvzg/win_multiwin_fs 2022-02-04 13:28:56 +01:00
Rémi Verschelde 2e320dcf87
Merge pull request #57617 from bruvzg/char_cleanup 2022-02-04 13:06:38 +01:00
Rémi Verschelde d235c1bb19
Merge pull request #57335 from jordigcs/display-refresh-rate 2022-02-04 11:51:07 +01:00
bruvzg f4ea9cd9f3
[Windows] Add WS_BORDER flag to windows in WINDOW_MODE_FULLSCREEN mode to allow multi-window interface in full-screen.
[Windows] Add WINDOW_MODE_EXCLUSIVE_FULLSCREEN without WS_BORDER flag enabled (no multi-window support).
2022-02-04 12:08:46 +02:00
bruvzg 244db37508
Cleanup and move char functions to the `char_utils.h` header. 2022-02-04 11:35:01 +02:00
jordi 54dec44dba Add screen_get_refresh_rate to DisplayServer 2022-02-03 21:50:32 -06:00
Rémi Verschelde f8f19b313d
Merge pull request #57562 from AnilBK/string-add-contains
String: Add contains().
2022-02-03 22:21:24 +01:00
Anilforextra adbe948bda String: Add contains(). 2022-02-04 01:28:02 +05:45
Rémi Verschelde 7191605324
Merge pull request #57587 from bruvzg/gde_fix_ptr_and_enum_returns
[GDExtension] Fix registration of functions with enum or native pointer return type.
2022-02-03 20:36:59 +01:00
bruvzg ddd96b3059
[GDExtension] Fix registration of functions with enum or native pointer return type. 2022-02-03 16:03:23 +02:00
Yuri Roubinsky 58696fd774 Allow multiple declarations in for loop in a shader 2022-02-03 11:35:38 +03:00
bruvzg 215bede6ff
[TextServer] Add function to change font, font size, and OpenType features without invalidating line break points, justification points, or recreating shaped text buffer. 2022-02-02 11:20:44 +02:00
Hugo Locurcio 20464fd103
Make visibility range alpha fade smoother
`smoothstep()` avoids the sudden transparency jump when entering or
leaving an object's alpha fade margin distance. This in turn helps
make opacity transitions less noticeable to the player, as it's
less likely to catch the player's eye.
2022-02-01 23:54:44 +01:00
Anilforextra fc27636999 Vectors: Use clear() and has().
Use clear() instead of resize(0).

Use has() instead of "find(p_val) != -1".
2022-02-02 00:11:09 +05:45
Rémi Verschelde b0604622a8
Merge pull request #57419 from orosmatthew/fix_ortho_lod 2022-01-31 18:06:44 +01:00
orosmatthew b0202c3a7d Fix orthogonal camera auto LOD calculation
- Do not take orthogonal camera's distance into account when calculating LOD.
- Only take into account screen size taken up.
2022-01-30 11:54:27 -05:00
Hugo Locurcio 736ac25306
Rename the physics server `run_on_thread` project settings
`run_on_separate_thread` is more explicit.
2022-01-29 17:35:50 +01:00
Nathan Franke 8a0a3accee
simplify formatting scripts, add a clang-tidy script, and run clang-tidy 2022-01-29 04:41:03 -06:00
Rémi Verschelde 6ff6ec612d
Merge pull request #57318 from TechnoPorg/fix-face-area-calculation 2022-01-28 10:28:19 +01:00
TechnoPorg 02c002ff28 Fix triangular area calculation
It's a triangle, so the area should be halved.

Co-authored-by: Jeffrey Cochran <koenigcochran@gmail.com>
2022-01-27 09:57:15 -07:00
Rémi Verschelde 4b36b6e92a
Merge pull request #56785 from bruvzg/nat_handles_4 2022-01-27 12:12:34 +01:00
Rémi Verschelde 58324f4df8
Merge pull request #54574 from Ansraer/glow_map 2022-01-26 13:39:51 +01:00
Bastiaan Olij 98e5cd24db Improve XRInterface hooks into rendering 2022-01-26 13:55:44 +11:00
Rémi Verschelde d9fd16c8e4
Merge pull request #53954 from Chaosus/fix_quit_errors 2022-01-25 20:09:52 +01:00
Yuri Roubinsky b01065b9a4 Prevent checking of global uniform type outside the editor 2022-01-25 19:22:37 +03:00
jfons 238862bddb Minor fixes to shadow atlases:
* Erase shadow owner *before* setting it to RID().
* Add default texture in shadow atlas debug view to avoid error spam when no atlas is present.
* Fix typo.
2022-01-24 15:55:32 +01:00
Yuri Roubinsky 0e66587dbf Remove incorrect items from completion of main functions in shader 2022-01-24 10:37:47 +03:00
clayjohn 430d5d64aa Update Sky lights in sky setup function 2022-01-23 15:06:49 -08:00
Yuri Roubinsky 3ca57e5157 Fix incorrect unused local var warning in shader blocks 2022-01-23 20:22:31 +03:00
Rémi Verschelde 9b9440165b
Merge pull request #54890 from briansemrau/threadsafe-drawpute-lists
Make draw/compute lists threadsafe
2022-01-22 20:20:07 +01:00
clayjohn fdc1b1b03b Remove TRANSFORM built in from fog shaders 2022-01-21 23:03:41 -08:00
Omar Polo bd448e5535 Rename or refactor macros to avoid leading underscores
These are not used consistently and some can conflict with
system-specific defines.  While here, also delete some unused macros.
2022-01-20 20:29:15 +01:00
Rémi Verschelde 7e3b92f81f
Merge pull request #55360 from Calinou/rename-bake-mode-properties 2022-01-20 17:35:32 +01:00
Rémi Verschelde dbd560cb68
Merge pull request #53857 from briansemrau/rd-free-rid-bind-rename 2022-01-20 17:24:34 +01:00
Ansraer 90652b1755 add support for glow maps 2022-01-20 16:47:25 +01:00
Rémi Verschelde 9e0973ca23
Merge pull request #56972 from lawnjelly/warn_unused 2022-01-20 15:34:41 +01:00
lawnjelly b411a731fe Add nodiscard to core math classes to catch c++ errors.
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 13:07:49 +00:00
Rémi Verschelde b6cb366884
Merge pull request #56949 from timothyqiu/has-clipboard 2022-01-20 12:09:45 +01:00
Rémi Verschelde 7057d26343
Merge pull request #56936 from BastiaanOlij/add_tracking_confidence 2022-01-20 12:09:06 +01:00
Bastiaan Olij 173105596e Adding a tracking confidence state to XRPose 2022-01-20 10:35:50 +11:00
Haoyu Qiu 314f309035 Add `DisplayServer.clipboard_has()` to check clipboard content 2022-01-19 23:44:20 +08:00
Rémi Verschelde cba2fd2e80
Revert "Add new scaling modes for splash screen"
This reverts commit fcc9f5ce39.

The feature is good but the implementation still needs more work.
A new PR will be made with a rework of this commit.
2022-01-19 16:09:52 +01:00
Yuri Roubinsky e0304f83e7 Add translation links to shader errors 2022-01-19 15:16:32 +03:00
Rémi Verschelde 8b8e858778
Merge pull request #54489 from briansemrau/texture-delete-update 2022-01-19 10:10:54 +01:00
Rémi Verschelde 74b110a736
Merge pull request #56825 from bruvzg/macos_fix_fullscr_multiwindow 2022-01-19 10:03:17 +01:00
Samuel Pedrajas fcc9f5ce39
Add new scaling modes for splash screen
Removes the `fullsize` option which is superseded by `stretch_mode`.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-01-18 23:29:11 +01:00
Rémi Verschelde 01eefa2c50
Merge pull request #56761 from Calinou/sdfgi-allow-any-number-of-cascades 2022-01-18 16:21:39 +01:00
Yuri Roubinsky 366d3930ac
Merge pull request #56893 from Chaosus/shader_unify_vardecl 2022-01-18 14:13:56 +03:00
bruvzg d62ca0c9c0 Window management improvements.
[macOS] Fix transient windows not working in the full-screen mode.
[macOS] Fix moving transient windows to the other screen than parent window.
[macOS] Fix popup menu switch on hover.
[macOS] Use content origin rect for windows position (to ensure `DS.mouse_get_position` is equal to `DS.window_get_position` + mouse position from the input events).
[macOS] Fix incorrect input coordinates, when external display with different scaling in connected/disconnected.
[macOS/Windows] Fix moving fullscreen windows between the screens.
Add auto refocusing of the parent window, when the focused transient window is closed.
Remove redundant `DS.mouse_get_absolute_position` function (returns mouse position in the screen coordinates, same as `DS.mouse_get_position`).
2022-01-18 11:47:03 +02:00
Yuri Roubinsky 36a82c8c69 Unify variable and array declarations in shaders 2022-01-18 12:42:39 +03:00
clayjohn ba431a9306 Fix volumetric fog memory leak on resize 2022-01-17 21:30:48 -08:00
Hugo Locurcio 2dc7b03a82
Allow using between 1 and 8 cascades for SDFGI
This provides more flexibility between performance and quality
adjustments, especially when using SDFGI for small-scale levels
(which can be useful for procedurally generated scenes).
2022-01-17 16:49:02 +01:00
Rémi Verschelde 57ad84537d
Merge pull request #56860 from bruvzg/icu_case 2022-01-17 14:28:38 +01:00
Rémi Verschelde 8bdef23f7f
Merge pull request #56012 from bruvzg/wt🤎4 2022-01-17 13:26:15 +01:00
bruvzg e02a097280
[TextServer] Implement locale and context sensitive case conversion functions. 2022-01-17 14:23:36 +02:00
Haoyu Qiu 7870cf24f2 Fix invalid read when using LightOccluder2D 2022-01-17 16:02:26 +08:00
Hugo Locurcio d6c7d4ab5d
Fix visible background line in intersections in screen-space reflections
Adjusting the step grading by one resolves the issue without affecting
performance or introducing adverse artifacts.
2022-01-16 18:08:07 +01:00
Rémi Verschelde a27b85378b
Merge pull request #56309 from Calinou/remove-pvrtc-support 2022-01-16 11:15:34 +01:00
clayjohn abd0003e4c Remove mistakenly added push constant from SSR 2022-01-15 17:03:55 -08:00
Yuri Roubinsky 08208406ca Refactor size expression parsing for arrays in the shaders 2022-01-15 15:47:39 +03:00
Hugo Locurcio 40be15920f
Remove support for PVRTC texture encoding and decoding
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
bruvzg 89f37d4105
Add support for getting native display, window, and view handles. 2022-01-14 13:36:32 +02:00
Yuri Roubinsky 0845b25497 Fix shader crashing when declaring matrix or array varyings 2022-01-14 10:37:39 +03:00
luz paz 858bcd5058 Fix various typos
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inh,inout,leapyear,lod,nd,numer,ois,ony,paket,ro,seeked,sinc,switchs,te,uint,varn,vew`
2022-01-13 23:20:01 -05:00
Yuri Roubinsky 4201af6649 Fix completion for global constants in shaders 2022-01-13 19:52:06 +03:00
Yuri Roubinsky c377891145 Add completion for shader_type 2022-01-13 18:37:13 +03:00
Yuri Roubinsky b0356bcb72 Prevent redefinition of main functions in shader 2022-01-13 15:12:35 +03:00
Rémi Verschelde a987ebfde2
Merge pull request #56714 from bruvzg/fix_alignment_break_overrun 2022-01-13 10:20:02 +01:00
bruvzg baec983d8a
[TextServer] Improvements for line breaking, "Fill" alignment, overrun, and interaction between these modes.
Fix "Fill" alignment processing wrong side of the text if overrun trim was applied.
Improve "Fill" alignment to avoid adding excessive subsequent spaces or elongations.
Add font detection to the overrun, to correctly add ellipsis (was using last glyph font, which doesn't necessary have dot character).
Improve line breaking to avoid adding excessive subsequent soft break points for languages without word separator.
Port missing overrun/justification code to the Fallback text server.
Fix inferred text direction detection by controls.
Add tests for "Fill" alignment and line breaking glyph flags.
2022-01-13 08:53:28 +02:00
clayjohn 9b1f242feb Fix cannot use gaussian blur error 2022-01-12 21:58:37 -08:00
Rémi Verschelde 586a973b6b
Merge pull request #56169 from dkaste/fix-clip-rects
Fix canvas items being drawn outside clip rects
2022-01-12 23:59:42 +01:00
Rémi Verschelde 585231a172
Merge pull request #56492 from akien-mga/remove-author-docstrings 2022-01-12 15:24:17 +01:00
Yuri Roubinsky 422f7b280f Optimize include files to improve `shader_language.h` compilation speed 2022-01-12 14:19:12 +03:00
Rémi Verschelde bfd0afca58
Merge pull request #55656 from clayjohn/GLSL3-compiler 2022-01-12 11:33:48 +01:00
Rémi Verschelde 189662e5bd
Merge pull request #56696 from AnilBK/use-init-lists 2022-01-12 10:04:45 +01:00
clayjohn 99064d57db New OpenGL batching canvas renderer 2022-01-11 22:26:18 -08:00
Anilforextra 6c3a0460a8 Use List Initializations for Vectors. 2022-01-12 10:15:12 +05:45
Rémi Verschelde d40d86b959
Merge pull request #56667 from Ice-Cube69/fix_incorrect_property_types 2022-01-11 14:34:18 +01:00
Arnav Vijaywargiya 0c46f73b5e Fixed incorrect property types 2022-01-11 17:17:11 +05:30
Rémi Verschelde 267bee934a
Merge pull request #56416 from BastiaanOlij/fix_xr_viewport_size_overrule
Fix XR viewport size overrule and incorrect usage of internal size
2022-01-11 08:44:36 +01:00
Rémi Verschelde 04fa320650
Merge pull request #56627 from Chaosus/shader_better_limit_warning 2022-01-10 14:06:54 +01:00
Darren Kaste b0d9e14155 Fix canvas items being drawn outside clip rects 2022-01-09 18:15:46 -05:00
bruvzg c89c515ccf
[TextServer] Improve ligature cursor handling.
Fix mid-grapheme hit test.
Fix OpenType features property handling, add default features override option.
Enable mid-grapheme cursor by default.
2022-01-09 19:03:48 +02:00
Yuri Roubinsky bd61d8f80c Enhances a shader uniform limit warning 2022-01-08 21:44:37 +03:00
Anilforextra c9f5d88f3a Use fill() to fill an entire image instead of setting pixels individually. 2022-01-08 17:43:15 +05:45
Rémi Verschelde 9e97262132
Merge pull request #56170 from Calinou/renderingserver-expose-gi-half-resolution 2022-01-07 00:05:43 +01:00
Rémi Verschelde 5e7faed078
Merge pull request #56540 from Calinou/renderingserver-expose-ssil-quality
Expose RenderingServer SSIL quality setter methods
2022-01-06 20:26:59 +01:00
SaracenOne cd842b65bf Fix queueing a texture and regular uniform update in RD backend in succession. 2022-01-06 16:05:07 +00:00
Hugo Locurcio 221efffdf7
Expose RenderingServer SSIL quality setter methods
This allows changing SSIL quality at run-time in a project.
2022-01-06 02:35:49 +01:00