]> git.nega.tv - josh/narcissus/commitdiff
Add compute shader dispatch command
authorJoshua Simmons <josh@nega.tv>
Sat, 3 Dec 2022 20:05:58 +0000 (21:05 +0100)
committerJoshua Simmons <josh@nega.tv>
Sat, 3 Dec 2022 20:05:58 +0000 (21:05 +0100)
narcissus-gpu/src/backend/vulkan/mod.rs
narcissus-gpu/src/lib.rs

index 12617e659d27e081438b58489460ef9bd9c0399a..e68a7606a83641e186e5fa3b99ff740c64d2b3af 100644 (file)
@@ -2669,6 +2669,20 @@ impl Device for VulkanDevice {
         }
     }
 
+    fn cmd_dispatch(
+        &self,
+        cmd_buffer: &mut CmdBuffer,
+        group_count_x: u32,
+        group_count_y: u32,
+        group_count_z: u32,
+    ) {
+        let command_buffer = self.cmd_buffer_mut(cmd_buffer).command_buffer;
+        unsafe {
+            self.device_fn
+                .cmd_dispatch(command_buffer, group_count_x, group_count_y, group_count_z)
+        }
+    }
+
     fn submit(&self, frame: &Frame, mut cmd_buffer: CmdBuffer) {
         let fence = self.universal_queue_fence.fetch_add(1, Ordering::SeqCst) + 1;
 
index 5446aee50d54288066821aa659222087c7cb507c..0d15920e33405d37d00461ef93147d86ee8c8e1e 100644 (file)
@@ -783,6 +783,14 @@ pub trait Device {
         first_instance: u32,
     );
 
+    fn cmd_dispatch(
+        &self,
+        cmd_buffer: &mut CmdBuffer,
+        group_count_x: u32,
+        group_count_y: u32,
+        group_count_z: u32,
+    );
+
     fn submit(&self, frame: &Frame, cmd_buffer: CmdBuffer);
 
     fn begin_frame(&self) -> Frame;