(Vulkan) Make we get UniformBlock's type_name for vulkan 86/321786/7
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 28 Mar 2025 06:56:22 +0000 (15:56 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Tue, 8 Apr 2025 01:53:09 +0000 (10:53 +0900)
Until now, due to some unknown reason, the name of uniform block didn't loaded well.

To fix this issue, let vulkan-reflection use type_name instead of it's name.

Change-Id: Iefc677abaa1832ed579797a3b2e69691151f6408
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali/internal/graphics/vulkan-impl/vulkan-reflection.cpp

index a1b9ec3f582f311f24df75d9b3b9c9ec86fc32c3..b7a98546f8b166edba3b70ca03d1638b8bd79f56 100644 (file)
@@ -37,6 +37,11 @@ namespace
 Debug::Filter* gGraphicsReflectionLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_GRAPHICS_REFLECTION");
 #endif
 
+inline bool IsValidCString(const char* str)
+{
+  return str && str[0] != '\0';
+}
+
 } // namespace
 namespace Dali::Graphics::Vulkan
 {
@@ -242,10 +247,14 @@ void Reflection::BuildReflection()
         mUniformBlocks.emplace_back();
         auto& block         = mUniformBlocks.back();
         block.binding       = binding->binding;
-        block.name          = binding->name;
         block.descriptorSet = binding->set;
         block.size          = 0; // to be updated with members
 
+        // DALi's role! let we use the type of block, instead of it's name if name is null or empty.
+        block.name = IsValidCString(binding->name) ? binding->name
+                                                   : (binding->type_description && IsValidCString(binding->type_description->type_name)) ? binding->type_description->type_name
+                                                                                                                                         : "";
+
         block.members.resize(memberCount);
         for(auto i = 0u; i < memberCount; ++i)
         {