clayjohn
4d635b7a3a
Combine texture and instance data into one uniform set in the 2D renderer
...
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
2024-09-27 11:05:46 -07:00
Rémi Verschelde
bfe74eca3b
Merge pull request #97428 from clayjohn/shadow-filter-jitter-rebase
...
Jitter shadow map dithering pattern across frames when TAA is enabled
2024-09-26 12:45:50 +02:00
Rémi Verschelde
991e6c92ab
Merge pull request #96923 from Repiteo/style/warning-admonition
...
Style: Add `WARNING:` as new comment admonition
2024-09-26 12:45:38 +02:00
Thaddeus Crews
32c83a228d
Style: Add `WARNING:` as new comment admonition
2024-09-25 09:44:42 -05:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
Rie
5efa6ba489
Fix incorrect Reinhard tonemap operator
2024-09-25 12:34:23 +02:00
Hugo Locurcio
0eb06da057
Jitter shadow map dithering pattern across frames when TAA is enabled
...
This improves shadow quality by reducing the visibility of the noisy
pattern caused by dithering.
This jittering also applies when FSR2 is enabled, as it provides its own
form of temporal antialiasing.
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-09-24 15:52:07 -07:00
Jiang Yiheng
864d4fb32a
Fix hash calculation for NTSliceKey
...
A bug was introduced from 057367bf by adding FSR 2.2.1 support.
Which increases hash collision and hurts performance.
2024-09-22 21:08:18 +08:00
Rémi Verschelde
5f5c690481
Merge pull request #97260 from clayjohn/pixel_snap
...
Calculate pixel snap in canvas space instead of world space
2024-09-21 11:50:52 +02:00
clayjohn
e75900e1ad
Calculate pixel snap in canvas space instead of world space
...
This ensures that you are actually snapping to pixels in the viewport and not an arbitrary amount
2024-09-20 17:43:33 -07:00
David Snopek
1a6f8512bc
Add external texture support (GLES3)
...
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
Co-authored-by: Mauricio Narvaez <nvz@meta.com>
2024-09-20 10:48:32 -05:00
Rémi Verschelde
34dd5e0c37
Merge pull request #97217 from stuartcarnie/97185_subpixel_rendering
...
Metal: Fix subpixel blending; fix inconsistent blend state
2024-09-20 16:07:03 +02:00
Thaddeus Crews
b37fc1014a
Style: Apply new `clang-format` changes
2024-09-20 08:09:48 -05:00
Stuart Carnie
e826ab9ba9
[2D,Metal]: Fix subpixel blending; fix inconsistent blend state in Metal
2024-09-20 15:16:31 +10:00
Rémi Verschelde
b1b4c5da4b
Merge pull request #96928 from dsnopek/rename-and-expose-texture-create-external
...
Expose a function to create textures from a native handle in the compatibility renderer
2024-09-19 17:13:27 +02:00
David Snopek
7d56b09f23
Expose a function to create textures from a native handle in the compatibility renderer
2024-09-19 09:05:32 -05:00
Stuart Carnie
5b5dc00c52
2D: Remove redundant assignment
2024-09-17 06:32:49 +10:00
Rémi Verschelde
8c6210a3eb
Merge pull request #92290 from clayjohn/LOD-fixes
...
Use distance to AABB surface to calculate Mesh LOD instead of using supports
2024-09-16 13:34:04 +02:00
Stuart Carnie
c113e5b143
2D: Fix use-after-free in batch rendering
...
Closes #96960
Fixes regression of #95574 using fix from #95666
2024-09-14 07:50:39 +10:00
clayjohn
7ff106f828
Use distance to AABB surface to calculate Mesh LOD instead of using supports
2024-09-11 14:17:09 -07:00
Stuart Carnie
a657ea42f1
2D: Add batching to RendererCanvasRenderRD
2024-09-12 05:26:06 +10:00
Rémi Verschelde
bc4c60c933
Merge pull request #94893 from rune-scape/no-const-cast-mesh-storage
...
Avoid `const_cast` in `mesh_storage.h`
2024-09-10 09:51:22 +02:00
Yuri Rubinsky
af92fdb0ac
Add basic support to evaluate operator value in shader language
2024-09-09 15:12:11 +03:00
Rémi Verschelde
aa07333abe
Merge pull request #96114 from BlueCube3310/sh-lightmap-packing
...
LightmapGI: Pack L1 SH coefficients for directional lightmaps
2024-09-06 22:38:29 +02:00
BlueCube3310
a89f4fa5a9
LightmapGI: Pack L1 SH coefficients for directional lightmaps
2024-09-05 22:46:58 +02:00
Rémi Verschelde
82d7531a2e
Merge pull request #95990 from Breush/76166-sky-auto-radiance
...
Sky: Adapt radiance size if `AUTOMATIC_MODE` resolves to `REALTIME`
2024-09-04 17:12:02 +02:00
Alexis Breust
44e526d3d5
Sky: No more auto-selecting REALTIME mode if radiance is not 256
2024-09-04 10:54:08 +02:00
Rémi Verschelde
49ed6c558c
Merge pull request #86809 from clayjohn/TAA-disocclusion
...
Tune TAA disocclusion scale to avoid rejecting all samples during motion.
2024-09-03 16:13:26 +02:00
Rémi Verschelde
d1c27f239d
Merge pull request #96486 from ComycSans/black_sky
...
Fix `SkyRD::Sky::free()` freeing shared material
2024-09-03 11:44:05 +02:00
Rémi Verschelde
63a8548693
Merge pull request #96426 from clayjohn/RD-reflection-probe-roughness
...
Use non-linear mapping for ReflectionProbe mip levels to match sky
2024-09-03 11:43:52 +02:00
Rémi Verschelde
a2b64ed544
Merge pull request #95961 from RadiantUwU/fix-mesh-recursion
...
Fix shadow mesh recursion.
2024-09-03 11:43:16 +02:00
Rémi Verschelde
667778cf4d
Merge pull request #93448 from clayjohn/transmittance-fixes
...
Various fixes for transmittance effect
2024-09-03 11:42:57 +02:00
ComycSans
09e59fbec5
Fix SkyRD::Sky::free() freeing material
2024-09-02 18:59:31 +02:00
Rémi Verschelde
f546bf6aea
Merge pull request #96431 from viksl/fix-alpha-reflections-cull-order
...
Fix alpha material's reverse cull order.
2024-09-02 12:13:57 +02:00
Rémi Verschelde
f50ead48b0
Merge pull request #96128 from BlueCube3310/vram-profiler-texture-mem
...
Fix incorrect parameters for layered textures in VRAM texture memory profiler
2024-09-02 12:13:11 +02:00
viksl
929c69bad8
Fixes alpha materials being rendered with a reverse cull which is visible in reflections from reflection probes.
2024-09-01 12:10:04 +02:00
BlueCube3310
e74bc3079a
Fix incorrect parameters for layered textures in Video RAM texture memory profiler
2024-09-01 11:49:30 +02:00
clayjohn
64f5443b14
Use non-linear mapping for ReflectionProbe mip levels to match sky
2024-09-01 01:40:42 -07:00
Radiant
70860aafd8
Fix shadow mesh recursion.
2024-08-31 22:31:43 +03:00
rune-scape
f04a9bb630
Avoid const_cast in mesh_storage.h
2024-08-28 14:46:03 -07:00
Alula
346cbc7f1f
Add support for compiling with VS clang-cl toolset
2024-08-28 13:30:44 -05:00
Chaosus
f538376c3b
Add `CLIP_SPACE_FAR` built-in to spatial shader
2024-08-27 08:48:46 +03:00
Rémi Verschelde
68d188d521
Merge pull request #95888 from clayjohn/Lightmap-SH-coefficients
...
Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
2024-08-25 20:18:18 +02:00
Rémi Verschelde
568589c9d8
Merge pull request #90993 from darksylinc/matias-TheForge
...
Add debug utilities for Vulkan
2024-08-22 00:38:22 +02:00
Rémi Verschelde
0badddaccb
Merge pull request #95917 from BlueCube3310/lightmap-align-fix
...
LightmapGI: Fix shader data alignment after #89919
2024-08-22 00:10:53 +02:00
Rémi Verschelde
39b77ea04e
Merge pull request #95790 from aaronfranke/rect-aabb-support
...
Simplify Rect2/AABB `get_support` function
2024-08-22 00:10:39 +02:00
Matias N. Goldberg
364f916f3f
Add debug utilities for Vulkan
...
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
- Debug-only Breadcrumb info for debugging GPU crashes and device lost
- Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks
Functionality marked as "debug-only" is only available in debug or dev
builds.
Misc fixes:
- Early break optimization in RenderingDevice::uniform_set_create
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
BlueCube3310
4aa145624e
LightmapGI: Fix shader data alignment after #89919
2024-08-21 21:37:13 +02:00
clayjohn
f4ccba7508
Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
...
Also remove the metallic option from directional lightmap as it is guaranteed to return negative numbers in many cases
2024-08-21 10:24:32 -07:00
Stuart Carnie
2d0165574d
Add Metal support for macOS (arm64) and iOS
2024-08-20 12:11:06 +02:00
Rémi Verschelde
6a9ecdcf0c
Merge pull request #91818 from rburing/fti_multimesh
...
Physics interpolation: `MultiMesh`
2024-08-20 10:01:46 +02:00
Rémi Verschelde
8acd82f70e
Merge pull request #89919 from BlueCube3310/bicubic-lightmap
...
Implement bicubic sampling for lightmaps
2024-08-20 10:01:41 +02:00
Rémi Verschelde
333f0f910f
Merge pull request #86000 from jsjtxietian/add-missing-model_normal_matrix
...
Add `model_normal_matrix` for fragment shader
2024-08-20 10:01:36 +02:00
Aaron Franke
7db24a9ad5
Simplify and fix Rect2/AABB get_support function
2024-08-19 23:55:31 -07:00
jsjtxietian
e698351db2
Add model_normal_matrix for fragment shader
2024-08-20 12:39:29 +08:00
Rémi Verschelde
6bf64027b7
Merge pull request #94785 from Chaosus/shader_fix_samplers_order
...
Fix texture samplers to not being last in the property list
2024-08-19 16:05:21 +02:00
Rémi Verschelde
8b39d7f326
Merge pull request #95666 from kleonc/parallax2d_repeat_offsets_relative_to_source
...
Fix `Parallax2D` repeats being not relative to its transform
2024-08-19 14:34:21 +02:00
Rémi Verschelde
10b91ee950
Merge pull request #95705 from zeux/fsr-skin-relax
...
Relax motion vector updates to allow skipped frames for skeletons
2024-08-19 12:09:34 +02:00
Rémi Verschelde
9cc53a134e
Merge pull request #95682 from zeux/fsr2-fix-free
...
Fix double free in FSR2 destructor
2024-08-19 12:09:20 +02:00
Rémi Verschelde
c6400a8fe4
Merge pull request #95662 from clayjohn/GLES3-sky-fog
...
Add fixed fog to the sky in the Compatibility renderer
2024-08-19 12:09:10 +02:00
Rémi Verschelde
824a97120e
Merge pull request #92213 from clayjohn/ambient-disabled
...
Disable all sources of ambient light when `ambient_light_disabled` render mode is used
2024-08-19 12:08:31 +02:00
kleonc
1bd8372813
Fix Parallax2D repeats being not relative to its transform
2024-08-19 11:43:16 +02:00
BlueCube3310
ef9bb1a207
Implement support for bicubic lightmap filtering
...
Co-authored-by: Calinou <hugo.locurcio@hugo.pro>
2024-08-19 09:52:09 +02:00
Ricardo Buring
1728f80e7c
Fixed Timestep Interpolation: MultiMesh
...
Adds fixed timestep interpolation to multimeshes.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-08-18 17:14:59 +02:00
clayjohn
578049b7b9
Add fixed fog to the sky in the Compatibility renderer
...
And apply luminance multiplier after fog in RD renderer
2024-08-17 23:33:26 -07:00
Arseny Kapoulkine
92f2bc70dd
Relax motion vector updates to allow skipped frames for skeletons
...
Before this change, a skeleton that was not updated every frame would
result in a difference of 2+ between last_change and frame index every
frame, which would disable the buffer rotation and set motion vectors to
zero. This results in significant visual artifacts for FSR2 that are
especially prominent on the characters that move together with the view
such as the main character in third person mode.
This is a significant problem for high refresh rate displays: at 120 Hz,
we are effectively guaranteed to skip skeleton updates every other frame
with skeleton update happening during physics processing, and the lack
of physics interpolation for skeletons. This happens by default in TPS
demo when FSR2 is enabled.
In other places where motion vectors are disabled, such as multi-mesh
and mesh rendering (where previous transform is updated), the logic
effectively allows for a single-frame gap in updates, because it
compares the frame where the update happened (which is the current frame
if updates are consistent) with the current frame, so the latency of 0
means "update just happened", but both multi-mesh and mesh transform
updates permit a latency of 1 as well.
Here, however, last_change is updated *after* the frame processing has
concluded, so a zero-latency update has a distance of 1. Allowing a
distance of 2 (latency 1) reduces the severity of the problem and aligns
the logic with transform updates.
Note that the problem will still happen when refresh rate is noticeably
higher than physics rate times 2. For example, it still happens at 240
Hz. However, a longer latency allowance is inconsistent with other
transforms and could lead to issues, so ideally long term physical
interpolation of skeleton transforms would completely solve this.
2024-08-17 11:10:41 -07:00
Arseny Kapoulkine
0024cface5
Fix double free in FSR2 destructor
...
Before this change, using FSR2 resulted in the following error when the
effect was destroyed:
ERROR: Attempted to free invalid ID: 662734928609453
at: _free_internal (servers/rendering/rendering_device.cpp:4957)
This happened because ACCUMULATE and ACCUMULATE_SHARPEN passes shared
the same shader_version object but had different pipeline IDs. When
version_free was called for ACCUMULATE pass, it destroyed pipelines
created from that version, including the pipeline for the
ACCUMULATE_SHARPEN pass.
Using a unique version could work around this problem, but it's easier
to rely on version_free destroying the created pipelines through the
dependency mechanism.
2024-08-16 22:44:57 -07:00
Rémi Verschelde
5b6d9a7dd8
Merge pull request #95659 from clayjohn/RD-sky-affect
...
Ensure `fog_sky_affect` is used even when using a background color
2024-08-16 23:49:58 +02:00
clayjohn
37be585fdf
Ensure fog_sky_affect is used even when using a background color
2024-08-16 14:11:08 -07:00
kevinkuo52
3388a4a360
pass in render_info to _fill_instance_data for alpha to fix overdraw call count
2024-08-16 08:59:36 -07:00
Rémi Verschelde
0f9925c0f9
Merge pull request #95542 from KoBeWi/go_bind_yourself
...
Remove empty `bind_methods()`
2024-08-16 14:35:51 +02:00
Rémi Verschelde
851d0a764d
Merge pull request #95536 from jsjtxietian/rename-alpha-scissor
...
Fix undefined `alpha_scissor` in standard shader
2024-08-16 14:35:38 +02:00
Rémi Verschelde
afbcd0810f
Merge pull request #95438 from clayjohn/SSR-roughness-fix
...
Use transformed roughness instead of raw roughness to calculate roughness fade in SSR
2024-08-16 10:36:03 +02:00
kobewi
065dd099dd
Remove empty bind_methods()
2024-08-15 08:24:32 +02:00
jsjtxietian
970a237c20
Fix undefined `alpha_scissor` in standard shader
2024-08-15 11:44:11 +08:00
clayjohn
b99d0d778a
Use transformed roughness instead of raw roughness to calculate roughness fade in SSR
2024-08-12 12:04:16 -07:00
Hannah Crawford
a54b71bbdf
Add `shadow_caster_mask` to Light3D.
2024-08-12 00:17:11 +01:00
Sen
52cd5acdda
Fix for multimesh motion vector corruption by resetting motion vector state and filling both halves of buffer
2024-08-08 16:19:31 +02:00
Yuri Rubinsky
e41048e16e
Fix texture samplers to not being last in the property list
2024-07-29 09:19:09 +03:00
Bastiaan Olij
1eb0039b6e
Fix regression around OpenGL swapchain optimisation for OpenXR
2024-07-29 12:46:58 +10:00
Rémi Verschelde
139cf025c9
Merge pull request #94629 from RandomShaper/fix_undef_position
...
Fix position from vertex shader partially uninitialized
2024-07-24 09:59:24 +02:00
Feiyue Zhang
6f30df4b6a
Linearize color if HDR 2D is on
2024-07-24 09:49:50 +02:00
Pedro J. Estébanez
0064532c1e
Fix position from vertex shader partially uninitialized
2024-07-23 09:04:54 +02:00
Yuri Rubinsky
574e61a542
Fix crash when assigning more textures than expected to texture array
2024-07-22 20:51:11 +03:00
Rémi Verschelde
587f1d0cb0
Merge pull request #92817 from Alex2782/fix_glsl_Mali-G
...
Fix glsl shader for Android Mali-GXXx GPUs and Vulkan API 1.3.xxx
2024-07-22 17:24:04 +02:00
Alexander Hartmann
78ede4f8b6
Fix glsl shader for Android Mali-GXXx GPUs and Vulkan API 1.3.xxx
2024-07-20 22:01:35 +02:00
Garteal
2606831d71
SDFGI: fix crash if update_data is nullptr
2024-07-19 18:27:32 +02:00
Rémi Verschelde
47e99d55b3
Merge pull request #94388 from BastiaanOlij/expose_more_methods_scene_buffers_rd
...
Expose more state in RenderSceneBuffersRD
2024-07-19 11:10:46 +02:00
Rémi Verschelde
590628feda
Merge pull request #86516 from jsjtxietian/fix-camera-direction
...
Fix incorrect `CAMERA_DIRECTION_WORLD` calculation
2024-07-18 10:45:20 +02:00
Rémi Verschelde
c5e5fa3d9f
Merge pull request #94289 from clayjohn/MOBILE-multimesh-spec-constant
...
Use a spec constant to control whether the MultiMesh branch is used in the vertex shader.
2024-07-17 12:24:01 +02:00
Rémi Verschelde
c2375d0b12
Merge pull request #94184 from mertkasar/ssr-rotation-fix
...
Fix SSR orientation issues when using orthogonal camera
2024-07-17 11:43:25 +02:00
Rémi Verschelde
0268ceaa5c
Merge pull request #94064 from bruvzg/lcd_aa_modulate
...
Fix LCD font AA modulation in RendererRD.
2024-07-17 11:43:03 +02:00
Bastiaan Olij
9442eb8194
Expose more state in RenderSceneBuffersRD
2024-07-15 22:04:10 +10:00
clayjohn
4cbc967f50
Use a spec constant to control whether the MultiMesh branch is used in the vertex shader.
...
This works around a bug on the Quest3 and slightly improves performance on all mobile devices at the cost of increased pipeline count.
2024-07-12 15:44:06 -07:00
Mert Kasar
56ed2cb6d1
Fix SSR orientation issues when using orthogonal camera
...
- Use negative clip space values to fix reversed rotations in reflections
- Use constant -z view vector when raymarching to fix perspective in reflections
2024-07-12 21:56:31 +03:00
Rémi Verschelde
198e55e402
Merge pull request #94153 from clayjohn/SSAO-linearize
...
Properly linearize depth buffer for SSAO when using orthogonal camera
2024-07-11 00:27:43 +02:00
Rémi Verschelde
46e8377a5e
Merge pull request #93960 from BastiaanOlij/fix_mobile_compositor
...
Pre transparent compositor effects needs to run later
2024-07-11 00:27:06 +02:00
clayjohn
e0f736ec10
Properly linearize depth buffer for SSAO when using orthogonal camera
2024-07-09 15:29:45 -07:00
Rémi Verschelde
6f9c0aa40d
Merge pull request #93630 from BastiaanOlij/scene_data_projection_correction
...
Make RenderSceneData take projection correction into account
2024-07-09 00:03:14 +02:00
bruvzg
4790e12f66
Fix LCD font AA modulation in RendererRD.
2024-07-08 11:17:31 +03:00
Bastiaan Olij
e42870b4d1
Pre transparent compositor effects needs to run later
2024-07-05 12:37:26 +10:00
clayjohn
27b040dc61
Remove warning when project setting requests a larger global shader uniform buffer than the hardware supports.
...
Instead provide a better error message when the limit is exceeded and avoid crash with a small limit.
2024-06-28 10:38:18 +02:00
Bastiaan Olij
6ed6212949
Make RenderSceneData take projection correction into account
2024-06-27 10:44:30 +10:00
Rémi Verschelde
ba3bb44194
Merge pull request #93617 from jsjtxietian/protect-enum
...
Add safety check when setting several rendering effect quality
2024-06-26 14:51:25 +02:00
jsjtxietian
a313fa13fd
Add safety check when setting several rendering effect quality
2024-06-26 17:06:21 +08:00
ueshita
e1d6ab4c80
Fix userdata not copied when trails started
2024-06-25 23:33:26 +09:00
clayjohn
d61fae36f3
Various fixes for transmittance effect
...
Use correct shadow sampling for omni and spot lights
Disable transmittance if shadows are disabled
Correct DirectionalLight transmittance bias to match shadow bias (its still pretty sensitive though)
2024-06-21 18:15:27 -07:00
Rémi Verschelde
a57c7208eb
Merge pull request #93376 from stuartcarnie/sgc/canvasrd_dead_code
...
Remove unused flag and code from canvas renderer
2024-06-20 16:18:53 +02:00
Stuart Carnie
98e9578d66
Remove unused flag and code
...
Related #48894
2024-06-20 13:50:20 +10:00
ChristopheClaustre
c46bb775e9
Disable camera_effects on some debug draw mode
2024-06-19 16:45:58 +02:00
rune-scape
6adcb1373a
fix missing cleanup and null checks for various singletons
2024-06-18 01:05:30 -07:00
Bastiaan Olij
1690ede988
Track compositor effects that use motion vectors so we enable required logic
2024-06-12 12:37:18 +10:00
Rémi Verschelde
8b044da396
Merge pull request #92474 from Rudolph-B/fix-collided-particles-jittering
...
Fix collided 3D GPU particles sometimes jittering
2024-05-31 14:16:46 +02:00
Rémi Verschelde
138f334316
Merge pull request #92444 from clayjohn/RD-srgb-uniform-buffer
...
Separate linear and sRGB uniform buffers in RD rendering backends
2024-05-31 14:16:43 +02:00
Rudolph Bester
f666c76a9c
Fixed collided 3D GPU particles sometimes jittering
2024-05-28 14:09:08 +02:00
clayjohn
c6b08d462a
Separate linear and sRGB uniform buffers in RD rendering backends
2024-05-27 13:38:49 -07:00
clayjohn
267ea14616
Fix LOD selection in compatibility backend and clean up LOD code
2024-05-23 11:30:22 -07:00
clayjohn
c5346a62b0
Only apply LOD when camera is outside the AABB of mesh in mobile renderer.
...
This copies the existing logic from the Forward+ renderer
2024-05-21 18:32:04 -07:00
clayjohn
6fbef0669d
Disable all sources of ambient light when `ambient_light_disabled` render mode is used
2024-05-21 10:42:12 -07:00
Rémi Verschelde
d3e261523f
Merge pull request #88289 from DarioSamo/rd_minimized_window
...
Fix swap chain errors when application starts minimized.
2024-05-17 11:13:31 +02:00
Rémi Verschelde
5708a3a02e
Merge pull request #92000 from clayjohn/vram-debugger
...
Increase coverage of VRAM debugger and add support to RD backends
2024-05-16 09:32:11 +02:00
clayjohn
c84616c2d2
Increase coverage of VRAM debugger and add support to RD backends
2024-05-15 16:30:19 -07:00
Rémi Verschelde
c9fdcde20f
Merge pull request #91642 from BastiaanOlij/fix_transparent_sky
...
Skip rendering sky if viewport is set to transparent background
2024-05-14 12:06:44 +02:00
Rémi Verschelde
c322a9b7ee
Merge pull request #91808 from DarioSamo/debug_mv_msaa
...
Do not use MSAA versions of textures on debug views.
2024-05-13 12:05:46 +02:00
Bastiaan Olij
6efaaecde2
Skip rendering sky if viewport is set to transparent background
2024-05-13 11:04:06 +10:00
Dario
a3ecc86f47
Do not use MSAA versions of textures on debug views.
2024-05-10 14:01:58 -03:00
Dario
3f64eeb393
Rewrite reprojection for FSR2 to work correctly with Reverse-Z.
2024-05-10 11:57:27 -03:00
Rémi Verschelde
7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
...
Found by apply the file_format checks again via #91597 .
2024-05-08 10:12:46 +02:00
Rémi Verschelde
259d576f6e
Merge pull request #91480 from clayjohn/Mobile-mipmaps-bug
...
Use a full screen triangle for mipmap calculations in mobile renderer
2024-05-07 14:25:42 +02:00
Rémi Verschelde
4b070e8031
Fix various typos with codespell
...
Using 2.2.7.dev217+g10c2abcf.
Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
Rémi Verschelde
e63252b421
Merge pull request #90705 from AThousandShips/foreach_list
...
Reduce and prevent unnecessary random-access to `List`
2024-05-07 09:04:44 +02:00
Rob Blanckaert
64c04d95aa
Fix shader error on mobile when using LIGHT_VERTEX
2024-05-04 11:02:05 -07:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to `List`
...
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde
7ebc866418
Merge pull request #91545 from clayjohn/RD-shadow-atlas
...
Properly set size of shadow atlas quadrant when subdivision is 8 or higher.
2024-05-04 11:52:45 +02:00
clayjohn
caeef3473b
Properly set size of shadow atlas quadrant when subdivision is 8 or higher.
...
Also fix renderpass rect validation
2024-05-03 17:11:05 -07:00
Bastiaan Olij
9042ddf19f
Improvements to VRS/Foveated rendering
2024-05-03 17:20:30 +10:00
clayjohn
bebf85487e
Use a full screen triangle for mipmap calculations in mobile renderer
2024-05-02 13:17:09 -07:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
...
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Rémi Verschelde
f91db3dc58
Merge pull request #91399 from QbieShay/qbe/fix-pmul-name
...
Revert premul alpha to spell without the T
2024-05-01 23:47:46 +02:00
QbieShay
e41064388e
reverted naming to premul alpha (no T)
...
Initially 3d had premulT alpha as a keyword.
Since Canvas item uses mixed premul and premult as keywords,
3D is changed as well to keep consistency with 2D.
Unfortunately this keeps inconsistency with the internal ENUM.
2024-05-01 22:24:49 +02:00
Chris Clyne
44364faee5
Ensure global shader sampler parameters are initialized when loading the editor
2024-05-01 18:12:46 +01:00
Rémi Verschelde
7733ecd1ee
Merge pull request #91344 from tactical-fluke/vk_fix_unshaded_sdfgi
...
Fix SDFGI being used in unshaded debug draw
2024-05-01 09:55:18 +02:00
QbieShay
41a2b0e83e
Added premult alpha blending to 3D (spatial) shaders.
...
Co-authored-by: jitspoe <jitspoe@yahoo.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-05-01 00:53:29 +02:00
tactical-fluke
216c9a6bd9
Fix SDFGI being used in unshaded debug draw
...
Fixes #62758
2024-04-30 11:28:29 +08:00
Rémi Verschelde
947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
...
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
A Thousand Ships
31e7ee63f2
Fix unsafe uses of `Callable.is_null()`
...
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Chris Clyne
1ca0eeac28
Fix inverted GPUParticlesCollisionHeightField3D
2024-04-26 17:30:50 +01:00
Bastiaan Olij
d2d22748b4
Fix issue in shadow to opacity
2024-04-26 21:54:26 +10:00
Rémi Verschelde
853740e2ad
Merge pull request #91191 from clayjohn/RD-soft-shadows
...
Properly calculate penumbra for soft shadows with reverse z
2024-04-26 11:09:02 +02:00
Rémi Verschelde
22c8a2785d
Merge pull request #90920 from clayjohn/2D-light-cull
...
Exit light calculation early when pixel outside of light bounding rectangle
2024-04-26 11:08:29 +02:00
clayjohn
4e5e81c7d4
Properly calculate penumbra for soft shadows with reverse z
...
Also fix a related bug where the DirectionalLight3D size was ignored unless a positional light with soft shadows touched the mesh
2024-04-25 17:06:49 -07:00
Rob Blanckaert
ffe0b869f5
Add LIGHT_VERTEX to fragment shader
...
Adds a new variable to the fragment shader to specify
the vertex position used when calculating lighting.
2024-04-25 06:56:02 -07:00
Rémi Verschelde
a754bbc565
Merge pull request #91059 from BastiaanOlij/fix_multiview_copy
...
Fix issue with copy shader not working in multiview
2024-04-23 19:12:24 +02:00
Bastiaan Olij
226ca2f04c
Fix issue with copy shader not working in multiview
2024-04-23 21:46:39 +10:00
cosparks
6d0dca76c0
Fixes SDF Collision Enable/Disable
...
- sets LightOccluderInstance field when sdf collision is updated
- adds check for light occluder sdf_collision field in 2d renderers
2024-04-22 20:27:56 -07:00
clayjohn
506e93a207
Exit light calculation early when pixel outside of light bounding rectangle
...
This hugely improves the performance of rendering PointLight2Ds
2024-04-19 16:10:11 -07:00
Rémi Verschelde
993d15da17
Merge pull request #90821 from clayjohn/RD-clip-children-rect
...
Use a src rect for copying from screen with CanvasGroup in the mobile backend
2024-04-19 16:27:41 +02:00
clayjohn
eb62c5b27f
Revert change to default depth clear value in draw_list_begin
2024-04-17 19:08:22 -07:00
clayjohn
adfc9ccc44
Use a src rect for copying from screen with CanvasGroup in the mobile backend
2024-04-17 15:19:20 -07:00
Oxi
1815871b90
Fixed unshaded mode lightmaps
2024-04-17 10:38:54 +01:00
Juan Linietsky
65686dedf9
Use WorkerThreadPool for Server threads
...
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.
CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.
Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
Rémi Verschelde
5c75fa260f
Merge pull request #90458 from clayjohn/RD-weight-buffer
...
Clear RIDs of weight buffers when freeing to avoid double free
2024-04-10 14:22:37 +02:00
Rémi Verschelde
c59f493620
Merge pull request #89729 from jitspoe/master.shadow_distance_fade_optimization
...
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-04-10 14:21:56 +02:00
clayjohn
bafbde9f4b
Clear RIDs of weight buffers when freeing to avoid double free
2024-04-09 17:52:05 -07:00
Rémi Verschelde
10d67e590d
Merge pull request #90191 from BastiaanOlij/fix_mobile_canvas_copy
...
Don't use subpasses when we're using Canvas background mode in Mobile
2024-04-06 13:06:37 +02:00
Rémi Verschelde
64c4a53a2c
Merge pull request #89849 from EIREXE/cute_and_funny_decals
...
Fix decal modulate being passed as srgb instead of as linear color.
2024-04-04 14:31:53 +02:00
Rémi Verschelde
a28be933ee
Merge pull request #89398 from clayjohn/visual-debugger-coverage
...
Increase coverage of timestamps for visual profiler
2024-04-04 14:31:19 +02:00
Khasehemwy
d950f5f838
Use Reverse Z for the depth buffer
2024-04-04 13:54:15 +02:00
Bastiaan Olij
9e9a6fb6d6
Can't use subpasses when we're using Canvas background mode in Mobile
2024-04-04 15:59:11 +11:00
clayjohn
ac6c648645
Increase coverage of timestamps for visual profiler
2024-04-03 19:29:02 -07:00
Rémi Verschelde
2597f60de1
Merge pull request #88830 from beiller/bugfix/taa_xr_fix
...
Add fix for TAA passes rendering black meshes on XR
2024-03-26 13:45:10 +01:00
jitspoe
a0969a0931
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-03-25 21:25:56 -04:00
Erik Johnson
532630e7cd
Fix volumetric fog artifacts when inside the fog
2024-03-24 14:15:22 -04:00
Álex Román Núñez
2f0ba1ed3f
Fix decal modulate being passed as srgb instead of as linear color.
2024-03-24 14:59:43 +01:00
Rémi Verschelde
70c05f63da
Merge pull request #89531 from sullyscience/fix-resource-leaks
...
Fix mobile renderer RID leaks
2024-03-24 01:16:48 +01:00
Rémi Verschelde
cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
...
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Ricardo Buring
2ed2ccc2d8
Fixed Timestep Interpolation (2D)
...
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
A Thousand Ships
79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-20 13:47:42 +01:00
David Sullivan
dfa326ef55
Fix: Address mobile resource leaks in render
...
Update render_forward_mobile destructor to include instance buffers.
Update render_scene_buffers_rd cleanup to include weight buffers / blur
textures.
2024-03-15 14:48:12 -04:00
Rémi Verschelde
3e79cdbee2
Merge pull request #89450 from RandomShaper/fix_inside_lights
...
Fix missed light clusters when inside clipped lights
2024-03-14 22:34:56 +01:00
Pedro J. Estébanez
605fdb655c
Fix missed light clusters when inside clipped lights
2024-03-13 23:38:46 +01:00
Aaron Franke
9e0b38ecd3
Disable XR server when compiling without 3D
2024-03-13 09:02:10 -07:00
Bastiaan Olij
df8ff797b7
Consistantly use USE_MULTIVIEW as the define in shaders
2024-03-11 14:40:00 +11:00
Rémi Verschelde
f8140a4e9a
Merge pull request #89253 from Calinou/debug-draw-modes-ignore-decals-2
...
Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals
2024-03-08 13:09:40 +01:00
Rémi Verschelde
cebaf9dac5
Merge pull request #89042 from permelin/fix-particle-trail-activation
...
Fix early activation of particle trail sections
2024-03-08 13:09:25 +01:00
Hugo Locurcio
26a220bd31
Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals
...
This also makes the Overdraw and Shadow Splits debug draw modes ignore fog.
The Lighting debug draw mode still displays fog as that debug draw mode
is intended to preview scene lighting, and fog has an impact on how
lighting is perceived.
2024-03-07 17:40:49 +01:00
Rémi Verschelde
a52e575652
Merge pull request #89134 from BastiaanOlij/fix_recursive_reflection_probes
...
Fix never ending loop with overlapping probes
2024-03-05 09:56:05 +01:00
Bastiaan Olij
a5d3d23db4
Fix never ending loop with overlapping probes
2024-03-05 10:07:56 +11:00
Rémi Verschelde
3be5d9b01a
Merge pull request #89046 from permelin/fix-particle-aabb-recalc-with-userdata
...
Fix error in AABB calculation for particles with USERDATA
2024-03-04 13:33:33 +01:00
markdibarry
a62870956a
Add new Parallax2D node
2024-03-03 15:46:40 -05:00
Per Melin
853935a5c9
Fix error in AABB calculation for particles with USERDATA
...
Selecting "Generate AABB" on a 3D particle node in the editor would not work
and printed an error about incorrect buffer size if the particle shader used
one or more of the USERDATA build-ins.
2024-03-02 14:26:09 +01:00
Per Melin
9b2d77a238
Initialize particle trail history frame numbers
...
Fixes #88712
All particle trail sections were activated at once on the first cycle, instead
of being spread out over the trail's lifetime.
2024-03-01 19:32:43 +01:00
bitsawer
89d772a799
Fix Volumetric Fog VoxelGI updates
2024-03-01 14:47:15 +01:00
Bill
b44f1c5176
Add fix for TAA passes rendering black meshes on XR
2024-02-25 14:25:49 -05:00
Robert Yevdokimov
13e82094ee
Remove word duplicates in comments and strings, and fix casing and punctuation
2024-02-23 17:28:28 -05:00
clayjohn
2657593462
Use barriers between all blur passes with SSAO and SSIL
2024-02-21 14:35:20 -08:00
Rémi Verschelde
292f4c7f97
Merge pull request #80214 from BastiaanOlij/rendering_effect
...
Implement hooks into renderer
2024-02-20 23:59:27 +01:00
Arman Elgudzhyan
533eab89ab
Fixed reversed custom AABB null check when recalculating multimesh AABBs
2024-02-18 12:07:23 -08:00
Bastiaan Olij
5a98845655
Implement hooks into renderer
2024-02-18 21:54:21 +11:00
Eidolon
08f4560e69
Add optional depth fog
2024-02-17 22:39:34 -03:00
Rémi Verschelde
59643bdb86
Merge pull request #88325 from akien-mga/texture-formats
...
Export: Unify settings for PC texture formats, removed obsoleted ETC feature
2024-02-17 00:23:45 +01:00
Arman Elgudzhyan
7ac8365e11
Support custom AABB within MultiMesh resources
...
- Supporting custom AABB on the MultiMesh resource itself allows us to prevent costly runtime AABB recalculations.
- Should also help improve CPU Particle performance.
2024-02-15 22:37:07 -08:00
Rémi Verschelde
e457f41f9b
Remove code relative to obsoleted ETC texture format
...
Co-authored-by: BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com>
2024-02-14 17:16:41 +01:00
Rémi Verschelde
5e58bcd793
Merge pull request #88205 from 0x0ACB/thread_safe_texture_rid
...
Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for GLES3
2024-02-13 23:43:40 +01:00
Dario
fc8ec5d8a9
Handle error when setting boot image if swap chain is not available. Skip resizing swap chain during screen creation as it's not necessary and can fail when it starts minimized.
2024-02-13 14:19:26 -03:00
Erik Johnson
eab95698cd
Fix shadows for billboarded Sprite3D's
2024-02-13 10:36:38 +01:00
Dario
73eff10c76
Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver.
2024-02-12 10:02:18 -03:00
Rémi Verschelde
f12d737681
Merge pull request #87796 from RandomShaper/shader_cache_split
...
Namespace shader cache files by graphics API
2024-02-12 13:34:18 +01:00
ACB
09d2c09434
Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for gles3
2024-02-11 17:23:00 +01:00
A Thousand Ships
684752e75b
Replace error checks against `size` with `is_empty`
2024-02-09 12:50:15 +01:00
Rémi Verschelde
4a30fe5e7c
Merge pull request #86564 from Giwayume/feature/canvas-item-shader-custom-data
...
Support CUSTOM shader attributes in 2D
2024-02-08 10:53:24 +01:00
Pedro J. Estébanez
f3ef83517a
Namespace shader cache files by graphics API
2024-01-31 20:19:12 +01:00
Yuri Sizov
3f7ea71e88
Merge pull request #87495 from jsjtxietian/USE_LIGHT_SHADER_CODE
...
Clean up outdated `USE_LIGHT_SHADER_CODE` usage
2024-01-25 16:27:14 +01:00
Yuri Sizov
1b83e8ae81
Merge pull request #87460 from BastiaanOlij/stereo_ivec
...
Add ivec variants to multiview_uv for stereo rendering
2024-01-25 16:27:10 +01:00
Yuri Sizov
b698204a1e
Merge pull request #87505 from BastiaanOlij/fix_mobile_refprobe_validation
...
Fix framebuffer created for reflection probe in mobile renderer
2024-01-24 14:08:52 +01:00
Yuri Sizov
2ce450f8bc
Merge pull request #84894 from clayjohn/tangent-error-message
...
Store ArrayMesh path in RenderingServer for use in error messages
2024-01-24 14:07:47 +01:00
jsjtxietian
2004ad1ac5
Clean up outdated `USE_LIGHT_SHADER_CODE` usage
2024-01-24 12:30:27 +08:00
Giwayume
bb83c4adec
Add custom shader attributes to Canvas Item Shaders
2024-01-23 14:36:39 -05:00
Bastiaan Olij
914eecaddb
Fix framebuffer created for reflection probe in mobile renderer
2024-01-24 00:51:51 +11:00
Bastiaan Olij
1066f01607
Add ivec variants to multiview_uv for stereo rendering
2024-01-23 16:13:31 +11:00
Yuri Sizov
bf94131e41
Merge pull request #87225 from kleonc/transposed-texture-fix-2d-normals
...
Fix 2D normals for transposed texture
2024-01-22 20:39:04 +01:00
Yuri Sizov
e8105adb0e
Merge pull request #87155 from griffinkh/build_warning_fix
...
Fix build warning with memset value being too large
2024-01-22 20:38:56 +01:00
Yuri Sizov
e95456b7f3
Merge pull request #86073 from m4rr5/add_reflection_mask
...
Add a reflection mask to the reflection probes
2024-01-22 20:38:37 +01:00
Marcel Offermans
25f573ca63
Add a reflection mask to the reflection probes.
...
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-01-20 08:07:31 +01:00
Rémi Verschelde
0bcc0e92b3
Merge pull request #86730 from reduz/64-bit-cowdata
...
Promote CowData to 64 bits
2024-01-19 18:46:11 +01:00
Juan Linietsky
24fe0715b5
Promote CowData to 64 bits
...
Fixes a lot of bugs, please help me fill the list.
2024-01-19 17:41:10 +01:00
kleonc
0fe7eead02
Fix 2D normals for transposed texture
2024-01-15 17:34:29 +01:00
Rémi Verschelde
bf7e19887e
Merge pull request #87096 from jsjtxietian/save-to-cache
...
Add `shader_cache_dir_valid` check to `_save_to_cache`
2024-01-15 13:29:03 +01:00
Griffin Kroah-Hartman
21ae69a1de
fix build warning with memset value being too large
...
same resolution for issue #83342 for texture_storage.cpp
2024-01-13 19:05:38 +01:00
jsjtxietian
a365c070b3
Add shader_cache_dir_valid check to _save_to_cache
2024-01-12 17:34:33 +08:00
Rémi Verschelde
c5025ea157
Merge pull request #87057 from clayjohn/RD-32-bit-depth
...
Default to 32-bit depth map on Forward+ renderer and 24-bit only on Mobile renderer
2024-01-11 17:42:38 +01:00
clayjohn
7b355a128c
Default to 32-bit depth map on Forward+ renderer and 24-bit only on Mobile renderer
2024-01-10 12:23:59 -08:00
Rémi Verschelde
74f3d168c8
Merge pull request #87022 from DarioSamo/clear_region_continue_fix
...
Fix incorrect mapping of initial action as clear region continue to clear.
2024-01-10 12:03:45 +01:00
Dario
80eacf1b7a
Fix incorrect mapping of initial action as clear region continue to clear.
2024-01-09 22:03:21 -03:00
Bastiaan Olij
10a8b88165
Fix SSR not working properly in stereo
2024-01-09 23:19:57 +11:00
Dario
cc4d39b0c1
Acyclic Command Graph for RenderingDevice.
...
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
2024-01-08 14:54:56 -03:00
Rémi Verschelde
25011e9144
Merge pull request #84244 from BastiaanOlij/skip_present_if_needed
...
Skip swapchain logic if there is nothing to present (Android OpenXR)
2024-01-08 14:52:07 +01:00
Rémi Verschelde
798632422d
Merge pull request #86245 from ecmjohnson/fix-skeleton-culling
...
Check skeleton RID when using cached AABB
2024-01-08 11:52:41 +01:00
Bastiaan Olij
d6caa69e11
Skip swapchain logic if there is nothing to present (Android OpenXR)
2024-01-08 21:51:04 +11:00
Muller-Castro
96a95cb974
Add const lvalue ref to container parameters
2024-01-05 14:49:57 -03:00
clayjohn
7f1863f83d
Tune TAA disocclusion scale to avoid rejecting all samples during motion.
2024-01-04 17:06:57 -08:00
Rémi Verschelde
6c390b620d
Merge pull request #84445 from Rubonnek/add-const-references-clang-tidy
...
Add const references detected by clang-tidy
2024-01-04 14:25:33 +01:00
Rémi Verschelde
7abaac631b
Fixup SDFGI shader compilation error after #80390
...
My mistake, I added this when rebasing and didn't notice that it was a
.glsl file and thus the availability of Math was not confirmed by the
C++ compiler.
2024-01-03 08:51:08 +01:00
EddieBreeg
8747c67d9e
Fix potential integer underflow in rounded up divisions
...
A new `Math::division_round_up()` function was added, allowing for easy
and correct computation of integer divisions when the result needs to
be rounded up.
Fixes #80358 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-02 14:14:47 +01:00
jsjtxietian
89d7a2f0a5
Fix incorrect CAMERA_DIRECTION_WORLD calculation
2023-12-26 14:09:44 +08:00
Yuri Sizov
44ded3eaa4
Merge pull request #86316 from clayjohn/RD-BFN-normals
...
Use best fit normals for storing screen space normals
2023-12-22 17:19:58 +01:00
clayjohn
43cf21cb71
Use best fit normals for storing screen space normals
2023-12-21 14:41:29 -07:00
Yuri Sizov
3a8524dd92
Merge pull request #83452 from RandomShaper/rd_common
...
Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts
2023-12-20 20:09:18 +01:00
Pedro J. Estébanez
12a519bae2
Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
...
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
Yuri Sizov
c1d8b53ca0
Merge pull request #82668 from mrjustaguy/master
...
Improve split blending logic for Vulkan
2023-12-18 18:17:36 +01:00