summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/storage_rd
Commit message (Collapse)AuthorAgeFilesLines
* Use 16-bit index buffers instead of 32 when unnecessaryMatias N. Goldberg2023-09-031-9/+9
|
* Add motion vector support for GPU 3D Particles.Dario2023-08-282-16/+84
| | | | Add the capability of resizing the transforms buffer for particles to be double its size and alternate where the current output is written to. Only works for particles that use index as their draw order.
* Add motion vector support for animated surfaces like skeletons or blend shapes.Dario2023-08-162-42/+127
| | | | Extends mesh instances that required custom vertex buffers to create two alternating buffers that are written to and binds them to use them as the previous vertex buffer when generating motion vectors.
* Merge pull request #80654 from bitsawer/fix_global_uniform_texture_setRémi Verschelde2023-08-161-4/+6
|\ | | | | | | Fix global shader uniform texture loading
| * Fix global shader uniform texture loadingbitsawer2023-08-151-4/+6
| |
* | Merge pull request #80651 from clayjohn/RD-2D-HDR-MSDFRémi Verschelde2023-08-162-3/+3
|\ \ | | | | | | | | | Fallback to linear color texture when using 2D HDR and MSDF font
| * | Fallback to linear color texture when using 2D HDR and MSDF fontclayjohn2023-08-152-3/+3
| |/
* | Merge pull request #80424 from DarioSamo/rd-buffer-copy-vulkanRémi Verschelde2023-08-161-6/+3
|\ \ | |/ |/| | | Add `buffer_copy` method to RenderingDevice
| * Add buffer_copy method to RenderingDevice interface and an implementation ↵Dario2023-08-121-6/+3
| | | | | | | | | | | | for the Vulkan driver. Direct buffer copies are required to perform certain operations more efficiently, as the only current alternative is to download the buffer to the CPU and upload it again. As the first use case, the new function is used when enabling motion vectors on multimeshes.
* | Fix incorrect error checking and notifications introduced in PR #80414.Dario2023-08-131-1/+4
|/ | | | There was an error in the other branch of the refactored function where the size of the array was not properly multiplied by the size of the float to check against the buffer size. This was only an error in the error-checking itself and not the functionality. There was also an error where the proper notification was not emitted whenever the buffer for the multimesh is recreated to invalidate the previous references the renderer might've created to it. This fixes CPU Particles getting corrupted when they're created without emission being enabled.
* Improve handling of motion vectors for multimesh instances.Dario2023-08-092-17/+33
| | | | Fixes #67287. There was a subtle error where due to how enabling motion vectors for multi-meshes was handled, only the first instance would have a valid transforms buffer and the rest would point to an invalid buffer. This change moves over the responsibility of enabling motion vectors only when changes happen to the individual 3D transforms or the entire buffer itself. It also fixes an unnecessary download of the existing buffer that'd get overwritten by the current cache if it exists. Another fix is handling the case where the buffer was not set, and enabling motion vectors would not cause the buffer to be recreated correctly.
* Merge pull request #80215 from clayjohn/HDR-2DRémi Verschelde2023-08-085-28/+86
|\ | | | | | | Add option to enable HDR rendering in 2D
| * Add option to enable HDR rendering in 2Dclayjohn2023-08-075-28/+86
| | | | | | | | | | | | | | This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear. This is necessary for proper HDR screen support in the future.
* | Fix motion vectors being corrupted when using precision=double and resulting ↵Dario2023-08-041-0/+6
|/ | | | | | in the TAA pass being completely broken. See Issue #69528. When building with precision=double, the TAA pass would break due to the motion vectors being corrupted. It was apparent the origin of the camera itself was corrupted in the UBO for the previous frame because the camera origin was only being split correctly for the current block but not for the previous block (to effectively support the double precision float on the shader).
* Merge pull request #79142 from BastiaanOlij/register_render_buffersYuri Sizov2023-07-272-35/+181
|\ | | | | | | Expose RenderSceneBuffers(RD) through ClassDB
| * Expose RenderingSceneBuffers through ClassDBBastiaan Olij2023-07-262-35/+181
| |
* | Add custom texture create functionBastiaan Olij2023-07-262-0/+460
|/
* Merge pull request #77740 from ChibiDenDen/simplify_vulkanYuri Sizov2023-07-124-27/+38
|\ | | | | | | Replace sampler arrays with constant sampler elements, simplify and reuse code for all shaders
| * replace sampler arrays with constant sampler elementsChibiDenDen2023-06-224-27/+38
| |
* | Merge pull request #79270 from clayjohn/particle-trails-errorRémi Verschelde2023-07-101-1/+1
|\ \ | | | | | | | | | Unify error condition for particles trail lifetime
| * | Unify error condition for particles trail lifetimeclayjohn2023-07-101-1/+1
| | |
* | | Initialize particles instance buffer in case it is used before being updatedclayjohn2023-06-291-1/+4
|/ /
* | Fix error spam when a mesh with bone weights has an invalid skeletonbitsawer2023-06-221-1/+3
| |
* | Fix invalid RID errors when freeing a mesh with blend shapesbitsawer2023-06-191-4/+7
| |
* | Merge pull request #78199 from clayjohn/detect_3dRémi Verschelde2023-06-141-1/+1
|\ \ | | | | | | | | | Ensure that "detect 3D" is only called when using 3D shaders
| * | Ensure that "detect 3D" is only called when using 3D shadersclayjohn2023-06-131-1/+1
| | |
* | | Expose RD::texture_native_handleBastiaan Olij2023-06-141-2/+2
|/ /
* / Fix shader uniform storage conversions and crashbitsawer2023-05-291-555/+100
|/
* Merge pull request #77266 from ↵Rémi Verschelde2023-05-221-2/+2
|\ | | | | | | | | | | Rindbee/fix-bugs-in-TextureStorage-texture_3d_update Fix calling `TextureStorage::texture_3d_update()` could cause a crash
| * Fix calling `TextureStorage::texture_3d_update()` could cause a crashRindbee2023-05-221-2/+2
| |
* | Merge pull request #77265 from lyuma/aabb_bone_lod_insideRémi Verschelde2023-05-221-2/+2
|\ \ | | | | | | | | | Fix calculation of skinned AABB for unused bones.
| * | Fix AABB for unused bonesLyuma2023-05-191-2/+2
| |/ | | | | | | | | | | Fixes bug where bounding box of 1 unit was used in some skinned models and had wrong LODs. (this could become very large if the mesh is scaled, such as FBX conversions) Also fixes a mistake in calcualting bone index.
* / (Re-)Implemented Light3D's property "shadow_reverse_cull_face"Markus Grafen2023-05-191-1/+8
|/ | | | The parameter shadow_reverse_cull_face is now passed to the shadow pass so that the mesh back-faces are used for shadow map calculation.
* Merge pull request #76565 from clayjohn/debug-PSSM-splitsRémi Verschelde2023-05-151-4/+0
|\ | | | | | | Re-implement the PSSM_SPLITS debug option
| * Re-implement the PSSM_SPLITS debug optionclayjohn2023-04-281-4/+0
| | | | | | | | This uses a render_mode instead of shadow_color to avoid adding a cost to the basic shader
* | For GDExternal use, provides access to internal graphics handles for texturesBastiaan Olij2023-05-092-0/+12
| |
* | Fix additional cases of breakage of rendering effectsPedro J. Estébanez2023-05-031-5/+5
|/
* Merge pull request #73313 from clayjohn/particles-splitRémi Verschelde2023-04-121-2/+2
|\ | | | | | | Properly calculate lifetime_split for particles
| * Properly calculate lifetime_split for particlesclayjohn2023-02-141-2/+2
| |
* | Merge pull request #74708 from BastiaanOlij/fix_rd_textureRémi Verschelde2023-03-102-15/+9
|\ \ | | | | | | | | | Merge duplicate rd_texture functions
| * | Merge duplicate rd_texture functionsBastiaan Olij2023-03-102-15/+9
| | |
* | | Merge pull request #74019 from BastiaanOlij/split_last_effectsRémi Verschelde2023-03-102-1/+14
|\ \ \ | |/ / |/| | | | | Move roughness limiter and sort into their own classes
| * | Move roughness limiter and sort into their own classesBastiaan Olij2023-03-092-1/+14
| | |
* | | Merge pull request #74566 from clayjohn/GL-canvas-textureRémi Verschelde2023-03-081-0/+4
|\ \ \ | | | | | | | | | | | | Avoid copying CanvasTexture when updating proxy
| * | | Avoid copying CanvasTexture when updating proxyclayjohn2023-03-071-0/+4
| | | |
* | | | Fix AABB calculation for meshes using Skeleton2DSlugFiller2023-03-051-8/+9
|/ / /
* / / Use MSAA 2D texture in multipass tonemapperBastiaan Olij2023-03-012-0/+8
|/ /
* | Fixing issues with SSIL artifactsBastiaan Olij2023-02-241-2/+2
| |
* | Fix issue with default textures requiring arrays when using multiviewBastiaan Olij2023-02-223-1/+90
| |
* | Forbid passing multiview sampler to the custom function in shadersYuri Rubinsky2023-02-211-5/+5
|/