diff options
-rw-r--r-- | c2.cpp | 12 | ||||
-rw-r--r-- | video.cpp | 19 | ||||
-rw-r--r-- | video.hpp | 2 |
3 files changed, 32 insertions, 1 deletions
@@ -182,7 +182,11 @@ extern "C" int entrypoint() { draw.vertex_count = 3; draw.instance_count = 1; - dev->get_ctx().submit(draw, pip, pass); + Context& ctx = dev->get_ctx(); + + ctx.debug_push("autism triangle"); + ctx.submit(draw, pip, pass); + ctx.debug_pop(); pb.begin_rp(); pb.rp_depth_target(dev->get_depth_target(), 1.0f); @@ -213,6 +217,7 @@ extern "C" int entrypoint() { raxis )); monkey->update_transforms(); + ctx.debug_push("depth prepass"); monkey->render( dev, &frame_arena, @@ -220,6 +225,8 @@ extern "C" int entrypoint() { transform, projection ); + ctx.debug_pop(); + ctx.debug_push("forward"); monkey->render( dev, &frame_arena, @@ -227,8 +234,11 @@ extern "C" int entrypoint() { transform, projection ); + ctx.debug_pop(); + ctx.debug_push("ui"); ui->render(&frame_arena, dev->get_backbuffer()); + ctx.debug_pop(); r += 10; rot += 0.05f; @@ -2303,6 +2303,25 @@ void Context::transition(Texture_Id id, Resource_State state) { ); } +void Context::debug_push(const char* name) { +#ifdef DEBUG + VkDebugUtilsLabelEXT l{}; + Context_Vk* ctx = (Context_Vk*)this; + l.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT; + l.pLabelName = name; + vkCmdBeginDebugUtilsLabelEXT(ctx->cb, &l); +#else + (void)name; +#endif +} + +void Context::debug_pop() { +#ifdef DEBUG + Context_Vk* ctx = (Context_Vk*)this; + vkCmdEndDebugUtilsLabelEXT(ctx->cb); +#endif +} + std::pair<Renderpass_Vk&, Framebuffer_Vk&> Context_Vk::begin_rp( const Render_Pass& rp ) { @@ -467,6 +467,8 @@ struct Context { void copy(Buffer_Id dst, Buffer_Id src); void copy(Texture_Id dst, Buffer_Id src); void transition(Texture_Id id, Resource_State state); + void debug_push(const char* name); + void debug_pop(); }; struct Shader : public Asset { |