diff options
author | Juan Linietsky <reduzio@gmail.com> | 2019-09-25 16:44:44 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2020-02-11 12:02:34 +0100 |
commit | 263bebe0237b85b1343ba17b117c8c43287ecc57 (patch) | |
tree | ca2d803d0e1e3ec664bb0988d6a7896f6f55e8b2 /servers/visual/rendering_device.h | |
parent | f55332ffad4622b3da5d6ebcd0806d3ce37465f1 (diff) | |
download | redot-engine-263bebe0237b85b1343ba17b117c8c43287ecc57.tar.gz |
Untested support for compute shaders
Diffstat (limited to 'servers/visual/rendering_device.h')
-rw-r--r-- | servers/visual/rendering_device.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/servers/visual/rendering_device.h b/servers/visual/rendering_device.h index 859a9e798c..d0afb3f13b 100644 --- a/servers/visual/rendering_device.h +++ b/servers/visual/rendering_device.h @@ -882,6 +882,13 @@ public: virtual RID render_pipeline_create(RID p_shader, FramebufferFormatID p_framebuffer_format, VertexFormatID p_vertex_format, RenderPrimitive p_render_primitive, const PipelineRasterizationState &p_rasterization_state, const PipelineMultisampleState &p_multisample_state, const PipelineDepthStencilState &p_depth_stencil_state, const PipelineColorBlendState &p_blend_state, int p_dynamic_state_flags = 0) = 0; virtual bool render_pipeline_is_valid(RID p_pipeline) = 0; + /**************************/ + /**** COMPUTE PIPELINE ****/ + /**************************/ + + virtual RID compute_pipeline_create(RID p_shader) = 0; + virtual bool compute_pipeline_is_valid(RID p_pipeline) = 0; + /****************/ /**** SCREEN ****/ /****************/ @@ -930,6 +937,19 @@ public: virtual void draw_list_end() = 0; + /***********************/ + /**** COMPUTE LISTS ****/ + /***********************/ + + typedef int64_t ComputeListID; + + virtual ComputeListID compute_list_begin() = 0; + virtual void compute_list_bind_compute_pipeline(ComputeListID p_list, RID p_compute_pipeline) = 0; + virtual void compute_list_bind_uniform_set(ComputeListID p_list, RID p_uniform_set, uint32_t p_index) = 0; + virtual void compute_list_set_push_constant(ComputeListID p_list, void *p_data, uint32_t p_data_size) = 0; + virtual void compute_list_dispatch(ComputeListID p_list, uint32_t p_x_groups, uint32_t p_y_groups, uint32_t p_z_groups) = 0; + virtual void compute_list_end() = 0; + /***************/ /**** FREE! ****/ /***************/ |