summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/pipeline_cache_rd.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2021-07-19 16:41:55 -0300
committerreduz <reduzio@gmail.com>2021-07-19 21:51:29 -0300
commit9293bc3935c3b87051003dcb8f6902d6f1e9fdbe (patch)
treec4f920a780e2590a4f888dfe9a083dea74c0afc3 /servers/rendering/renderer_rd/pipeline_cache_rd.h
parent855c7c7414a2f29cd420e8dd654a4630226bcd50 (diff)
downloadredot-engine-9293bc3935c3b87051003dcb8f6902d6f1e9fdbe.tar.gz
Implement more rendering options as specialization constants
* 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.
Diffstat (limited to 'servers/rendering/renderer_rd/pipeline_cache_rd.h')
-rw-r--r--servers/rendering/renderer_rd/pipeline_cache_rd.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/servers/rendering/renderer_rd/pipeline_cache_rd.h b/servers/rendering/renderer_rd/pipeline_cache_rd.h
index 71e26283e1..e52f47fa47 100644
--- a/servers/rendering/renderer_rd/pipeline_cache_rd.h
+++ b/servers/rendering/renderer_rd/pipeline_cache_rd.h
@@ -66,6 +66,7 @@ class PipelineCacheRD {
public:
void setup(RID p_shader, RD::RenderPrimitive p_primitive, const RD::PipelineRasterizationState &p_rasterization_state, RD::PipelineMultisampleState p_multisample, const RD::PipelineDepthStencilState &p_depth_stencil_state, const RD::PipelineColorBlendState &p_blend_state, int p_dynamic_state_flags = 0, const Vector<RD::PipelineSpecializationConstant> &p_base_specialization_constants = Vector<RD::PipelineSpecializationConstant>());
+ void update_specialization_constants(const Vector<RD::PipelineSpecializationConstant> &p_base_specialization_constants);
void update_shader(RID p_shader);
_FORCE_INLINE_ RID get_render_pipeline(RD::VertexFormatID p_vertex_format_id, RD::FramebufferFormatID p_framebuffer_format_id, bool p_wireframe = false, uint32_t p_render_pass = 0, uint32_t p_bool_specializations = 0) {