[Bf-blender-cvs] [975b09e3e73] tmp-vulkan: ShaderCompiler: Split code per target type.
Jeroen Bakker
noreply at git.blender.org
Fri Jun 25 11:02:48 CEST 2021
Commit: 975b09e3e73bf829d515982bda53a3981e7fafb7
Author: Jeroen Bakker
Date: Fri Jun 25 11:01:59 2021 +0200
Branches: tmp-vulkan
https://developer.blender.org/rB975b09e3e73bf829d515982bda53a3981e7fafb7
ShaderCompiler: Split code per target type.
No functional changes.
===================================================================
M intern/shader_compiler/intern/shaderc/ShaderCCompiler.cc
M intern/shader_compiler/intern/shaderc/ShaderCCompiler.hh
===================================================================
diff --git a/intern/shader_compiler/intern/shaderc/ShaderCCompiler.cc b/intern/shader_compiler/intern/shaderc/ShaderCCompiler.cc
index a2c4c59f15c..73d920965b5 100644
--- a/intern/shader_compiler/intern/shaderc/ShaderCCompiler.cc
+++ b/intern/shader_compiler/intern/shaderc/ShaderCCompiler.cc
@@ -65,11 +65,10 @@ shaderc_shader_kind ShaderCCompiler::get_source_kind(SourceType source_type)
return shaderc_glsl_vertex_shader;
}
-Result *ShaderCCompiler::compile(const Job &job)
+ShaderCResult *ShaderCCompiler::compile_spirv(const Job &job)
{
::shaderc::CompileOptions options;
set_optimization_level(options, job.optimization_level);
-
shaderc_shader_kind kind = get_source_kind(job.source_type);
::shaderc::SpvCompilationResult shaderc_result = compiler_.CompileGlslToSpv(
@@ -80,4 +79,14 @@ Result *ShaderCCompiler::compile(const Job &job)
return result;
}
+Result *ShaderCCompiler::compile(const Job &job)
+{
+ switch (job.compilation_target) {
+ case TargetType::SpirV:
+ return compile_spirv(job);
+ break;
+ }
+ return nullptr;
+}
+
} // namespace shader_compiler::shaderc
\ No newline at end of file
diff --git a/intern/shader_compiler/intern/shaderc/ShaderCCompiler.hh b/intern/shader_compiler/intern/shaderc/ShaderCCompiler.hh
index 560d919ef4d..56f0c185f3c 100644
--- a/intern/shader_compiler/intern/shaderc/ShaderCCompiler.hh
+++ b/intern/shader_compiler/intern/shaderc/ShaderCCompiler.hh
@@ -25,6 +25,8 @@
namespace shader_compiler::shaderc {
+class ShaderCResult;
+
class ShaderCCompiler : public Compiler {
private:
::shaderc::Compiler compiler_;
@@ -36,6 +38,8 @@ class ShaderCCompiler : public Compiler {
Result *compile(const Job &job) override;
private:
+ ShaderCResult *compile_spirv(const Job &job);
+
static void set_optimization_level(::shaderc::CompileOptions options,
const OptimizationLevel new_value);
static shaderc_shader_kind get_source_kind(SourceType source_type);
More information about the Bf-blender-cvs
mailing list