Vulkan: Add dynamic rendering to command buffer API
This PR adds the dynamic rendering function to the command buffer API. Pull Request: https://projects.blender.org/blender/blender/pulls/121645
This commit is contained in:
@@ -378,18 +378,22 @@ class CommandBufferLog : public VKCommandBufferInterface {
|
||||
GTEST_FAIL() << __func__ << " not implemented!";
|
||||
}
|
||||
|
||||
void begin_render_pass(const VkRenderPassBeginInfo *p_render_pass_begin,
|
||||
VkSubpassContents contents) override
|
||||
void begin_rendering(const VkRenderingInfo *p_rendering_info) override
|
||||
{
|
||||
UNUSED_VARS(p_render_pass_begin, contents);
|
||||
EXPECT_TRUE(is_recording_);
|
||||
GTEST_FAIL() << __func__ << " not implemented!";
|
||||
std::stringstream ss;
|
||||
ss << "begin_rendering(";
|
||||
ss << "p_rendering_info=" << to_string(*p_rendering_info);
|
||||
ss << ")";
|
||||
log_.append(ss.str());
|
||||
}
|
||||
|
||||
void end_render_pass() override
|
||||
void end_rendering() override
|
||||
{
|
||||
EXPECT_TRUE(is_recording_);
|
||||
GTEST_FAIL() << __func__ << " not implemented!";
|
||||
std::stringstream ss;
|
||||
ss << "end_rendering()";
|
||||
log_.append(ss.str());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -315,14 +315,18 @@ void VKCommandBufferWrapper::push_constants(VkPipelineLayout layout,
|
||||
vkCmdPushConstants(vk_command_buffer_, layout, stage_flags, offset, size, p_values);
|
||||
}
|
||||
|
||||
void VKCommandBufferWrapper::begin_render_pass(const VkRenderPassBeginInfo *p_render_pass_begin,
|
||||
VkSubpassContents contents)
|
||||
void VKCommandBufferWrapper::begin_rendering(const VkRenderingInfo *p_rendering_info)
|
||||
{
|
||||
vkCmdBeginRenderPass(vk_command_buffer_, p_render_pass_begin, contents);
|
||||
const VKDevice &device = VKBackend::get().device_get();
|
||||
BLI_assert(device.functions.vkCmdBeginRendering);
|
||||
device.functions.vkCmdBeginRendering(vk_command_buffer_, p_rendering_info);
|
||||
}
|
||||
|
||||
void VKCommandBufferWrapper::end_render_pass()
|
||||
void VKCommandBufferWrapper::end_rendering()
|
||||
{
|
||||
vkCmdEndRenderPass(vk_command_buffer_);
|
||||
const VKDevice &device = VKBackend::get().device_get();
|
||||
BLI_assert(device.functions.vkCmdEndRendering);
|
||||
device.functions.vkCmdEndRendering(vk_command_buffer_);
|
||||
}
|
||||
|
||||
} // namespace blender::gpu::render_graph
|
||||
|
||||
@@ -114,9 +114,8 @@ class VKCommandBufferInterface {
|
||||
uint32_t offset,
|
||||
uint32_t size,
|
||||
const void *p_values) = 0;
|
||||
virtual void begin_render_pass(const VkRenderPassBeginInfo *p_render_pass_begin,
|
||||
VkSubpassContents contents) = 0;
|
||||
virtual void end_render_pass() = 0;
|
||||
virtual void begin_rendering(const VkRenderingInfo *p_rendering_info) = 0;
|
||||
virtual void end_rendering() = 0;
|
||||
};
|
||||
|
||||
class VKCommandBufferWrapper : public VKCommandBufferInterface {
|
||||
@@ -231,9 +230,8 @@ class VKCommandBufferWrapper : public VKCommandBufferInterface {
|
||||
uint32_t offset,
|
||||
uint32_t size,
|
||||
const void *p_values) override;
|
||||
void begin_render_pass(const VkRenderPassBeginInfo *p_render_pass_begin,
|
||||
VkSubpassContents contents) override;
|
||||
void end_render_pass() override;
|
||||
void begin_rendering(const VkRenderingInfo *p_rendering_info) override;
|
||||
void end_rendering() override;
|
||||
};
|
||||
|
||||
} // namespace blender::gpu::render_graph
|
||||
|
||||
Reference in New Issue
Block a user