Skip to content
Snippets Groups Projects
Commit 9c5cee92 authored by Lars Hoerttrich's avatar Lars Hoerttrich
Browse files

[#92] added shader compilation, currently commented due to errors

parent d87a1284
No related branches found
No related tags found
1 merge request!75Resolve "RTX-Module"
Pipeline #27070 passed
...@@ -13,12 +13,12 @@ namespace vkcv { ...@@ -13,12 +13,12 @@ namespace vkcv {
COMPUTE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCompute), COMPUTE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCompute),
TASK = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTaskNV), TASK = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eTaskNV),
MESH = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMeshNV), MESH = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMeshNV),
RAYGEN = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eRaygenKHR), RAY_GEN = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eRaygenKHR),
ANY_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eAnyHitKHR), RAY_ANY_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eAnyHitKHR),
CLOSEST_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eClosestHitKHR), RAY_CLOSEST_HIT = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eClosestHitKHR),
MISS = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMissKHR), RAY_MISS = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eMissKHR),
INTERSECTION = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eIntersectionKHR), RAY_INTERSECTION = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eIntersectionKHR),
CALLABLE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCallableKHR) RAY_CALLABLE = static_cast<VkShaderStageFlags>(vk::ShaderStageFlagBits::eCallableKHR)
}; };
using ShaderStages = vk::Flags<ShaderStage>; using ShaderStages = vk::Flags<ShaderStage>;
......
...@@ -123,9 +123,35 @@ int main(int argc, const char** argv) { ...@@ -123,9 +123,35 @@ int main(int argc, const char** argv) {
const auto& material0 = scene.getMaterial(0); const auto& material0 = scene.getMaterial(0);
// TODO /*
// vkcv::DescriptorSetLayoutHandle vertexShaderDescriptorSetLayout = core.createDescriptorSetLayout(bunnyShaderProgram.getReflectedDescriptors().at(0)); vkcv::ShaderProgram rayGenShaderProgram;
// vkcv::DescriptorSetHandle vertexShaderDescriptorSet = core.createDescriptorSet(vertexShaderDescriptorSetLayout); compiler.compile(vkcv::ShaderStage::RAY_GEN, std::filesystem::path("resources/shaders/raytrace.rgen"),
[&rayGenShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
rayGenShaderProgram.addShader(shaderStage, path);
});
vkcv::ShaderProgram rayClosestHitShaderProgram;
compiler.compile(vkcv::ShaderStage::RAY_CLOSEST_HIT, std::filesystem::path("resources/shaders/raytrace.rchit"),
[&rayClosestHitShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
rayClosestHitShaderProgram.addShader(shaderStage, path);
});
vkcv::ShaderProgram rayMissShaderProgram;
compiler.compile(vkcv::ShaderStage::RAY_MISS, std::filesystem::path("resources/shaders/raytrace.rmiss"),
[&rayMissShaderProgram](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
rayMissShaderProgram.addShader(shaderStage, path);
});
*/
//TODO
// vkcv::DescriptorSetLayoutHandle rayGenShaderDescriptorSetLayout = core.createDescriptorSetLayout(rayGenShaderProgram.getReflectedDescriptors().at(0));
// vkcv::DescriptorSetHandle rayGenShaderDescriptorSet = core.createDescriptorSet(rayGenShaderDescriptorSetLayout);
// vkcv::DescriptorSetLayoutHandle rayClosestHitShaderDescriptorSetLayout = core.createDescriptorSetLayout(rayClosestHitShaderProgram.getReflectedDescriptors().at(0));
// vkcv::DescriptorSetHandle rayGenShaderDescriptorSet = core.createDescriptorSet(rayClosestHitShaderDescriptorSetLayout);
// vkcv::DescriptorSetLayoutHandle rayMissShaderDescriptorSetLayout = core.createDescriptorSetLayout(rayMissShaderProgram.getReflectedDescriptors().at(0));
// vkcv::DescriptorSetHandle rayGenShaderDescriptorSet = core.createDescriptorSet(rayMissShaderDescriptorSetLayout);
const vkcv::PipelineConfig scenePipelineDefinition{ const vkcv::PipelineConfig scenePipelineDefinition{
sceneShaderProgram, sceneShaderProgram,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment