summaryrefslogtreecommitdiffstats
path: root/drivers/metal/rendering_device_driver_metal.h
diff options
context:
space:
mode:
authorMatias N. Goldberg <dark_sylinc@yahoo.com.ar>2024-06-30 19:30:54 -0300
committerRémi Verschelde <rverschelde@gmail.com>2024-08-21 23:48:08 +0200
commit364f916f3f0141c247e32e63624b063905d66b02 (patch)
tree36b25af740f286ea78d734136ecbffd8ed407bda /drivers/metal/rendering_device_driver_metal.h
parent5ca419e32c58e671284b3b7f91257179657d9114 (diff)
downloadredot-engine-364f916f3f0141c247e32e63624b063905d66b02.tar.gz
Add debug utilities for Vulkan
Features: - Debug-only tracking of objects by type. See get_driver_allocs_by_object_type et al. - Debug-only Breadcrumb info for debugging GPU crashes and device lost - Performance report per frame from get_perf_report - Some VMA calls had to be modified in order to insert the necessary memory callbacks Functionality marked as "debug-only" is only available in debug or dev builds. Misc fixes: - Early break optimization in RenderingDevice::uniform_set_create ============================ The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up.
Diffstat (limited to 'drivers/metal/rendering_device_driver_metal.h')
-rw-r--r--drivers/metal/rendering_device_driver_metal.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/metal/rendering_device_driver_metal.h b/drivers/metal/rendering_device_driver_metal.h
index e7efaff817..1bb71583ab 100644
--- a/drivers/metal/rendering_device_driver_metal.h
+++ b/drivers/metal/rendering_device_driver_metal.h
@@ -231,6 +231,7 @@ public:
virtual Vector<uint8_t> shader_compile_binary_from_spirv(VectorView<ShaderStageSPIRVData> p_spirv, const String &p_shader_name) override final;
virtual ShaderID shader_create_from_bytecode(const Vector<uint8_t> &p_shader_binary, ShaderDescription &r_shader_desc, String &r_name) override final;
virtual void shader_free(ShaderID p_shader) override final;
+ virtual void shader_destroy_modules(ShaderID p_shader) override final;
#pragma mark - Uniform Set
@@ -376,6 +377,10 @@ public:
virtual void command_begin_label(CommandBufferID p_cmd_buffer, const char *p_label_name, const Color &p_color) override final;
virtual void command_end_label(CommandBufferID p_cmd_buffer) override final;
+#pragma mark - Debug
+
+ virtual void command_insert_breadcrumb(CommandBufferID p_cmd_buffer, uint32_t p_data) override final;
+
#pragma mark - Submission
virtual void begin_segment(uint32_t p_frame_index, uint32_t p_frames_drawn) override final;