Skip to content

Commit e330b96

Browse files
committed
Fix ConvertUBOToPushConstant.cpp:46:6: error: function 'Diligent::(anonymous namespace)::SpvOptimizerMessageConsumer' has internal linkage but is not defined
1 parent a418347 commit e330b96

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

Graphics/ShaderTools/include/SPIRVTools.hpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,4 @@ std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV,
6060
std::vector<uint32_t> ConvertUBOToPushConstants(const std::vector<uint32_t>& SPIRV,
6161
const std::string& BlockName);
6262

63-
/// @brief Get target environments from given SPIR-V
64-
/// @param [in] SPIRV - Source SPIR-V bytecode
65-
/// @return spv_target_env
66-
spv_target_env SpvTargetEnvFromSPIRV(const std::vector<uint32_t>& SPIRV);
67-
6863
} // namespace Diligent

Graphics/ShaderTools/src/ConvertUBOToPushConstant.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,19 @@
4040
namespace Diligent
4141
{
4242

43-
namespace
43+
namespace SPIRVToolsUtil
4444
{
4545

46+
//Forward declaration
4647
void SpvOptimizerMessageConsumer(
4748
spv_message_level_t level,
4849
const char* /* source */,
4950
const spv_position_t& /* position */,
5051
const char* message);
5152

53+
//Forward declaration
54+
spv_target_env SpvTargetEnvFromSPIRV(const std::vector<uint32_t>& SPIRV);
55+
5256
// A pass that converts a uniform buffer variable to a push constant.
5357
// This pass:
5458
// 1. Finds the variable with the specified block name
@@ -388,11 +392,11 @@ std::vector<uint32_t> ConvertUBOToPushConstants(
388392
const std::vector<uint32_t>& SPIRV,
389393
const std::string& BlockName)
390394
{
391-
spv_target_env TargetEnv = SpvTargetEnvFromSPIRV(SPIRV);
395+
spv_target_env TargetEnv = SPIRVToolsUtil::SpvTargetEnvFromSPIRV(SPIRV);
392396

393397
spvtools::Optimizer optimizer(TargetEnv);
394398

395-
optimizer.SetMessageConsumer(SpvOptimizerMessageConsumer);
399+
optimizer.SetMessageConsumer(SPIRVToolsUtil::SpvOptimizerMessageConsumer);
396400

397401
// Register the pass to convert UBO to push constant using custom out-of-tree pass
398402
optimizer.RegisterPass(spvtools::Optimizer::PassToken(

Graphics/ShaderTools/src/SPIRVTools.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
namespace Diligent
3333
{
3434

35-
namespace
35+
namespace SPIRVToolsUtil
3636
{
3737

3838
void SpvOptimizerMessageConsumer(
@@ -106,16 +106,18 @@ spv_target_env SpvTargetEnvFromSPIRV(const std::vector<uint32_t>& SPIRV)
106106
}
107107
}
108108

109+
} // namespace SPIRVToolsUtil
110+
109111
#undef SPV_SPIRV_VERSION_WORD
110112
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV, spv_target_env TargetEnv, SPIRV_OPTIMIZATION_FLAGS Passes)
111113
{
112114
VERIFY_EXPR(Passes != SPIRV_OPTIMIZATION_FLAG_NONE);
113115

114116
if (TargetEnv == SPV_ENV_MAX)
115-
TargetEnv = SpvTargetEnvFromSPIRV(SrcSPIRV);
117+
TargetEnv = SPIRVToolsUtil::SpvTargetEnvFromSPIRV(SrcSPIRV);
116118

117119
spvtools::Optimizer SpirvOptimizer(TargetEnv);
118-
SpirvOptimizer.SetMessageConsumer(SpvOptimizerMessageConsumer);
120+
SpirvOptimizer.SetMessageConsumer(SPIRVToolsUtil::SpvOptimizerMessageConsumer);
119121

120122
spvtools::OptimizerOptions Options;
121123
#ifndef DILIGENT_DEVELOPMENT
@@ -153,6 +155,4 @@ std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV, spv_t
153155
return OptimizedSPIRV;
154156
}
155157

156-
} // namespace
157-
158158
} // namespace Diligent

0 commit comments

Comments
 (0)