Commit Graph

1451 Commits

Author SHA1 Message Date
ArthasMenethil 28abd259f7
Fix OpenGL: _shadow_atlas_find_shadow: Condition "!sli" is true.
(cherry picked from commit 17e489b93d)
2024-04-08 15:48:30 +02:00
Hugo Locurcio 562613ac37
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.

(cherry picked from commit 26a220bd31)
2024-03-12 00:38:27 +01:00
Dominic Austria 51d7ffde6d
implement overdraw, lighting, and unshaded debug draw modes for opengl
(cherry picked from commit c8bdd1d774)
2024-03-12 00:38:27 +01:00
ArthasMenethil 14bd7d061f
Fix shader cache with transform feedback on some android devices
(cherry picked from commit d31d3e503e)
2024-03-11 15:00:44 +01:00
ACB f4ac543b99
Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for gles3
(cherry picked from commit 09d2c09434)
2024-03-11 15:00:44 +01:00
clayjohn 8e31ea244b
Significantly improve the speed of shader compilation in compatibility backend
Compile the unlit version by default to save on both cache size and compile time

(cherry picked from commit f1781fe9d1)
2024-03-11 15:00:44 +01:00
jsjtxietian 9926e7e8fa
Add shader_cache_dir_valid check to _save_to_cache
(cherry picked from commit a365c070b3)
2024-03-11 15:00:44 +01:00
clayjohn 2ec1d8043c
Store ArrayMesh path in RenderingServer for use in error messages
(cherry picked from commit ead36fdcc4)
2024-03-11 15:00:43 +01:00
Dominic 93fd5da49c Add wireframe for compatibility mode
(cherry picked from commit bae6f86257)
2024-01-25 18:32:35 +01:00
kleonc 663ba67016 Fix 2D normals for transposed texture
(cherry picked from commit 0fe7eead02)
2024-01-25 18:08:45 +01:00
clayjohn 03ec65203c Disable scissor test after rendering batches in compatibility renderer
(cherry picked from commit 062e8802b7)
2024-01-24 16:38:29 +01:00
clayjohn 52b3d2915a Only copy the relevant portion of the screen when copying to backbuffer in Compatibility backend
(cherry picked from commit e69968b794)
2024-01-24 15:57:59 +01:00
Rémi Verschelde ed06389a34 Style: Mark clang-format 16 as supported for pre-commit hook
It only introduced a difference in a .glsl file, which I've worked
around by removing an empty line. This keeps formatting consistent
between clang-format 15 and 16.

Also added a change in the 3-to-4 project converter to fix bogus
formatting in clang-format < 17.

(cherry picked from commit 49f4860ce3)
2024-01-24 15:57:59 +01:00
Bastiaan Olij b05514dd0d Fix radiance for sky in GLES stereo rendering
(cherry picked from commit e06ac4d40c)
2024-01-24 15:56:51 +01:00
ShirenY 045b1d5990 Transform mesh's AABB to skeleton's space when calculate mesh's bounds.
(cherry picked from commit 27f71c4e78)
2024-01-24 15:56:50 +01:00
HolySkyMin fc15ffed1e GLES3: Skip batches with zero instance count while rendering
(cherry picked from commit 51dcb38840)
2023-12-11 12:43:30 +01:00
clayjohn 4cce0d9711 Ensure that 2D meshes use a proper input mask
The input mask was wrongly ignored in earlier versions. Now it is actually used so the input mask variable needs to be a valid number

(cherry picked from commit 777d6ae1c6)
2023-12-11 11:41:59 +01:00
clayjohn bca878ffd9
Use vertex input mask for creating vertex arrays
Also fix bug in creation of vertex input mask

(cherry picked from commit c0c1efc5da)
2023-12-07 10:27:06 +01:00
jsjtxietian 2cbe02ad70
Add shadows_disabled macro in Compatibility renderer
(cherry picked from commit 716fd3edfc)
2023-12-07 10:27:03 +01:00
BlueCube3310 8d9d58b9b7
Automatically ensure correct normals in Compatibility renderer
(cherry picked from commit f31371c04e)
2023-12-07 10:27:01 +01:00
Rémi Verschelde bd74d92ef7
Merge pull request #84957 from BastiaanOlij/fix_msaa2d_when_no_2d
Ensure 2D MSAA resolve is performed when 3D content but no 2D content in scene
2023-11-22 21:56:23 +01:00
Bastiaan Olij 47983e30c5 Ensure 2D MSAA resolve is performed when 3D content but no 2D content in scene 2023-11-16 13:34:34 +11:00
Gabor Koncz 0198eedb06 Remove incorrect system_fbo overwrite 2023-11-16 01:56:20 +01:00
Rémi Verschelde 787e98e955
Merge pull request #84752 from akien-mga/gles3-shaderdata-initialize
GLES3: Ensure all ShaderData is properly initialized in `set_code`
2023-11-13 12:20:33 +01:00
Rémi Verschelde 0e04203293
GLES3: Ensure all ShaderData is properly initialized in set_code
Fixes #84418.
2023-11-11 15:13:23 +01:00
lawnjelly 593cdf00ff [GLES3] Protect against bogus `glGetShaderInfoLog` return values.
On some buggy drivers `GL_INFO_LOG_LENGTH` returns incorrect values, which may lead to incorrectly filling in the log string. This could lead to uninitialized data being attempted to be printed and a crash.
This PR zeros the array to ensure uninitialized data is not used.
2023-11-11 06:56:46 +00:00
clayjohn 9c5adac342 Properly rename INSTANCE_ID and VERTEX_ID in canvas item shaders in the compatibility backend 2023-11-07 17:55:51 +01:00
Rémi Verschelde 44a54f4500
Merge pull request #84252 from clayjohn/ensure_tangents
Enhance checks and user experience around tangent arrays in meshes.
2023-11-02 09:11:32 +01:00
clayjohn d1043a5f93 Enhance checks and user experience around tangents.
Ensure `ensure_tangents` option actually creates tangent array. Even if it is just a dummy array.

Allow mesh to generate its own tangents when using compression. This allows users to compress meshes without tangents.

Warn users if they are trying to read from tangents without providing tangents.
2023-11-01 22:40:42 +01:00
David Snopek 67d8102f95 Fix WebXR on desktop emulator by reseting active texture unit 2023-10-31 16:18:38 -05:00
Rémi Verschelde dcbee437f7
Merge pull request #84197 from bruvzg/opengl_utf8
Parse OpenGL and Vulkan strings as UTF-8.
2023-10-30 17:47:51 +01:00
bruvzg 25dc729dd4
Parse OpenGL and Vulkan strings as UTF-8. 2023-10-30 17:24:31 +02:00
Rémi Verschelde acbc341a58
OpenGL: Fix uninitialized memory usage for GPUPartciles `interp_to_end`
Fixes #84072.
2023-10-30 15:08:24 +01:00
Rémi Verschelde c5c90fd7b7
Merge pull request #83998 from chybby/83380-soft-shadows
Fix reading shadow filter quality from project settings in compatibility
2023-10-26 16:02:08 +02:00
Rémi Verschelde 2dafd06114
Merge pull request #83906 from clayjohn/GL-vertex-padding
Add padding to normal attribute in Compatibility renderer to match the RD renderers
2023-10-26 16:00:56 +02:00
Rémi Verschelde 253711ec98
Merge pull request #82430 from RandomShaper/fix_gles3_tex_free
[GLES3] Avoid freeing proxy textures clearing onwer's data
2023-10-26 15:58:55 +02:00
Adam Chyb b9446dde7e Fix reading shadow filter quality from project settings in compatibility
Fixes #83380.
2023-10-26 23:57:42 +11:00
Rémi Verschelde 815b24d280
Merge pull request #83491 from jsjtxietian/pass-screen-size-when-render-shadow
Pass viewport size to shadow pass instead of using Vector2i(1,1)
2023-10-26 12:09:21 +02:00
jsjtxietian 26d32554bd Pass viewport size to shadow pass instead of using vector2i(1,1) 2023-10-26 15:25:22 +08:00
Rémi Verschelde f021d33940
Merge pull request #81167 from bitsawer/fix_sdfgi_editor_change
Reset SDFGI when changing editor scene tabs
2023-10-25 10:27:03 +02:00
clayjohn a88e519f18 Add padding to normal attribute in Compatibility renderer to match the RD renderers 2023-10-24 22:32:34 +02:00
Rémi Verschelde 261fe7ce6a
Merge pull request #83704 from clayjohn/misc-mesh-fixes
Some more fixes for compressed meshes
2023-10-24 10:54:23 +02:00
Rémi Verschelde 64f80295e5
Merge pull request #83199 from Repiteo/texture-storage-default-scale
Fix `TextureStorage` not assigning default scale
2023-10-24 10:53:56 +02:00
clayjohn 8f9cd4e1e3 Some more fixes for compressed meshes
This cleans up a few more cases of uint32_t->uint64_t

Importantly this fixes an edge case in the axis-angle compression by
using the pre-existing Basis methods instead
2023-10-24 09:38:12 +02:00
Rémi Verschelde 50d17f6b8c
Merge pull request #83613 from clayjohn/surface_upgrade_tool
Add an editor tool to automatically upgrade and re-save meshes
2023-10-24 00:10:37 +02:00
clayjohn 318ef8461f Implementation of tool to automatically upgrade and re-save meshes 2023-10-23 22:39:48 +02:00
Rémi Verschelde 814de86494
Merge pull request #83493 from clayjohn/light-pair-bug
Ensure that only visible paired lights are used
2023-10-23 12:40:07 +02:00
David Snopek 58775a6c67 Fix `GPUParticles3D` on the Meta Quest 2 with OpenGL renderer 2023-10-21 16:49:24 -05:00
Clay 623a050269 Ensure that only visible paired lights are used
This is a longstanding issue in both the Mobile and GL Compatibility renderer.

Meshes pair with all lights that touch them, and then at draw time, we send all paired lights indices to the shader (even if that light isn't visible). The problem is that non-visible lights aren't uploaded to the GPU and don't have an index. So we end up using a bogus index
2023-10-17 13:02:46 +02:00
mrjustaguy 09a2a7c54e Remove PSSM Fade 2023-10-13 12:01:23 +02:00