From 7d953a3eed450398f54e0af753f5cb1af5fe9efd Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Sat, 3 Dec 2022 21:05:58 +0100 Subject: [PATCH] Add compute shader dispatch command --- narcissus-gpu/src/backend/vulkan/mod.rs | 14 ++++++++++++++ narcissus-gpu/src/lib.rs | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/narcissus-gpu/src/backend/vulkan/mod.rs b/narcissus-gpu/src/backend/vulkan/mod.rs index 12617e6..e68a760 100644 --- a/narcissus-gpu/src/backend/vulkan/mod.rs +++ b/narcissus-gpu/src/backend/vulkan/mod.rs @@ -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; diff --git a/narcissus-gpu/src/lib.rs b/narcissus-gpu/src/lib.rs index 5446aee..0d15920 100644 --- a/narcissus-gpu/src/lib.rs +++ b/narcissus-gpu/src/lib.rs @@ -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; -- 2.49.0