diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index a1e1d687b..d3217e913 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -676,11 +676,21 @@ HRESULT WrappedID3D11Device::QueryInterface(REFIID riid, void **ppvObject) const char *WrappedID3D11Device::GetChunkName(uint32_t idx) { + if(idx == CREATE_PARAMS) return "Create Params"; + if(idx == THUMBNAIL_DATA) return "Thumbnail Data"; + if(idx == DRIVER_INIT_PARAMS) return "Driver Init Params"; + if(idx == INITIAL_CONTENTS) return "Initial Contents"; if(idx < FIRST_CHUNK_ID || idx >= NUM_D3D11_CHUNKS) return ""; return D3D11ChunkNames[idx-FIRST_CHUNK_ID]; } +template<> +string ToStrHelper::Get(const D3D11ChunkType &el) +{ + return WrappedID3D11Device::GetChunkName(el); +} + void WrappedID3D11Device::LazyInit() { if(m_DebugManager == NULL) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index ec32cf637..df6bd01e5 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -902,13 +902,23 @@ void WrappedOpenGL::Initialise(GLInitParams ¶ms) } } -const char * WrappedOpenGL::GetChunkName(uint32_t idx) +const char *WrappedOpenGL::GetChunkName(uint32_t idx) { + if(idx == CREATE_PARAMS) return "Create Params"; + if(idx == THUMBNAIL_DATA) return "Thumbnail Data"; + if(idx == DRIVER_INIT_PARAMS) return "Driver Init Params"; + if(idx == INITIAL_CONTENTS) return "Initial Contents"; if(idx < FIRST_CHUNK_ID || idx >= NUM_OPENGL_CHUNKS) return ""; return GLChunkNames[idx-FIRST_CHUNK_ID]; } +template<> +string ToStrHelper::Get(const GLChunkType &el) +{ + return WrappedOpenGL::GetChunkName(el); +} + WrappedOpenGL::~WrappedOpenGL() { if(m_FakeIdxBuf) m_Real.glDeleteBuffers(1, &m_FakeIdxBuf); diff --git a/renderdoc/driver/gl/gl_driver.h b/renderdoc/driver/gl/gl_driver.h index 73acc5f9c..db3c03bda 100644 --- a/renderdoc/driver/gl/gl_driver.h +++ b/renderdoc/driver/gl/gl_driver.h @@ -192,8 +192,6 @@ class WrappedOpenGL : public IFrameCapturer vector m_FrameRecord; vector m_Drawcalls; - static const char *GetChunkName(uint32_t idx); - // replay vector m_CurEvents, m_Events; @@ -463,7 +461,8 @@ class WrappedOpenGL : public IFrameCapturer public: WrappedOpenGL(const char *logfile, const GLHookSet &funcs); virtual ~WrappedOpenGL(); - + + static const char *GetChunkName(uint32_t idx); GLResourceManager *GetResourceManager() { return m_ResourceManager; } ResourceId GetDeviceResourceID() { return m_DeviceResourceID; } diff --git a/renderdoc/driver/vulkan/vk_common.cpp b/renderdoc/driver/vulkan/vk_common.cpp index 86368edc4..46f58d219 100644 --- a/renderdoc/driver/vulkan/vk_common.cpp +++ b/renderdoc/driver/vulkan/vk_common.cpp @@ -2394,6 +2394,40 @@ string ToStrHelper::Get(const VkFormat &el) return StringFormat::Fmt("VkFormat<%d>", el); } +template<> +string ToStrHelper::Get(const VkResult &el) +{ + switch(el) + { + TOSTR_CASE_STRINGIZE(VK_SUCCESS) + TOSTR_CASE_STRINGIZE(VK_NOT_READY) + TOSTR_CASE_STRINGIZE(VK_TIMEOUT) + TOSTR_CASE_STRINGIZE(VK_EVENT_SET) + TOSTR_CASE_STRINGIZE(VK_EVENT_RESET) + TOSTR_CASE_STRINGIZE(VK_INCOMPLETE) + TOSTR_CASE_STRINGIZE(VK_ERROR_OUT_OF_HOST_MEMORY) + TOSTR_CASE_STRINGIZE(VK_ERROR_OUT_OF_DEVICE_MEMORY) + TOSTR_CASE_STRINGIZE(VK_ERROR_INITIALIZATION_FAILED) + TOSTR_CASE_STRINGIZE(VK_ERROR_DEVICE_LOST) + TOSTR_CASE_STRINGIZE(VK_ERROR_MEMORY_MAP_FAILED) + TOSTR_CASE_STRINGIZE(VK_ERROR_LAYER_NOT_PRESENT) + TOSTR_CASE_STRINGIZE(VK_ERROR_EXTENSION_NOT_PRESENT) + TOSTR_CASE_STRINGIZE(VK_ERROR_FEATURE_NOT_PRESENT) + TOSTR_CASE_STRINGIZE(VK_ERROR_INCOMPATIBLE_DRIVER) + TOSTR_CASE_STRINGIZE(VK_ERROR_TOO_MANY_OBJECTS) + TOSTR_CASE_STRINGIZE(VK_ERROR_FORMAT_NOT_SUPPORTED) + TOSTR_CASE_STRINGIZE(VK_ERROR_SURFACE_LOST_KHR) + TOSTR_CASE_STRINGIZE(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR) + TOSTR_CASE_STRINGIZE(VK_SUBOPTIMAL_KHR) + TOSTR_CASE_STRINGIZE(VK_ERROR_OUT_OF_DATE_KHR) + TOSTR_CASE_STRINGIZE(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR) + TOSTR_CASE_STRINGIZE(VK_ERROR_VALIDATION_FAILED_EXT) + default: break; + } + + return StringFormat::Fmt("VkResult<%d>", el); +} + template<> string ToStrHelper::Get(const VkMemoryType &el) { diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 1d50f98da..5fd187e11 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -499,13 +499,23 @@ uint32_t WrappedVulkan::HandlePreDraw(VkCommandBuffer commandBuffer) return eventID; } -const char * WrappedVulkan::GetChunkName(uint32_t idx) +const char *WrappedVulkan::GetChunkName(uint32_t idx) { + if(idx == CREATE_PARAMS) return "Create Params"; + if(idx == THUMBNAIL_DATA) return "Thumbnail Data"; + if(idx == DRIVER_INIT_PARAMS) return "Driver Init Params"; + if(idx == INITIAL_CONTENTS) return "Initial Contents"; if(idx < FIRST_CHUNK_ID || idx >= NUM_VULKAN_CHUNKS) return ""; return VkChunkNames[idx-FIRST_CHUNK_ID]; } +template<> +string ToStrHelper::Get(const VulkanChunkType &el) +{ + return WrappedVulkan::GetChunkName(el); +} + byte *WrappedVulkan::GetTempMemory(size_t s) { TempMem *mem = (TempMem *)Threading::GetTLSValue(tempMemoryTLSSlot); diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 7fd3128ff..d2ab4b904 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -437,8 +437,6 @@ private: VulkanCreationInfo m_CreationInfo; map > m_ResourceUses; - - static const char *GetChunkName(uint32_t idx); // returns thread-local temporary memory byte *GetTempMemory(size_t s); @@ -531,7 +529,8 @@ public: virtual ~WrappedVulkan(); ResourceId GetContextResourceID() { return m_FrameCaptureRecord->GetResourceID(); } - + + static const char *GetChunkName(uint32_t idx); VulkanResourceManager *GetResourceManager() { return m_ResourceManager; } VulkanDebugManager *GetDebugManager() { return m_DebugManager; } diff --git a/renderdoc/serialise/serialiser.cpp b/renderdoc/serialise/serialiser.cpp index 20e4df9fd..fe421e912 100644 --- a/renderdoc/serialise/serialiser.cpp +++ b/renderdoc/serialise/serialiser.cpp @@ -1884,6 +1884,12 @@ string ToStrHelper::Get(const uint32_t &el) return tostrBuf; } +template<> +string ToStrHelper::Get(const long &el) +{ + return ToStr::Get((uint64_t)el); +} + template<> string ToStrHelper::Get(const char &el) {