aboutsummaryrefslogtreecommitdiffstats
path: root/src/compute-renderpass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compute-renderpass.cpp')
-rw-r--r--src/compute-renderpass.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compute-renderpass.cpp b/src/compute-renderpass.cpp
index 8fd4895..d801b11 100644
--- a/src/compute-renderpass.cpp
+++ b/src/compute-renderpass.cpp
@@ -4,6 +4,10 @@
#include "vk-renderer.hpp"
+void ComputeRenderpass::set_pipeline(std::string& shader_name) {
+ this->pipeline = api.create_compute_pipeline(shader_name.c_str());
+}
+
void ComputeRenderpass::set_ouput_texture(Texture* output_texture) {
this->output_texture = output_texture;
@@ -27,6 +31,11 @@ void ComputeRenderpass::set_constant(off_t offset, Texture* texture) {
input_textures.push_back(texture);
}
+void ComputeRenderpass::set_constant(off_t offset, Buffer* buffer) {
+ auto address = buffer->device_address();
+ memcpy(constants.data() + offset, (void*)&address, 8);
+}
+
void ComputeRenderpass::execute(VkCommandBuffer command_buffer) {
vkCmdPushConstants(command_buffer, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, 64, (void*)&constants);