diff --git a/util/test/demos/android/android_platform.cpp b/util/test/demos/android/android_platform.cpp index be2e732fd..1c967afc4 100644 --- a/util/test/demos/android/android_platform.cpp +++ b/util/test/demos/android/android_platform.cpp @@ -76,3 +76,8 @@ std::string GetExecutableName() { return "__undefined__"; } + +uint32_t GetPID() +{ + return (uint32_t)getpid(); +} diff --git a/util/test/demos/android/android_platform.h b/util/test/demos/android/android_platform.h index f6b350faa..750a3bce0 100644 --- a/util/test/demos/android/android_platform.h +++ b/util/test/demos/android/android_platform.h @@ -42,3 +42,4 @@ #define MakeDir(dir) mkdir(dir, 0755) std::string GetExecutableName(); +uint32_t GetPID(); diff --git a/util/test/demos/apple/apple_platform.cpp b/util/test/demos/apple/apple_platform.cpp index 2b97e4c40..6ee3c79e5 100644 --- a/util/test/demos/apple/apple_platform.cpp +++ b/util/test/demos/apple/apple_platform.cpp @@ -24,6 +24,7 @@ #include #include +#include #include "test_common.h" uint64_t GetMemoryUsage() @@ -95,3 +96,8 @@ std::string GetExecutableName() return selfName; } + +uint32_t GetPID() +{ + return (uint32_t)getpid(); +} diff --git a/util/test/demos/apple/apple_platform.h b/util/test/demos/apple/apple_platform.h index 5247e8581..4f4887b38 100644 --- a/util/test/demos/apple/apple_platform.h +++ b/util/test/demos/apple/apple_platform.h @@ -42,3 +42,4 @@ #define MakeDir(dir) mkdir(dir, 0755) std::string GetExecutableName(); +uint32_t GetPID(); diff --git a/util/test/demos/d3d11/d3d11_stripped_shaders.cpp b/util/test/demos/d3d11/d3d11_stripped_shaders.cpp index 807b57834..bd916b761 100644 --- a/util/test/demos/d3d11/d3d11_stripped_shaders.cpp +++ b/util/test/demos/d3d11/d3d11_stripped_shaders.cpp @@ -38,20 +38,20 @@ RD_TEST(D3D11_Stripped_Shaders, D3D11GraphicsTest) ID3DBlobPtr vsblob = Compile(D3DDefaultVertex, "main", "vs_5_0"); ID3DBlobPtr psblob = Compile(D3DDefaultPixel, "main", "ps_5_0"); - WriteBlob(GetCWD() + "/shader_debug.vs", vsblob, false); - WriteBlob(GetCWD() + "/shader_debug.ps", psblob, true); + WriteBlob(GetCWD() + "tmp/D3D11_Stripped_Shaders/shader_debug.vs", vsblob, false); + WriteBlob(GetCWD() + "tmp/D3D11_Stripped_Shaders/shader_debug.ps", psblob, true); Strip(vsblob); Strip(psblob); - SetBlobPath(GetCWD() + "/shader_debug.vs", vsblob); + SetBlobPath(GetCWD() + "tmp/D3D11_Stripped_Shaders/shader_debug.vs", vsblob); CreateDefaultInputLayout(vsblob); ID3D11VertexShaderPtr vs = CreateVS(vsblob); ID3D11PixelShaderPtr ps = CreatePS(psblob); - SetBlobPath("lz4#shader_debug.ps", ps); + SetBlobPath("lz4#tmp/D3D11_Stripped_Shaders/shader_debug.ps", ps); ID3D11BufferPtr vb = MakeBuffer().Vertex().Data(DefaultTri); diff --git a/util/test/demos/d3d12/d3d12_test.cpp b/util/test/demos/d3d12/d3d12_test.cpp index 415b6ff18..5d53f9755 100644 --- a/util/test/demos/d3d12/d3d12_test.cpp +++ b/util/test/demos/d3d12/d3d12_test.cpp @@ -1560,6 +1560,9 @@ ID3DBlobPtr D3D12GraphicsTest::Compile(std::string src, std::string entry, std:: path.erase(path.find_last_of("/\\")); path += "/tmp/"; MakeDir(path.c_str()); + path += demoName; + path += "/"; + MakeDir(path.c_str()); path += "dxcDebugBlobs/"; MakeDir(path.c_str()); diff --git a/util/test/demos/gl/gl_shader_debug_zoo.cpp b/util/test/demos/gl/gl_shader_debug_zoo.cpp index 178848b30..8a0b1439e 100644 --- a/util/test/demos/gl/gl_shader_debug_zoo.cpp +++ b/util/test/demos/gl/gl_shader_debug_zoo.cpp @@ -342,10 +342,10 @@ void main() GLuint vsShad = glCreateShader(GL_VERTEX_SHADER); GLuint psShad = glCreateShader(GL_FRAGMENT_SHADER); - std::vector vsSPIRV = - CompileShaderToSpv(vs, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::vert, "main"); - std::vector fsSPIRV = - CompileShaderToSpv(ps, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::frag, "main"); + std::vector vsSPIRV = CompileShaderToSpv( + demoName, vs, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::vert, "main"); + std::vector fsSPIRV = CompileShaderToSpv( + demoName, ps, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::frag, "main"); glShaderBinary(1, &vsShad, GL_SHADER_BINARY_FORMAT_SPIR_V, vsSPIRV.data(), (GLsizei)vsSPIRV.size() * 4); diff --git a/util/test/demos/gl/gl_spirv_shader.cpp b/util/test/demos/gl/gl_spirv_shader.cpp index d40ebbba1..4ec3c1744 100644 --- a/util/test/demos/gl/gl_spirv_shader.cpp +++ b/util/test/demos/gl/gl_spirv_shader.cpp @@ -160,9 +160,9 @@ void main() GLuint fs = glCreateShader(GL_FRAGMENT_SHADER); std::vector vsSPIRV = CompileShaderToSpv( - vertex, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::vert, "main"); + demoName, vertex, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::vert, "main"); std::vector fsSPIRV = CompileShaderToSpv( - pixel, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::frag, "main"); + demoName, pixel, SPIRVTarget::opengl, ShaderLang::glsl, ShaderStage::frag, "main"); glShaderBinary(1, &vs, GL_SHADER_BINARY_FORMAT_SPIR_V, vsSPIRV.data(), (GLsizei)vsSPIRV.size() * 4); diff --git a/util/test/demos/linux/linux_platform.cpp b/util/test/demos/linux/linux_platform.cpp index 130666805..07522934f 100644 --- a/util/test/demos/linux/linux_platform.cpp +++ b/util/test/demos/linux/linux_platform.cpp @@ -83,3 +83,8 @@ std::string GetExecutableName() return path; } + +uint32_t GetPID() +{ + return (uint32_t)getpid(); +} diff --git a/util/test/demos/linux/linux_platform.h b/util/test/demos/linux/linux_platform.h index 617d36089..d2f788f4c 100644 --- a/util/test/demos/linux/linux_platform.h +++ b/util/test/demos/linux/linux_platform.h @@ -42,3 +42,4 @@ #define MakeDir(dir) mkdir(dir, 0755) std::string GetExecutableName(); +uint32_t GetPID(); diff --git a/util/test/demos/test_common.cpp b/util/test/demos/test_common.cpp index a7f201d43..133313e06 100644 --- a/util/test/demos/test_common.cpp +++ b/util/test/demos/test_common.cpp @@ -315,8 +315,9 @@ bool SpvCompilationSupported() return false; } -std::vector CompileShaderToSpv(const std::string &source_text, SPIRVTarget target, - ShaderLang lang, ShaderStage stage, const char *entry_point, +std::vector CompileShaderToSpv(const char *demo_name, const std::string &source_text, + SPIRVTarget target, ShaderLang lang, ShaderStage stage, + const char *entry_point, const std::map ¯os) { std::vector ret; @@ -409,7 +410,8 @@ std::vector CompileShaderToSpv(const std::string &source_text, SPIRVTa std::string path = GetExecutableName(); path.erase(path.find_last_of("/\\")); - path += "/tmp"; + path += "/tmp/"; + path += demo_name; MakeDir(path.c_str()); diff --git a/util/test/demos/test_common.h b/util/test/demos/test_common.h index 0586a7123..703bfb23c 100644 --- a/util/test/demos/test_common.h +++ b/util/test/demos/test_common.h @@ -85,8 +85,9 @@ enum class ShaderStage bool InternalSpvCompiler(); bool SpvCompilationSupported(); -std::vector CompileShaderToSpv(const std::string &source_text, SPIRVTarget target, - ShaderLang lang, ShaderStage stage, const char *entry_point, +std::vector CompileShaderToSpv(const char *demo_name, const std::string &source_text, + SPIRVTarget target, ShaderLang lang, ShaderStage stage, + const char *entry_point, const std::map ¯os = {}); struct Vec2f @@ -205,7 +206,7 @@ struct GraphicsTest virtual GraphicsWindow *MakeWindow(int width, int height, const char *title) { return NULL; } virtual int main() { return 9; } virtual void Prepare(int argc, char **argv); - virtual void SetName(const char *name) { screenTitle = name; } + virtual void SetName(const char *name) { demoName = screenTitle = name; } virtual bool Init(); virtual void Shutdown(); @@ -217,6 +218,7 @@ struct GraphicsTest int curFrame = -1; + const char *demoName = "Unknown_Test"; const char *screenTitle = "RenderDoc test program"; bool headless = false; diff --git a/util/test/demos/vk/vk_graphics_pipeline.cpp b/util/test/demos/vk/vk_graphics_pipeline.cpp index 882373aab..675c34c0e 100644 --- a/util/test/demos/vk/vk_graphics_pipeline.cpp +++ b/util/test/demos/vk/vk_graphics_pipeline.cpp @@ -214,7 +214,7 @@ void main() pipeCreateInfo.vertexInputState.vertexAttributeDescriptions = {}; std::vector spirv = ::CompileShaderToSpv( - vertex, SPIRVTarget::vulkan12, ShaderLang::glsl, ShaderStage::vert, "main", {}); + demoName, vertex, SPIRVTarget::vulkan12, ShaderLang::glsl, ShaderStage::vert, "main", {}); VkShaderModuleCreateInfo vertShad = vkh::ShaderModuleCreateInfo(spirv); @@ -235,8 +235,8 @@ void main() libInfo.pNext = NULL; pipeCreateInfo.flags = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR; - spirv = ::CompileShaderToSpv(pixel, SPIRVTarget::vulkan12, ShaderLang::glsl, ShaderStage::frag, - "main", {}); + spirv = ::CompileShaderToSpv(demoName, pixel, SPIRVTarget::vulkan12, ShaderLang::glsl, + ShaderStage::frag, "main", {}); VkShaderModuleCreateInfo fragShad = vkh::ShaderModuleCreateInfo(spirv); diff --git a/util/test/demos/vk/vk_spec_constants.cpp b/util/test/demos/vk/vk_spec_constants.cpp index 69b6fbbbd..dd4569c93 100644 --- a/util/test/demos/vk/vk_spec_constants.cpp +++ b/util/test/demos/vk/vk_spec_constants.cpp @@ -93,7 +93,7 @@ void main() { std::vector spirv = ::CompileShaderToSpv( - pixel, SPIRVTarget::vulkan, ShaderLang::glsl, ShaderStage::frag, "main", {}); + demoName, pixel, SPIRVTarget::vulkan, ShaderLang::glsl, ShaderStage::frag, "main", {}); if(spirv.empty()) return 4; diff --git a/util/test/demos/vk/vk_test.cpp b/util/test/demos/vk/vk_test.cpp index 2e3246eda..2206bdd77 100644 --- a/util/test/demos/vk/vk_test.cpp +++ b/util/test/demos/vk/vk_test.cpp @@ -1014,7 +1014,7 @@ VkPipelineShaderStageCreateInfo VulkanGraphicsTest::CompileShaderModule( VkShaderModule ret = VK_NULL_HANDLE; std::vector spirv = - ::CompileShaderToSpv(source_text, target, lang, stage, entry_point, macros); + ::CompileShaderToSpv(demoName, source_text, target, lang, stage, entry_point, macros); if(spirv.empty()) return {}; diff --git a/util/test/demos/win32/win32_platform.cpp b/util/test/demos/win32/win32_platform.cpp index ca556388c..ac3cbd5fd 100644 --- a/util/test/demos/win32/win32_platform.cpp +++ b/util/test/demos/win32/win32_platform.cpp @@ -136,3 +136,8 @@ std::string GetExecutableName() return Wide2UTF8(curFile); } + +uint32_t GetPID() +{ + return (uint32_t)GetCurrentProcessId(); +} diff --git a/util/test/demos/win32/win32_platform.h b/util/test/demos/win32/win32_platform.h index 66d571d19..fd6282f79 100644 --- a/util/test/demos/win32/win32_platform.h +++ b/util/test/demos/win32/win32_platform.h @@ -35,6 +35,7 @@ std::string Wide2UTF8(const std::wstring &s); std::wstring UTF82Wide(const std::string &s); std::string GetExecutableName(); +uint32_t GetPID(); #define DEBUG_BREAK() \ do \