Age | Commit message (Collapse) | Author |
|
Fixes and optimizations to mobile renderer
|
|
|
|
* Only apply final actions to attachments used in the last pass.
* Fixes to draw list final action (was using continue instead of read/drop).
* Profiling regions inside draw lists now properly throw errors.
* Ability to enable gpu profile printing from project settings. (used to debug).
|
|
[4.0] Make Blinn and Phong specular modes take albedo into account
|
|
Move code for looking_at to Basis
|
|
Clamp negative colors regardless of the tonemapper to avoid artifacts
|
|
Add horizon specular occlusion
|
|
|
|
|
|
Color artifacts could be visible when using negative lights with the
Filmic and ACES tonemapping operators, as these did not clamp negative
colors.
|
|
Fix Gradient and Color Picker checkerboard, Fix tile parameter for CanvasItem.draw_texture_rect
|
|
Fix a default shader specular render mode to `SCHLICK_GGX`
|
|
|
|
|
|
Fix incorrect checking of uniform set to prevent error spam
|
|
|
|
|
|
|
|
Porting cubemap compute shaders to raster for the mobile renderer
|
|
|
|
|
|
|
|
Removed redundant assignment of `blur_pipeline`
|
|
Implement Binary Shader Compilation
|
|
|
|
This expression should now work as intended.
|
|
* Added an extra stage before compiling shader, which is generating a binary blob.
* On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse.
* On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL.
This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved.
I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware.
There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
|
|
Fix always true expression `radius > 0.98 || radius < 1.02` in `cluster_builder_rd.h`
|
|
This pull request fixes an issue where an expression would always evaluate to `true` no matter what.
|
|
Follow-up typos found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
|
|
|
|
Fix various typos
|
|
|
|
|
|
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
|
|
|
|
|
|
Add error marking to the shader error console output
|
|
Use C++11 raw literals for shader code to improve readability
|
|
* Shadow quality settings now specialization constant.
* Decal and light projector filters can be set.
* Changing those settings forces re-creation of the pipelines.
These changes should help improve performance related to shadow mapping, and allows improving performance by sacrificing decal and light projector quality.
|
|
In files that have lots of branching, `\t` was replaced with a
tab character instead.
|
|
This makes it possible to see where the shader error is without
having to look at the trace printed below the source code.
|
|
* use valid format for framebuffer: VK_FORMAT_A2B10G10R10_UNORM_PACK32
* Unfortunately cant be used for compute.
* Mobile will need to do refprobe, sky, mipmapblurring using raster.
|
|
Use 32bit instead of 64bit 3D render buffer on mobile renderer
|
|
|
|
|
|
* Keep track of when projector, softshadow or directional sofshadow were enabled.
* Enable them via specializaton constant where it makes sense.
* Re-implements soft shadows.
* Re-implements light projectors.
|
|
Fix indexing of multiple reflection probes
|
|
* IF a texture was reimported (calling replace as an example), it would invalidate all materials using it, causing plenty of errors.
* Added the possibility to get a notification when a uniform set is erased.
* With this notification, materials can be queued for update properly.
|
|
* Previews and other stuff now works again.
* Not the best solution, will have to be improved in the future usinc async queues where supported.
|