diff options
| author | Juan Linietsky <reduzio@gmail.com> | 2020-09-02 14:39:11 -0300 |
|---|---|---|
| committer | Juan Linietsky <reduzio@gmail.com> | 2020-09-02 21:37:14 +0200 |
| commit | d0913370b5980cbcd248b86ad6de2f14587e0ee5 (patch) | |
| tree | 3a04659f841cba0bcbed4b27c4ddd96189c30c3d /servers/rendering/rasterizer_rd/rasterizer_effects_rd.h | |
| parent | a3f5dac84f3416cf81dd69d90bf52eeacc63955a (diff) | |
| parent | f5f27bacdbd6677c16b82729dd3f4824609cf2ed (diff) | |
Merge pull request #41711 from reduz/particle-shaders
Particle shaders
Diffstat (limited to 'servers/rendering/rasterizer_rd/rasterizer_effects_rd.h')
| -rw-r--r-- | servers/rendering/rasterizer_rd/rasterizer_effects_rd.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h index 6dff835e21..e434bbc372 100644 --- a/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h +++ b/servers/rendering/rasterizer_rd/rasterizer_effects_rd.h @@ -47,6 +47,7 @@ #include "servers/rendering/rasterizer_rd/shaders/screen_space_reflection_filter.glsl.gen.h" #include "servers/rendering/rasterizer_rd/shaders/screen_space_reflection_scale.glsl.gen.h" #include "servers/rendering/rasterizer_rd/shaders/shadow_reduce.glsl.gen.h" +#include "servers/rendering/rasterizer_rd/shaders/sort.glsl.gen.h" #include "servers/rendering/rasterizer_rd/shaders/specular_merge.glsl.gen.h" #include "servers/rendering/rasterizer_rd/shaders/ssao.glsl.gen.h" #include "servers/rendering/rasterizer_rd/shaders/ssao_blur.glsl.gen.h" @@ -545,9 +546,28 @@ class RasterizerEffectsRD { struct ShadowReduce { ShadowReduceShaderRD shader; RID shader_version; - RID pipelines[2]; + RID pipelines[SHADOW_REDUCE_MAX]; } shadow_reduce; + enum SortMode { + SORT_MODE_BLOCK, + SORT_MODE_STEP, + SORT_MODE_INNER, + SORT_MODE_MAX + }; + + struct Sort { + struct PushConstant { + uint32_t total_elements; + uint32_t pad[3]; + int32_t job_params[4]; + }; + + SortShaderRD shader; + RID shader_version; + RID pipelines[SORT_MODE_MAX]; + } sort; + RID default_sampler; RID default_mipmap_sampler; RID index_buffer; @@ -650,6 +670,8 @@ public: void reduce_shadow(RID p_source_shadow, RID p_dest_shadow, const Size2i &p_source_size, const Rect2i &p_source_rect, int p_shrink_limit, RenderingDevice::ComputeListID compute_list); void filter_shadow(RID p_shadow, RID p_backing_shadow, const Size2i &p_source_size, const Rect2i &p_source_rect, RS::EnvVolumetricFogShadowFilter p_filter, RenderingDevice::ComputeListID compute_list, bool p_vertical = true, bool p_horizontal = true); + void sort_buffer(RID p_uniform_set, int p_size); + RasterizerEffectsRD(); ~RasterizerEffectsRD(); }; |