Arseny Kapoulkine
b2c83b42f6
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.
(cherry picked from commit 92f2bc70dd
)
2024-09-16 17:10:47 +02:00
jsjtxietian
139f5ee15e
Add model_normal_matrix for fragment shader
...
(cherry picked from commit e698351db2
)
2024-09-16 17:09:36 +02:00
clayjohn
c684d65c64
Use transformed roughness instead of raw roughness to calculate roughness fade in SSR
...
(cherry picked from commit b99d0d778a
)
2024-09-16 17:06:30 +02:00
kleonc
f0f69a7b7c
Fix Parallax2D repeats being not relative to its transform
...
(cherry picked from commit 1bd8372813
)
2024-09-16 17:04:12 +02:00
clayjohn
6c202154a7
Add fixed fog to the sky in the Compatibility renderer
...
And apply luminance multiplier after fog in RD renderer
(cherry picked from commit 578049b7b9
)
2024-09-16 17:01:45 +02:00
clayjohn
2d7266e764
Ensure fog_sky_affect is used even when using a background color
...
(cherry picked from commit 37be585fdf
)
2024-09-16 16:57:44 +02:00
kevinkuo52
6aff947ee5
pass in render_info to _fill_instance_data for alpha to fix overdraw call count
...
(cherry picked from commit 3388a4a360
)
2024-09-16 16:55:12 +02:00
jsjtxietian
b84dbab84d
Fix undefined alpha_scissor
in standard shader
...
(cherry picked from commit 970a237c20
)
2024-09-16 16:42:01 +02:00
Chaosus
3dc376ec0b
Fix shader crash when the comma used in for
loop as a trailing
...
(cherry picked from commit d74749fd60
)
2024-09-16 16:39:51 +02:00
jsjtxietian
a70df8537e
Fix uniform subgroup in shader will carry out to next group
...
(cherry picked from commit e6c45fbe5d
)
2024-09-16 16:34:02 +02:00
clayjohn
5a33e45fed
Fail when submit or sync called on main rendering device
...
Fail if submit or sync called multiple times in a row
(cherry picked from commit b0e33aa00f
)
2024-09-16 16:33:25 +02:00
Slashscreen
13d5227911
Apply patch for considering visual layers for DirectionalLight
...
Co-authored-by: majikayogames <152851004+majikayogames@users.noreply.github.com>
(cherry picked from commit 4457b11ff0
)
2024-09-16 16:31:40 +02:00
Jamie Pate
f8c99efc3b
Fix LightmapGI causes crash when using --headless
...
Fixes #89119
Add dummy LightmapInstance and Lightmap resources for headless rendering
Prevents the RenderingServer from crashing when it accesses
lightmap_instance->base_data
2024-08-07 11:38:05 +02:00
Rémi Verschelde
52f22902c7
Merge pull request #94902 from clayjohn/SHADER-hints
...
Restrict sampler hint validation to only screen texture hints
2024-07-30 12:29:04 +02:00
clayjohn
a2f2699208
Restrict sampler hint validation to only screen texture hints
2024-07-28 22:31:57 -07:00
Bastiaan Olij
1eb0039b6e
Fix regression around OpenGL swapchain optimisation for OpenXR
2024-07-29 12:46:58 +10:00
clayjohn
ba3457dfff
Emit normal_roughness compatibility code in custom functions
2024-07-26 10:45:36 -07:00
jsjtxietian
38fad35356
Fix editor crash when shader has incorrect global array declaration
2024-07-26 11:53:11 +08:00
BlueCube3310
eb3b217777
RenderingDevice: Use the correct amount of layers for Cubemaps for boundary checks
2024-07-24 20:26:46 +02:00
Rémi Verschelde
62c88a4052
Merge pull request #94671 from Chaosus/shader_fix_varying
...
Fix shader crash when using a varying in separate func before it defined
2024-07-24 09:59:31 +02: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
Yuri Rubinsky
965b2f6ca4
Fix shader crash when using a varying in separate func before it defined
2024-07-23 21:55:18 +03:00
BlueCube3310
741bb152ae
RenderingDevice: Fix getting cubemap data
2024-07-23 13:44:28 +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
ceb1801db2
Merge pull request #94492 from jsjtxietian/fsr-1
...
Add warning when use FSR1 on renderer other than forward plus
2024-07-18 10:45:50 +02:00
Rémi Verschelde
0f1e2c38a8
Merge pull request #94069 from RandomShaper/fix_vk_vali_blocky
...
RenderingDevice: Leave handling of compressed block granularity to the driver
2024-07-18 10:45:27 +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
jsjtxietian
46ed290fef
Add warning when use FSR1 on renderer other than forward plus
2024-07-18 12:10:18 +08:00
Rémi Verschelde
a963f111cb
Merge pull request #94462 from jsjtxietian/more-type
...
Make ShaderLanguage's parser recognize sampler passed in from array
2024-07-17 12:24:11 +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
jsjtxietian
3859817614
Make shaderLanguage's parser recognize sampler passed in from array
2024-07-17 16:52:44 +08: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
f5bb5db8ae
Merge pull request #94135 from Calinou/vulkan-swapchain-resize-error-fail-silently
...
Silence Vulkan "Unable to acquire framebuffer." swapchain error
2024-07-11 00:27:36 +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
Hugo Locurcio
cf2d2e2dd8
Silence Vulkan "Unable to acquire framebuffer." swapchain error
...
This error is harmless and can be safely ignored.
2024-07-09 17:12:54 +02:00
Rémi Verschelde
40cb283dd7
Merge pull request #93866 from Chaosus/shader_fix_global_func_set
...
Improve code for setup of `global_func_set` in `ShaderLanguage`
2024-07-09 16:47:13 +02: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
Pedro J. Estébanez
00e89229bf
RenderingDevice: Leave handling of compressed block granularity to the driver
2024-07-08 11:58:51 +02:00