From 2427351afbee58fd50aafc4ebddeb0854cf4b5e3 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Tue, 22 Mar 2016 13:53:23 +0100 Subject: [PATCH] Vulkan: Log semantic use for debugging. --- gfx/drivers_shader/slang_reflection.cpp | 64 +++++++++++++++++-------- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/gfx/drivers_shader/slang_reflection.cpp b/gfx/drivers_shader/slang_reflection.cpp index 72859b8bfb..410acdf6ef 100644 --- a/gfx/drivers_shader/slang_reflection.cpp +++ b/gfx/drivers_shader/slang_reflection.cpp @@ -22,15 +22,26 @@ using namespace std; using namespace spir2cross; +static const char *texture_semantic_names[] = { + "Original", + "Source", +}; + +static const char *texture_semantic_uniform_names[] = { + "OriginalSize", + "SourceSize", +}; + +static const char *semantic_uniform_names[] = { + "MVP", + "OutputSize", + "FinalViewportSize", +}; + static slang_texture_semantic slang_name_to_texture_semantic(const string &name) { - static const char *names[] = { - "Original", - "Source", - }; - unsigned i = 0; - for (auto n : names) + for (auto n : texture_semantic_names) { if (name == n) return static_cast(i); @@ -41,13 +52,8 @@ static slang_texture_semantic slang_name_to_texture_semantic(const string &name) static slang_texture_semantic slang_uniform_name_to_texture_semantic(const string &name) { - static const char *names[] = { - "OriginalSize", - "SourceSize", - }; - unsigned i = 0; - for (auto n : names) + for (auto n : texture_semantic_uniform_names) { if (name == n) return static_cast(i); @@ -58,14 +64,8 @@ static slang_texture_semantic slang_uniform_name_to_texture_semantic(const strin static slang_semantic slang_uniform_name_to_semantic(const string &name) { - static const char *names[] = { - "MVP", - "OutputSize", - "FinalViewportSize", - }; - unsigned i = 0; - for (auto n : names) + for (auto n : semantic_uniform_names) { if (name == n) return static_cast(i); @@ -355,6 +355,32 @@ static bool slang_reflect(const Compiler &vertex_compiler, const Compiler &fragm reflection->semantic_texture_mask |= 1 << index; } + RARCH_LOG("[slang]: Reflection\n"); + RARCH_LOG("[slang]: Textures:\n"); + for (unsigned i = 0; i < SLANG_NUM_TEXTURE_SEMANTICS; i++) + if (reflection->semantic_texture_mask & (1u << i)) + RARCH_LOG("[slang]: %s\n", texture_semantic_names[i]); + + RARCH_LOG("[slang]:\n"); + RARCH_LOG("[slang]: Uniforms:\n"); + for (unsigned i = 0; i < SLANG_NUM_SEMANTICS; i++) + { + if (reflection->semantic_ubo_mask & (1u << i)) + { + RARCH_LOG("[slang]: %s (Offset: %u)\n", semantic_uniform_names[i], + unsigned(reflection->semantics[i].ubo_offset)); + } + } + + for (unsigned i = 0; i < SLANG_NUM_TEXTURE_SEMANTICS; i++) + { + if (reflection->semantic_texture_ubo_mask & (1u << i)) + { + RARCH_LOG("[slang]: %s (Offset: %u)\n", texture_semantic_uniform_names[i], + unsigned(reflection->semantic_textures[i].ubo_offset)); + } + } + return true; }