@@ -1034,47 +1034,6 @@ class NBL_API2 ILogicalDevice : public core::IReferenceCounted, public IDeviceMe
10341034 const std::span<const IGPURayTracingPipeline::SCreationParams> params,
10351035 core::smart_refctd_ptr<IGPURayTracingPipeline>* const output);
10361036
1037- // Per-executable info from VK_KHR_pipeline_executable_properties
1038- struct SPipelineExecutableInfo
1039- {
1040- std::string name;
1041- std::string description;
1042- core::bitflag<hlsl::ShaderStage> stages = hlsl::ShaderStage::ESS_UNKNOWN;
1043- uint32_t subgroupSize = 0 ;
1044- std::string statistics;
1045- std::string internalRepresentations;
1046- };
1047-
1048- // Query pipeline executable properties (VK_KHR_pipeline_executable_properties).
1049- // Pipeline must have been created with CAPTURE_STATISTICS flag for statistics.
1050- // Pipeline must have been created with CAPTURE_INTERNAL_REPRESENTATIONS flag for IR.
1051- template <typename Pipeline>
1052- core::vector<SPipelineExecutableInfo> getPipelineExecutableProperties (const Pipeline* pipeline, bool includeInternalRepresentations = false )
1053- {
1054- if (!pipeline)
1055- {
1056- NBL_LOG_ERROR (" Null pipeline" );
1057- return {};
1058- }
1059- using flags_t = Pipeline::SCreationParams::FLAGS;
1060- if (!pipeline->getCreationFlags ().hasFlags (flags_t ::CAPTURE_STATISTICS))
1061- {
1062- NBL_LOG_ERROR (" Pipeline was not created with CAPTURE_STATISTICS flag" );
1063- return {};
1064- }
1065- if (includeInternalRepresentations && !pipeline->getCreationFlags ().hasFlags (flags_t ::CAPTURE_INTERNAL_REPRESENTATIONS))
1066- {
1067- NBL_LOG_ERROR (" Pipeline was not created with CAPTURE_INTERNAL_REPRESENTATIONS flag" );
1068- return {};
1069- }
1070- auto properties = getPipelineExecutableProperties_impl (pipeline, includeInternalRepresentations);
1071- if (properties.empty ())
1072- {
1073- NBL_LOG_ERROR (" Driver returned 0 executables for pipeline created with CAPTURE_STATISTICS flag. This pipeline type may not be supported by the driver's VK_KHR_pipeline_executable_properties implementation." );
1074- }
1075- return properties;
1076- }
1077-
10781037 // queries
10791038 inline core::smart_refctd_ptr<IQueryPool> createQueryPool (const IQueryPool::SCreationParams& params)
10801039 {
@@ -1352,10 +1311,6 @@ class NBL_API2 ILogicalDevice : public core::IReferenceCounted, public IDeviceMe
13521311 const SSpecializationValidationResult& validation
13531312 ) = 0;
13541313
1355- virtual core::vector<SPipelineExecutableInfo> getPipelineExecutableProperties_impl (const IGPUComputePipeline* pipeline, bool includeInternalRepresentations) = 0;
1356- virtual core::vector<SPipelineExecutableInfo> getPipelineExecutableProperties_impl (const IGPUGraphicsPipeline* pipeline, bool includeInternalRepresentations) = 0;
1357- virtual core::vector<SPipelineExecutableInfo> getPipelineExecutableProperties_impl (const IGPURayTracingPipeline* pipeline, bool includeInternalRepresentations) = 0;
1358-
13591314 virtual core::smart_refctd_ptr<IQueryPool> createQueryPool_impl (const IQueryPool::SCreationParams& params) = 0;
13601315 virtual bool getQueryPoolResults_impl (const IQueryPool* const queryPool, const uint32_t firstQuery, const uint32_t queryCount, void * const pData, const size_t stride, const core::bitflag<IQueryPool::RESULTS_FLAGS> flags) = 0;
13611316
@@ -1665,51 +1620,5 @@ inline bool ILogicalDevice::validateMemoryBarrier(const uint32_t queueFamilyInde
16651620
16661621} // namespace nbl::video
16671622
1668- namespace nbl ::system::impl
1669- {
1670-
1671- template <>
1672- struct to_string_helper <video::ILogicalDevice::SPipelineExecutableInfo>
1673- {
1674- static std::string __call (const video::ILogicalDevice::SPipelineExecutableInfo& info)
1675- {
1676- std::string result;
1677- result += " ======== " ;
1678- result += info.name ;
1679- result += " ========\n " ;
1680- result += info.description ;
1681- result += " \n Subgroup Size: " ;
1682- result += std::to_string (info.subgroupSize );
1683- if (!info.statistics .empty ())
1684- {
1685- result += " \n " ;
1686- result += info.statistics ;
1687- }
1688- if (!info.internalRepresentations .empty ())
1689- {
1690- result += " \n " ;
1691- result += info.internalRepresentations ;
1692- }
1693- return result;
1694- }
1695- };
1696-
1697- template <>
1698- struct to_string_helper <core::vector<video::ILogicalDevice::SPipelineExecutableInfo>>
1699- {
1700- static std::string __call (const core::vector<video::ILogicalDevice::SPipelineExecutableInfo>& infos)
1701- {
1702- std::string result;
1703- for (const auto & info : infos)
1704- {
1705- result += to_string_helper<video::ILogicalDevice::SPipelineExecutableInfo>::__call (info);
1706- result += " \n " ;
1707- }
1708- return result;
1709- }
1710- };
1711-
1712- }
1713-
17141623#include " nbl/undef_logging_macros.h"
17151624#endif // _NBL_VIDEO_I_LOGICAL_DEVICE_H_INCLUDED_
0 commit comments