diff --git a/docs/overview/shaders-to-headers.rst b/docs/overview/shaders-to-headers.rst index ab41d4683..77d46ddc4 100644 --- a/docs/overview/shaders-to-headers.rst +++ b/docs/overview/shaders-to-headers.rst @@ -13,11 +13,15 @@ For users that are looking to quickly test the processors it is possible to use .. code-block:: cpp :linenos: - static std::vector + static + std::vector compileSource( const std::string& source) { - if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END\n" + source + "\nEND").c_str())) + std::ofstream fileOut("tmp_kp_shader.comp"); + fileOut << source; + fileOut.close(); + if (system(std::string("glslangValidator -V tmp_kp_shader.comp -o tmp_kp_shader.comp.spv").c_str())) throw std::runtime_error("Error running glslangValidator command"); std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); std::vector buffer; @@ -25,6 +29,7 @@ For users that are looking to quickly test the processors it is possible to use return {(uint32_t*)buffer.data(), (uint32_t*)(buffer.data() + buffer.size())}; } + Converting Shaders into C / C++ Header Files ---------------------------------- diff --git a/examples/array_multiplication/src/Main.cpp b/examples/array_multiplication/src/Main.cpp index a97fdbf24..be1be9d5d 100755 --- a/examples/array_multiplication/src/Main.cpp +++ b/examples/array_multiplication/src/Main.cpp @@ -5,11 +5,15 @@ #include "kompute/Kompute.hpp" -static std::vector +static +std::vector compileSource( const std::string& source) { - if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END\n" + source + "\nEND").c_str())) + std::ofstream fileOut("tmp_kp_shader.comp"); + fileOut << source; + fileOut.close(); + if (system(std::string("glslangValidator -V tmp_kp_shader.comp -o tmp_kp_shader.comp.spv").c_str())) throw std::runtime_error("Error running glslangValidator command"); std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); std::vector buffer; @@ -51,7 +55,7 @@ int main() std::vector> params = { tensorInA, tensorInB, tensorOut }; - std::shared_ptr algo = mgr.algorithm(params, kp_test_utils::compileSource(shader)); + std::shared_ptr algo = mgr.algorithm(params, compileSource(shader)); mgr.sequence() ->record(params) diff --git a/examples/godot_examples/custom_module/kompute_summator/KomputeSummatorNode.cpp b/examples/godot_examples/custom_module/kompute_summator/KomputeSummatorNode.cpp index e02a08d86..f937e7668 100644 --- a/examples/godot_examples/custom_module/kompute_summator/KomputeSummatorNode.cpp +++ b/examples/godot_examples/custom_module/kompute_summator/KomputeSummatorNode.cpp @@ -4,11 +4,15 @@ #include "KomputeSummatorNode.h" -static std::vector +static +std::vector compileSource( const std::string& source) { - if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END\n" + source + "\nEND").c_str())) + std::ofstream fileOut("tmp_kp_shader.comp"); + fileOut << source; + fileOut.close(); + if (system(std::string("glslangValidator -V tmp_kp_shader.comp -o tmp_kp_shader.comp.spv").c_str())) throw std::runtime_error("Error running glslangValidator command"); std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); std::vector buffer; @@ -16,6 +20,7 @@ compileSource( return {(uint32_t*)buffer.data(), (uint32_t*)(buffer.data() + buffer.size())}; } + KomputeSummatorNode::KomputeSummatorNode() { this->_init(); } diff --git a/examples/godot_examples/gdnative_shared/src/KomputeSummator.cpp b/examples/godot_examples/gdnative_shared/src/KomputeSummator.cpp index ab4067697..ac3398cb7 100644 --- a/examples/godot_examples/gdnative_shared/src/KomputeSummator.cpp +++ b/examples/godot_examples/gdnative_shared/src/KomputeSummator.cpp @@ -5,11 +5,15 @@ #include "KomputeSummator.hpp" -static std::vector +static +std::vector compileSource( const std::string& source) { - if (system(std::string("glslangValidator --stdin -S comp -V -o tmp_kp_shader.comp.spv << END\n" + source + "\nEND").c_str())) + std::ofstream fileOut("tmp_kp_shader.comp"); + fileOut << source; + fileOut.close(); + if (system(std::string("glslangValidator -V tmp_kp_shader.comp -o tmp_kp_shader.comp.spv").c_str())) throw std::runtime_error("Error running glslangValidator command"); std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); std::vector buffer; @@ -17,6 +21,7 @@ compileSource( return {(uint32_t*)buffer.data(), (uint32_t*)(buffer.data() + buffer.size())}; } + namespace godot { KomputeSummator::KomputeSummator() {