Skip to content

Commit 809f10a

Browse files
committed
feat: add debug markers to graphics ext (v1.4.0)
1 parent b3fcc11 commit 809f10a

File tree

8 files changed

+324
-6
lines changed

8 files changed

+324
-6
lines changed

extensions/pl_draw_backend_ext.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,8 @@ pl_submit_2d_drawlist(plDrawList2D* ptDrawlist, plRenderEncoder* ptEncoder, floa
669669
if(pl_sb_size(ptDrawlist->sbtVertexBuffer) == 0u)
670670
return;
671671

672+
gptGfx->push_render_debug_group(ptEncoder, "2D Draw", (plVec4){0.33f, 0.02f, 0.10f, 1.0f});
673+
672674
plDevice* ptDevice = gptDrawBackendCtx->ptDevice;
673675

674676
const uint32_t uFrameIdx = gptGfx->get_current_frame_index();
@@ -853,11 +855,15 @@ pl_submit_2d_drawlist(plDrawList2D* ptDrawlist, plRenderEncoder* ptEncoder, floa
853855
// bump vertex & index buffer offset
854856
ptBufferInfo->uVertexBufferOffset += uVtxBufSzNeeded;
855857
gptDrawBackendCtx->auIndexBufferOffset[uFrameIdx] += uIdxBufSzNeeded;
858+
859+
gptGfx->pop_render_debug_group(ptEncoder);
856860
}
857861

858862
static void
859863
pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, float fWidth, float fHeight, const plMat4* ptMVP, plDrawFlags tFlags, uint32_t uMSAASampleCount)
860864
{
865+
gptGfx->push_render_debug_group(ptEncoder, "3D Draw", (plVec4){0.33f, 0.02f, 0.10f, 1.0f});
866+
861867
plDevice* ptDevice = gptDrawBackendCtx->ptDevice;
862868
const uint32_t uFrameIdx = gptGfx->get_current_frame_index();
863869

@@ -1078,6 +1084,7 @@ pl_submit_3d_drawlist(plDrawList3D* ptDrawlist, plRenderEncoder* ptEncoder, floa
10781084

10791085
gptDraw->submit_2d_layer(ptDrawlist->ptLayer);
10801086
pl_submit_2d_drawlist(ptDrawlist->pt2dDrawlist, ptEncoder, fWidth, fHeight, uMSAASampleCount);
1087+
gptGfx->pop_render_debug_group(ptEncoder);
10811088
}
10821089

10831090
plBindGroupPool*

extensions/pl_graphics_cpu.c

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,52 @@ pl_destroy_compute_shader(plDevice* ptDevice, plComputeShaderHandle tHandle)
886886
{
887887
}
888888

889+
void
890+
pl_push_render_debug_group(plRenderEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
891+
{
892+
}
893+
894+
void
895+
pl_pop_render_debug_group(plRenderEncoder* ptEncoder)
896+
{
897+
}
898+
899+
void
900+
pl_push_blit_debug_group(plBlitEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
901+
{
902+
}
903+
904+
void
905+
pl_pop_blit_debug_group(plBlitEncoder* ptEncoder)
906+
{
907+
}
908+
909+
void
910+
pl_push_compute_debug_group(plComputeEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
911+
{
912+
}
913+
914+
void
915+
pl_pop_compute_debug_group(plComputeEncoder* ptEncoder)
916+
{
917+
}
918+
919+
void
920+
pl_insert_debug_label(plCommandBuffer* ptCmdBuffer, const char* pcLabel, plVec4 tColor)
921+
{
922+
923+
}
924+
925+
void
926+
pl_push_debug_group(plCommandBuffer* ptCmdBuffer, const char* pcLabel, plVec4 tColor)
927+
{
928+
}
929+
930+
void
931+
pl_pop_debug_group(plCommandBuffer* ptCmdBuffer)
932+
{
933+
}
934+
889935
//-----------------------------------------------------------------------------
890936
// [SECTION] internal api implementation
891937
//-----------------------------------------------------------------------------

extensions/pl_graphics_ext.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,6 +1185,15 @@ pl_load_graphics_ext(plApiRegistryI* ptApiRegistry, bool bReload)
11851185
.invalidate_memory = pl_gfx_invalidate_memory,
11861186
.flush_memory = pl_gfx_flush_memory,
11871187
.get_data_type_size = pl_get_data_type_size,
1188+
.push_debug_group = pl_push_debug_group,
1189+
.pop_debug_group = pl_pop_debug_group,
1190+
.push_render_debug_group = pl_push_render_debug_group,
1191+
.pop_render_debug_group = pl_pop_render_debug_group,
1192+
.push_blit_debug_group = pl_push_blit_debug_group,
1193+
.pop_blit_debug_group = pl_pop_blit_debug_group,
1194+
.push_compute_debug_group = pl_push_compute_debug_group,
1195+
.pop_compute_debug_group = pl_pop_compute_debug_group,
1196+
.insert_debug_label = pl_insert_debug_label,
11881197

11891198
#if defined(PL_GRAPHICS_EXPOSE_VULKAN) && defined(PL_VULKAN_BACKEND)
11901199
.get_vulkan_instance = pl_get_vulkan_instance,

extensions/pl_graphics_ext.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Index of this file:
114114
// [SECTION] apis
115115
//-----------------------------------------------------------------------------
116116

117-
#define plGraphicsI_version {1, 3, 0}
117+
#define plGraphicsI_version {1, 4, 0}
118118

119119
//-----------------------------------------------------------------------------
120120
// [SECTION] includes
@@ -504,6 +504,18 @@ typedef struct _plGraphicsI
504504
bool (*invalidate_memory)(plDevice*, uint32_t rangeCount, const plDeviceMemoryRange*); // call after writing from device on non-coherent memory
505505
const plDeviceMemoryAllocation* (*get_allocations)(plDevice*, uint32_t* sizeOut);
506506

507+
//------------------------------DEBUGGING--------------------------------------
508+
509+
void (*push_render_debug_group) (plRenderEncoder*, const char*, plVec4 color);
510+
void (*pop_render_debug_group) (plRenderEncoder*);
511+
void (*push_blit_debug_group) (plBlitEncoder*, const char*, plVec4 color);
512+
void (*pop_blit_debug_group) (plBlitEncoder*);
513+
void (*push_compute_debug_group)(plComputeEncoder*, const char*, plVec4 color);
514+
void (*pop_compute_debug_group) (plComputeEncoder*);
515+
void (*push_debug_group) (plCommandBuffer*, const char*, plVec4 color);
516+
void (*pop_debug_group) (plCommandBuffer*);
517+
void (*insert_debug_label) (plCommandBuffer*, const char*, plVec4 color); // vulkan only
518+
507519
//---------------------------------MISC----------------------------------------
508520

509521
size_t (*get_data_type_size)(plDataType);

extensions/pl_graphics_metal.m

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2892,6 +2892,59 @@
28922892
pl__cleanup_common_device(ptDevice);
28932893
}
28942894

2895+
void
2896+
pl_push_render_debug_group(plRenderEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
2897+
{
2898+
[ptEncoder->tEncoder pushDebugGroup:[NSString stringWithUTF8String:pcLabel]];
2899+
}
2900+
2901+
void
2902+
pl_pop_render_debug_group(plRenderEncoder* ptEncoder)
2903+
{
2904+
[ptEncoder->tEncoder popDebugGroup];
2905+
}
2906+
2907+
void
2908+
pl_push_blit_debug_group(plBlitEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
2909+
{
2910+
[ptEncoder->tEncoder pushDebugGroup:[NSString stringWithUTF8String:pcLabel]];
2911+
}
2912+
2913+
void
2914+
pl_pop_blit_debug_group(plBlitEncoder* ptEncoder)
2915+
{
2916+
[ptEncoder->tEncoder popDebugGroup];
2917+
}
2918+
2919+
void
2920+
pl_push_compute_debug_group(plComputeEncoder* ptEncoder, const char* pcLabel, plVec4 tColor)
2921+
{
2922+
[ptEncoder->tEncoder pushDebugGroup:[NSString stringWithUTF8String:pcLabel]];
2923+
}
2924+
2925+
void
2926+
pl_pop_compute_debug_group(plComputeEncoder* ptEncoder)
2927+
{
2928+
[ptEncoder->tEncoder popDebugGroup];
2929+
}
2930+
2931+
void
2932+
pl_insert_debug_label(plCommandBuffer* ptCmdBuffer, const char* pcLabel, plVec4 tColor)
2933+
{
2934+
}
2935+
2936+
void
2937+
pl_push_debug_group(plCommandBuffer* ptCmdBuffer, const char* pcLabel, plVec4 tColor)
2938+
{
2939+
[ptCmdBuffer->tCmdBuffer pushDebugGroup:[NSString stringWithUTF8String:pcLabel]];
2940+
}
2941+
2942+
void
2943+
pl_pop_debug_group(plCommandBuffer* ptCmdBuffer)
2944+
{
2945+
[ptCmdBuffer->tCmdBuffer popDebugGroup];
2946+
}
2947+
28952948
//-----------------------------------------------------------------------------
28962949
// [SECTION] internal api implementation
28972950
//-----------------------------------------------------------------------------

0 commit comments

Comments
 (0)