Skip to content

Commit 63a3afa

Browse files
authored
Fix structure usage in special command flavours of vkSetDebugUtilsObjectNameEXT and vkSetDebugUtilsObjectTagEXT (#2348)
1 parent 36b276f commit 63a3afa

File tree

3 files changed

+48
-16
lines changed

3 files changed

+48
-16
lines changed

VulkanHppGenerator.cpp

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,8 +1681,11 @@ void VulkanHppGenerator::extendSpecialCommands( std::string const & name, bool d
16811681
VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( HandleType const & handle, std::string const & name ) const
16821682
{
16831683
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
1684-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo(
1685-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name.c_str() );
1684+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
1685+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo;
1686+
nameInfo.objectType = handle.objectType;
1687+
nameInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
1688+
nameInfo.pObjectName = name.c_str();
16861689
return setDebugUtilsObjectNameEXT( nameInfo );
16871690
}
16881691
)" );
@@ -1712,8 +1715,11 @@ void VulkanHppGenerator::extendSpecialCommands( std::string const & name, bool d
17121715
Device::setDebugUtilsObjectNameEXT( HandleType const & handle, std::string const & name, Dispatch const & d ) const
17131716
{
17141717
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
1715-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo(
1716-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name.c_str() );
1718+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
1719+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo;
1720+
nameInfo.objectType = handle.objectType;
1721+
nameInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
1722+
nameInfo.pObjectName = name.c_str();
17171723
return setDebugUtilsObjectNameEXT( nameInfo, d );
17181724
}
17191725
)" );
@@ -1744,8 +1750,13 @@ void VulkanHppGenerator::extendSpecialCommands( std::string const & name, bool d
17441750
Device::setDebugUtilsObjectTagEXT( HandleType const & handle, uint64_t name, TagType const & tag ) const
17451751
{
17461752
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
1747-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo(
1748-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name, sizeof( TagType ), &tag );
1753+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
1754+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo;
1755+
tagInfo.objectType = handle.objectType;
1756+
tagInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
1757+
tagInfo.tagName = name;
1758+
tagInfo.tagSize = sizeof( TagType );
1759+
tagInfo.pTag = &tag;
17491760
return setDebugUtilsObjectTagEXT( tagInfo );
17501761
}
17511762
)" );
@@ -1775,8 +1786,13 @@ void VulkanHppGenerator::extendSpecialCommands( std::string const & name, bool d
17751786
Device::setDebugUtilsObjectTagEXT( HandleType const & handle, uint64_t name, TagType const & tag, Dispatch const & d ) const
17761787
{
17771788
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
1778-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo(
1779-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name, sizeof( TagType ), &tag );
1789+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
1790+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo;
1791+
tagInfo.objectType = handle.objectType;
1792+
tagInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
1793+
tagInfo.tagName = name;
1794+
tagInfo.tagSize = sizeof( TagType );
1795+
tagInfo.pTag = &tag;
17801796
return setDebugUtilsObjectTagEXT( tagInfo, d );
17811797
}
17821798
)" );

vulkan/vulkan_funcs.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15995,8 +15995,11 @@ namespace VULKAN_HPP_NAMESPACE
1599515995
Device::setDebugUtilsObjectNameEXT( HandleType const & handle, std::string const & name, Dispatch const & d ) const
1599615996
{
1599715997
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
15998-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo(
15999-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name.c_str() );
15998+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
15999+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo;
16000+
nameInfo.objectType = handle.objectType;
16001+
nameInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
16002+
nameInfo.pObjectName = name.c_str();
1600016003
return setDebugUtilsObjectNameEXT( nameInfo, d );
1600116004
}
1600216005
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
@@ -16034,8 +16037,13 @@ namespace VULKAN_HPP_NAMESPACE
1603416037
Device::setDebugUtilsObjectTagEXT( HandleType const & handle, uint64_t name, TagType const & tag, Dispatch const & d ) const
1603516038
{
1603616039
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
16037-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo(
16038-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name, sizeof( TagType ), &tag );
16040+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
16041+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo;
16042+
tagInfo.objectType = handle.objectType;
16043+
tagInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
16044+
tagInfo.tagName = name;
16045+
tagInfo.tagSize = sizeof( TagType );
16046+
tagInfo.pTag = &tag;
1603916047
return setDebugUtilsObjectTagEXT( tagInfo, d );
1604016048
}
1604116049
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */

vulkan/vulkan_raii.hpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21153,8 +21153,11 @@ namespace VULKAN_HPP_NAMESPACE
2115321153
VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( HandleType const & handle, std::string const & name ) const
2115421154
{
2115521155
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
21156-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo(
21157-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name.c_str() );
21156+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
21157+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT nameInfo;
21158+
nameInfo.objectType = handle.objectType;
21159+
nameInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
21160+
nameInfo.pObjectName = name.c_str();
2115821161
return setDebugUtilsObjectNameEXT( nameInfo );
2115921162
}
2116021163

@@ -21177,8 +21180,13 @@ namespace VULKAN_HPP_NAMESPACE
2117721180
Device::setDebugUtilsObjectTagEXT( HandleType const & handle, uint64_t name, TagType const & tag ) const
2117821181
{
2117921182
static_assert( VULKAN_HPP_NAMESPACE::isVulkanHandleType<HandleType>::value, "HandleType must be a Vulkan handle type" );
21180-
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo(
21181-
handle.objectType, reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) ), name, sizeof( TagType ), &tag );
21183+
// It might be, that neither constructors, nor setters, nor designated initializers are available... need to explicitly set member by member
21184+
VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT tagInfo;
21185+
tagInfo.objectType = handle.objectType;
21186+
tagInfo.objectHandle = reinterpret_cast<uint64_t>( static_cast<typename HandleType::CType>( handle ) );
21187+
tagInfo.tagName = name;
21188+
tagInfo.tagSize = sizeof( TagType );
21189+
tagInfo.pTag = &tag;
2118221190
return setDebugUtilsObjectTagEXT( tagInfo );
2118321191
}
2118421192

0 commit comments

Comments
 (0)