1- /* Copyright (c) 2019-2025 , Arm Limited and Contributors
2- * Copyright (c) 2024-2025 , NVIDIA CORPORATION. All rights reserved.
1+ /* Copyright (c) 2019-2026 , Arm Limited and Contributors
2+ * Copyright (c) 2024-2026 , NVIDIA CORPORATION. All rights reserved.
33 *
44 * SPDX-License-Identifier: Apache-2.0
55 *
2828#include " core/physical_device.h"
2929#include " hpp_resource_binding_state.h"
3030#include " rendering/hpp_pipeline_state.h"
31- #include " rendering/hpp_render_target.h"
3231#include " rendering/subpass.h"
3332#include " resource_cache.h"
3433
@@ -94,9 +93,8 @@ class CommandBuffer
9493 using QueryPoolType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::core::HPPQueryPool, vkb::QueryPool>::type;
9594 using RasterizationStateType =
9695 typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::rendering::HPPRasterizationState, vkb::RasterizationState>::type;
97- using RenderPassType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::core::HPPRenderPass, vkb::RenderPass>::type;
98- using RenderTargetType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::rendering::HPPRenderTarget, vkb::RenderTarget>::type;
99- using SamplerType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::core::HPPSampler, vkb::core::Sampler>::type;
96+ using RenderPassType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::core::HPPRenderPass, vkb::RenderPass>::type;
97+ using SamplerType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::core::HPPSampler, vkb::core::Sampler>::type;
10098 using VertexInputStateType =
10199 typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::rendering::HPPVertexInputState, vkb::VertexInputState>::type;
102100 using ViewportStateType = typename std::conditional<bindingType == vkb::BindingType::Cpp, vkb::rendering::HPPViewportState, vkb::ViewportState>::type;
@@ -130,16 +128,16 @@ class CommandBuffer
130128 void begin (CommandBufferUsageFlagsType flags, const RenderPassType *render_pass, const FramebufferType *framebuffer, uint32_t subpass_index);
131129
132130 void begin_query (QueryPoolType const &query_pool, uint32_t query, QueryControlFlagsType flags);
133- void begin_render_pass (RenderTargetType const &render_target,
131+ void begin_render_pass (vkb::rendering::RenderTarget<bindingType> const &render_target,
134132 std::vector<LoadStoreInfoType> const &load_store_infos,
135133 std::vector<ClearValueType> const &clear_values,
136134 std::vector<std::unique_ptr<vkb::rendering::Subpass<bindingType>>> const &subpasses,
137135 SubpassContentsType contents = VK_SUBPASS_CONTENTS_INLINE);
138- void begin_render_pass (RenderTargetType const &render_target,
139- RenderPassType const &render_pass,
140- FramebufferType const &framebuffer,
141- std::vector<ClearValueType> const &clear_values,
142- SubpassContentsType contents = vk::SubpassContents::eInline);
136+ void begin_render_pass (vkb::rendering::RenderTarget<bindingType> const &render_target,
137+ RenderPassType const &render_pass,
138+ FramebufferType const &framebuffer,
139+ std::vector<ClearValueType> const &clear_values,
140+ SubpassContentsType contents = vk::SubpassContents::eInline);
143141 void bind_buffer (vkb::core::Buffer<bindingType> const &buffer, DeviceSizeType offset, DeviceSizeType range, uint32_t set, uint32_t binding, uint32_t array_element);
144142 void bind_image (ImageViewType const &image_view, SamplerType const &sampler, uint32_t set, uint32_t binding, uint32_t array_element);
145143 void bind_image (ImageViewType const &image_view, uint32_t set, uint32_t binding, uint32_t array_element);
@@ -171,11 +169,11 @@ class CommandBuffer
171169 void execute_commands (vkb::core::CommandBuffer<bindingType> &secondary_command_buffer);
172170 void execute_commands (std::vector<std::shared_ptr<vkb::core::CommandBuffer<bindingType>>> &secondary_command_buffers);
173171 CommandBufferLevelType get_level () const ;
174- RenderPassType &get_render_pass (RenderTargetType const &render_target,
172+ RenderPassType &get_render_pass (vkb::rendering::RenderTarget<bindingType> const &render_target,
175173 std::vector<LoadStoreInfoType> const &load_store_infos,
176174 std::vector<std::unique_ptr<vkb::rendering::Subpass<bindingType>>> const &subpasses);
177175 void image_memory_barrier (ImageViewType const &image_view, ImageMemoryBarrierType const &memory_barrier) const ;
178- void image_memory_barrier (RenderTargetType &render_target, uint32_t view_index, ImageMemoryBarrierType const &memory_barrier) const ;
176+ void image_memory_barrier (vkb::rendering::RenderTarget<bindingType> &render_target, uint32_t view_index, ImageMemoryBarrierType const &memory_barrier) const ;
179177 void next_subpass ();
180178
181179 /* *
@@ -238,7 +236,7 @@ class CommandBuffer
238236 vkb::core::HPPRenderPass const *render_pass,
239237 vkb::core::HPPFramebuffer const *framebuffer,
240238 uint32_t subpass_index);
241- void begin_render_pass_impl (vkb::rendering::HPPRenderTarget const &render_target,
239+ void begin_render_pass_impl (vkb::rendering::RenderTargetCpp const &render_target,
242240 vkb::core::HPPRenderPass const &render_pass,
243241 vkb::core::HPPFramebuffer const &framebuffer,
244242 std::vector<vk::ClearValue> const &clear_values,
@@ -256,7 +254,7 @@ class CommandBuffer
256254 void flush_descriptor_state_impl (vk::PipelineBindPoint pipeline_bind_point);
257255 void flush_pipeline_state_impl (vkb::core::DeviceCpp &device, vk::PipelineBindPoint pipeline_bind_point);
258256 vkb::core::HPPRenderPass &get_render_pass_impl (vkb::core::DeviceCpp &device,
259- vkb::rendering::HPPRenderTarget const &render_target,
257+ vkb::rendering::RenderTargetCpp const &render_target,
260258 std::vector<vkb::common::HPPLoadStoreInfo> const &load_store_infos,
261259 std::vector<std::unique_ptr<vkb::rendering::SubpassCpp>> const &subpasses);
262260 void image_memory_barrier_impl (vkb::core::HPPImageView const &image_view, vkb::common::HPPImageMemoryBarrier const &memory_barrier) const ;
@@ -407,7 +405,7 @@ inline void CommandBuffer<bindingType>::begin_query(QueryPoolType const &query_p
407405}
408406
409407template <vkb::BindingType bindingType>
410- inline void CommandBuffer<bindingType>::begin_render_pass(RenderTargetType const &render_target,
408+ inline void CommandBuffer<bindingType>::begin_render_pass(vkb::rendering::RenderTarget<bindingType> const &render_target,
411409 std::vector<LoadStoreInfoType> const &load_store_infos,
412410 std::vector<ClearValueType> const &clear_values,
413411 std::vector<std::unique_ptr<vkb::rendering::Subpass<bindingType>>> const &subpasses,
@@ -425,19 +423,19 @@ inline void CommandBuffer<bindingType>::begin_render_pass(RenderTargetType const
425423}
426424
427425template <vkb::BindingType bindingType>
428- inline void CommandBuffer<bindingType>::begin_render_pass(RenderTargetType const &render_target,
429- RenderPassType const &render_pass,
430- FramebufferType const &framebuffer,
431- std::vector<ClearValueType> const &clear_values,
432- SubpassContentsType contents)
426+ inline void CommandBuffer<bindingType>::begin_render_pass(vkb::rendering::RenderTarget<bindingType> const &render_target,
427+ RenderPassType const &render_pass,
428+ FramebufferType const &framebuffer,
429+ std::vector<ClearValueType> const &clear_values,
430+ SubpassContentsType contents)
433431{
434432 if constexpr (bindingType == vkb::BindingType::Cpp)
435433 {
436434 begin_render_pass_impl (render_target, render_pass, framebuffer, clear_values, contents);
437435 }
438436 else
439437 {
440- begin_render_pass_impl (reinterpret_cast <vkb::rendering::HPPRenderTarget const &>(render_target),
438+ begin_render_pass_impl (reinterpret_cast <vkb::rendering::RenderTargetCpp const &>(render_target),
441439 reinterpret_cast <vkb::core::HPPRenderPass const &>(render_pass),
442440 reinterpret_cast <vkb::core::HPPFramebuffer const &>(framebuffer),
443441 reinterpret_cast <std::vector<vk::ClearValue> const &>(clear_values),
@@ -446,7 +444,7 @@ inline void CommandBuffer<bindingType>::begin_render_pass(RenderTargetType const
446444}
447445
448446template <vkb::BindingType bindingType>
449- inline void CommandBuffer<bindingType>::begin_render_pass_impl(vkb::rendering::HPPRenderTarget const &render_target,
447+ inline void CommandBuffer<bindingType>::begin_render_pass_impl(vkb::rendering::RenderTargetCpp const &render_target,
450448 vkb::core::HPPRenderPass const &render_pass,
451449 vkb::core::HPPFramebuffer const &framebuffer,
452450 std::vector<vk::ClearValue> const &clear_values,
@@ -876,7 +874,7 @@ inline void CommandBuffer<bindingType>::execute_commands_impl(std::vector<std::s
876874
877875template <vkb::BindingType bindingType>
878876inline typename vkb::core::CommandBuffer<bindingType>::RenderPassType &
879- CommandBuffer<bindingType>::get_render_pass(RenderTargetType const &render_target,
877+ CommandBuffer<bindingType>::get_render_pass(vkb::rendering::RenderTarget<bindingType> const &render_target,
880878 std::vector<LoadStoreInfoType> const &load_store_infos,
881879 std::vector<std::unique_ptr<vkb::rendering::Subpass<bindingType>>> const &subpasses)
882880{
@@ -888,7 +886,7 @@ inline typename vkb::core::CommandBuffer<bindingType>::RenderPassType &
888886 {
889887 return reinterpret_cast <vkb::RenderPass &>(
890888 get_render_pass_impl (reinterpret_cast <vkb::core::DeviceCpp &>(this ->get_device ()),
891- reinterpret_cast <vkb::rendering::HPPRenderTarget const &>(render_target),
889+ reinterpret_cast <vkb::rendering::RenderTargetCpp const &>(render_target),
892890 reinterpret_cast <std::vector<vkb::common::HPPLoadStoreInfo> const &>(load_store_infos),
893891 reinterpret_cast <std::vector<std::unique_ptr<vkb::rendering::SubpassCpp>> const &>(subpasses)));
894892 }
@@ -897,7 +895,7 @@ inline typename vkb::core::CommandBuffer<bindingType>::RenderPassType &
897895template <vkb::BindingType bindingType>
898896inline vkb::core::HPPRenderPass &
899897 CommandBuffer<bindingType>::get_render_pass_impl(vkb::core::DeviceCpp &device,
900- vkb::rendering::HPPRenderTarget const &render_target,
898+ vkb::rendering::RenderTargetCpp const &render_target,
901899 std::vector<vkb::common::HPPLoadStoreInfo> const &load_store_infos,
902900 std::vector<std::unique_ptr<vkb::rendering::SubpassCpp>> const &subpasses)
903901{
@@ -923,7 +921,7 @@ inline vkb::core::HPPRenderPass &
923921}
924922
925923template <vkb::BindingType bindingType>
926- inline void CommandBuffer<bindingType>::image_memory_barrier(RenderTargetType &render_target, uint32_t view_index, ImageMemoryBarrierType const &memory_barrier) const
924+ inline void CommandBuffer<bindingType>::image_memory_barrier(vkb::rendering::RenderTarget<bindingType> &render_target, uint32_t view_index, ImageMemoryBarrierType const &memory_barrier) const
927925{
928926 auto const &image_view = render_target.get_views ()[view_index];
929927
0 commit comments