Skip to content
Snippets Groups Projects

Resolve "Basic voxelization"

Merged Ghost User requested to merge 70-basic-voxelization into develop
3 files
+ 60
18
Compare changes
  • Side-by-side
  • Inline
Files
3
  • b8727742
    [#70] Switch cmd_sync_test to runtime compilation and add runtime shader compile include support · b8727742
    Alexander Gauggel authored
@@ -3,6 +3,7 @@
@@ -3,6 +3,7 @@
#include <fstream>
#include <fstream>
#include <glslang/SPIRV/GlslangToSpv.h>
#include <glslang/SPIRV/GlslangToSpv.h>
 
#include <glslang/StandAlone/DirStackFileIncluder.h>
#include <vkcv/Logger.hpp>
#include <vkcv/Logger.hpp>
@@ -216,12 +217,26 @@ namespace vkcv::shader {
@@ -216,12 +217,26 @@ namespace vkcv::shader {
TBuiltInResource resources = {};
TBuiltInResource resources = {};
initResources(resources);
initResources(resources);
 
 
const auto messages = (EShMessages)(
 
EShMsgSpvRules |
 
EShMsgVulkanRules
 
);
 
 
std::string preprocessedGLSL;
 
 
DirStackFileIncluder includer;
 
includer.pushExternalLocalDirectory(shaderPath.parent_path().string());
 
 
if (!shader.preprocess(&resources, 100, ENoProfile, false, false, messages, &preprocessedGLSL, includer)) {
 
vkcv_log(LogLevel::ERROR, "Shader parsing failed {\n%s\n%s\n} (%s)",
 
shader.getInfoLog(), shader.getInfoDebugLog(), shaderPath.string().c_str());
 
return;
 
}
const auto messages = (EShMessages) (
const char* preprocessedCString = preprocessedGLSL.c_str();
EShMsgSpvRules |
shader.setStrings(&preprocessedCString, 1);
EShMsgVulkanRules
);
if (!shader.parse(&resources, 100, false, messages)) {
if (!shader.parse(&resources, 100, false, messages)) {
vkcv_log(LogLevel::ERROR, "Shader parsing failed {\n%s\n%s\n} (%s)",
vkcv_log(LogLevel::ERROR, "Shader parsing failed {\n%s\n%s\n} (%s)",
shader.getInfoLog(), shader.getInfoDebugLog(), shaderPath.string().c_str());
shader.getInfoLog(), shader.getInfoDebugLog(), shaderPath.string().c_str());
Loading