Skip to content
Snippets Groups Projects
Commit 288b0799 authored by Mara Vogt's avatar Mara Vogt
Browse files

[#92] modified glslCompiler so that environment is configured for rt shaders

parent 9c5cee92
No related branches found
No related tags found
1 merge request!75Resolve "RTX-Module"
Pipeline #27071 passed
......@@ -56,6 +56,18 @@ namespace vkcv::shader {
return EShLangTaskNV;
case ShaderStage::MESH:
return EShLangMeshNV;
case ShaderStage::RAY_GEN:
return EShLangRayGen;
case ShaderStage::RAY_CLOSEST_HIT:
return EShLangClosestHit;
case ShaderStage::RAY_MISS:
return EShLangMiss;
case ShaderStage::RAY_INTERSECTION:
return EShLangIntersect;
case ShaderStage::RAY_ANY_HIT:
return EShLangAnyHit;
case ShaderStage::RAY_CALLABLE:
return EShLangCallable;
default:
return EShLangCount;
}
......@@ -214,6 +226,16 @@ namespace vkcv::shader {
}
glslang::TShader shader (language);
//configure environment for rt shaders
if((shaderStage == ShaderStage::RAY_GEN) || (shaderStage == ShaderStage::RAY_ANY_HIT)
|| (shaderStage == ShaderStage::RAY_CLOSEST_HIT) || (shaderStage == ShaderStage::RAY_MISS)
|| (shaderStage == ShaderStage::RAY_INTERSECTION) || (shaderStage == ShaderStage::RAY_CALLABLE)){
shader.setEnvClient(glslang::EShClientVulkan,glslang::EShTargetVulkan_1_2);
shader.setEnvTarget(glslang::EShTargetSpv,glslang::EShTargetSpv_1_4);
}
glslang::TProgram program;
std::string source (shaderSource);
......
#version 460
#extension GL_EXT_ray_tracing : require
/*
layout(binding = 3, set 0) buffer vertices
{
vec3 vertices[];
......@@ -10,6 +11,7 @@ layout(binding = 4, set 0) buffer indices
{
uint indices[];
};
*/
void main() {
......
#version 460
#extension GL_EXT_ray_tracing : require
/*
// A location for a ray payload (we can have multiple of these)
layout(location = 0) rayPayloadEXT RayPayload pay;
......@@ -15,7 +16,7 @@ layout( push_constant ) uniform constants { // TODO: add push_constants in m
uint frameCount; // what is this? the actual frame?
};
*/
void main() {
// TODO
......
......@@ -123,7 +123,7 @@ int main(int argc, const char** argv) {
const auto& material0 = scene.getMaterial(0);
/*
vkcv::ShaderProgram rayGenShaderProgram;
compiler.compile(vkcv::ShaderStage::RAY_GEN, std::filesystem::path("resources/shaders/raytrace.rgen"),
[&rayGenShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
......@@ -141,7 +141,7 @@ int main(int argc, const char** argv) {
[&rayMissShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
rayMissShaderProgram.addShader(shaderStage, path);
});
*/
//TODO
// vkcv::DescriptorSetLayoutHandle rayGenShaderDescriptorSetLayout = core.createDescriptorSetLayout(rayGenShaderProgram.getReflectedDescriptors().at(0));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment