X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fprogram_backend.cpp;h=a2c40ad3fec3feb0492a49f8f3296ed8d6c1eb2b;hb=9ef77734bac36f2b16380ef3e131d3164fe241ce;hp=5af7d67aca0ba314884e2fb831de68e011c791e8;hpb=1cc48c919cc47895ea5ae23199c20dfe909b4e4c;p=libs%2Fgl.git diff --git a/source/backends/vulkan/program_backend.cpp b/source/backends/vulkan/program_backend.cpp index 5af7d67a..a2c40ad3 100644 --- a/source/backends/vulkan/program_backend.cpp +++ b/source/backends/vulkan/program_backend.cpp @@ -125,10 +125,10 @@ void VulkanProgram::finalize_uniforms() { bindings.emplace_back(); VkDescriptorSetLayoutBinding &binding = bindings.back(); - binding.binding = b.bind_point; - binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; + binding.binding = b.bind_point&0xFFFFF; + binding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; binding.descriptorCount = 1; - binding.stageFlags = VK_SHADER_STAGE_ALL; + binding.stageFlags = stage_flags; binding.pImmutableSamplers = 0; } @@ -137,10 +137,10 @@ void VulkanProgram::finalize_uniforms() { bindings.emplace_back(); VkDescriptorSetLayoutBinding &binding = bindings.back(); - binding.binding = u.binding; + binding.binding = u.binding&0xFFFFF; binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; binding.descriptorCount = 1; - binding.stageFlags = VK_SHADER_STAGE_ALL; + binding.stageFlags = stage_flags; binding.pImmutableSamplers = 0; } @@ -165,12 +165,18 @@ void VulkanProgram::finalize_uniforms() layout_info.pPushConstantRanges = &push_const_range; vk.CreatePipelineLayout(layout_info, layout_handle); + +#if DEBUG + if(!debug_name.empty()) + set_vulkan_object_name(); +#endif } void VulkanProgram::set_debug_name(const string &name) { #ifdef DEBUG debug_name = name; + set_vulkan_object_name(); if(SpirVModule *spirv = static_cast(this)->specialized_spirv) spirv->set_debug_name(debug_name); #else @@ -178,5 +184,30 @@ void VulkanProgram::set_debug_name(const string &name) #endif } +void VulkanProgram::set_vulkan_object_name() const +{ +#ifdef DEBUG + const VulkanFunctions &vk = device.get_functions(); + + string layout_name = debug_name+" [layout]"; + + VkDebugUtilsObjectNameInfoEXT name_info = { }; + name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; + name_info.objectType = VK_OBJECT_TYPE_PIPELINE_LAYOUT; + name_info.objectHandle = reinterpret_cast(layout_handle); + name_info.pObjectName = layout_name.c_str(); + vk.SetDebugUtilsObjectName(name_info); + + name_info.objectType = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; + for(unsigned i=0; i(desc_set_layout_handles[i]); + name_info.pObjectName = layout_name.c_str(); + vk.SetDebugUtilsObjectName(name_info); + } +#endif +} + } // namespace GL } // namespace Msp