diff options
| author | Quentin LADEVIE <qladevie@wanadev.fr> | 2022-02-24 12:51:08 +0100 |
|---|---|---|
| committer | Quentin LADEVIE <qladevie@wanadev.fr> | 2022-02-24 12:51:08 +0100 |
| commit | 6d98e9d8b07d5c8aa0358780c38f29ffddfbf45f (patch) | |
| tree | 25e36cfd7a2917cb9ae14529239281dc157fd77f /src | |
| parent | b088d17e07dc68ff81830f40f4a49eda4f93dc13 (diff) | |
Make bindless descriptor a private member of vkapi
Diffstat (limited to 'src')
| -rw-r--r-- | src/compute-renderpass.cpp | 2 | ||||
| -rw-r--r-- | src/vk-api.cpp | 3 | ||||
| -rw-r--r-- | src/vk-renderer.cpp | 10 |
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; |
