Merge pull request #89491 from thimenesup/compute_dispatch_indirect

Expose bindings to compute dispatch indirect of rendering device
This commit is contained in:
Rémi Verschelde 2024-04-09 10:42:22 +02:00
commit 9cba6ec216
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 10 additions and 0 deletions

View File

@ -138,6 +138,15 @@
Submits the compute list for processing on the GPU. This is the compute equivalent to [method draw_list_draw]. Submits the compute list for processing on the GPU. This is the compute equivalent to [method draw_list_draw].
</description> </description>
</method> </method>
<method name="compute_list_dispatch_indirect">
<return type="void" />
<param index="0" name="compute_list" type="int" />
<param index="1" name="buffer" type="RID" />
<param index="2" name="offset" type="int" />
<description>
Submits the compute list for processing on the GPU with the given group counts stored in the [param buffer] at [param offset]. Buffer must have been created with [constant STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT] flag.
</description>
</method>
<method name="compute_list_end"> <method name="compute_list_end">
<return type="void" /> <return type="void" />
<description> <description>

View File

@ -5554,6 +5554,7 @@ void RenderingDevice::_bind_methods() {
ClassDB::bind_method(D_METHOD("compute_list_set_push_constant", "compute_list", "buffer", "size_bytes"), &RenderingDevice::_compute_list_set_push_constant); ClassDB::bind_method(D_METHOD("compute_list_set_push_constant", "compute_list", "buffer", "size_bytes"), &RenderingDevice::_compute_list_set_push_constant);
ClassDB::bind_method(D_METHOD("compute_list_bind_uniform_set", "compute_list", "uniform_set", "set_index"), &RenderingDevice::compute_list_bind_uniform_set); ClassDB::bind_method(D_METHOD("compute_list_bind_uniform_set", "compute_list", "uniform_set", "set_index"), &RenderingDevice::compute_list_bind_uniform_set);
ClassDB::bind_method(D_METHOD("compute_list_dispatch", "compute_list", "x_groups", "y_groups", "z_groups"), &RenderingDevice::compute_list_dispatch); ClassDB::bind_method(D_METHOD("compute_list_dispatch", "compute_list", "x_groups", "y_groups", "z_groups"), &RenderingDevice::compute_list_dispatch);
ClassDB::bind_method(D_METHOD("compute_list_dispatch_indirect", "compute_list", "buffer", "offset"), &RenderingDevice::compute_list_dispatch_indirect);
ClassDB::bind_method(D_METHOD("compute_list_add_barrier", "compute_list"), &RenderingDevice::compute_list_add_barrier); ClassDB::bind_method(D_METHOD("compute_list_add_barrier", "compute_list"), &RenderingDevice::compute_list_add_barrier);
ClassDB::bind_method(D_METHOD("compute_list_end"), &RenderingDevice::compute_list_end); ClassDB::bind_method(D_METHOD("compute_list_end"), &RenderingDevice::compute_list_end);