From 8bf8f8e085e7928d34fd305c85f78f2764ec7cfb Mon Sep 17 00:00:00 2001 From: Mara Vogt <mvogt@uni-koblenz.de> Date: Wed, 25 Aug 2021 17:49:21 +0200 Subject: [PATCH] [#94] fixed alignment issues and descriptorwrite overwrite issues --- projects/saf_r/shaders/raytracing.comp | 8 ++++---- projects/saf_r/src/main.cpp | 8 +++++--- projects/saf_r/src/safrScene.hpp | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/projects/saf_r/shaders/raytracing.comp b/projects/saf_r/shaders/raytracing.comp index fd6d6898..042b532b 100644 --- a/projects/saf_r/shaders/raytracing.comp +++ b/projects/saf_r/shaders/raytracing.comp @@ -2,19 +2,19 @@ #extension GL_ARB_separate_shader_objects : enable struct Material { - vec3 diffuse_color; vec3 albedo; + vec3 diffuse_color; float specular_exponent; }; layout(std430, binding = 0) coherent buffer Lights{ - vec3 position []; - float intensity []; + vec3 position; + float intensity; }; layout(std430, binding = 1) coherent buffer Materials{ - vec3 diffuse_color; vec3 albedo; + vec3 diffuse_color; float specular_exponent; }; diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp index 45da7182..a39ad8e8 100644 --- a/projects/saf_r/src/main.cpp +++ b/projects/saf_r/src/main.cpp @@ -119,19 +119,19 @@ int main(int argc, const char** argv) { vkcv::Buffer<safrScene::Light> lightsBuffer = core.createBuffer<safrScene::Light>( vkcv::BufferType::STORAGE, lights.size() - ); + ); lightsBuffer.fill(lights); vkcv::Buffer<safrScene::Sphere> sphereBuffer = core.createBuffer<safrScene::Sphere>( vkcv::BufferType::STORAGE, spheres.size() - ); + ); sphereBuffer.fill(spheres); vkcv::Buffer<safrScene::Material> materialBuffer = core.createBuffer<safrScene::Material>( vkcv::BufferType::STORAGE, materials.size() - ); + ); materialBuffer.fill(materials); @@ -142,7 +142,9 @@ int main(int argc, const char** argv) { vkcv::DescriptorWrites computeWrites; computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(0,lightsBuffer.getHandle()) }; + core.writeDescriptorSet(computeDescriptorSet, computeWrites); computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(1,materialBuffer.getHandle()) }; + core.writeDescriptorSet(computeDescriptorSet, computeWrites); computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(2,sphereBuffer.getHandle()) }; core.writeDescriptorSet(computeDescriptorSet, computeWrites); diff --git a/projects/saf_r/src/safrScene.hpp b/projects/saf_r/src/safrScene.hpp index fa1f9dd4..a3396afe 100644 --- a/projects/saf_r/src/safrScene.hpp +++ b/projects/saf_r/src/safrScene.hpp @@ -39,8 +39,8 @@ public: struct Material { Material(const glm::vec3& a, const glm::vec3& color, const float& spec) : albedo(a), diffuse_color(color), specular_exponent(spec) {} Material() : albedo(1, 0, 0), diffuse_color(), specular_exponent() {} - glm::vec3 diffuse_color; glm::vec3 albedo; + alignas(16) glm::vec3 diffuse_color; float specular_exponent; }; -- GitLab