Skip to content

Commit ad83193

Browse files
SPIRVTools.hpp: remove dependency on libspirv.h
1 parent adfac1b commit ad83193

File tree

6 files changed

+16
-15
lines changed

6 files changed

+16
-15
lines changed

Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ void PipelineStateVkImpl::RemapOrVerifyShaderResources(
773773
{
774774
OptimizationFlags |= SPIRV_OPTIMIZATION_FLAG_LEGALIZATION;
775775
}
776-
std::vector<uint32_t> StrippedSPIRV = OptimizeSPIRV(SPIRV, SPV_ENV_MAX, OptimizationFlags);
776+
std::vector<uint32_t> StrippedSPIRV = OptimizeSPIRV(SPIRV, OptimizationFlags);
777777
if (!StrippedSPIRV.empty())
778778
SPIRV = std::move(StrippedSPIRV);
779779
else

Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ std::vector<uint32_t> CompileShaderDXC(const ShaderCreateInfo& ShaderCI,
7878
{
7979
// SPIR-V bytecode generated from HLSL must be legalized to
8080
// turn it into a valid vulkan SPIR-V shader.
81-
std::vector<uint32_t> LegalizedSPIRV = OptimizeSPIRV(SPIRV, SPV_ENV_MAX, SPIRV_OPTIMIZATION_FLAG_LEGALIZATION);
81+
std::vector<uint32_t> LegalizedSPIRV = OptimizeSPIRV(SPIRV, SPIRV_OPTIMIZATION_FLAG_LEGALIZATION);
8282
if (!LegalizedSPIRV.empty())
8383
SPIRV = std::move(LegalizedSPIRV);
8484
else

Graphics/ShaderTools/include/SPIRVTools.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131

3232
#include "FlagEnum.h"
3333

34-
#include "spirv-tools/libspirv.h"
35-
3634
namespace Diligent
3735
{
3836

@@ -47,7 +45,10 @@ DEFINE_FLAG_ENUM_OPERATORS(SPIRV_OPTIMIZATION_FLAGS);
4745

4846

4947
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV,
50-
spv_target_env TargetEnv,
48+
int TargetEnv, // spv_target_env
49+
SPIRV_OPTIMIZATION_FLAGS Passes);
50+
51+
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV,
5152
SPIRV_OPTIMIZATION_FLAGS Passes);
5253

5354
/// Converts a uniform buffer variable to a push constant in SPIR-V bytecode.

Graphics/ShaderTools/src/GLSLangUtils.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#include "ShaderToolsCommon.hpp"
5050
#ifdef USE_SPIRV_TOOLS
5151
# include "SPIRVTools.hpp"
52+
# include "spirv-tools/libspirv.h"
5253
#endif
5354

5455
// clang-format off

Graphics/ShaderTools/src/SPIRVTools.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ spv_target_env SpvTargetEnvFromSPIRV(const std::vector<uint32_t>& SPIRV)
108108

109109
} // namespace SPIRVToolsInternal
110110

111-
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV, spv_target_env TargetEnv, SPIRV_OPTIMIZATION_FLAGS Passes)
111+
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV, int TargetEnv, SPIRV_OPTIMIZATION_FLAGS Passes)
112112
{
113113
VERIFY_EXPR(Passes != SPIRV_OPTIMIZATION_FLAG_NONE);
114114

115115
if (TargetEnv == SPV_ENV_MAX)
116116
TargetEnv = SPIRVToolsInternal::SpvTargetEnvFromSPIRV(SrcSPIRV);
117117

118-
spvtools::Optimizer SpirvOptimizer(TargetEnv);
118+
spvtools::Optimizer SpirvOptimizer(static_cast<spv_target_env>(TargetEnv));
119119
SpirvOptimizer.SetMessageConsumer(SPIRVToolsInternal::SpvOptimizerMessageConsumer);
120120

121121
spvtools::OptimizerOptions Options;
@@ -154,4 +154,10 @@ std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV, spv_t
154154
return OptimizedSPIRV;
155155
}
156156

157+
std::vector<uint32_t> OptimizeSPIRV(const std::vector<uint32_t>& SrcSPIRV,
158+
SPIRV_OPTIMIZATION_FLAGS Passes)
159+
{
160+
return OptimizeSPIRV(SrcSPIRV, SPV_ENV_MAX, Passes);
161+
}
162+
157163
} // namespace Diligent

Tests/DiligentCoreTest/src/ShaderTools/SPIRVShaderResourcesTest.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,14 @@
3131
#include "RefCntAutoPtr.hpp"
3232
#include "EngineMemory.h"
3333
#include "BasicFileSystem.hpp"
34+
#include "SPIRVTools.hpp"
3435

3536
#include <unordered_map>
3637
#include <string>
3738
#include <vector>
3839

3940
#include "TestingEnvironment.hpp"
4041

41-
// Forward declaration for ConvertUBOToPushConstants from SPIRVTools.hpp
42-
// We cannot include SPIRVTools.hpp directly because it depends on spirv-tools headers
43-
namespace Diligent
44-
{
45-
std::vector<uint32_t> ConvertUBOToPushConstants(const std::vector<uint32_t>& SPIRV,
46-
const std::string& BlockName);
47-
}
48-
4942
#include "gtest/gtest.h"
5043

5144
using namespace Diligent;

0 commit comments

Comments
 (0)