From 3edb72be6acc7ecaa302b65498c51898c55025c0 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Wed, 7 Oct 2020 21:26:17 +0100 Subject: [PATCH] Updated godot example to use compiled spv header by default --- .../kompute_model_ml/KomputeModelMLNode.cpp | 13 ++++++++++++- .../gdnative_shared/src/KomputeModelML.cpp | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/examples/godot_logistic_regression/custom_module/kompute_model_ml/KomputeModelMLNode.cpp b/examples/godot_logistic_regression/custom_module/kompute_model_ml/KomputeModelMLNode.cpp index ff717b1a3..f49fb12f7 100644 --- a/examples/godot_logistic_regression/custom_module/kompute_model_ml/KomputeModelMLNode.cpp +++ b/examples/godot_logistic_regression/custom_module/kompute_model_ml/KomputeModelMLNode.cpp @@ -65,8 +65,19 @@ void KomputeModelMLNode::train(Array yArr, Array xIArr, Array xJArr) { sq->record({ wIn, bIn }); +#ifdef KOMPUTE_ANDROID_SHADER_FROM_STRING + // Newer versions of Android are able to use shaderc to read raw string sq->record>( - params, std::vector(LR_SHADER.begin(), LR_SHADER.end())); + params, std::vector(LR_SHADER.begin(), LR_SHADER.end())); +#else + // Older versions of Android require the SPIRV binary directly + sq->record>( + params, std::vector( + kp::shader_data::shaders_glsl_logisticregression_comp_spv, + kp::shader_data::shaders_glsl_logisticregression_comp_spv + + kp::shader_data::shaders_glsl_logisticregression_comp_spv_len + )); +#endif sq->record({ wOutI, wOutJ, bOut, lOut }); diff --git a/examples/godot_logistic_regression/gdnative_shared/src/KomputeModelML.cpp b/examples/godot_logistic_regression/gdnative_shared/src/KomputeModelML.cpp index c4969ab7d..139ef67e6 100644 --- a/examples/godot_logistic_regression/gdnative_shared/src/KomputeModelML.cpp +++ b/examples/godot_logistic_regression/gdnative_shared/src/KomputeModelML.cpp @@ -69,8 +69,19 @@ void KomputeModelML::train(Array yArr, Array xIArr, Array xJArr) { sq->record({ wIn, bIn }); +#ifdef KOMPUTE_ANDROID_SHADER_FROM_STRING + // Newer versions of Android are able to use shaderc to read raw string sq->record>( - params, std::vector(LR_SHADER.begin(), LR_SHADER.end())); + params, std::vector(LR_SHADER.begin(), LR_SHADER.end())); +#else + // Older versions of Android require the SPIRV binary directly + sq->record>( + params, std::vector( + kp::shader_data::shaders_glsl_logisticregression_comp_spv, + kp::shader_data::shaders_glsl_logisticregression_comp_spv + + kp::shader_data::shaders_glsl_logisticregression_comp_spv_len + )); +#endif sq->record({ wOutI, wOutJ, bOut, lOut });