aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuentin LADEVIE <qladevie@wanadev.fr>2022-02-24 12:51:08 +0100
committerQuentin LADEVIE <qladevie@wanadev.fr>2022-02-24 12:51:08 +0100
commit6d98e9d8b07d5c8aa0358780c38f29ffddfbf45f (patch)
tree25e36cfd7a2917cb9ae14529239281dc157fd77f /src
parentb088d17e07dc68ff81830f40f4a49eda4f93dc13 (diff)
Make bindless descriptor a private member of vkapi
Diffstat (limited to 'src')
-rw-r--r--src/compute-renderpass.cpp2
-rw-r--r--src/vk-api.cpp3
-rw-r--r--src/vk-renderer.cpp10
3 files changed, 9 insertions, 6 deletions
diff --git a/src/compute-renderpass.cpp b/src/compute-renderpass.cpp
index 87a2810..c680bac 100644
--- a/src/compute-renderpass.cpp
+++ b/src/compute-renderpass.cpp
@@ -37,7 +37,7 @@ void ComputeRenderpass::set_constant(off_t offset, Buffer* buffer) {
}
void ComputeRenderpass::execute(VkCommandBuffer command_buffer) {
- vkCmdPushConstants(command_buffer, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, 64, (void*)&constants);
+ api.update_constants(command_buffer, VK_SHADER_STAGE_COMPUTE_BIT, 0, 64, (void*)&constants);
for (auto& texture: input_textures) {
api.image_barrier(command_buffer, VK_IMAGE_LAYOUT_GENERAL, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_SHADER_READ_BIT, texture->device_image);
diff --git a/src/vk-api.cpp b/src/vk-api.cpp
index 6ce7312..226314a 100644
--- a/src/vk-api.cpp
+++ b/src/vk-api.cpp
@@ -993,6 +993,9 @@ void vkapi::update_descriptor_samplers(std::vector<sampler> &samplers) {
vkUpdateDescriptorSets(context.device, writes_descriptor.size(), writes_descriptor.data(), 0, nullptr);
}
+void vkapi::update_constants(VkCommandBuffer command_buffer, VkShaderStageFlagBits shader_stage, off_t offset, size_t size, void* data) {
+ vkCmdPushConstants(command_buffer, bindless_descriptor.pipeline_layout, shader_stage, offset, size, data);
+}
void vkapi::start_record(VkCommandBuffer command_buffer) {
VkCommandBufferBeginInfo cmd_buf_begin_info = {};
diff --git a/src/vk-renderer.cpp b/src/vk-renderer.cpp
index 8eb2f57..e2e62ff 100644
--- a/src/vk-renderer.cpp
+++ b/src/vk-renderer.cpp
@@ -223,12 +223,12 @@ void vkrenderer::ui() {
-1.f - draw_data->DisplayPos.x * (2.f / draw_data->DisplaySize.x),
-1.f - draw_data->DisplayPos.y * (2.f / draw_data->DisplaySize.y),
};
- vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 64, 8, (void*)&ui_vertex_buffers[virtual_frame_index].device_address);
- vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 72, 8, (void*)&scale);
- vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 80, 8, (void*)&translate);
+ // vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 64, 8, (void*)&ui_vertex_buffers[virtual_frame_index].device_address);
+ // vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 72, 8, (void*)&scale);
+ // vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_VERTEX_BIT, 80, 8, (void*)&translate);
- vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_FRAGMENT_BIT, 96, 4, (void*)&ui_texture.bindless_sampled_index);
- vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_FRAGMENT_BIT, 100, 4, (void*)&ui_texture_sampler.bindless_index);
+ // vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_FRAGMENT_BIT, 96, 4, (void*)&ui_texture.bindless_sampled_index);
+ // vkCmdPushConstants(cmd_buf, api.bindless_descriptor.pipeline_layout, VK_SHADER_STAGE_FRAGMENT_BIT, 100, 4, (void*)&ui_texture_sampler.bindless_index);
off_t vertex_buffer_offset = 0;
off_t index_buffer_offset = 0;