Age | Commit message (Collapse) | Author |
|
Porting cubemap compute shaders to raster for the mobile renderer
|
|
|
|
|
|
Removed redundant assignment of `blur_pipeline`
|
|
Fix editor crash if passing index as variable to function parameter
|
|
Implement Binary Shader Compilation
|
|
|
|
|
|
Prevents shader crashing if varying assigned incorrectly by using compound assignment operators (*=, += etc.)
|
|
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.
|
|
|
|
Allow using vertex-stage varying in both `fragment` and `light` functions
|
|
Allow using vertex varying in custom functions under any circumstances
|
|
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`
|
|
|
|
|
|
|
|
|
|
|
|
Prevent error if varying assigned but not used (push warning instead)
|
|
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.
|
|
Optimize StringName usage
|
|
In files that have lots of branching, `\t` was replaced with a
tab character instead.
|
|
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.
This is part of ongoing work to optimize GUI and the editor.
|
|
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.
|
|
|
|
Added a shader warning about unused local variable
|
|
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
|
|
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
|
|
* Added support to our local copy of SpirV Reflect (which does not support it).
* Pass them on render or compute pipeline creation.
* Not implemented in our shaders yet.
|
|
|
|
* 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.
|