| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Precompute projection matrices when rendering 2D shadows
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
arrays in canvas renderer
|
|
|
|
|
|
|
|
|
|
|
| |
Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590.
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
|
|
|
|
| |
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
|
| |
|
| |
|
|
|
|
|
| |
Closes #96960
Fixes regression of #95574 using fix from #95666
|
| |
|
|\
| |
| | |
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.
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- sets LightOccluderInstance field when sdf collision is updated
- adds check for light occluder sdf_collision field in 2d renderers
|
|
|
|
|
|
|
| |
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>
|
| |
|
|\
| |
| |
| | |
Support CUSTOM shader attributes in 2D
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
|
|\
| |
| |
| | |
Implement render info counters for the 2D renderer
|
| |
| |
| |
| | |
This provides information for the debug monitors
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
Previously, it was possible to use zero or negative values, which are
invalid.
This also prevents crashing the engine by setting a shadow size of
0 or lower from a script.
|
|\
| |
| | |
Debug CanvasItem redraw
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I wanted to add this tool for years and always forget. This command line option:
```
$ godot.exe -e --debug-canvas-item-redraw
```
Allows to see when a canvas item is redrawn. This helps find out if something
in the UI is refreshing in a way it should not. Examples as such:
* Signals causing more of the UI to redraw.
* Container resizing causes more UI elements to redraw.
* Something using a timer is redrawing all time time, which can go unnoticed.
To my surprise, the editor UI is redrawing very efficiently. There is some
weird stuff with the scene tabs, redrawing when the inspector changes but most
things for the most part are fine.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
|
| | |
|
|\ \
| | |
| | |
| | | |
Fix mipmap bias behavior by refactoring how samplers are created by Material Storage.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Storage.
Introduces a new structure to store samplers created with certain parameters instead of storing a 'custom' set of samplers. Allows viewports to correctly configure the mipmap bias and use it when rendering the scene.
|
|\ \ \
| |/ /
|/| |
| | | |
Add render mode to use world coordinates in canvas item shader
|
| |/
| |
| |
| | |
By using the render mode `world_vertex_coords` you can automatically use the vertex coordinates in world space
|
|/ |
|
|\
| |
| |
| | |
Ensure `POINT_SIZE` takes effect in the canvas item shader
|
| | |
|
| |
| |
| |
| | |
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.
|
| | |
|
|/
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
Replace sampler arrays with constant sampler elements, simplify and reuse code for all shaders
|
| | |
|
|\ \
| |/
|/| |
Fix "Light Only" mode of `CanvasItemMaterial`
|
| | |
|
|/
|
|
|
|
|
|
| |
behaviour of the Godot 3 and Compatibility renderers
The OpenGL implementation has used GL_FUNC_REVERSE_SUBTRACT for a long time, but the new RenderingDevice abstraction used by the Vulkan renderers had been mistakenly set to BLEND_OP_SUBTRACT instead of BLEND_OP_REVERSE_SUBTRACT.
Fixes #77448
|