From ca884587a4019b47ae27b3959c6ce0a32d913c08 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Fri, 29 May 2020 16:08:53 +0100 Subject: [PATCH] Move shaders into glsl and hlsl directories Move `data/shaders` to `data/shaders/glsl` Move `data/hlsl` to `data/shaders/hlsl` Fix up shader paths in the cpp files to point to the new glsl location. `data/shaders/hlsl/compile.py` still overwrites the glsl .spv files (for now). Issue: #723 --- README.md | 16 ++-- android/examples/_template/build.gradle | 4 +- android/examples/bloom/build.gradle | 8 +- android/examples/computecloth/build.gradle | 8 +- .../examples/computecullandlod/build.gradle | 8 +- android/examples/computeheadless/build.gradle | 8 +- android/examples/computenbody/build.gradle | 8 +- .../examples/computeparticles/build.gradle | 8 +- .../examples/computeraytracing/build.gradle | 8 +- android/examples/computeshader/build.gradle | 8 +- .../examples/conservativeraster/build.gradle | 8 +- android/examples/debugmarker/build.gradle | 8 +- android/examples/deferred/build.gradle | 8 +- .../deferredmultisampling/build.gradle | 8 +- android/examples/deferredshadows/build.gradle | 8 +- android/examples/descriptorsets/build.gradle | 8 +- android/examples/displacement/build.gradle | 8 +- .../examples/distancefieldfonts/build.gradle | 8 +- .../dynamicuniformbuffer/build.gradle | 8 +- android/examples/gears/build.gradle | 8 +- android/examples/geometryshader/build.gradle | 8 +- android/examples/gltfscene/build.gradle | 8 +- android/examples/hdr/build.gradle | 8 +- android/examples/imgui/build.gradle | 8 +- android/examples/indirectdraw/build.gradle | 8 +- .../examples/inlineuniformblocks/build.gradle | 8 +- .../examples/inputattachments/build.gradle | 10 +-- android/examples/instancing/build.gradle | 8 +- android/examples/multisampling/build.gradle | 8 +- android/examples/multithreading/build.gradle | 8 +- android/examples/multiview/build.gradle | 8 +- .../negativeviewportheight/build.gradle | 8 +- android/examples/occlusionquery/build.gradle | 8 +- android/examples/offscreen/build.gradle | 8 +- android/examples/parallaxmapping/build.gradle | 8 +- android/examples/particlefire/build.gradle | 8 +- android/examples/pbrbasic/build.gradle | 8 +- android/examples/pbribl/build.gradle | 8 +- android/examples/pbrtexture/build.gradle | 8 +- android/examples/pipelines/build.gradle | 8 +- .../examples/pipelinestatistics/build.gradle | 8 +- android/examples/pushconstants/build.gradle | 8 +- android/examples/pushdescriptors/build.gradle | 8 +- android/examples/radialblur/build.gradle | 8 +- android/examples/renderheadless/build.gradle | 8 +- android/examples/scenerendering/build.gradle | 8 +- android/examples/screenshot/build.gradle | 8 +- android/examples/shadowmapping/build.gradle | 8 +- .../shadowmappingcascade/build.gradle | 8 +- .../examples/shadowmappingomni/build.gradle | 8 +- .../examples/skeletalanimation/build.gradle | 8 +- .../specializationconstants/build.gradle | 8 +- .../examples/sphericalenvmapping/build.gradle | 8 +- android/examples/ssao/build.gradle | 8 +- android/examples/stencilbuffer/build.gradle | 8 +- android/examples/subpasses/build.gradle | 8 +- .../examples/terraintessellation/build.gradle | 8 +- android/examples/tessellation/build.gradle | 8 +- android/examples/textoverlay/build.gradle | 8 +- android/examples/texture/build.gradle | 8 +- android/examples/texture3d/build.gradle | 8 +- android/examples/texturearray/build.gradle | 8 +- android/examples/texturecubemap/build.gradle | 8 +- .../examples/texturemipmapgen/build.gradle | 8 +- android/examples/triangle/build.gradle | 8 +- android/examples/viewportarray/build.gradle | 8 +- android/examples/vulkanscene/build.gradle | 8 +- base/VulkanTools.cpp | 7 +- base/VulkanTools.h | 3 +- base/vulkanexamplebase.cpp | 24 +++--- .../{ => glsl}/base/generate-spirv.bat | 0 data/shaders/{ => glsl}/base/textoverlay.frag | 0 .../{ => glsl}/base/textoverlay.frag.spv | Bin data/shaders/{ => glsl}/base/textoverlay.vert | 0 .../{ => glsl}/base/textoverlay.vert.spv | Bin data/shaders/{ => glsl}/base/uioverlay.frag | 0 .../{ => glsl}/base/uioverlay.frag.spv | Bin data/shaders/{ => glsl}/base/uioverlay.vert | 0 .../{ => glsl}/base/uioverlay.vert.spv | Bin data/shaders/{ => glsl}/bloom/colorpass.frag | 0 .../{ => glsl}/bloom/colorpass.frag.spv | Bin data/shaders/{ => glsl}/bloom/colorpass.vert | 0 .../{ => glsl}/bloom/colorpass.vert.spv | Bin data/shaders/{ => glsl}/bloom/gaussblur.frag | 0 .../{ => glsl}/bloom/gaussblur.frag.spv | Bin data/shaders/{ => glsl}/bloom/gaussblur.vert | 0 .../{ => glsl}/bloom/gaussblur.vert.spv | Bin .../{ => glsl}/bloom/generate-spirv.bat | 0 data/shaders/{ => glsl}/bloom/phongpass.frag | 0 .../{ => glsl}/bloom/phongpass.frag.spv | Bin data/shaders/{ => glsl}/bloom/phongpass.vert | 0 .../{ => glsl}/bloom/phongpass.vert.spv | Bin data/shaders/{ => glsl}/bloom/skybox.frag | 0 data/shaders/{ => glsl}/bloom/skybox.frag.spv | Bin data/shaders/{ => glsl}/bloom/skybox.vert | 0 data/shaders/{ => glsl}/bloom/skybox.vert.spv | Bin data/shaders/{ => glsl}/compileshaders.py | 0 .../{ => glsl}/computecloth/cloth.comp | 0 .../{ => glsl}/computecloth/cloth.comp.spv | Bin .../{ => glsl}/computecloth/cloth.frag | 0 .../{ => glsl}/computecloth/cloth.frag.spv | Bin .../{ => glsl}/computecloth/cloth.vert | 0 .../{ => glsl}/computecloth/cloth.vert.spv | Bin .../{ => glsl}/computecloth/sphere.frag | 0 .../{ => glsl}/computecloth/sphere.frag.spv | Bin .../{ => glsl}/computecloth/sphere.vert | 0 .../{ => glsl}/computecloth/sphere.vert.spv | Bin .../{ => glsl}/computecullandlod/cull.comp | 0 .../computecullandlod/cull.comp.spv | Bin .../computecullandlod/indirectdraw.frag | 0 .../computecullandlod/indirectdraw.frag.spv | Bin .../computecullandlod/indirectdraw.vert | 0 .../computecullandlod/indirectdraw.vert.spv | Bin .../{ => glsl}/computeheadless/headless.comp | 0 .../computeheadless/headless.comp.spv | Bin .../{ => glsl}/computenbody/particle.frag | 0 .../{ => glsl}/computenbody/particle.frag.spv | Bin .../{ => glsl}/computenbody/particle.vert | 0 .../{ => glsl}/computenbody/particle.vert.spv | Bin .../computenbody/particle_calculate.comp | 0 .../computenbody/particle_calculate.comp.spv | Bin .../computenbody/particle_integrate.comp | 0 .../computenbody/particle_integrate.comp.spv | Bin .../computeparticles/generate-spirv.bat | 0 .../{ => glsl}/computeparticles/particle.comp | 0 .../computeparticles/particle.comp.spv | Bin .../{ => glsl}/computeparticles/particle.frag | 0 .../computeparticles/particle.frag.spv | Bin .../{ => glsl}/computeparticles/particle.vert | 0 .../computeparticles/particle.vert.spv | Bin .../computeraytracing/generate-spirv.bat | 0 .../computeraytracing/raytracing.comp | 0 .../computeraytracing/raytracing.comp.spv | Bin .../{ => glsl}/computeraytracing/texture.frag | 0 .../computeraytracing/texture.frag.spv | Bin .../{ => glsl}/computeraytracing/texture.vert | 0 .../computeraytracing/texture.vert.spv | Bin .../{ => glsl}/computeshader/edgedetect.comp | 0 .../computeshader/edgedetect.comp.spv | Bin .../{ => glsl}/computeshader/emboss.comp | 0 .../{ => glsl}/computeshader/emboss.comp.spv | Bin .../computeshader/generate-spirv.bat | 0 .../{ => glsl}/computeshader/sharpen.comp | 0 .../{ => glsl}/computeshader/sharpen.comp.spv | Bin .../{ => glsl}/computeshader/texture.frag | 0 .../{ => glsl}/computeshader/texture.frag.spv | Bin .../{ => glsl}/computeshader/texture.vert | 0 .../{ => glsl}/computeshader/texture.vert.spv | Bin .../{ => glsl}/conditionalrender/model.frag | 0 .../conditionalrender/model.frag.spv | Bin .../{ => glsl}/conditionalrender/model.vert | 0 .../conditionalrender/model.vert.spv | Bin .../conservativeraster/fullscreen.frag | 0 .../conservativeraster/fullscreen.frag.spv | Bin .../conservativeraster/fullscreen.vert | 0 .../conservativeraster/fullscreen.vert.spv | Bin .../conservativeraster/triangle.frag | 0 .../conservativeraster/triangle.frag.spv | Bin .../conservativeraster/triangle.vert | 0 .../conservativeraster/triangle.vert.spv | Bin .../conservativeraster/triangleoverlay.frag | 0 .../triangleoverlay.frag.spv | Bin .../{ => glsl}/debugmarker/colorpass.frag | 0 .../{ => glsl}/debugmarker/colorpass.frag.spv | Bin .../{ => glsl}/debugmarker/colorpass.vert | 0 .../{ => glsl}/debugmarker/colorpass.vert.spv | Bin .../{ => glsl}/debugmarker/generate-spirv.bat | 0 .../{ => glsl}/debugmarker/postprocess.frag | 0 .../debugmarker/postprocess.frag.spv | Bin .../{ => glsl}/debugmarker/postprocess.vert | 0 .../debugmarker/postprocess.vert.spv | Bin data/shaders/{ => glsl}/debugmarker/toon.frag | 0 .../{ => glsl}/debugmarker/toon.frag.spv | Bin data/shaders/{ => glsl}/debugmarker/toon.vert | 0 .../{ => glsl}/debugmarker/toon.vert.spv | Bin data/shaders/{ => glsl}/deferred/debug.frag | 0 .../{ => glsl}/deferred/debug.frag.spv | Bin data/shaders/{ => glsl}/deferred/debug.vert | 0 .../{ => glsl}/deferred/debug.vert.spv | Bin .../shaders/{ => glsl}/deferred/deferred.frag | 0 .../{ => glsl}/deferred/deferred.frag.spv | Bin .../shaders/{ => glsl}/deferred/deferred.vert | 0 .../{ => glsl}/deferred/deferred.vert.spv | Bin .../{ => glsl}/deferred/generate-spirv.bat | 0 data/shaders/{ => glsl}/deferred/mrt.frag | 0 data/shaders/{ => glsl}/deferred/mrt.frag.spv | Bin data/shaders/{ => glsl}/deferred/mrt.vert | 0 data/shaders/{ => glsl}/deferred/mrt.vert.spv | Bin .../deferredmultisampling/debug.frag | 0 .../deferredmultisampling/debug.frag.spv | Bin .../deferredmultisampling/debug.vert | 0 .../deferredmultisampling/debug.vert.spv | Bin .../deferredmultisampling/deferred.frag | 0 .../deferredmultisampling/deferred.frag.spv | Bin .../deferredmultisampling/deferred.vert | 0 .../deferredmultisampling/deferred.vert.spv | Bin .../{ => glsl}/deferredmultisampling/mrt.frag | 0 .../deferredmultisampling/mrt.frag.spv | Bin .../{ => glsl}/deferredmultisampling/mrt.vert | 0 .../deferredmultisampling/mrt.vert.spv | Bin .../{ => glsl}/deferredshadows/debug.frag | 0 .../{ => glsl}/deferredshadows/debug.frag.spv | Bin .../{ => glsl}/deferredshadows/debug.vert | 0 .../{ => glsl}/deferredshadows/debug.vert.spv | Bin .../{ => glsl}/deferredshadows/deferred.frag | 0 .../deferredshadows/deferred.frag.spv | Bin .../{ => glsl}/deferredshadows/deferred.vert | 0 .../deferredshadows/deferred.vert.spv | Bin .../deferredshadows/generate-spirv.bat | 0 .../{ => glsl}/deferredshadows/geom.spv | Bin .../{ => glsl}/deferredshadows/mrt.frag | 0 .../{ => glsl}/deferredshadows/mrt.frag.spv | Bin .../{ => glsl}/deferredshadows/mrt.vert | 0 .../{ => glsl}/deferredshadows/mrt.vert.spv | Bin .../{ => glsl}/deferredshadows/shadow.geom | 0 .../deferredshadows/shadow.geom.spv | Bin .../{ => glsl}/deferredshadows/shadow.vert | 0 .../deferredshadows/shadow.vert.spv | Bin .../descriptorindexing.frag | 0 .../descriptorindexing.frag.spv | Bin .../descriptorindexing.vert | 0 .../descriptorindexing.vert.spv | Bin .../{ => glsl}/descriptorsets/cube.frag | 0 .../{ => glsl}/descriptorsets/cube.frag.spv | Bin .../{ => glsl}/descriptorsets/cube.vert | 0 .../{ => glsl}/descriptorsets/cube.vert.spv | Bin .../shaders/{ => glsl}/displacement/base.frag | 0 .../{ => glsl}/displacement/base.frag.spv | Bin .../shaders/{ => glsl}/displacement/base.vert | 0 .../{ => glsl}/displacement/base.vert.spv | Bin .../{ => glsl}/displacement/displacement.tesc | 0 .../displacement/displacement.tesc.spv | Bin .../{ => glsl}/displacement/displacement.tese | 0 .../displacement/displacement.tese.spv | Bin .../displacement/generate-spirv.bat | 0 .../{ => glsl}/distancefieldfonts/bitmap.frag | 0 .../distancefieldfonts/bitmap.frag.spv | Bin .../{ => glsl}/distancefieldfonts/bitmap.vert | 0 .../distancefieldfonts/bitmap.vert.spv | Bin .../distancefieldfonts/generate-spirv.bat | 0 .../{ => glsl}/distancefieldfonts/sdf.frag | 0 .../distancefieldfonts/sdf.frag.spv | Bin .../{ => glsl}/distancefieldfonts/sdf.vert | 0 .../distancefieldfonts/sdf.vert.spv | Bin .../{ => glsl}/dynamicuniformbuffer/base.frag | 0 .../dynamicuniformbuffer/base.frag.spv | Bin .../{ => glsl}/dynamicuniformbuffer/base.vert | 0 .../dynamicuniformbuffer/base.vert.spv | Bin data/shaders/{ => glsl}/gears/gears.frag | 0 data/shaders/{ => glsl}/gears/gears.frag.spv | Bin data/shaders/{ => glsl}/gears/gears.vert | 0 data/shaders/{ => glsl}/gears/gears.vert.spv | Bin .../{ => glsl}/geometryshader/base.frag | 0 .../{ => glsl}/geometryshader/base.frag.spv | Bin .../{ => glsl}/geometryshader/base.vert | 0 .../{ => glsl}/geometryshader/base.vert.spv | Bin .../geometryshader/generate-spirv.bat | 0 .../{ => glsl}/geometryshader/mesh.frag | 0 .../{ => glsl}/geometryshader/mesh.frag.spv | Bin .../{ => glsl}/geometryshader/mesh.vert | 0 .../{ => glsl}/geometryshader/mesh.vert.spv | Bin .../geometryshader/normaldebug.geom | 0 .../geometryshader/normaldebug.geom.spv | Bin data/shaders/{ => glsl}/gltfscene/mesh.frag | 0 .../{ => glsl}/gltfscene/mesh.frag.spv | Bin data/shaders/{ => glsl}/gltfscene/mesh.vert | 0 .../{ => glsl}/gltfscene/mesh.vert.spv | Bin data/shaders/{ => glsl}/hdr/bloom.frag | 0 data/shaders/{ => glsl}/hdr/bloom.frag.spv | Bin data/shaders/{ => glsl}/hdr/bloom.vert | 0 data/shaders/{ => glsl}/hdr/bloom.vert.spv | Bin data/shaders/{ => glsl}/hdr/composition.frag | 0 .../{ => glsl}/hdr/composition.frag.spv | Bin data/shaders/{ => glsl}/hdr/composition.vert | 0 .../{ => glsl}/hdr/composition.vert.spv | Bin data/shaders/{ => glsl}/hdr/gbuffer.frag | 0 data/shaders/{ => glsl}/hdr/gbuffer.frag.spv | Bin data/shaders/{ => glsl}/hdr/gbuffer.vert | 0 data/shaders/{ => glsl}/hdr/gbuffer.vert.spv | Bin data/shaders/{ => glsl}/imgui/scene.frag | 0 data/shaders/{ => glsl}/imgui/scene.frag.spv | Bin data/shaders/{ => glsl}/imgui/scene.vert | 0 data/shaders/{ => glsl}/imgui/scene.vert.spv | Bin data/shaders/{ => glsl}/imgui/ui.frag | 0 data/shaders/{ => glsl}/imgui/ui.frag.spv | Bin data/shaders/{ => glsl}/imgui/ui.vert | 0 data/shaders/{ => glsl}/imgui/ui.vert.spv | Bin .../indirectdraw/generate-spirv.bat | 0 .../{ => glsl}/indirectdraw/ground.frag | 0 .../{ => glsl}/indirectdraw/ground.frag.spv | Bin .../{ => glsl}/indirectdraw/ground.vert | 0 .../{ => glsl}/indirectdraw/ground.vert.spv | Bin .../{ => glsl}/indirectdraw/indirectdraw.frag | 0 .../indirectdraw/indirectdraw.frag.spv | Bin .../{ => glsl}/indirectdraw/indirectdraw.vert | 0 .../indirectdraw/indirectdraw.vert.spv | Bin .../{ => glsl}/indirectdraw/skysphere.frag | 0 .../indirectdraw/skysphere.frag.spv | Bin .../{ => glsl}/indirectdraw/skysphere.vert | 0 .../indirectdraw/skysphere.vert.spv | Bin .../{ => glsl}/inlineuniformblocks/pbr.frag | 0 .../inlineuniformblocks/pbr.frag.spv | Bin .../{ => glsl}/inlineuniformblocks/pbr.vert | 0 .../inlineuniformblocks/pbr.vert.spv | Bin .../inputattachments/attachmentread.frag | 0 .../inputattachments/attachmentread.frag.spv | Bin .../inputattachments/attachmentread.vert | 0 .../inputattachments/attachmentread.vert.spv | Bin .../inputattachments/attachmentwrite.frag | 0 .../inputattachments/attachmentwrite.frag.spv | Bin .../inputattachments/attachmentwrite.vert | 0 .../inputattachments/attachmentwrite.vert.spv | Bin .../{ => glsl}/instancing/generate-spirv.bat | 0 .../{ => glsl}/instancing/instancing.frag | 0 .../{ => glsl}/instancing/instancing.frag.spv | Bin .../{ => glsl}/instancing/instancing.vert | 0 .../{ => glsl}/instancing/instancing.vert.spv | Bin .../shaders/{ => glsl}/instancing/planet.frag | 0 .../{ => glsl}/instancing/planet.frag.spv | Bin .../shaders/{ => glsl}/instancing/planet.vert | 0 .../{ => glsl}/instancing/planet.vert.spv | Bin .../{ => glsl}/instancing/starfield.frag | 0 .../{ => glsl}/instancing/starfield.frag.spv | Bin .../{ => glsl}/instancing/starfield.vert | 0 .../{ => glsl}/instancing/starfield.vert.spv | Bin .../{ => glsl}/multisampling/mesh.frag | 0 .../{ => glsl}/multisampling/mesh.frag.spv | Bin .../{ => glsl}/multisampling/mesh.vert | 0 .../{ => glsl}/multisampling/mesh.vert.spv | Bin .../multithreading/generate-spirv.bat | 0 .../{ => glsl}/multithreading/phong.frag | 0 .../{ => glsl}/multithreading/phong.frag.spv | Bin .../{ => glsl}/multithreading/phong.vert | 0 .../{ => glsl}/multithreading/phong.vert.spv | Bin .../{ => glsl}/multithreading/starsphere.frag | 0 .../multithreading/starsphere.frag.spv | Bin .../{ => glsl}/multithreading/starsphere.vert | 0 .../multithreading/starsphere.vert.spv | Bin .../{ => glsl}/multiview/multiview.frag | 0 .../{ => glsl}/multiview/multiview.frag.spv | Bin .../{ => glsl}/multiview/multiview.vert | 0 .../{ => glsl}/multiview/multiview.vert.spv | Bin .../{ => glsl}/multiview/viewdisplay.frag | 0 .../{ => glsl}/multiview/viewdisplay.frag.spv | Bin .../{ => glsl}/multiview/viewdisplay.vert | 0 .../{ => glsl}/multiview/viewdisplay.vert.spv | Bin .../negativeviewportheight/quad.frag | 0 .../negativeviewportheight/quad.frag.spv | Bin .../negativeviewportheight/quad.vert | 0 .../negativeviewportheight/quad.vert.spv | Bin .../nv_ray_tracing_basic/closesthit.rchit | 0 .../nv_ray_tracing_basic/closesthit.rchit.spv | Bin .../nv_ray_tracing_basic/miss.rmiss | 0 .../nv_ray_tracing_basic/miss.rmiss.spv | Bin .../nv_ray_tracing_basic/raygen.rgen | 0 .../nv_ray_tracing_basic/raygen.rgen.spv | Bin .../closesthit.rchit | 0 .../closesthit.rchit.spv | Bin .../nv_ray_tracing_reflections/miss.rmiss | 0 .../nv_ray_tracing_reflections/miss.rmiss.spv | Bin .../nv_ray_tracing_reflections/raygen.rgen | 0 .../raygen.rgen.spv | Bin .../nv_ray_tracing_shadows/closesthit.rchit | 0 .../closesthit.rchit.spv | Bin .../nv_ray_tracing_shadows/miss.rmiss | 0 .../nv_ray_tracing_shadows/miss.rmiss.spv | Bin .../nv_ray_tracing_shadows/raygen.rgen | 0 .../nv_ray_tracing_shadows/raygen.rgen.spv | Bin .../nv_ray_tracing_shadows/shadow.rmiss | 0 .../nv_ray_tracing_shadows/shadow.rmiss.spv | Bin .../occlusionquery/generate-spirv.bat | 0 .../{ => glsl}/occlusionquery/mesh.frag | 0 .../{ => glsl}/occlusionquery/mesh.frag.spv | Bin .../{ => glsl}/occlusionquery/mesh.vert | 0 .../{ => glsl}/occlusionquery/mesh.vert.spv | Bin .../{ => glsl}/occlusionquery/occluder.frag | 0 .../occlusionquery/occluder.frag.spv | Bin .../{ => glsl}/occlusionquery/occluder.vert | 0 .../occlusionquery/occluder.vert.spv | Bin .../{ => glsl}/occlusionquery/simple.frag | 0 .../{ => glsl}/occlusionquery/simple.frag.spv | Bin .../{ => glsl}/occlusionquery/simple.vert | 0 .../{ => glsl}/occlusionquery/simple.vert.spv | Bin .../{ => glsl}/offscreen/generate-spirv.bat | 0 data/shaders/{ => glsl}/offscreen/mirror.frag | 0 .../{ => glsl}/offscreen/mirror.frag.spv | Bin data/shaders/{ => glsl}/offscreen/mirror.vert | 0 .../{ => glsl}/offscreen/mirror.vert.spv | Bin data/shaders/{ => glsl}/offscreen/phong.frag | 0 .../{ => glsl}/offscreen/phong.frag.spv | Bin data/shaders/{ => glsl}/offscreen/phong.vert | 0 .../{ => glsl}/offscreen/phong.vert.spv | Bin data/shaders/{ => glsl}/offscreen/quad.frag | 0 .../{ => glsl}/offscreen/quad.frag.spv | Bin data/shaders/{ => glsl}/offscreen/quad.vert | 0 .../{ => glsl}/offscreen/quad.vert.spv | Bin .../{ => glsl}/parallaxmapping/parallax.frag | 0 .../parallaxmapping/parallax.frag.spv | Bin .../{ => glsl}/parallaxmapping/parallax.vert | 0 .../parallaxmapping/parallax.vert.spv | Bin .../particlefire/generate-spirv.bat | 0 .../{ => glsl}/particlefire/normalmap.frag | 0 .../particlefire/normalmap.frag.spv | Bin .../{ => glsl}/particlefire/normalmap.vert | 0 .../particlefire/normalmap.vert.spv | Bin .../{ => glsl}/particlefire/particle.frag | 0 .../{ => glsl}/particlefire/particle.frag.spv | Bin .../{ => glsl}/particlefire/particle.vert | 0 .../{ => glsl}/particlefire/particle.vert.spv | Bin data/shaders/{ => glsl}/pbrbasic/pbr.frag | 0 data/shaders/{ => glsl}/pbrbasic/pbr.frag.spv | Bin data/shaders/{ => glsl}/pbrbasic/pbr.vert | 0 data/shaders/{ => glsl}/pbrbasic/pbr.vert.spv | Bin .../shaders/{ => glsl}/pbribl/filtercube.vert | 0 .../{ => glsl}/pbribl/filtercube.vert.spv | Bin .../shaders/{ => glsl}/pbribl/genbrdflut.frag | 0 .../{ => glsl}/pbribl/genbrdflut.frag.spv | Bin .../shaders/{ => glsl}/pbribl/genbrdflut.vert | 0 .../{ => glsl}/pbribl/genbrdflut.vert.spv | Bin .../{ => glsl}/pbribl/irradiancecube.frag | 0 .../{ => glsl}/pbribl/irradiancecube.frag.spv | Bin data/shaders/{ => glsl}/pbribl/pbribl.frag | 0 .../shaders/{ => glsl}/pbribl/pbribl.frag.spv | Bin data/shaders/{ => glsl}/pbribl/pbribl.vert | 0 .../shaders/{ => glsl}/pbribl/pbribl.vert.spv | Bin .../{ => glsl}/pbribl/prefilterenvmap.frag | 0 .../pbribl/prefilterenvmap.frag.spv | Bin data/shaders/{ => glsl}/pbribl/skybox.frag | 0 .../shaders/{ => glsl}/pbribl/skybox.frag.spv | Bin data/shaders/{ => glsl}/pbribl/skybox.vert | 0 .../shaders/{ => glsl}/pbribl/skybox.vert.spv | Bin .../{ => glsl}/pbrtexture/filtercube.vert | 0 .../{ => glsl}/pbrtexture/filtercube.vert.spv | Bin .../{ => glsl}/pbrtexture/genbrdflut.frag | 0 .../{ => glsl}/pbrtexture/genbrdflut.frag.spv | Bin .../{ => glsl}/pbrtexture/genbrdflut.vert | 0 .../{ => glsl}/pbrtexture/genbrdflut.vert.spv | Bin .../{ => glsl}/pbrtexture/irradiancecube.frag | 0 .../pbrtexture/irradiancecube.frag.spv | Bin .../{ => glsl}/pbrtexture/pbrtexture.frag | 0 .../{ => glsl}/pbrtexture/pbrtexture.frag.spv | Bin .../{ => glsl}/pbrtexture/pbrtexture.vert | 0 .../{ => glsl}/pbrtexture/pbrtexture.vert.spv | Bin .../pbrtexture/prefilterenvmap.frag | 0 .../pbrtexture/prefilterenvmap.frag.spv | Bin .../shaders/{ => glsl}/pbrtexture/skybox.frag | 0 .../{ => glsl}/pbrtexture/skybox.frag.spv | Bin .../shaders/{ => glsl}/pbrtexture/skybox.vert | 0 .../{ => glsl}/pbrtexture/skybox.vert.spv | Bin .../{ => glsl}/pipelines/generate-spriv.bat | 0 data/shaders/{ => glsl}/pipelines/phong.frag | 0 .../{ => glsl}/pipelines/phong.frag.spv | Bin data/shaders/{ => glsl}/pipelines/phong.vert | 0 .../{ => glsl}/pipelines/phong.vert.spv | Bin data/shaders/{ => glsl}/pipelines/toon.frag | 0 .../{ => glsl}/pipelines/toon.frag.spv | Bin data/shaders/{ => glsl}/pipelines/toon.vert | 0 .../{ => glsl}/pipelines/toon.vert.spv | Bin .../{ => glsl}/pipelines/wireframe.frag | 0 .../{ => glsl}/pipelines/wireframe.frag.spv | Bin .../{ => glsl}/pipelines/wireframe.vert | 0 .../{ => glsl}/pipelines/wireframe.vert.spv | Bin .../{ => glsl}/pipelinestatistics/scene.frag | 0 .../pipelinestatistics/scene.frag.spv | Bin .../{ => glsl}/pipelinestatistics/scene.tesc | 0 .../pipelinestatistics/scene.tesc.spv | Bin .../{ => glsl}/pipelinestatistics/scene.tese | 0 .../pipelinestatistics/scene.tese.spv | Bin .../{ => glsl}/pipelinestatistics/scene.vert | 0 .../pipelinestatistics/scene.vert.spv | Bin .../pushconstants/generate-spirv.bat | 0 .../{ => glsl}/pushconstants/lights.frag | 0 .../{ => glsl}/pushconstants/lights.frag.spv | Bin .../{ => glsl}/pushconstants/lights.vert | 0 .../{ => glsl}/pushconstants/lights.vert.spv | Bin .../{ => glsl}/pushdescriptors/cube.frag | 0 .../{ => glsl}/pushdescriptors/cube.frag.spv | Bin .../{ => glsl}/pushdescriptors/cube.vert | 0 .../{ => glsl}/pushdescriptors/cube.vert.spv | Bin .../{ => glsl}/radialblur/colorpass.frag | 0 .../{ => glsl}/radialblur/colorpass.frag.spv | Bin .../{ => glsl}/radialblur/colorpass.vert | 0 .../{ => glsl}/radialblur/colorpass.vert.spv | Bin .../{ => glsl}/radialblur/generate-spirv.bat | 0 .../{ => glsl}/radialblur/phongpass.frag | 0 .../{ => glsl}/radialblur/phongpass.frag.spv | Bin .../{ => glsl}/radialblur/phongpass.vert | 0 .../{ => glsl}/radialblur/phongpass.vert.spv | Bin .../{ => glsl}/radialblur/radialblur.frag | 0 .../{ => glsl}/radialblur/radialblur.frag.spv | Bin .../{ => glsl}/radialblur/radialblur.vert | 0 .../{ => glsl}/radialblur/radialblur.vert.spv | Bin .../{ => glsl}/renderheadless/triangle.frag | 0 .../renderheadless/triangle.frag.spv | Bin .../{ => glsl}/renderheadless/triangle.vert | 0 .../renderheadless/triangle.vert.spv | Bin .../scenerendering/generate-spirv.bat | 0 .../{ => glsl}/scenerendering/scene.frag | 0 .../{ => glsl}/scenerendering/scene.frag.spv | Bin .../{ => glsl}/scenerendering/scene.vert | 0 .../{ => glsl}/scenerendering/scene.vert.spv | Bin data/shaders/{ => glsl}/screenshot/mesh.frag | 0 .../{ => glsl}/screenshot/mesh.frag.spv | Bin data/shaders/{ => glsl}/screenshot/mesh.vert | 0 .../{ => glsl}/screenshot/mesh.vert.spv | Bin .../shadowmapomni/cubemapdisplay.frag | 0 .../shadowmapomni/cubemapdisplay.frag.spv | Bin .../shadowmapomni/cubemapdisplay.vert | 0 .../shadowmapomni/cubemapdisplay.vert.spv | Bin .../shadowmapomni/generate-spirv.bat | 0 .../{ => glsl}/shadowmapomni/offscreen.frag | 0 .../shadowmapomni/offscreen.frag.spv | Bin .../{ => glsl}/shadowmapomni/offscreen.vert | 0 .../shadowmapomni/offscreen.vert.spv | Bin .../{ => glsl}/shadowmapomni/scene.frag | 0 .../{ => glsl}/shadowmapomni/scene.frag.spv | Bin .../{ => glsl}/shadowmapomni/scene.vert | 0 .../{ => glsl}/shadowmapomni/scene.vert.spv | Bin .../shadowmapping/generate-spirv.bat | 0 .../{ => glsl}/shadowmapping/offscreen.frag | 0 .../shadowmapping/offscreen.frag.spv | Bin .../{ => glsl}/shadowmapping/offscreen.vert | 0 .../shadowmapping/offscreen.vert.spv | Bin .../{ => glsl}/shadowmapping/quad.frag | 0 .../{ => glsl}/shadowmapping/quad.frag.spv | Bin .../{ => glsl}/shadowmapping/quad.vert | 0 .../{ => glsl}/shadowmapping/quad.vert.spv | Bin .../{ => glsl}/shadowmapping/scene.frag | 0 .../{ => glsl}/shadowmapping/scene.frag.spv | Bin .../{ => glsl}/shadowmapping/scene.vert | 0 .../{ => glsl}/shadowmapping/scene.vert.spv | Bin .../shadowmappingcascade/debugshadowmap.frag | 0 .../debugshadowmap.frag.spv | Bin .../shadowmappingcascade/debugshadowmap.vert | 0 .../debugshadowmap.vert.spv | Bin .../shadowmappingcascade/depthpass.frag | 0 .../shadowmappingcascade/depthpass.frag.spv | Bin .../shadowmappingcascade/depthpass.vert | 0 .../shadowmappingcascade/depthpass.vert.spv | Bin .../shadowmappingcascade/scene.frag | 0 .../shadowmappingcascade/scene.frag.spv | Bin .../shadowmappingcascade/scene.vert | 0 .../shadowmappingcascade/scene.vert.spv | Bin .../{ => glsl}/skeletalanimation/mesh.frag | 0 .../skeletalanimation/mesh.frag.spv | Bin .../{ => glsl}/skeletalanimation/mesh.vert | 0 .../skeletalanimation/mesh.vert.spv | Bin .../{ => glsl}/skeletalanimation/texture.frag | 0 .../skeletalanimation/texture.frag.spv | Bin .../{ => glsl}/skeletalanimation/texture.vert | 0 .../skeletalanimation/texture.vert.spv | Bin .../specializationconstants/uber.frag | 0 .../specializationconstants/uber.frag.spv | Bin .../specializationconstants/uber.vert | 0 .../specializationconstants/uber.vert.spv | Bin .../sphericalenvmapping/generate-spirv.bat | 0 .../{ => glsl}/sphericalenvmapping/sem.frag | 0 .../sphericalenvmapping/sem.frag.spv | Bin .../{ => glsl}/sphericalenvmapping/sem.vert | 0 .../sphericalenvmapping/sem.vert.spv | Bin data/shaders/{ => glsl}/ssao/blur.frag | 0 data/shaders/{ => glsl}/ssao/blur.frag.spv | Bin data/shaders/{ => glsl}/ssao/composition.frag | 0 .../{ => glsl}/ssao/composition.frag.spv | Bin data/shaders/{ => glsl}/ssao/fullscreen.vert | 0 .../{ => glsl}/ssao/fullscreen.vert.spv | Bin data/shaders/{ => glsl}/ssao/gbuffer.frag | 0 data/shaders/{ => glsl}/ssao/gbuffer.frag.spv | Bin data/shaders/{ => glsl}/ssao/gbuffer.vert | 0 data/shaders/{ => glsl}/ssao/gbuffer.vert.spv | Bin data/shaders/{ => glsl}/ssao/ssao.frag | 0 data/shaders/{ => glsl}/ssao/ssao.frag.spv | Bin .../{ => glsl}/stencilbuffer/outline.frag | 0 .../{ => glsl}/stencilbuffer/outline.frag.spv | Bin .../{ => glsl}/stencilbuffer/outline.vert | 0 .../{ => glsl}/stencilbuffer/outline.vert.spv | Bin .../{ => glsl}/stencilbuffer/toon.frag | 0 .../{ => glsl}/stencilbuffer/toon.frag.spv | Bin .../{ => glsl}/stencilbuffer/toon.vert | 0 .../{ => glsl}/stencilbuffer/toon.vert.spv | Bin .../{ => glsl}/subpasses/composition.frag | 0 .../{ => glsl}/subpasses/composition.frag.spv | Bin .../{ => glsl}/subpasses/composition.vert | 0 .../{ => glsl}/subpasses/composition.vert.spv | Bin .../shaders/{ => glsl}/subpasses/gbuffer.frag | 0 .../{ => glsl}/subpasses/gbuffer.frag.spv | Bin .../shaders/{ => glsl}/subpasses/gbuffer.vert | 0 .../{ => glsl}/subpasses/gbuffer.vert.spv | Bin .../{ => glsl}/subpasses/transparent.frag | 0 .../{ => glsl}/subpasses/transparent.frag.spv | Bin .../{ => glsl}/subpasses/transparent.vert | 0 .../{ => glsl}/subpasses/transparent.vert.spv | Bin .../terraintessellation/generate-spirv.bat | 0 .../terraintessellation/skysphere.frag | 0 .../terraintessellation/skysphere.frag.spv | Bin .../terraintessellation/skysphere.vert | 0 .../terraintessellation/skysphere.vert.spv | Bin .../terraintessellation/terrain.frag | 0 .../terraintessellation/terrain.frag.spv | Bin .../terraintessellation/terrain.tesc | 0 .../terraintessellation/terrain.tesc.spv | Bin .../terraintessellation/terrain.tese | 0 .../terraintessellation/terrain.tese.spv | Bin .../terraintessellation/terrain.vert | 0 .../terraintessellation/terrain.vert.spv | Bin .../shaders/{ => glsl}/tessellation/base.frag | 0 .../{ => glsl}/tessellation/base.frag.spv | Bin .../shaders/{ => glsl}/tessellation/base.vert | 0 .../{ => glsl}/tessellation/base.vert.spv | Bin .../tessellation/generate-spriv.bat | 0 .../{ => glsl}/tessellation/passthrough.tesc | 0 .../tessellation/passthrough.tesc.spv | Bin .../{ => glsl}/tessellation/passthrough.tese | 0 .../tessellation/passthrough.tese.spv | Bin .../{ => glsl}/tessellation/pntriangles.tesc | 0 .../tessellation/pntriangles.tesc.spv | Bin .../{ => glsl}/tessellation/pntriangles.tese | 0 .../tessellation/pntriangles.tese.spv | Bin data/shaders/{ => glsl}/textoverlay/mesh.frag | 0 .../{ => glsl}/textoverlay/mesh.frag.spv | Bin data/shaders/{ => glsl}/textoverlay/mesh.vert | 0 .../{ => glsl}/textoverlay/mesh.vert.spv | Bin data/shaders/{ => glsl}/textoverlay/text.frag | 0 .../{ => glsl}/textoverlay/text.frag.spv | Bin data/shaders/{ => glsl}/textoverlay/text.vert | 0 .../{ => glsl}/textoverlay/text.vert.spv | Bin .../{ => glsl}/texture/generate-spirv.bat | 0 data/shaders/{ => glsl}/texture/texture.frag | 0 .../{ => glsl}/texture/texture.frag.spv | Bin data/shaders/{ => glsl}/texture/texture.vert | 0 .../{ => glsl}/texture/texture.vert.spv | Bin .../{ => glsl}/texture3d/texture3d.frag | 0 .../{ => glsl}/texture3d/texture3d.frag.spv | Bin .../{ => glsl}/texture3d/texture3d.vert | 0 .../{ => glsl}/texture3d/texture3d.vert.spv | Bin .../texturearray/generate-spirv.bat | 0 .../{ => glsl}/texturearray/instancing.frag | 0 .../texturearray/instancing.frag.spv | Bin .../{ => glsl}/texturearray/instancing.vert | 0 .../texturearray/instancing.vert.spv | Bin .../{ => glsl}/texturecubemap/reflect.frag | 0 .../texturecubemap/reflect.frag.spv | Bin .../{ => glsl}/texturecubemap/reflect.vert | 0 .../texturecubemap/reflect.vert.spv | Bin .../{ => glsl}/texturecubemap/skybox.frag | 0 .../{ => glsl}/texturecubemap/skybox.frag.spv | Bin .../{ => glsl}/texturecubemap/skybox.vert | 0 .../{ => glsl}/texturecubemap/skybox.vert.spv | Bin .../{ => glsl}/texturemipmapgen/texture.frag | 0 .../texturemipmapgen/texture.frag.spv | Bin .../{ => glsl}/texturemipmapgen/texture.vert | 0 .../texturemipmapgen/texture.vert.spv | Bin .../sparseresidency.frag | 0 .../sparseresidency.frag.spv | Bin .../sparseresidency.vert | 0 .../sparseresidency.vert.spv | Bin .../shaders/{ => glsl}/triangle/triangle.frag | 0 .../{ => glsl}/triangle/triangle.frag.spv | Bin .../shaders/{ => glsl}/triangle/triangle.vert | 0 .../{ => glsl}/triangle/triangle.vert.spv | Bin .../{ => glsl}/viewportarray/multiview.geom | 0 .../viewportarray/multiview.geom.spv | Bin .../{ => glsl}/viewportarray/scene.frag | 0 .../{ => glsl}/viewportarray/scene.frag.spv | Bin .../{ => glsl}/viewportarray/scene.vert | 0 .../{ => glsl}/viewportarray/scene.vert.spv | Bin .../{ => glsl}/vulkanscene/generate-spriv.bat | 0 data/shaders/{ => glsl}/vulkanscene/logo.frag | 0 .../{ => glsl}/vulkanscene/logo.frag.spv | Bin data/shaders/{ => glsl}/vulkanscene/logo.vert | 0 .../{ => glsl}/vulkanscene/logo.vert.spv | Bin data/shaders/{ => glsl}/vulkanscene/mesh.frag | 0 .../{ => glsl}/vulkanscene/mesh.frag.spv | Bin data/shaders/{ => glsl}/vulkanscene/mesh.vert | 0 .../{ => glsl}/vulkanscene/mesh.vert.spv | Bin .../{ => glsl}/vulkanscene/skybox.frag | 0 .../{ => glsl}/vulkanscene/skybox.frag.spv | Bin .../{ => glsl}/vulkanscene/skybox.vert | 0 .../{ => glsl}/vulkanscene/skybox.vert.spv | Bin data/{ => shaders}/hlsl/README.md | 2 +- data/{ => shaders}/hlsl/base/textoverlay.frag | 0 data/{ => shaders}/hlsl/base/textoverlay.vert | 0 data/{ => shaders}/hlsl/base/uioverlay.frag | 0 data/{ => shaders}/hlsl/base/uioverlay.vert | 0 data/{ => shaders}/hlsl/bloom/colorpass.frag | 0 data/{ => shaders}/hlsl/bloom/colorpass.vert | 0 data/{ => shaders}/hlsl/bloom/gaussblur.frag | 0 data/{ => shaders}/hlsl/bloom/gaussblur.vert | 0 data/{ => shaders}/hlsl/bloom/phongpass.frag | 0 data/{ => shaders}/hlsl/bloom/phongpass.vert | 0 data/{ => shaders}/hlsl/bloom/skybox.frag | 0 data/{ => shaders}/hlsl/bloom/skybox.vert | 0 data/{ => shaders}/hlsl/compile.py | 2 +- .../hlsl/computecloth/cloth.comp | 0 .../hlsl/computecloth/cloth.frag | 0 .../hlsl/computecloth/cloth.vert | 0 .../hlsl/computecloth/sphere.frag | 0 .../hlsl/computecloth/sphere.vert | 0 .../hlsl/computecullandlod/cull.comp | 0 .../hlsl/computecullandlod/indirectdraw.frag | 0 .../hlsl/computecullandlod/indirectdraw.vert | 0 .../hlsl/computeheadless/headless.comp | 0 .../hlsl/computenbody/particle.frag | 0 .../hlsl/computenbody/particle.vert | 0 .../hlsl/computenbody/particle_calculate.comp | 0 .../hlsl/computenbody/particle_integrate.comp | 0 .../hlsl/computeparticles/particle.comp | 0 .../hlsl/computeparticles/particle.frag | 0 .../hlsl/computeparticles/particle.vert | 0 .../hlsl/computeraytracing/raytracing.comp | 0 .../hlsl/computeraytracing/texture.frag | 0 .../hlsl/computeraytracing/texture.vert | 0 .../hlsl/computeshader/edgedetect.comp | 0 .../hlsl/computeshader/emboss.comp | 0 .../hlsl/computeshader/sharpen.comp | 0 .../hlsl/computeshader/texture.frag | 0 .../hlsl/computeshader/texture.vert | 0 .../hlsl/conditionalrender/model.frag | 0 .../hlsl/conditionalrender/model.vert | 0 .../hlsl/conservativeraster/fullscreen.frag | 0 .../hlsl/conservativeraster/fullscreen.vert | 0 .../hlsl/conservativeraster/triangle.frag | 0 .../hlsl/conservativeraster/triangle.vert | 0 .../conservativeraster/triangleoverlay.frag | 0 .../hlsl/debugmarker/colorpass.frag | 0 .../hlsl/debugmarker/colorpass.vert | 0 .../hlsl/debugmarker/postprocess.frag | 0 .../hlsl/debugmarker/postprocess.vert | 0 data/{ => shaders}/hlsl/debugmarker/toon.frag | 0 data/{ => shaders}/hlsl/debugmarker/toon.vert | 0 data/{ => shaders}/hlsl/deferred/debug.frag | 0 data/{ => shaders}/hlsl/deferred/debug.vert | 0 .../{ => shaders}/hlsl/deferred/deferred.frag | 0 .../{ => shaders}/hlsl/deferred/deferred.vert | 0 data/{ => shaders}/hlsl/deferred/mrt.frag | 0 data/{ => shaders}/hlsl/deferred/mrt.vert | 0 .../hlsl/deferredmultisampling/debug.frag | 0 .../hlsl/deferredmultisampling/debug.vert | 0 .../hlsl/deferredmultisampling/deferred.frag | 0 .../hlsl/deferredmultisampling/deferred.vert | 0 .../hlsl/deferredmultisampling/mrt.frag | 0 .../hlsl/deferredmultisampling/mrt.vert | 0 .../hlsl/deferredshadows/debug.frag | 0 .../hlsl/deferredshadows/debug.vert | 0 .../hlsl/deferredshadows/deferred.frag | 0 .../hlsl/deferredshadows/deferred.vert | 0 .../hlsl/deferredshadows/mrt.frag | 0 .../hlsl/deferredshadows/mrt.vert | 0 .../hlsl/deferredshadows/shadow.geom | 0 .../hlsl/deferredshadows/shadow.vert | 0 .../hlsl/descriptorsets/cube.frag | 0 .../hlsl/descriptorsets/cube.vert | 0 .../{ => shaders}/hlsl/displacement/base.frag | 0 .../{ => shaders}/hlsl/displacement/base.vert | 0 .../hlsl/displacement/displacement.tesc | 0 .../hlsl/displacement/displacement.tese | 0 .../hlsl/distancefieldfonts/bitmap.frag | 0 .../hlsl/distancefieldfonts/bitmap.vert | 0 .../hlsl/distancefieldfonts/sdf.frag | 0 .../hlsl/distancefieldfonts/sdf.vert | 0 .../hlsl/dynamicuniformbuffer/base.frag | 0 .../hlsl/dynamicuniformbuffer/base.vert | 0 data/{ => shaders}/hlsl/gears/gears.frag | 0 data/{ => shaders}/hlsl/gears/gears.vert | 0 .../hlsl/geometryshader/base.frag | 0 .../hlsl/geometryshader/base.vert | 0 .../hlsl/geometryshader/mesh.frag | 0 .../hlsl/geometryshader/mesh.vert | 0 .../hlsl/geometryshader/normaldebug.geom | 0 data/{ => shaders}/hlsl/gltfscene/mesh.frag | 0 data/{ => shaders}/hlsl/gltfscene/mesh.vert | 0 data/{ => shaders}/hlsl/hdr/bloom.frag | 0 data/{ => shaders}/hlsl/hdr/bloom.vert | 0 data/{ => shaders}/hlsl/hdr/composition.frag | 0 data/{ => shaders}/hlsl/hdr/composition.vert | 0 data/{ => shaders}/hlsl/hdr/gbuffer.frag | 0 data/{ => shaders}/hlsl/hdr/gbuffer.vert | 0 data/{ => shaders}/hlsl/imgui/scene.frag | 0 data/{ => shaders}/hlsl/imgui/scene.vert | 0 data/{ => shaders}/hlsl/imgui/ui.frag | 0 data/{ => shaders}/hlsl/imgui/ui.vert | 0 .../hlsl/indirectdraw/ground.frag | 0 .../hlsl/indirectdraw/ground.vert | 0 .../hlsl/indirectdraw/indirectdraw.frag | 0 .../hlsl/indirectdraw/indirectdraw.vert | 0 .../hlsl/indirectdraw/skysphere.frag | 0 .../hlsl/indirectdraw/skysphere.vert | 0 .../hlsl/inlineuniformblocks/pbr.frag | 0 .../hlsl/inlineuniformblocks/pbr.vert | 0 .../hlsl/inputattachments/attachmentread.frag | 0 .../hlsl/inputattachments/attachmentread.vert | 0 .../inputattachments/attachmentwrite.frag | 0 .../inputattachments/attachmentwrite.vert | 0 .../hlsl/instancing/instancing.frag | 0 .../hlsl/instancing/instancing.vert | 0 .../{ => shaders}/hlsl/instancing/planet.frag | 0 .../{ => shaders}/hlsl/instancing/planet.vert | 0 .../hlsl/instancing/starfield.frag | 0 .../hlsl/instancing/starfield.vert | 0 data/{ => shaders}/hlsl/mesh/mesh.frag | 0 data/{ => shaders}/hlsl/mesh/mesh.vert | 0 .../hlsl/multisampling/scene.frag | 0 .../hlsl/multisampling/scene.vert | 0 .../hlsl/multithreading/phong.frag | 0 .../hlsl/multithreading/phong.vert | 0 .../hlsl/multithreading/starsphere.frag | 0 .../hlsl/multithreading/starsphere.vert | 0 .../hlsl/multiview/multiview.frag | 0 .../hlsl/multiview/multiview.vert | 0 .../hlsl/multiview/viewdisplay.frag | 0 .../hlsl/multiview/viewdisplay.vert | 0 .../hlsl/negativeviewportheight/quad.frag | 0 .../hlsl/negativeviewportheight/quad.vert | 0 .../nv_ray_tracing_basic/closesthit.rchit | 0 .../hlsl/nv_ray_tracing_basic/miss.rmiss | 0 .../hlsl/nv_ray_tracing_basic/raygen.rgen | 0 .../closesthit.rchit | 0 .../nv_ray_tracing_reflections/miss.rmiss | 0 .../nv_ray_tracing_reflections/raygen.rgen | 0 .../nv_ray_tracing_shadows/closesthit.rchit | 0 .../hlsl/nv_ray_tracing_shadows/miss.rmiss | 0 .../hlsl/nv_ray_tracing_shadows/raygen.rgen | 0 .../hlsl/nv_ray_tracing_shadows/shadow.rmiss | 0 .../hlsl/occlusionquery/mesh.frag | 0 .../hlsl/occlusionquery/mesh.vert | 0 .../hlsl/occlusionquery/occluder.frag | 0 .../hlsl/occlusionquery/occluder.vert | 0 .../hlsl/occlusionquery/simple.frag | 0 .../hlsl/occlusionquery/simple.vert | 0 data/{ => shaders}/hlsl/offscreen/mirror.frag | 0 data/{ => shaders}/hlsl/offscreen/mirror.vert | 0 data/{ => shaders}/hlsl/offscreen/phong.frag | 0 data/{ => shaders}/hlsl/offscreen/phong.vert | 0 data/{ => shaders}/hlsl/offscreen/quad.frag | 0 data/{ => shaders}/hlsl/offscreen/quad.vert | 0 .../hlsl/parallaxmapping/parallax.frag | 0 .../hlsl/parallaxmapping/parallax.vert | 0 .../hlsl/particlefire/normalmap.frag | 0 .../hlsl/particlefire/normalmap.vert | 0 .../hlsl/particlefire/particle.frag | 0 .../hlsl/particlefire/particle.vert | 0 data/{ => shaders}/hlsl/pbrbasic/pbr.frag | 0 data/{ => shaders}/hlsl/pbrbasic/pbr.vert | 0 .../{ => shaders}/hlsl/pbribl/filtercube.vert | 0 .../{ => shaders}/hlsl/pbribl/genbrdflut.frag | 0 .../{ => shaders}/hlsl/pbribl/genbrdflut.vert | 0 .../hlsl/pbribl/irradiancecube.frag | 0 data/{ => shaders}/hlsl/pbribl/pbribl.frag | 0 data/{ => shaders}/hlsl/pbribl/pbribl.vert | 0 .../hlsl/pbribl/prefilterenvmap.frag | 0 data/{ => shaders}/hlsl/pbribl/skybox.frag | 0 data/{ => shaders}/hlsl/pbribl/skybox.vert | 0 .../hlsl/pbrtexture/filtercube.vert | 0 .../hlsl/pbrtexture/genbrdflut.frag | 0 .../hlsl/pbrtexture/genbrdflut.vert | 0 .../hlsl/pbrtexture/irradiancecube.frag | 0 .../hlsl/pbrtexture/pbrtexture.frag | 0 .../hlsl/pbrtexture/pbrtexture.vert | 0 .../hlsl/pbrtexture/prefilterenvmap.frag | 0 .../{ => shaders}/hlsl/pbrtexture/skybox.frag | 0 .../{ => shaders}/hlsl/pbrtexture/skybox.vert | 0 data/{ => shaders}/hlsl/pipelines/phong.frag | 0 data/{ => shaders}/hlsl/pipelines/phong.vert | 0 data/{ => shaders}/hlsl/pipelines/toon.frag | 0 data/{ => shaders}/hlsl/pipelines/toon.vert | 0 .../hlsl/pipelines/wireframe.frag | 0 .../hlsl/pipelines/wireframe.vert | 0 .../hlsl/pipelinestatistics/scene.frag | 0 .../hlsl/pipelinestatistics/scene.tesc | 0 .../hlsl/pipelinestatistics/scene.tese | 0 .../hlsl/pipelinestatistics/scene.vert | 0 .../hlsl/pushconstants/lights.frag | 0 .../hlsl/pushconstants/lights.vert | 0 .../hlsl/pushdescriptors/cube.frag | 0 .../hlsl/pushdescriptors/cube.vert | 0 .../hlsl/radialblur/colorpass.frag | 0 .../hlsl/radialblur/colorpass.vert | 0 .../hlsl/radialblur/phongpass.frag | 0 .../hlsl/radialblur/phongpass.vert | 0 .../hlsl/radialblur/radialblur.frag | 0 .../hlsl/radialblur/radialblur.vert | 0 .../hlsl/renderheadless/triangle.frag | 0 .../hlsl/renderheadless/triangle.vert | 0 .../hlsl/scenerendering/scene.frag | 0 .../hlsl/scenerendering/scene.vert | 0 data/{ => shaders}/hlsl/screenshot/mesh.frag | 0 data/{ => shaders}/hlsl/screenshot/mesh.vert | 0 .../hlsl/shadowmapomni/cubemapdisplay.frag | 0 .../hlsl/shadowmapomni/cubemapdisplay.vert | 0 .../hlsl/shadowmapomni/offscreen.frag | 0 .../hlsl/shadowmapomni/offscreen.vert | 0 .../hlsl/shadowmapomni/scene.frag | 0 .../hlsl/shadowmapomni/scene.vert | 0 .../hlsl/shadowmapping/offscreen.frag | 0 .../hlsl/shadowmapping/offscreen.vert | 0 .../hlsl/shadowmapping/quad.frag | 0 .../hlsl/shadowmapping/quad.vert | 0 .../hlsl/shadowmapping/scene.frag | 0 .../hlsl/shadowmapping/scene.vert | 0 .../shadowmappingcascade/debugshadowmap.frag | 0 .../shadowmappingcascade/debugshadowmap.vert | 0 .../hlsl/shadowmappingcascade/depthpass.frag | 0 .../hlsl/shadowmappingcascade/depthpass.vert | 0 .../hlsl/shadowmappingcascade/scene.frag | 0 .../hlsl/shadowmappingcascade/scene.vert | 0 .../hlsl/skeletalanimation/mesh.frag | 0 .../hlsl/skeletalanimation/mesh.vert | 0 .../hlsl/skeletalanimation/texture.frag | 0 .../hlsl/skeletalanimation/texture.vert | 0 .../hlsl/specializationconstants/uber.frag | 0 .../hlsl/specializationconstants/uber.vert | 0 .../hlsl/sphericalenvmapping/sem.frag | 0 .../hlsl/sphericalenvmapping/sem.vert | 0 data/{ => shaders}/hlsl/ssao/blur.frag | 0 data/{ => shaders}/hlsl/ssao/composition.frag | 0 data/{ => shaders}/hlsl/ssao/fullscreen.vert | 0 data/{ => shaders}/hlsl/ssao/gbuffer.frag | 0 data/{ => shaders}/hlsl/ssao/gbuffer.vert | 0 data/{ => shaders}/hlsl/ssao/ssao.frag | 0 .../hlsl/stencilbuffer/outline.frag | 0 .../hlsl/stencilbuffer/outline.vert | 0 .../hlsl/stencilbuffer/toon.frag | 0 .../hlsl/stencilbuffer/toon.vert | 0 .../hlsl/subpasses/composition.frag | 0 .../hlsl/subpasses/composition.vert | 0 .../{ => shaders}/hlsl/subpasses/gbuffer.frag | 0 .../{ => shaders}/hlsl/subpasses/gbuffer.vert | 0 .../hlsl/subpasses/transparent.frag | 0 .../hlsl/subpasses/transparent.vert | 0 .../hlsl/terraintessellation/skysphere.frag | 0 .../hlsl/terraintessellation/skysphere.vert | 0 .../hlsl/terraintessellation/terrain.frag | 0 .../hlsl/terraintessellation/terrain.tesc | 0 .../hlsl/terraintessellation/terrain.tese | 0 .../hlsl/terraintessellation/terrain.vert | 0 .../{ => shaders}/hlsl/tessellation/base.frag | 0 .../{ => shaders}/hlsl/tessellation/base.vert | 0 .../hlsl/tessellation/passthrough.tesc | 0 .../hlsl/tessellation/passthrough.tese | 0 .../hlsl/tessellation/pntriangles.tesc | 0 .../hlsl/tessellation/pntriangles.tese | 0 data/{ => shaders}/hlsl/textoverlay/mesh.frag | 0 data/{ => shaders}/hlsl/textoverlay/mesh.vert | 0 data/{ => shaders}/hlsl/textoverlay/text.frag | 0 data/{ => shaders}/hlsl/textoverlay/text.vert | 0 data/{ => shaders}/hlsl/texture/texture.frag | 0 data/{ => shaders}/hlsl/texture/texture.vert | 0 .../hlsl/texture3d/texture3d.frag | 0 .../hlsl/texture3d/texture3d.vert | 0 .../hlsl/texturearray/instancing.frag | 0 .../hlsl/texturearray/instancing.vert | 0 .../hlsl/texturecubemap/reflect.frag | 0 .../hlsl/texturecubemap/reflect.vert | 0 .../hlsl/texturecubemap/skybox.frag | 0 .../hlsl/texturecubemap/skybox.vert | 0 .../hlsl/texturemipmapgen/texture.frag | 0 .../hlsl/texturemipmapgen/texture.vert | 0 .../sparseresidency.frag | 0 .../sparseresidency.vert | 0 .../{ => shaders}/hlsl/triangle/triangle.frag | 0 .../{ => shaders}/hlsl/triangle/triangle.vert | 0 .../hlsl/viewportarray/multiview.geom | 0 .../hlsl/viewportarray/scene.frag | 0 .../hlsl/viewportarray/scene.vert | 0 data/{ => shaders}/hlsl/vulkanscene/logo.frag | 0 data/{ => shaders}/hlsl/vulkanscene/logo.vert | 0 data/{ => shaders}/hlsl/vulkanscene/mesh.frag | 0 data/{ => shaders}/hlsl/vulkanscene/mesh.vert | 0 .../hlsl/vulkanscene/skybox.frag | 0 .../hlsl/vulkanscene/skybox.vert | 0 examples/CMakeLists.txt | 2 +- examples/bloom/bloom.cpp | 48 ++++++------ examples/commandbuffers/commandbuffers.cpp | 24 +++--- examples/computecloth/computecloth.cpp | 38 ++++----- .../computecullandlod/computecullandlod.cpp | 32 ++++---- examples/computeheadless/computeheadless.cpp | 28 +++---- examples/computenbody/computenbody.cpp | 24 +++--- .../computeparticles/computeparticles.cpp | 6 +- .../computeraytracing/computeraytracing.cpp | 16 ++-- examples/computeshader/computeshader.cpp | 24 +++--- .../conditionalrender/conditionalrender.cpp | 8 +- .../conservativeraster/conservativeraster.cpp | 36 ++++----- examples/debugmarker/debugmarker.cpp | 38 ++++----- examples/deferred/deferred.cpp | 50 ++++++------ .../deferredmultisampling.cpp | 48 ++++++------ examples/deferredshadows/deferredshadows.cpp | 36 ++++----- .../descriptorindexing/descriptorindexing.cpp | 24 +++--- examples/descriptorsets/descriptorsets.cpp | 20 ++--- examples/displacement/displacement.cpp | 18 ++--- .../distancefieldfonts/distancefieldfonts.cpp | 42 +++++----- .../dynamicuniformbuffer.cpp | 18 ++--- examples/gears/gears.cpp | 6 +- examples/geometryshader/geometryshader.cpp | 14 ++-- examples/gltfscene/gltfscene.cpp | 26 +++---- examples/hdr/hdr.cpp | 12 +-- examples/imgui/main.cpp | 24 +++--- examples/indirectdraw/indirectdraw.cpp | 34 ++++----- .../inlineuniformblocks.cpp | 8 +- .../inputattachments/inputattachments.cpp | 22 +++--- examples/instancing/instancing.cpp | 44 +++++------ examples/multisampling/multisampling.cpp | 28 +++---- examples/multithreading/multithreading.cpp | 28 +++---- examples/multiview/multiview.cpp | 26 +++---- .../negativeviewportheight.cpp | 16 ++-- .../nv_ray_tracing_basic.cpp | 8 +- .../nv_ray_tracing_reflections.cpp | 8 +- .../nv_ray_tracing_shadows.cpp | 12 +-- examples/occlusionquery/occlusionquery.cpp | 16 ++-- examples/offscreen/offscreen.cpp | 24 +++--- examples/parallaxmapping/parallaxmapping.cpp | 36 ++++----- examples/particlefire/particlefire.cpp | 16 ++-- examples/pbrbasic/pbrbasic.cpp | 8 +- examples/pbribl/pbribl.cpp | 42 +++++----- examples/pbrtexture/main.cpp | 40 +++++----- examples/pipelines/pipelines.cpp | 36 ++++----- .../pipelinestatistics/pipelinestatistics.cpp | 14 ++-- examples/pushconstants/pushconstants.cpp | 14 ++-- examples/pushdescriptors/pushdescriptors.cpp | 16 ++-- examples/radialblur/radialblur.cpp | 20 ++--- examples/renderheadless/renderheadless.cpp | 22 +++--- examples/scenerendering/scenerendering.cpp | 16 ++-- examples/screenshot/screenshot.cpp | 24 +++--- examples/shadowmapping/shadowmapping.cpp | 24 +++--- .../shadowmappingcascade.cpp | 22 +++--- .../shadowmappingomni/shadowmappingomni.cpp | 40 +++++----- .../skeletalanimation/skeletalanimation.cpp | 44 +++++------ .../specializationconstants.cpp | 18 ++--- .../sphericalenvmapping.cpp | 6 +- examples/ssao/ssao.cpp | 38 ++++----- examples/stencilbuffer/stencilbuffer.cpp | 16 ++-- examples/subpasses/subpasses.cpp | 50 ++++++------ .../terraintessellation.cpp | 38 ++++----- examples/tessellation/tessellation.cpp | 24 +++--- examples/textoverlay/textoverlay.cpp | 20 ++--- examples/texture/texture.cpp | 4 +- examples/texture3d/texture3d.cpp | 72 +++++++++--------- examples/texturearray/texturearray.cpp | 4 +- examples/texturecubemap/texturecubemap.cpp | 8 +- .../texturemipmapgen/texturemipmapgen.cpp | 20 ++--- .../texturesparseresidency.cpp | 64 ++++++++-------- examples/triangle/triangle.cpp | 32 ++++---- examples/viewportarray/viewportarray.cpp | 20 ++--- examples/vulkanscene/vulkanscene.cpp | 24 +++--- 1043 files changed, 1207 insertions(+), 1201 deletions(-) rename data/shaders/{ => glsl}/base/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/base/textoverlay.frag (100%) rename data/shaders/{ => glsl}/base/textoverlay.frag.spv (100%) rename data/shaders/{ => glsl}/base/textoverlay.vert (100%) rename data/shaders/{ => glsl}/base/textoverlay.vert.spv (100%) rename data/shaders/{ => glsl}/base/uioverlay.frag (100%) rename data/shaders/{ => glsl}/base/uioverlay.frag.spv (100%) rename data/shaders/{ => glsl}/base/uioverlay.vert (100%) rename data/shaders/{ => glsl}/base/uioverlay.vert.spv (100%) rename data/shaders/{ => glsl}/bloom/colorpass.frag (100%) rename data/shaders/{ => glsl}/bloom/colorpass.frag.spv (100%) rename data/shaders/{ => glsl}/bloom/colorpass.vert (100%) rename data/shaders/{ => glsl}/bloom/colorpass.vert.spv (100%) rename data/shaders/{ => glsl}/bloom/gaussblur.frag (100%) rename data/shaders/{ => glsl}/bloom/gaussblur.frag.spv (100%) rename data/shaders/{ => glsl}/bloom/gaussblur.vert (100%) rename data/shaders/{ => glsl}/bloom/gaussblur.vert.spv (100%) rename data/shaders/{ => glsl}/bloom/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/bloom/phongpass.frag (100%) rename data/shaders/{ => glsl}/bloom/phongpass.frag.spv (100%) rename data/shaders/{ => glsl}/bloom/phongpass.vert (100%) rename data/shaders/{ => glsl}/bloom/phongpass.vert.spv (100%) rename data/shaders/{ => glsl}/bloom/skybox.frag (100%) rename data/shaders/{ => glsl}/bloom/skybox.frag.spv (100%) rename data/shaders/{ => glsl}/bloom/skybox.vert (100%) rename data/shaders/{ => glsl}/bloom/skybox.vert.spv (100%) rename data/shaders/{ => glsl}/compileshaders.py (100%) rename data/shaders/{ => glsl}/computecloth/cloth.comp (100%) rename data/shaders/{ => glsl}/computecloth/cloth.comp.spv (100%) rename data/shaders/{ => glsl}/computecloth/cloth.frag (100%) rename data/shaders/{ => glsl}/computecloth/cloth.frag.spv (100%) rename data/shaders/{ => glsl}/computecloth/cloth.vert (100%) rename data/shaders/{ => glsl}/computecloth/cloth.vert.spv (100%) rename data/shaders/{ => glsl}/computecloth/sphere.frag (100%) rename data/shaders/{ => glsl}/computecloth/sphere.frag.spv (100%) rename data/shaders/{ => glsl}/computecloth/sphere.vert (100%) rename data/shaders/{ => glsl}/computecloth/sphere.vert.spv (100%) rename data/shaders/{ => glsl}/computecullandlod/cull.comp (100%) rename data/shaders/{ => glsl}/computecullandlod/cull.comp.spv (100%) rename data/shaders/{ => glsl}/computecullandlod/indirectdraw.frag (100%) rename data/shaders/{ => glsl}/computecullandlod/indirectdraw.frag.spv (100%) rename data/shaders/{ => glsl}/computecullandlod/indirectdraw.vert (100%) rename data/shaders/{ => glsl}/computecullandlod/indirectdraw.vert.spv (100%) rename data/shaders/{ => glsl}/computeheadless/headless.comp (100%) rename data/shaders/{ => glsl}/computeheadless/headless.comp.spv (100%) rename data/shaders/{ => glsl}/computenbody/particle.frag (100%) rename data/shaders/{ => glsl}/computenbody/particle.frag.spv (100%) rename data/shaders/{ => glsl}/computenbody/particle.vert (100%) rename data/shaders/{ => glsl}/computenbody/particle.vert.spv (100%) rename data/shaders/{ => glsl}/computenbody/particle_calculate.comp (100%) rename data/shaders/{ => glsl}/computenbody/particle_calculate.comp.spv (100%) rename data/shaders/{ => glsl}/computenbody/particle_integrate.comp (100%) rename data/shaders/{ => glsl}/computenbody/particle_integrate.comp.spv (100%) rename data/shaders/{ => glsl}/computeparticles/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/computeparticles/particle.comp (100%) rename data/shaders/{ => glsl}/computeparticles/particle.comp.spv (100%) rename data/shaders/{ => glsl}/computeparticles/particle.frag (100%) rename data/shaders/{ => glsl}/computeparticles/particle.frag.spv (100%) rename data/shaders/{ => glsl}/computeparticles/particle.vert (100%) rename data/shaders/{ => glsl}/computeparticles/particle.vert.spv (100%) rename data/shaders/{ => glsl}/computeraytracing/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/computeraytracing/raytracing.comp (100%) rename data/shaders/{ => glsl}/computeraytracing/raytracing.comp.spv (100%) rename data/shaders/{ => glsl}/computeraytracing/texture.frag (100%) rename data/shaders/{ => glsl}/computeraytracing/texture.frag.spv (100%) rename data/shaders/{ => glsl}/computeraytracing/texture.vert (100%) rename data/shaders/{ => glsl}/computeraytracing/texture.vert.spv (100%) rename data/shaders/{ => glsl}/computeshader/edgedetect.comp (100%) rename data/shaders/{ => glsl}/computeshader/edgedetect.comp.spv (100%) rename data/shaders/{ => glsl}/computeshader/emboss.comp (100%) rename data/shaders/{ => glsl}/computeshader/emboss.comp.spv (100%) rename data/shaders/{ => glsl}/computeshader/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/computeshader/sharpen.comp (100%) rename data/shaders/{ => glsl}/computeshader/sharpen.comp.spv (100%) rename data/shaders/{ => glsl}/computeshader/texture.frag (100%) rename data/shaders/{ => glsl}/computeshader/texture.frag.spv (100%) rename data/shaders/{ => glsl}/computeshader/texture.vert (100%) rename data/shaders/{ => glsl}/computeshader/texture.vert.spv (100%) rename data/shaders/{ => glsl}/conditionalrender/model.frag (100%) rename data/shaders/{ => glsl}/conditionalrender/model.frag.spv (100%) rename data/shaders/{ => glsl}/conditionalrender/model.vert (100%) rename data/shaders/{ => glsl}/conditionalrender/model.vert.spv (100%) rename data/shaders/{ => glsl}/conservativeraster/fullscreen.frag (100%) rename data/shaders/{ => glsl}/conservativeraster/fullscreen.frag.spv (100%) rename data/shaders/{ => glsl}/conservativeraster/fullscreen.vert (100%) rename data/shaders/{ => glsl}/conservativeraster/fullscreen.vert.spv (100%) rename data/shaders/{ => glsl}/conservativeraster/triangle.frag (100%) rename data/shaders/{ => glsl}/conservativeraster/triangle.frag.spv (100%) rename data/shaders/{ => glsl}/conservativeraster/triangle.vert (100%) rename data/shaders/{ => glsl}/conservativeraster/triangle.vert.spv (100%) rename data/shaders/{ => glsl}/conservativeraster/triangleoverlay.frag (100%) rename data/shaders/{ => glsl}/conservativeraster/triangleoverlay.frag.spv (100%) rename data/shaders/{ => glsl}/debugmarker/colorpass.frag (100%) rename data/shaders/{ => glsl}/debugmarker/colorpass.frag.spv (100%) rename data/shaders/{ => glsl}/debugmarker/colorpass.vert (100%) rename data/shaders/{ => glsl}/debugmarker/colorpass.vert.spv (100%) rename data/shaders/{ => glsl}/debugmarker/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/debugmarker/postprocess.frag (100%) rename data/shaders/{ => glsl}/debugmarker/postprocess.frag.spv (100%) rename data/shaders/{ => glsl}/debugmarker/postprocess.vert (100%) rename data/shaders/{ => glsl}/debugmarker/postprocess.vert.spv (100%) rename data/shaders/{ => glsl}/debugmarker/toon.frag (100%) rename data/shaders/{ => glsl}/debugmarker/toon.frag.spv (100%) rename data/shaders/{ => glsl}/debugmarker/toon.vert (100%) rename data/shaders/{ => glsl}/debugmarker/toon.vert.spv (100%) rename data/shaders/{ => glsl}/deferred/debug.frag (100%) rename data/shaders/{ => glsl}/deferred/debug.frag.spv (100%) rename data/shaders/{ => glsl}/deferred/debug.vert (100%) rename data/shaders/{ => glsl}/deferred/debug.vert.spv (100%) rename data/shaders/{ => glsl}/deferred/deferred.frag (100%) rename data/shaders/{ => glsl}/deferred/deferred.frag.spv (100%) rename data/shaders/{ => glsl}/deferred/deferred.vert (100%) rename data/shaders/{ => glsl}/deferred/deferred.vert.spv (100%) rename data/shaders/{ => glsl}/deferred/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/deferred/mrt.frag (100%) rename data/shaders/{ => glsl}/deferred/mrt.frag.spv (100%) rename data/shaders/{ => glsl}/deferred/mrt.vert (100%) rename data/shaders/{ => glsl}/deferred/mrt.vert.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/debug.frag (100%) rename data/shaders/{ => glsl}/deferredmultisampling/debug.frag.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/debug.vert (100%) rename data/shaders/{ => glsl}/deferredmultisampling/debug.vert.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/deferred.frag (100%) rename data/shaders/{ => glsl}/deferredmultisampling/deferred.frag.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/deferred.vert (100%) rename data/shaders/{ => glsl}/deferredmultisampling/deferred.vert.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/mrt.frag (100%) rename data/shaders/{ => glsl}/deferredmultisampling/mrt.frag.spv (100%) rename data/shaders/{ => glsl}/deferredmultisampling/mrt.vert (100%) rename data/shaders/{ => glsl}/deferredmultisampling/mrt.vert.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/debug.frag (100%) rename data/shaders/{ => glsl}/deferredshadows/debug.frag.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/debug.vert (100%) rename data/shaders/{ => glsl}/deferredshadows/debug.vert.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/deferred.frag (100%) rename data/shaders/{ => glsl}/deferredshadows/deferred.frag.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/deferred.vert (100%) rename data/shaders/{ => glsl}/deferredshadows/deferred.vert.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/deferredshadows/geom.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/mrt.frag (100%) rename data/shaders/{ => glsl}/deferredshadows/mrt.frag.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/mrt.vert (100%) rename data/shaders/{ => glsl}/deferredshadows/mrt.vert.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/shadow.geom (100%) rename data/shaders/{ => glsl}/deferredshadows/shadow.geom.spv (100%) rename data/shaders/{ => glsl}/deferredshadows/shadow.vert (100%) rename data/shaders/{ => glsl}/deferredshadows/shadow.vert.spv (100%) rename data/shaders/{ => glsl}/descriptorindexing/descriptorindexing.frag (100%) rename data/shaders/{ => glsl}/descriptorindexing/descriptorindexing.frag.spv (100%) rename data/shaders/{ => glsl}/descriptorindexing/descriptorindexing.vert (100%) rename data/shaders/{ => glsl}/descriptorindexing/descriptorindexing.vert.spv (100%) rename data/shaders/{ => glsl}/descriptorsets/cube.frag (100%) rename data/shaders/{ => glsl}/descriptorsets/cube.frag.spv (100%) rename data/shaders/{ => glsl}/descriptorsets/cube.vert (100%) rename data/shaders/{ => glsl}/descriptorsets/cube.vert.spv (100%) rename data/shaders/{ => glsl}/displacement/base.frag (100%) rename data/shaders/{ => glsl}/displacement/base.frag.spv (100%) rename data/shaders/{ => glsl}/displacement/base.vert (100%) rename data/shaders/{ => glsl}/displacement/base.vert.spv (100%) rename data/shaders/{ => glsl}/displacement/displacement.tesc (100%) rename data/shaders/{ => glsl}/displacement/displacement.tesc.spv (100%) rename data/shaders/{ => glsl}/displacement/displacement.tese (100%) rename data/shaders/{ => glsl}/displacement/displacement.tese.spv (100%) rename data/shaders/{ => glsl}/displacement/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/distancefieldfonts/bitmap.frag (100%) rename data/shaders/{ => glsl}/distancefieldfonts/bitmap.frag.spv (100%) rename data/shaders/{ => glsl}/distancefieldfonts/bitmap.vert (100%) rename data/shaders/{ => glsl}/distancefieldfonts/bitmap.vert.spv (100%) rename data/shaders/{ => glsl}/distancefieldfonts/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/distancefieldfonts/sdf.frag (100%) rename data/shaders/{ => glsl}/distancefieldfonts/sdf.frag.spv (100%) rename data/shaders/{ => glsl}/distancefieldfonts/sdf.vert (100%) rename data/shaders/{ => glsl}/distancefieldfonts/sdf.vert.spv (100%) rename data/shaders/{ => glsl}/dynamicuniformbuffer/base.frag (100%) rename data/shaders/{ => glsl}/dynamicuniformbuffer/base.frag.spv (100%) rename data/shaders/{ => glsl}/dynamicuniformbuffer/base.vert (100%) rename data/shaders/{ => glsl}/dynamicuniformbuffer/base.vert.spv (100%) rename data/shaders/{ => glsl}/gears/gears.frag (100%) rename data/shaders/{ => glsl}/gears/gears.frag.spv (100%) rename data/shaders/{ => glsl}/gears/gears.vert (100%) rename data/shaders/{ => glsl}/gears/gears.vert.spv (100%) rename data/shaders/{ => glsl}/geometryshader/base.frag (100%) rename data/shaders/{ => glsl}/geometryshader/base.frag.spv (100%) rename data/shaders/{ => glsl}/geometryshader/base.vert (100%) rename data/shaders/{ => glsl}/geometryshader/base.vert.spv (100%) rename data/shaders/{ => glsl}/geometryshader/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/geometryshader/mesh.frag (100%) rename data/shaders/{ => glsl}/geometryshader/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/geometryshader/mesh.vert (100%) rename data/shaders/{ => glsl}/geometryshader/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/geometryshader/normaldebug.geom (100%) rename data/shaders/{ => glsl}/geometryshader/normaldebug.geom.spv (100%) rename data/shaders/{ => glsl}/gltfscene/mesh.frag (100%) rename data/shaders/{ => glsl}/gltfscene/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/gltfscene/mesh.vert (100%) rename data/shaders/{ => glsl}/gltfscene/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/hdr/bloom.frag (100%) rename data/shaders/{ => glsl}/hdr/bloom.frag.spv (100%) rename data/shaders/{ => glsl}/hdr/bloom.vert (100%) rename data/shaders/{ => glsl}/hdr/bloom.vert.spv (100%) rename data/shaders/{ => glsl}/hdr/composition.frag (100%) rename data/shaders/{ => glsl}/hdr/composition.frag.spv (100%) rename data/shaders/{ => glsl}/hdr/composition.vert (100%) rename data/shaders/{ => glsl}/hdr/composition.vert.spv (100%) rename data/shaders/{ => glsl}/hdr/gbuffer.frag (100%) rename data/shaders/{ => glsl}/hdr/gbuffer.frag.spv (100%) rename data/shaders/{ => glsl}/hdr/gbuffer.vert (100%) rename data/shaders/{ => glsl}/hdr/gbuffer.vert.spv (100%) rename data/shaders/{ => glsl}/imgui/scene.frag (100%) rename data/shaders/{ => glsl}/imgui/scene.frag.spv (100%) rename data/shaders/{ => glsl}/imgui/scene.vert (100%) rename data/shaders/{ => glsl}/imgui/scene.vert.spv (100%) rename data/shaders/{ => glsl}/imgui/ui.frag (100%) rename data/shaders/{ => glsl}/imgui/ui.frag.spv (100%) rename data/shaders/{ => glsl}/imgui/ui.vert (100%) rename data/shaders/{ => glsl}/imgui/ui.vert.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/indirectdraw/ground.frag (100%) rename data/shaders/{ => glsl}/indirectdraw/ground.frag.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/ground.vert (100%) rename data/shaders/{ => glsl}/indirectdraw/ground.vert.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/indirectdraw.frag (100%) rename data/shaders/{ => glsl}/indirectdraw/indirectdraw.frag.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/indirectdraw.vert (100%) rename data/shaders/{ => glsl}/indirectdraw/indirectdraw.vert.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/skysphere.frag (100%) rename data/shaders/{ => glsl}/indirectdraw/skysphere.frag.spv (100%) rename data/shaders/{ => glsl}/indirectdraw/skysphere.vert (100%) rename data/shaders/{ => glsl}/indirectdraw/skysphere.vert.spv (100%) rename data/shaders/{ => glsl}/inlineuniformblocks/pbr.frag (100%) rename data/shaders/{ => glsl}/inlineuniformblocks/pbr.frag.spv (100%) rename data/shaders/{ => glsl}/inlineuniformblocks/pbr.vert (100%) rename data/shaders/{ => glsl}/inlineuniformblocks/pbr.vert.spv (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentread.frag (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentread.frag.spv (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentread.vert (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentread.vert.spv (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentwrite.frag (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentwrite.frag.spv (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentwrite.vert (100%) rename data/shaders/{ => glsl}/inputattachments/attachmentwrite.vert.spv (100%) rename data/shaders/{ => glsl}/instancing/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/instancing/instancing.frag (100%) rename data/shaders/{ => glsl}/instancing/instancing.frag.spv (100%) rename data/shaders/{ => glsl}/instancing/instancing.vert (100%) rename data/shaders/{ => glsl}/instancing/instancing.vert.spv (100%) rename data/shaders/{ => glsl}/instancing/planet.frag (100%) rename data/shaders/{ => glsl}/instancing/planet.frag.spv (100%) rename data/shaders/{ => glsl}/instancing/planet.vert (100%) rename data/shaders/{ => glsl}/instancing/planet.vert.spv (100%) rename data/shaders/{ => glsl}/instancing/starfield.frag (100%) rename data/shaders/{ => glsl}/instancing/starfield.frag.spv (100%) rename data/shaders/{ => glsl}/instancing/starfield.vert (100%) rename data/shaders/{ => glsl}/instancing/starfield.vert.spv (100%) rename data/shaders/{ => glsl}/multisampling/mesh.frag (100%) rename data/shaders/{ => glsl}/multisampling/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/multisampling/mesh.vert (100%) rename data/shaders/{ => glsl}/multisampling/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/multithreading/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/multithreading/phong.frag (100%) rename data/shaders/{ => glsl}/multithreading/phong.frag.spv (100%) rename data/shaders/{ => glsl}/multithreading/phong.vert (100%) rename data/shaders/{ => glsl}/multithreading/phong.vert.spv (100%) rename data/shaders/{ => glsl}/multithreading/starsphere.frag (100%) rename data/shaders/{ => glsl}/multithreading/starsphere.frag.spv (100%) rename data/shaders/{ => glsl}/multithreading/starsphere.vert (100%) rename data/shaders/{ => glsl}/multithreading/starsphere.vert.spv (100%) rename data/shaders/{ => glsl}/multiview/multiview.frag (100%) rename data/shaders/{ => glsl}/multiview/multiview.frag.spv (100%) rename data/shaders/{ => glsl}/multiview/multiview.vert (100%) rename data/shaders/{ => glsl}/multiview/multiview.vert.spv (100%) rename data/shaders/{ => glsl}/multiview/viewdisplay.frag (100%) rename data/shaders/{ => glsl}/multiview/viewdisplay.frag.spv (100%) rename data/shaders/{ => glsl}/multiview/viewdisplay.vert (100%) rename data/shaders/{ => glsl}/multiview/viewdisplay.vert.spv (100%) rename data/shaders/{ => glsl}/negativeviewportheight/quad.frag (100%) rename data/shaders/{ => glsl}/negativeviewportheight/quad.frag.spv (100%) rename data/shaders/{ => glsl}/negativeviewportheight/quad.vert (100%) rename data/shaders/{ => glsl}/negativeviewportheight/quad.vert.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/closesthit.rchit (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/closesthit.rchit.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/miss.rmiss (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/miss.rmiss.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/raygen.rgen (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_basic/raygen.rgen.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/closesthit.rchit (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/closesthit.rchit.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/miss.rmiss (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/miss.rmiss.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/raygen.rgen (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_reflections/raygen.rgen.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/closesthit.rchit (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/closesthit.rchit.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/miss.rmiss (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/miss.rmiss.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/raygen.rgen (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/raygen.rgen.spv (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/shadow.rmiss (100%) rename data/shaders/{ => glsl}/nv_ray_tracing_shadows/shadow.rmiss.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/occlusionquery/mesh.frag (100%) rename data/shaders/{ => glsl}/occlusionquery/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/mesh.vert (100%) rename data/shaders/{ => glsl}/occlusionquery/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/occluder.frag (100%) rename data/shaders/{ => glsl}/occlusionquery/occluder.frag.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/occluder.vert (100%) rename data/shaders/{ => glsl}/occlusionquery/occluder.vert.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/simple.frag (100%) rename data/shaders/{ => glsl}/occlusionquery/simple.frag.spv (100%) rename data/shaders/{ => glsl}/occlusionquery/simple.vert (100%) rename data/shaders/{ => glsl}/occlusionquery/simple.vert.spv (100%) rename data/shaders/{ => glsl}/offscreen/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/offscreen/mirror.frag (100%) rename data/shaders/{ => glsl}/offscreen/mirror.frag.spv (100%) rename data/shaders/{ => glsl}/offscreen/mirror.vert (100%) rename data/shaders/{ => glsl}/offscreen/mirror.vert.spv (100%) rename data/shaders/{ => glsl}/offscreen/phong.frag (100%) rename data/shaders/{ => glsl}/offscreen/phong.frag.spv (100%) rename data/shaders/{ => glsl}/offscreen/phong.vert (100%) rename data/shaders/{ => glsl}/offscreen/phong.vert.spv (100%) rename data/shaders/{ => glsl}/offscreen/quad.frag (100%) rename data/shaders/{ => glsl}/offscreen/quad.frag.spv (100%) rename data/shaders/{ => glsl}/offscreen/quad.vert (100%) rename data/shaders/{ => glsl}/offscreen/quad.vert.spv (100%) rename data/shaders/{ => glsl}/parallaxmapping/parallax.frag (100%) rename data/shaders/{ => glsl}/parallaxmapping/parallax.frag.spv (100%) rename data/shaders/{ => glsl}/parallaxmapping/parallax.vert (100%) rename data/shaders/{ => glsl}/parallaxmapping/parallax.vert.spv (100%) rename data/shaders/{ => glsl}/particlefire/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/particlefire/normalmap.frag (100%) rename data/shaders/{ => glsl}/particlefire/normalmap.frag.spv (100%) rename data/shaders/{ => glsl}/particlefire/normalmap.vert (100%) rename data/shaders/{ => glsl}/particlefire/normalmap.vert.spv (100%) rename data/shaders/{ => glsl}/particlefire/particle.frag (100%) rename data/shaders/{ => glsl}/particlefire/particle.frag.spv (100%) rename data/shaders/{ => glsl}/particlefire/particle.vert (100%) rename data/shaders/{ => glsl}/particlefire/particle.vert.spv (100%) rename data/shaders/{ => glsl}/pbrbasic/pbr.frag (100%) rename data/shaders/{ => glsl}/pbrbasic/pbr.frag.spv (100%) rename data/shaders/{ => glsl}/pbrbasic/pbr.vert (100%) rename data/shaders/{ => glsl}/pbrbasic/pbr.vert.spv (100%) rename data/shaders/{ => glsl}/pbribl/filtercube.vert (100%) rename data/shaders/{ => glsl}/pbribl/filtercube.vert.spv (100%) rename data/shaders/{ => glsl}/pbribl/genbrdflut.frag (100%) rename data/shaders/{ => glsl}/pbribl/genbrdflut.frag.spv (100%) rename data/shaders/{ => glsl}/pbribl/genbrdflut.vert (100%) rename data/shaders/{ => glsl}/pbribl/genbrdflut.vert.spv (100%) rename data/shaders/{ => glsl}/pbribl/irradiancecube.frag (100%) rename data/shaders/{ => glsl}/pbribl/irradiancecube.frag.spv (100%) rename data/shaders/{ => glsl}/pbribl/pbribl.frag (100%) rename data/shaders/{ => glsl}/pbribl/pbribl.frag.spv (100%) rename data/shaders/{ => glsl}/pbribl/pbribl.vert (100%) rename data/shaders/{ => glsl}/pbribl/pbribl.vert.spv (100%) rename data/shaders/{ => glsl}/pbribl/prefilterenvmap.frag (100%) rename data/shaders/{ => glsl}/pbribl/prefilterenvmap.frag.spv (100%) rename data/shaders/{ => glsl}/pbribl/skybox.frag (100%) rename data/shaders/{ => glsl}/pbribl/skybox.frag.spv (100%) rename data/shaders/{ => glsl}/pbribl/skybox.vert (100%) rename data/shaders/{ => glsl}/pbribl/skybox.vert.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/filtercube.vert (100%) rename data/shaders/{ => glsl}/pbrtexture/filtercube.vert.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/genbrdflut.frag (100%) rename data/shaders/{ => glsl}/pbrtexture/genbrdflut.frag.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/genbrdflut.vert (100%) rename data/shaders/{ => glsl}/pbrtexture/genbrdflut.vert.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/irradiancecube.frag (100%) rename data/shaders/{ => glsl}/pbrtexture/irradiancecube.frag.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/pbrtexture.frag (100%) rename data/shaders/{ => glsl}/pbrtexture/pbrtexture.frag.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/pbrtexture.vert (100%) rename data/shaders/{ => glsl}/pbrtexture/pbrtexture.vert.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/prefilterenvmap.frag (100%) rename data/shaders/{ => glsl}/pbrtexture/prefilterenvmap.frag.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/skybox.frag (100%) rename data/shaders/{ => glsl}/pbrtexture/skybox.frag.spv (100%) rename data/shaders/{ => glsl}/pbrtexture/skybox.vert (100%) rename data/shaders/{ => glsl}/pbrtexture/skybox.vert.spv (100%) rename data/shaders/{ => glsl}/pipelines/generate-spriv.bat (100%) rename data/shaders/{ => glsl}/pipelines/phong.frag (100%) rename data/shaders/{ => glsl}/pipelines/phong.frag.spv (100%) rename data/shaders/{ => glsl}/pipelines/phong.vert (100%) rename data/shaders/{ => glsl}/pipelines/phong.vert.spv (100%) rename data/shaders/{ => glsl}/pipelines/toon.frag (100%) rename data/shaders/{ => glsl}/pipelines/toon.frag.spv (100%) rename data/shaders/{ => glsl}/pipelines/toon.vert (100%) rename data/shaders/{ => glsl}/pipelines/toon.vert.spv (100%) rename data/shaders/{ => glsl}/pipelines/wireframe.frag (100%) rename data/shaders/{ => glsl}/pipelines/wireframe.frag.spv (100%) rename data/shaders/{ => glsl}/pipelines/wireframe.vert (100%) rename data/shaders/{ => glsl}/pipelines/wireframe.vert.spv (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.frag (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.frag.spv (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.tesc (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.tesc.spv (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.tese (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.tese.spv (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.vert (100%) rename data/shaders/{ => glsl}/pipelinestatistics/scene.vert.spv (100%) rename data/shaders/{ => glsl}/pushconstants/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/pushconstants/lights.frag (100%) rename data/shaders/{ => glsl}/pushconstants/lights.frag.spv (100%) rename data/shaders/{ => glsl}/pushconstants/lights.vert (100%) rename data/shaders/{ => glsl}/pushconstants/lights.vert.spv (100%) rename data/shaders/{ => glsl}/pushdescriptors/cube.frag (100%) rename data/shaders/{ => glsl}/pushdescriptors/cube.frag.spv (100%) rename data/shaders/{ => glsl}/pushdescriptors/cube.vert (100%) rename data/shaders/{ => glsl}/pushdescriptors/cube.vert.spv (100%) rename data/shaders/{ => glsl}/radialblur/colorpass.frag (100%) rename data/shaders/{ => glsl}/radialblur/colorpass.frag.spv (100%) rename data/shaders/{ => glsl}/radialblur/colorpass.vert (100%) rename data/shaders/{ => glsl}/radialblur/colorpass.vert.spv (100%) rename data/shaders/{ => glsl}/radialblur/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/radialblur/phongpass.frag (100%) rename data/shaders/{ => glsl}/radialblur/phongpass.frag.spv (100%) rename data/shaders/{ => glsl}/radialblur/phongpass.vert (100%) rename data/shaders/{ => glsl}/radialblur/phongpass.vert.spv (100%) rename data/shaders/{ => glsl}/radialblur/radialblur.frag (100%) rename data/shaders/{ => glsl}/radialblur/radialblur.frag.spv (100%) rename data/shaders/{ => glsl}/radialblur/radialblur.vert (100%) rename data/shaders/{ => glsl}/radialblur/radialblur.vert.spv (100%) rename data/shaders/{ => glsl}/renderheadless/triangle.frag (100%) rename data/shaders/{ => glsl}/renderheadless/triangle.frag.spv (100%) rename data/shaders/{ => glsl}/renderheadless/triangle.vert (100%) rename data/shaders/{ => glsl}/renderheadless/triangle.vert.spv (100%) rename data/shaders/{ => glsl}/scenerendering/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/scenerendering/scene.frag (100%) rename data/shaders/{ => glsl}/scenerendering/scene.frag.spv (100%) rename data/shaders/{ => glsl}/scenerendering/scene.vert (100%) rename data/shaders/{ => glsl}/scenerendering/scene.vert.spv (100%) rename data/shaders/{ => glsl}/screenshot/mesh.frag (100%) rename data/shaders/{ => glsl}/screenshot/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/screenshot/mesh.vert (100%) rename data/shaders/{ => glsl}/screenshot/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/cubemapdisplay.frag (100%) rename data/shaders/{ => glsl}/shadowmapomni/cubemapdisplay.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/cubemapdisplay.vert (100%) rename data/shaders/{ => glsl}/shadowmapomni/cubemapdisplay.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/shadowmapomni/offscreen.frag (100%) rename data/shaders/{ => glsl}/shadowmapomni/offscreen.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/offscreen.vert (100%) rename data/shaders/{ => glsl}/shadowmapomni/offscreen.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/scene.frag (100%) rename data/shaders/{ => glsl}/shadowmapomni/scene.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapomni/scene.vert (100%) rename data/shaders/{ => glsl}/shadowmapomni/scene.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/shadowmapping/offscreen.frag (100%) rename data/shaders/{ => glsl}/shadowmapping/offscreen.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/offscreen.vert (100%) rename data/shaders/{ => glsl}/shadowmapping/offscreen.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/quad.frag (100%) rename data/shaders/{ => glsl}/shadowmapping/quad.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/quad.vert (100%) rename data/shaders/{ => glsl}/shadowmapping/quad.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/scene.frag (100%) rename data/shaders/{ => glsl}/shadowmapping/scene.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmapping/scene.vert (100%) rename data/shaders/{ => glsl}/shadowmapping/scene.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/debugshadowmap.frag (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/debugshadowmap.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/debugshadowmap.vert (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/debugshadowmap.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/depthpass.frag (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/depthpass.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/depthpass.vert (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/depthpass.vert.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/scene.frag (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/scene.frag.spv (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/scene.vert (100%) rename data/shaders/{ => glsl}/shadowmappingcascade/scene.vert.spv (100%) rename data/shaders/{ => glsl}/skeletalanimation/mesh.frag (100%) rename data/shaders/{ => glsl}/skeletalanimation/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/skeletalanimation/mesh.vert (100%) rename data/shaders/{ => glsl}/skeletalanimation/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/skeletalanimation/texture.frag (100%) rename data/shaders/{ => glsl}/skeletalanimation/texture.frag.spv (100%) rename data/shaders/{ => glsl}/skeletalanimation/texture.vert (100%) rename data/shaders/{ => glsl}/skeletalanimation/texture.vert.spv (100%) rename data/shaders/{ => glsl}/specializationconstants/uber.frag (100%) rename data/shaders/{ => glsl}/specializationconstants/uber.frag.spv (100%) rename data/shaders/{ => glsl}/specializationconstants/uber.vert (100%) rename data/shaders/{ => glsl}/specializationconstants/uber.vert.spv (100%) rename data/shaders/{ => glsl}/sphericalenvmapping/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/sphericalenvmapping/sem.frag (100%) rename data/shaders/{ => glsl}/sphericalenvmapping/sem.frag.spv (100%) rename data/shaders/{ => glsl}/sphericalenvmapping/sem.vert (100%) rename data/shaders/{ => glsl}/sphericalenvmapping/sem.vert.spv (100%) rename data/shaders/{ => glsl}/ssao/blur.frag (100%) rename data/shaders/{ => glsl}/ssao/blur.frag.spv (100%) rename data/shaders/{ => glsl}/ssao/composition.frag (100%) rename data/shaders/{ => glsl}/ssao/composition.frag.spv (100%) rename data/shaders/{ => glsl}/ssao/fullscreen.vert (100%) rename data/shaders/{ => glsl}/ssao/fullscreen.vert.spv (100%) rename data/shaders/{ => glsl}/ssao/gbuffer.frag (100%) rename data/shaders/{ => glsl}/ssao/gbuffer.frag.spv (100%) rename data/shaders/{ => glsl}/ssao/gbuffer.vert (100%) rename data/shaders/{ => glsl}/ssao/gbuffer.vert.spv (100%) rename data/shaders/{ => glsl}/ssao/ssao.frag (100%) rename data/shaders/{ => glsl}/ssao/ssao.frag.spv (100%) rename data/shaders/{ => glsl}/stencilbuffer/outline.frag (100%) rename data/shaders/{ => glsl}/stencilbuffer/outline.frag.spv (100%) rename data/shaders/{ => glsl}/stencilbuffer/outline.vert (100%) rename data/shaders/{ => glsl}/stencilbuffer/outline.vert.spv (100%) rename data/shaders/{ => glsl}/stencilbuffer/toon.frag (100%) rename data/shaders/{ => glsl}/stencilbuffer/toon.frag.spv (100%) rename data/shaders/{ => glsl}/stencilbuffer/toon.vert (100%) rename data/shaders/{ => glsl}/stencilbuffer/toon.vert.spv (100%) rename data/shaders/{ => glsl}/subpasses/composition.frag (100%) rename data/shaders/{ => glsl}/subpasses/composition.frag.spv (100%) rename data/shaders/{ => glsl}/subpasses/composition.vert (100%) rename data/shaders/{ => glsl}/subpasses/composition.vert.spv (100%) rename data/shaders/{ => glsl}/subpasses/gbuffer.frag (100%) rename data/shaders/{ => glsl}/subpasses/gbuffer.frag.spv (100%) rename data/shaders/{ => glsl}/subpasses/gbuffer.vert (100%) rename data/shaders/{ => glsl}/subpasses/gbuffer.vert.spv (100%) rename data/shaders/{ => glsl}/subpasses/transparent.frag (100%) rename data/shaders/{ => glsl}/subpasses/transparent.frag.spv (100%) rename data/shaders/{ => glsl}/subpasses/transparent.vert (100%) rename data/shaders/{ => glsl}/subpasses/transparent.vert.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/terraintessellation/skysphere.frag (100%) rename data/shaders/{ => glsl}/terraintessellation/skysphere.frag.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/skysphere.vert (100%) rename data/shaders/{ => glsl}/terraintessellation/skysphere.vert.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.frag (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.frag.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.tesc (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.tesc.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.tese (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.tese.spv (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.vert (100%) rename data/shaders/{ => glsl}/terraintessellation/terrain.vert.spv (100%) rename data/shaders/{ => glsl}/tessellation/base.frag (100%) rename data/shaders/{ => glsl}/tessellation/base.frag.spv (100%) rename data/shaders/{ => glsl}/tessellation/base.vert (100%) rename data/shaders/{ => glsl}/tessellation/base.vert.spv (100%) rename data/shaders/{ => glsl}/tessellation/generate-spriv.bat (100%) rename data/shaders/{ => glsl}/tessellation/passthrough.tesc (100%) rename data/shaders/{ => glsl}/tessellation/passthrough.tesc.spv (100%) rename data/shaders/{ => glsl}/tessellation/passthrough.tese (100%) rename data/shaders/{ => glsl}/tessellation/passthrough.tese.spv (100%) rename data/shaders/{ => glsl}/tessellation/pntriangles.tesc (100%) rename data/shaders/{ => glsl}/tessellation/pntriangles.tesc.spv (100%) rename data/shaders/{ => glsl}/tessellation/pntriangles.tese (100%) rename data/shaders/{ => glsl}/tessellation/pntriangles.tese.spv (100%) rename data/shaders/{ => glsl}/textoverlay/mesh.frag (100%) rename data/shaders/{ => glsl}/textoverlay/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/textoverlay/mesh.vert (100%) rename data/shaders/{ => glsl}/textoverlay/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/textoverlay/text.frag (100%) rename data/shaders/{ => glsl}/textoverlay/text.frag.spv (100%) rename data/shaders/{ => glsl}/textoverlay/text.vert (100%) rename data/shaders/{ => glsl}/textoverlay/text.vert.spv (100%) rename data/shaders/{ => glsl}/texture/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/texture/texture.frag (100%) rename data/shaders/{ => glsl}/texture/texture.frag.spv (100%) rename data/shaders/{ => glsl}/texture/texture.vert (100%) rename data/shaders/{ => glsl}/texture/texture.vert.spv (100%) rename data/shaders/{ => glsl}/texture3d/texture3d.frag (100%) rename data/shaders/{ => glsl}/texture3d/texture3d.frag.spv (100%) rename data/shaders/{ => glsl}/texture3d/texture3d.vert (100%) rename data/shaders/{ => glsl}/texture3d/texture3d.vert.spv (100%) rename data/shaders/{ => glsl}/texturearray/generate-spirv.bat (100%) rename data/shaders/{ => glsl}/texturearray/instancing.frag (100%) rename data/shaders/{ => glsl}/texturearray/instancing.frag.spv (100%) rename data/shaders/{ => glsl}/texturearray/instancing.vert (100%) rename data/shaders/{ => glsl}/texturearray/instancing.vert.spv (100%) rename data/shaders/{ => glsl}/texturecubemap/reflect.frag (100%) rename data/shaders/{ => glsl}/texturecubemap/reflect.frag.spv (100%) rename data/shaders/{ => glsl}/texturecubemap/reflect.vert (100%) rename data/shaders/{ => glsl}/texturecubemap/reflect.vert.spv (100%) rename data/shaders/{ => glsl}/texturecubemap/skybox.frag (100%) rename data/shaders/{ => glsl}/texturecubemap/skybox.frag.spv (100%) rename data/shaders/{ => glsl}/texturecubemap/skybox.vert (100%) rename data/shaders/{ => glsl}/texturecubemap/skybox.vert.spv (100%) rename data/shaders/{ => glsl}/texturemipmapgen/texture.frag (100%) rename data/shaders/{ => glsl}/texturemipmapgen/texture.frag.spv (100%) rename data/shaders/{ => glsl}/texturemipmapgen/texture.vert (100%) rename data/shaders/{ => glsl}/texturemipmapgen/texture.vert.spv (100%) rename data/shaders/{ => glsl}/texturesparseresidency/sparseresidency.frag (100%) rename data/shaders/{ => glsl}/texturesparseresidency/sparseresidency.frag.spv (100%) rename data/shaders/{ => glsl}/texturesparseresidency/sparseresidency.vert (100%) rename data/shaders/{ => glsl}/texturesparseresidency/sparseresidency.vert.spv (100%) rename data/shaders/{ => glsl}/triangle/triangle.frag (100%) rename data/shaders/{ => glsl}/triangle/triangle.frag.spv (100%) rename data/shaders/{ => glsl}/triangle/triangle.vert (100%) rename data/shaders/{ => glsl}/triangle/triangle.vert.spv (100%) rename data/shaders/{ => glsl}/viewportarray/multiview.geom (100%) rename data/shaders/{ => glsl}/viewportarray/multiview.geom.spv (100%) rename data/shaders/{ => glsl}/viewportarray/scene.frag (100%) rename data/shaders/{ => glsl}/viewportarray/scene.frag.spv (100%) rename data/shaders/{ => glsl}/viewportarray/scene.vert (100%) rename data/shaders/{ => glsl}/viewportarray/scene.vert.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/generate-spriv.bat (100%) rename data/shaders/{ => glsl}/vulkanscene/logo.frag (100%) rename data/shaders/{ => glsl}/vulkanscene/logo.frag.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/logo.vert (100%) rename data/shaders/{ => glsl}/vulkanscene/logo.vert.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/mesh.frag (100%) rename data/shaders/{ => glsl}/vulkanscene/mesh.frag.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/mesh.vert (100%) rename data/shaders/{ => glsl}/vulkanscene/mesh.vert.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/skybox.frag (100%) rename data/shaders/{ => glsl}/vulkanscene/skybox.frag.spv (100%) rename data/shaders/{ => glsl}/vulkanscene/skybox.vert (100%) rename data/shaders/{ => glsl}/vulkanscene/skybox.vert.spv (100%) rename data/{ => shaders}/hlsl/README.md (93%) rename data/{ => shaders}/hlsl/base/textoverlay.frag (100%) rename data/{ => shaders}/hlsl/base/textoverlay.vert (100%) rename data/{ => shaders}/hlsl/base/uioverlay.frag (100%) rename data/{ => shaders}/hlsl/base/uioverlay.vert (100%) rename data/{ => shaders}/hlsl/bloom/colorpass.frag (100%) rename data/{ => shaders}/hlsl/bloom/colorpass.vert (100%) rename data/{ => shaders}/hlsl/bloom/gaussblur.frag (100%) rename data/{ => shaders}/hlsl/bloom/gaussblur.vert (100%) rename data/{ => shaders}/hlsl/bloom/phongpass.frag (100%) rename data/{ => shaders}/hlsl/bloom/phongpass.vert (100%) rename data/{ => shaders}/hlsl/bloom/skybox.frag (100%) rename data/{ => shaders}/hlsl/bloom/skybox.vert (100%) rename data/{ => shaders}/hlsl/compile.py (97%) rename data/{ => shaders}/hlsl/computecloth/cloth.comp (100%) rename data/{ => shaders}/hlsl/computecloth/cloth.frag (100%) rename data/{ => shaders}/hlsl/computecloth/cloth.vert (100%) rename data/{ => shaders}/hlsl/computecloth/sphere.frag (100%) rename data/{ => shaders}/hlsl/computecloth/sphere.vert (100%) rename data/{ => shaders}/hlsl/computecullandlod/cull.comp (100%) rename data/{ => shaders}/hlsl/computecullandlod/indirectdraw.frag (100%) rename data/{ => shaders}/hlsl/computecullandlod/indirectdraw.vert (100%) rename data/{ => shaders}/hlsl/computeheadless/headless.comp (100%) rename data/{ => shaders}/hlsl/computenbody/particle.frag (100%) rename data/{ => shaders}/hlsl/computenbody/particle.vert (100%) rename data/{ => shaders}/hlsl/computenbody/particle_calculate.comp (100%) rename data/{ => shaders}/hlsl/computenbody/particle_integrate.comp (100%) rename data/{ => shaders}/hlsl/computeparticles/particle.comp (100%) rename data/{ => shaders}/hlsl/computeparticles/particle.frag (100%) rename data/{ => shaders}/hlsl/computeparticles/particle.vert (100%) rename data/{ => shaders}/hlsl/computeraytracing/raytracing.comp (100%) rename data/{ => shaders}/hlsl/computeraytracing/texture.frag (100%) rename data/{ => shaders}/hlsl/computeraytracing/texture.vert (100%) rename data/{ => shaders}/hlsl/computeshader/edgedetect.comp (100%) rename data/{ => shaders}/hlsl/computeshader/emboss.comp (100%) rename data/{ => shaders}/hlsl/computeshader/sharpen.comp (100%) rename data/{ => shaders}/hlsl/computeshader/texture.frag (100%) rename data/{ => shaders}/hlsl/computeshader/texture.vert (100%) rename data/{ => shaders}/hlsl/conditionalrender/model.frag (100%) rename data/{ => shaders}/hlsl/conditionalrender/model.vert (100%) rename data/{ => shaders}/hlsl/conservativeraster/fullscreen.frag (100%) rename data/{ => shaders}/hlsl/conservativeraster/fullscreen.vert (100%) rename data/{ => shaders}/hlsl/conservativeraster/triangle.frag (100%) rename data/{ => shaders}/hlsl/conservativeraster/triangle.vert (100%) rename data/{ => shaders}/hlsl/conservativeraster/triangleoverlay.frag (100%) rename data/{ => shaders}/hlsl/debugmarker/colorpass.frag (100%) rename data/{ => shaders}/hlsl/debugmarker/colorpass.vert (100%) rename data/{ => shaders}/hlsl/debugmarker/postprocess.frag (100%) rename data/{ => shaders}/hlsl/debugmarker/postprocess.vert (100%) rename data/{ => shaders}/hlsl/debugmarker/toon.frag (100%) rename data/{ => shaders}/hlsl/debugmarker/toon.vert (100%) rename data/{ => shaders}/hlsl/deferred/debug.frag (100%) rename data/{ => shaders}/hlsl/deferred/debug.vert (100%) rename data/{ => shaders}/hlsl/deferred/deferred.frag (100%) rename data/{ => shaders}/hlsl/deferred/deferred.vert (100%) rename data/{ => shaders}/hlsl/deferred/mrt.frag (100%) rename data/{ => shaders}/hlsl/deferred/mrt.vert (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/debug.frag (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/debug.vert (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/deferred.frag (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/deferred.vert (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/mrt.frag (100%) rename data/{ => shaders}/hlsl/deferredmultisampling/mrt.vert (100%) rename data/{ => shaders}/hlsl/deferredshadows/debug.frag (100%) rename data/{ => shaders}/hlsl/deferredshadows/debug.vert (100%) rename data/{ => shaders}/hlsl/deferredshadows/deferred.frag (100%) rename data/{ => shaders}/hlsl/deferredshadows/deferred.vert (100%) rename data/{ => shaders}/hlsl/deferredshadows/mrt.frag (100%) rename data/{ => shaders}/hlsl/deferredshadows/mrt.vert (100%) rename data/{ => shaders}/hlsl/deferredshadows/shadow.geom (100%) rename data/{ => shaders}/hlsl/deferredshadows/shadow.vert (100%) rename data/{ => shaders}/hlsl/descriptorsets/cube.frag (100%) rename data/{ => shaders}/hlsl/descriptorsets/cube.vert (100%) rename data/{ => shaders}/hlsl/displacement/base.frag (100%) rename data/{ => shaders}/hlsl/displacement/base.vert (100%) rename data/{ => shaders}/hlsl/displacement/displacement.tesc (100%) rename data/{ => shaders}/hlsl/displacement/displacement.tese (100%) rename data/{ => shaders}/hlsl/distancefieldfonts/bitmap.frag (100%) rename data/{ => shaders}/hlsl/distancefieldfonts/bitmap.vert (100%) rename data/{ => shaders}/hlsl/distancefieldfonts/sdf.frag (100%) rename data/{ => shaders}/hlsl/distancefieldfonts/sdf.vert (100%) rename data/{ => shaders}/hlsl/dynamicuniformbuffer/base.frag (100%) rename data/{ => shaders}/hlsl/dynamicuniformbuffer/base.vert (100%) rename data/{ => shaders}/hlsl/gears/gears.frag (100%) rename data/{ => shaders}/hlsl/gears/gears.vert (100%) rename data/{ => shaders}/hlsl/geometryshader/base.frag (100%) rename data/{ => shaders}/hlsl/geometryshader/base.vert (100%) rename data/{ => shaders}/hlsl/geometryshader/mesh.frag (100%) rename data/{ => shaders}/hlsl/geometryshader/mesh.vert (100%) rename data/{ => shaders}/hlsl/geometryshader/normaldebug.geom (100%) rename data/{ => shaders}/hlsl/gltfscene/mesh.frag (100%) rename data/{ => shaders}/hlsl/gltfscene/mesh.vert (100%) rename data/{ => shaders}/hlsl/hdr/bloom.frag (100%) rename data/{ => shaders}/hlsl/hdr/bloom.vert (100%) rename data/{ => shaders}/hlsl/hdr/composition.frag (100%) rename data/{ => shaders}/hlsl/hdr/composition.vert (100%) rename data/{ => shaders}/hlsl/hdr/gbuffer.frag (100%) rename data/{ => shaders}/hlsl/hdr/gbuffer.vert (100%) rename data/{ => shaders}/hlsl/imgui/scene.frag (100%) rename data/{ => shaders}/hlsl/imgui/scene.vert (100%) rename data/{ => shaders}/hlsl/imgui/ui.frag (100%) rename data/{ => shaders}/hlsl/imgui/ui.vert (100%) rename data/{ => shaders}/hlsl/indirectdraw/ground.frag (100%) rename data/{ => shaders}/hlsl/indirectdraw/ground.vert (100%) rename data/{ => shaders}/hlsl/indirectdraw/indirectdraw.frag (100%) rename data/{ => shaders}/hlsl/indirectdraw/indirectdraw.vert (100%) rename data/{ => shaders}/hlsl/indirectdraw/skysphere.frag (100%) rename data/{ => shaders}/hlsl/indirectdraw/skysphere.vert (100%) rename data/{ => shaders}/hlsl/inlineuniformblocks/pbr.frag (100%) rename data/{ => shaders}/hlsl/inlineuniformblocks/pbr.vert (100%) rename data/{ => shaders}/hlsl/inputattachments/attachmentread.frag (100%) rename data/{ => shaders}/hlsl/inputattachments/attachmentread.vert (100%) rename data/{ => shaders}/hlsl/inputattachments/attachmentwrite.frag (100%) rename data/{ => shaders}/hlsl/inputattachments/attachmentwrite.vert (100%) rename data/{ => shaders}/hlsl/instancing/instancing.frag (100%) rename data/{ => shaders}/hlsl/instancing/instancing.vert (100%) rename data/{ => shaders}/hlsl/instancing/planet.frag (100%) rename data/{ => shaders}/hlsl/instancing/planet.vert (100%) rename data/{ => shaders}/hlsl/instancing/starfield.frag (100%) rename data/{ => shaders}/hlsl/instancing/starfield.vert (100%) rename data/{ => shaders}/hlsl/mesh/mesh.frag (100%) rename data/{ => shaders}/hlsl/mesh/mesh.vert (100%) rename data/{ => shaders}/hlsl/multisampling/scene.frag (100%) rename data/{ => shaders}/hlsl/multisampling/scene.vert (100%) rename data/{ => shaders}/hlsl/multithreading/phong.frag (100%) rename data/{ => shaders}/hlsl/multithreading/phong.vert (100%) rename data/{ => shaders}/hlsl/multithreading/starsphere.frag (100%) rename data/{ => shaders}/hlsl/multithreading/starsphere.vert (100%) rename data/{ => shaders}/hlsl/multiview/multiview.frag (100%) rename data/{ => shaders}/hlsl/multiview/multiview.vert (100%) rename data/{ => shaders}/hlsl/multiview/viewdisplay.frag (100%) rename data/{ => shaders}/hlsl/multiview/viewdisplay.vert (100%) rename data/{ => shaders}/hlsl/negativeviewportheight/quad.frag (100%) rename data/{ => shaders}/hlsl/negativeviewportheight/quad.vert (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_basic/closesthit.rchit (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_basic/miss.rmiss (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_basic/raygen.rgen (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_reflections/closesthit.rchit (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_reflections/miss.rmiss (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_reflections/raygen.rgen (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_shadows/closesthit.rchit (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_shadows/miss.rmiss (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_shadows/raygen.rgen (100%) rename data/{ => shaders}/hlsl/nv_ray_tracing_shadows/shadow.rmiss (100%) rename data/{ => shaders}/hlsl/occlusionquery/mesh.frag (100%) rename data/{ => shaders}/hlsl/occlusionquery/mesh.vert (100%) rename data/{ => shaders}/hlsl/occlusionquery/occluder.frag (100%) rename data/{ => shaders}/hlsl/occlusionquery/occluder.vert (100%) rename data/{ => shaders}/hlsl/occlusionquery/simple.frag (100%) rename data/{ => shaders}/hlsl/occlusionquery/simple.vert (100%) rename data/{ => shaders}/hlsl/offscreen/mirror.frag (100%) rename data/{ => shaders}/hlsl/offscreen/mirror.vert (100%) rename data/{ => shaders}/hlsl/offscreen/phong.frag (100%) rename data/{ => shaders}/hlsl/offscreen/phong.vert (100%) rename data/{ => shaders}/hlsl/offscreen/quad.frag (100%) rename data/{ => shaders}/hlsl/offscreen/quad.vert (100%) rename data/{ => shaders}/hlsl/parallaxmapping/parallax.frag (100%) rename data/{ => shaders}/hlsl/parallaxmapping/parallax.vert (100%) rename data/{ => shaders}/hlsl/particlefire/normalmap.frag (100%) rename data/{ => shaders}/hlsl/particlefire/normalmap.vert (100%) rename data/{ => shaders}/hlsl/particlefire/particle.frag (100%) rename data/{ => shaders}/hlsl/particlefire/particle.vert (100%) rename data/{ => shaders}/hlsl/pbrbasic/pbr.frag (100%) rename data/{ => shaders}/hlsl/pbrbasic/pbr.vert (100%) rename data/{ => shaders}/hlsl/pbribl/filtercube.vert (100%) rename data/{ => shaders}/hlsl/pbribl/genbrdflut.frag (100%) rename data/{ => shaders}/hlsl/pbribl/genbrdflut.vert (100%) rename data/{ => shaders}/hlsl/pbribl/irradiancecube.frag (100%) rename data/{ => shaders}/hlsl/pbribl/pbribl.frag (100%) rename data/{ => shaders}/hlsl/pbribl/pbribl.vert (100%) rename data/{ => shaders}/hlsl/pbribl/prefilterenvmap.frag (100%) rename data/{ => shaders}/hlsl/pbribl/skybox.frag (100%) rename data/{ => shaders}/hlsl/pbribl/skybox.vert (100%) rename data/{ => shaders}/hlsl/pbrtexture/filtercube.vert (100%) rename data/{ => shaders}/hlsl/pbrtexture/genbrdflut.frag (100%) rename data/{ => shaders}/hlsl/pbrtexture/genbrdflut.vert (100%) rename data/{ => shaders}/hlsl/pbrtexture/irradiancecube.frag (100%) rename data/{ => shaders}/hlsl/pbrtexture/pbrtexture.frag (100%) rename data/{ => shaders}/hlsl/pbrtexture/pbrtexture.vert (100%) rename data/{ => shaders}/hlsl/pbrtexture/prefilterenvmap.frag (100%) rename data/{ => shaders}/hlsl/pbrtexture/skybox.frag (100%) rename data/{ => shaders}/hlsl/pbrtexture/skybox.vert (100%) rename data/{ => shaders}/hlsl/pipelines/phong.frag (100%) rename data/{ => shaders}/hlsl/pipelines/phong.vert (100%) rename data/{ => shaders}/hlsl/pipelines/toon.frag (100%) rename data/{ => shaders}/hlsl/pipelines/toon.vert (100%) rename data/{ => shaders}/hlsl/pipelines/wireframe.frag (100%) rename data/{ => shaders}/hlsl/pipelines/wireframe.vert (100%) rename data/{ => shaders}/hlsl/pipelinestatistics/scene.frag (100%) rename data/{ => shaders}/hlsl/pipelinestatistics/scene.tesc (100%) rename data/{ => shaders}/hlsl/pipelinestatistics/scene.tese (100%) rename data/{ => shaders}/hlsl/pipelinestatistics/scene.vert (100%) rename data/{ => shaders}/hlsl/pushconstants/lights.frag (100%) rename data/{ => shaders}/hlsl/pushconstants/lights.vert (100%) rename data/{ => shaders}/hlsl/pushdescriptors/cube.frag (100%) rename data/{ => shaders}/hlsl/pushdescriptors/cube.vert (100%) rename data/{ => shaders}/hlsl/radialblur/colorpass.frag (100%) rename data/{ => shaders}/hlsl/radialblur/colorpass.vert (100%) rename data/{ => shaders}/hlsl/radialblur/phongpass.frag (100%) rename data/{ => shaders}/hlsl/radialblur/phongpass.vert (100%) rename data/{ => shaders}/hlsl/radialblur/radialblur.frag (100%) rename data/{ => shaders}/hlsl/radialblur/radialblur.vert (100%) rename data/{ => shaders}/hlsl/renderheadless/triangle.frag (100%) rename data/{ => shaders}/hlsl/renderheadless/triangle.vert (100%) rename data/{ => shaders}/hlsl/scenerendering/scene.frag (100%) rename data/{ => shaders}/hlsl/scenerendering/scene.vert (100%) rename data/{ => shaders}/hlsl/screenshot/mesh.frag (100%) rename data/{ => shaders}/hlsl/screenshot/mesh.vert (100%) rename data/{ => shaders}/hlsl/shadowmapomni/cubemapdisplay.frag (100%) rename data/{ => shaders}/hlsl/shadowmapomni/cubemapdisplay.vert (100%) rename data/{ => shaders}/hlsl/shadowmapomni/offscreen.frag (100%) rename data/{ => shaders}/hlsl/shadowmapomni/offscreen.vert (100%) rename data/{ => shaders}/hlsl/shadowmapomni/scene.frag (100%) rename data/{ => shaders}/hlsl/shadowmapomni/scene.vert (100%) rename data/{ => shaders}/hlsl/shadowmapping/offscreen.frag (100%) rename data/{ => shaders}/hlsl/shadowmapping/offscreen.vert (100%) rename data/{ => shaders}/hlsl/shadowmapping/quad.frag (100%) rename data/{ => shaders}/hlsl/shadowmapping/quad.vert (100%) rename data/{ => shaders}/hlsl/shadowmapping/scene.frag (100%) rename data/{ => shaders}/hlsl/shadowmapping/scene.vert (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/debugshadowmap.frag (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/debugshadowmap.vert (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/depthpass.frag (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/depthpass.vert (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/scene.frag (100%) rename data/{ => shaders}/hlsl/shadowmappingcascade/scene.vert (100%) rename data/{ => shaders}/hlsl/skeletalanimation/mesh.frag (100%) rename data/{ => shaders}/hlsl/skeletalanimation/mesh.vert (100%) rename data/{ => shaders}/hlsl/skeletalanimation/texture.frag (100%) rename data/{ => shaders}/hlsl/skeletalanimation/texture.vert (100%) rename data/{ => shaders}/hlsl/specializationconstants/uber.frag (100%) rename data/{ => shaders}/hlsl/specializationconstants/uber.vert (100%) rename data/{ => shaders}/hlsl/sphericalenvmapping/sem.frag (100%) rename data/{ => shaders}/hlsl/sphericalenvmapping/sem.vert (100%) rename data/{ => shaders}/hlsl/ssao/blur.frag (100%) rename data/{ => shaders}/hlsl/ssao/composition.frag (100%) rename data/{ => shaders}/hlsl/ssao/fullscreen.vert (100%) rename data/{ => shaders}/hlsl/ssao/gbuffer.frag (100%) rename data/{ => shaders}/hlsl/ssao/gbuffer.vert (100%) rename data/{ => shaders}/hlsl/ssao/ssao.frag (100%) rename data/{ => shaders}/hlsl/stencilbuffer/outline.frag (100%) rename data/{ => shaders}/hlsl/stencilbuffer/outline.vert (100%) rename data/{ => shaders}/hlsl/stencilbuffer/toon.frag (100%) rename data/{ => shaders}/hlsl/stencilbuffer/toon.vert (100%) rename data/{ => shaders}/hlsl/subpasses/composition.frag (100%) rename data/{ => shaders}/hlsl/subpasses/composition.vert (100%) rename data/{ => shaders}/hlsl/subpasses/gbuffer.frag (100%) rename data/{ => shaders}/hlsl/subpasses/gbuffer.vert (100%) rename data/{ => shaders}/hlsl/subpasses/transparent.frag (100%) rename data/{ => shaders}/hlsl/subpasses/transparent.vert (100%) rename data/{ => shaders}/hlsl/terraintessellation/skysphere.frag (100%) rename data/{ => shaders}/hlsl/terraintessellation/skysphere.vert (100%) rename data/{ => shaders}/hlsl/terraintessellation/terrain.frag (100%) rename data/{ => shaders}/hlsl/terraintessellation/terrain.tesc (100%) rename data/{ => shaders}/hlsl/terraintessellation/terrain.tese (100%) rename data/{ => shaders}/hlsl/terraintessellation/terrain.vert (100%) rename data/{ => shaders}/hlsl/tessellation/base.frag (100%) rename data/{ => shaders}/hlsl/tessellation/base.vert (100%) rename data/{ => shaders}/hlsl/tessellation/passthrough.tesc (100%) rename data/{ => shaders}/hlsl/tessellation/passthrough.tese (100%) rename data/{ => shaders}/hlsl/tessellation/pntriangles.tesc (100%) rename data/{ => shaders}/hlsl/tessellation/pntriangles.tese (100%) rename data/{ => shaders}/hlsl/textoverlay/mesh.frag (100%) rename data/{ => shaders}/hlsl/textoverlay/mesh.vert (100%) rename data/{ => shaders}/hlsl/textoverlay/text.frag (100%) rename data/{ => shaders}/hlsl/textoverlay/text.vert (100%) rename data/{ => shaders}/hlsl/texture/texture.frag (100%) rename data/{ => shaders}/hlsl/texture/texture.vert (100%) rename data/{ => shaders}/hlsl/texture3d/texture3d.frag (100%) rename data/{ => shaders}/hlsl/texture3d/texture3d.vert (100%) rename data/{ => shaders}/hlsl/texturearray/instancing.frag (100%) rename data/{ => shaders}/hlsl/texturearray/instancing.vert (100%) rename data/{ => shaders}/hlsl/texturecubemap/reflect.frag (100%) rename data/{ => shaders}/hlsl/texturecubemap/reflect.vert (100%) rename data/{ => shaders}/hlsl/texturecubemap/skybox.frag (100%) rename data/{ => shaders}/hlsl/texturecubemap/skybox.vert (100%) rename data/{ => shaders}/hlsl/texturemipmapgen/texture.frag (100%) rename data/{ => shaders}/hlsl/texturemipmapgen/texture.vert (100%) rename data/{ => shaders}/hlsl/texturesparseresidency/sparseresidency.frag (100%) rename data/{ => shaders}/hlsl/texturesparseresidency/sparseresidency.vert (100%) rename data/{ => shaders}/hlsl/triangle/triangle.frag (100%) rename data/{ => shaders}/hlsl/triangle/triangle.vert (100%) rename data/{ => shaders}/hlsl/viewportarray/multiview.geom (100%) rename data/{ => shaders}/hlsl/viewportarray/scene.frag (100%) rename data/{ => shaders}/hlsl/viewportarray/scene.vert (100%) rename data/{ => shaders}/hlsl/vulkanscene/logo.frag (100%) rename data/{ => shaders}/hlsl/vulkanscene/logo.vert (100%) rename data/{ => shaders}/hlsl/vulkanscene/mesh.frag (100%) rename data/{ => shaders}/hlsl/vulkanscene/mesh.vert (100%) rename data/{ => shaders}/hlsl/vulkanscene/skybox.frag (100%) rename data/{ => shaders}/hlsl/vulkanscene/skybox.vert (100%) diff --git a/README.md b/README.md index edf424af..f263fbae 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ A comprehensive collection of open source C++ examples for [Vulkan®](https://ww ## Official Khronos Vulkan Samples -Khronos recently made an official Vulkan Samples repository available to the public ([press release](https://www.khronos.org/blog/vulkan-releases-unified-samples-repository?utm_source=Khronos%20Blog&utm_medium=Twitter&utm_campaign=Vulkan%20Repository)). +Khronos recently made an official Vulkan Samples repository available to the public ([press release](https://www.khronos.org/blog/vulkan-releases-unified-samples-repository?utm_source=Khronos%20Blog&utm_medium=Twitter&utm_campaign=Vulkan%20Repository)). You can find this repository at https://github.com/KhronosGroup/Vulkan-Samples @@ -39,7 +39,7 @@ This repository contains submodules for external dependencies, so when doing a f ``` git clone --recursive https://github.com/SaschaWillems/Vulkan.git -``` +``` Existing repositories can be updated manually: @@ -63,7 +63,7 @@ See [BUILD.md](BUILD.md) for details on how to build for the different platforms ## Shaders -Vulkan consumes shaders in an intermediate representation called SPIR-V. This makes it possible to use different shader languages by compiling them to that bytecode format. The primary shader language used here is [GLSL](data/shaders) but thanks to an external contribution you'll also find [HLSL](data/hlsl) shader sources. +Vulkan consumes shaders in an intermediate representation called SPIR-V. This makes it possible to use different shader languages by compiling them to that bytecode format. The primary shader language used here is [GLSL](data/shaders/glsl) but thanks to an external contribution you'll also find [HLSL](data/shaders/hlsl) shader sources. ## Examples @@ -118,7 +118,7 @@ Uses input attachments to read framebuffer contents from a previous sub pass at #### [13 - Sub passes](examples/subpasses/) -Advanced example that uses sub passes and input attachments to write and read back data from framebuffer attachments (same location only) in single render pass. This is used to implement deferred render composition with added forward transparency in a single pass. +Advanced example that uses sub passes and input attachments to write and read back data from framebuffer attachments (same location only) in single render pass. This is used to implement deferred render composition with added forward transparency in a single pass. #### [14 - Offscreen rendering](examples/offscreen/) @@ -144,7 +144,7 @@ Implements multisample anti-aliasing (MSAA) using a renderpass with multisampled #### [03 - High dynamic range](examples/hdr/) -Implements a high dynamic range rendering pipeline using 16/32 bit floating point precision for all internal formats, textures and calculations, including a bloom pass, manual exposure and tone mapping. +Implements a high dynamic range rendering pipeline using 16/32 bit floating point precision for all internal formats, textures and calculations, including a bloom pass, manual exposure and tone mapping. #### [04 - Shadow mapping](examples/shadowmapping/) @@ -164,7 +164,7 @@ Generating a complete mip-chain at runtime instead of loading it from a file, by #### [08 - Skeletal animation](examples/skeletalanimation/) -Loads and renders an animated skinned 3D model. Skinning is done on the GPU by passing per-vertex bone weights and translation matrices. +Loads and renders an animated skinned 3D model. Skinning is done on the GPU by passing per-vertex bone weights and translation matrices. #### [09 - Capturing screenshots](examples/screenshot/) @@ -278,7 +278,7 @@ Renders a terrain using tessellation shaders for height displacement (based on a Uses curved PN-triangles ([paper](http://alex.vlachos.com/graphics/CurvedPNTriangles.pdf)) for adding details to a low-polygon model. -### Headless +### Headless Examples that run one-time tasks and don't make use of visual output (no window system integration). These can be run in environments where no user interface is available ([blog entry](https://www.saschawillems.de/tutorials/vulkan/headless_examples)). @@ -320,7 +320,7 @@ Implements multiple texture mapping methods to simulate depth based on texture i #### [04 - Spherical environment mapping](examples/sphericalenvmapping/) -Uses a spherical material capture texture array defining environment lighting and reflection information to fake complex lighting. +Uses a spherical material capture texture array defining environment lighting and reflection information to fake complex lighting. ### Extensions diff --git a/android/examples/_template/build.gradle b/android/examples/_template/build.gradle index a28a1af1..ffe46fed 100644 --- a/android/examples/_template/build.gradle +++ b/android/examples/_template/build.gradle @@ -43,8 +43,8 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } diff --git a/android/examples/bloom/build.gradle b/android/examples/bloom/build.gradle index 74c0e8d5..16830afa 100644 --- a/android/examples/bloom/build.gradle +++ b/android/examples/bloom/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/bloom' - into 'assets/shaders/bloom' + from '../../../data/shaders/glsl/bloom' + into 'assets/shaders/glsl/bloom' include '*.*' } diff --git a/android/examples/computecloth/build.gradle b/android/examples/computecloth/build.gradle index f2892eb1..0ef53609 100644 --- a/android/examples/computecloth/build.gradle +++ b/android/examples/computecloth/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computecloth' - into 'assets/shaders/computecloth' + from '../../../data/shaders/glsl/computecloth' + into 'assets/shaders/glsl/computecloth' include '*.*' } diff --git a/android/examples/computecullandlod/build.gradle b/android/examples/computecullandlod/build.gradle index 573dc23e..25abc01e 100644 --- a/android/examples/computecullandlod/build.gradle +++ b/android/examples/computecullandlod/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computecullandlod' - into 'assets/shaders/computecullandlod' + from '../../../data/shaders/glsl/computecullandlod' + into 'assets/shaders/glsl/computecullandlod' include '*.*' } diff --git a/android/examples/computeheadless/build.gradle b/android/examples/computeheadless/build.gradle index e2c6d2e6..d184269a 100644 --- a/android/examples/computeheadless/build.gradle +++ b/android/examples/computeheadless/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computeheadless' - into 'assets/shaders/computeheadless' + from '../../../data/shaders/glsl/computeheadless' + into 'assets/shaders/glsl/computeheadless' include '*.*' } diff --git a/android/examples/computenbody/build.gradle b/android/examples/computenbody/build.gradle index 2e80f80f..2cf5b665 100644 --- a/android/examples/computenbody/build.gradle +++ b/android/examples/computenbody/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computenbody' - into 'assets/shaders/computenbody' + from '../../../data/shaders/glsl/computenbody' + into 'assets/shaders/glsl/computenbody' include '*.*' } diff --git a/android/examples/computeparticles/build.gradle b/android/examples/computeparticles/build.gradle index 862a0464..dacefcde 100644 --- a/android/examples/computeparticles/build.gradle +++ b/android/examples/computeparticles/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computeparticles' - into 'assets/shaders/computeparticles' + from '../../../data/shaders/glsl/computeparticles' + into 'assets/shaders/glsl/computeparticles' include '*.*' } diff --git a/android/examples/computeraytracing/build.gradle b/android/examples/computeraytracing/build.gradle index d096d913..7646825d 100644 --- a/android/examples/computeraytracing/build.gradle +++ b/android/examples/computeraytracing/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computeraytracing' - into 'assets/shaders/computeraytracing' + from '../../../data/shaders/glsl/computeraytracing' + into 'assets/shaders/glsl/computeraytracing' include '*.*' } diff --git a/android/examples/computeshader/build.gradle b/android/examples/computeshader/build.gradle index 3c25f59a..e89c3dcd 100644 --- a/android/examples/computeshader/build.gradle +++ b/android/examples/computeshader/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/computeshader' - into 'assets/shaders/computeshader' + from '../../../data/shaders/glsl/computeshader' + into 'assets/shaders/glsl/computeshader' include '*.*' } diff --git a/android/examples/conservativeraster/build.gradle b/android/examples/conservativeraster/build.gradle index dc36fbce..e875180a 100644 --- a/android/examples/conservativeraster/build.gradle +++ b/android/examples/conservativeraster/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/conservativeraster' - into 'assets/shaders/conservativeraster' + from '../../../data/shaders/glsl/conservativeraster' + into 'assets/shaders/glsl/conservativeraster' include '*.*' } diff --git a/android/examples/debugmarker/build.gradle b/android/examples/debugmarker/build.gradle index 659775c3..740e034a 100644 --- a/android/examples/debugmarker/build.gradle +++ b/android/examples/debugmarker/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/debugmarker' - into 'assets/shaders/debugmarker' + from '../../../data/shaders/glsl/debugmarker' + into 'assets/shaders/glsl/debugmarker' include '*.*' } diff --git a/android/examples/deferred/build.gradle b/android/examples/deferred/build.gradle index b4a72972..76d3ae4b 100644 --- a/android/examples/deferred/build.gradle +++ b/android/examples/deferred/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/deferred' - into 'assets/shaders/deferred' + from '../../../data/shaders/glsl/deferred' + into 'assets/shaders/glsl/deferred' include '*.*' } diff --git a/android/examples/deferredmultisampling/build.gradle b/android/examples/deferredmultisampling/build.gradle index 228d1355..a54eb4e4 100644 --- a/android/examples/deferredmultisampling/build.gradle +++ b/android/examples/deferredmultisampling/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/deferredmultisampling' - into 'assets/shaders/deferredmultisampling' + from '../../../data/shaders/glsl/deferredmultisampling' + into 'assets/shaders/glsl/deferredmultisampling' include '*.*' } diff --git a/android/examples/deferredshadows/build.gradle b/android/examples/deferredshadows/build.gradle index 31380374..b65a47ee 100644 --- a/android/examples/deferredshadows/build.gradle +++ b/android/examples/deferredshadows/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/deferredshadows' - into 'assets/shaders/deferredshadows' + from '../../../data/shaders/glsl/deferredshadows' + into 'assets/shaders/glsl/deferredshadows' include '*.*' } diff --git a/android/examples/descriptorsets/build.gradle b/android/examples/descriptorsets/build.gradle index 0b1bb1a7..07a95460 100644 --- a/android/examples/descriptorsets/build.gradle +++ b/android/examples/descriptorsets/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/descriptorsets' - into 'assets/shaders/descriptorsets' + from '../../../data/shaders/glsl/descriptorsets' + into 'assets/shaders/glsl/descriptorsets' include '*.*' } diff --git a/android/examples/displacement/build.gradle b/android/examples/displacement/build.gradle index 84cada59..398177af 100644 --- a/android/examples/displacement/build.gradle +++ b/android/examples/displacement/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/displacement' - into 'assets/shaders/displacement' + from '../../../data/shaders/glsl/displacement' + into 'assets/shaders/glsl/displacement' include '*.*' } diff --git a/android/examples/distancefieldfonts/build.gradle b/android/examples/distancefieldfonts/build.gradle index 13d40538..92bfbd19 100644 --- a/android/examples/distancefieldfonts/build.gradle +++ b/android/examples/distancefieldfonts/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/distancefieldfonts' - into 'assets/shaders/distancefieldfonts' + from '../../../data/shaders/glsl/distancefieldfonts' + into 'assets/shaders/glsl/distancefieldfonts' include '*.*' } diff --git a/android/examples/dynamicuniformbuffer/build.gradle b/android/examples/dynamicuniformbuffer/build.gradle index 085d5e7e..ce471084 100644 --- a/android/examples/dynamicuniformbuffer/build.gradle +++ b/android/examples/dynamicuniformbuffer/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/dynamicuniformbuffer' - into 'assets/shaders/dynamicuniformbuffer' + from '../../../data/shaders/glsl/dynamicuniformbuffer' + into 'assets/shaders/glsl/dynamicuniformbuffer' include '*.*' } diff --git a/android/examples/gears/build.gradle b/android/examples/gears/build.gradle index fe4c5d94..9d4b347b 100644 --- a/android/examples/gears/build.gradle +++ b/android/examples/gears/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/gears' - into 'assets/shaders/gears' + from '../../../data/shaders/glsl/gears' + into 'assets/shaders/glsl/gears' include '*.*' } diff --git a/android/examples/geometryshader/build.gradle b/android/examples/geometryshader/build.gradle index bc17ee94..c6bd8068 100644 --- a/android/examples/geometryshader/build.gradle +++ b/android/examples/geometryshader/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/geometryshader' - into 'assets/shaders/geometryshader' + from '../../../data/shaders/glsl/geometryshader' + into 'assets/shaders/glsl/geometryshader' include '*.*' } diff --git a/android/examples/gltfscene/build.gradle b/android/examples/gltfscene/build.gradle index 64ab443d..6af39be5 100644 --- a/android/examples/gltfscene/build.gradle +++ b/android/examples/gltfscene/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/gltfscene' - into 'assets/shaders/gltfscene' + from '../../../data/shaders/glsl/gltfscene' + into 'assets/shaders/glsl/gltfscene' include '*.*' } diff --git a/android/examples/hdr/build.gradle b/android/examples/hdr/build.gradle index 14815c5a..9117c118 100644 --- a/android/examples/hdr/build.gradle +++ b/android/examples/hdr/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/hdr' - into 'assets/shaders/hdr' + from '../../../data/shaders/glsl/hdr' + into 'assets/shaders/glsl/hdr' include '*.*' } diff --git a/android/examples/imgui/build.gradle b/android/examples/imgui/build.gradle index fcfec1de..0334e311 100644 --- a/android/examples/imgui/build.gradle +++ b/android/examples/imgui/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/imgui' - into 'assets/shaders/imgui' + from '../../../data/shaders/glsl/imgui' + into 'assets/shaders/glsl/imgui' include '*.*' } diff --git a/android/examples/indirectdraw/build.gradle b/android/examples/indirectdraw/build.gradle index 9884e576..c1e38fe2 100644 --- a/android/examples/indirectdraw/build.gradle +++ b/android/examples/indirectdraw/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/indirectdraw' - into 'assets/shaders/indirectdraw' + from '../../../data/shaders/glsl/indirectdraw' + into 'assets/shaders/glsl/indirectdraw' include '*.*' } diff --git a/android/examples/inlineuniformblocks/build.gradle b/android/examples/inlineuniformblocks/build.gradle index 55c33ab0..4c8783b1 100644 --- a/android/examples/inlineuniformblocks/build.gradle +++ b/android/examples/inlineuniformblocks/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/inlineuniformblocks' - into 'assets/shaders/inlineuniformblocks' + from '../../../data/shaders/glsl/inlineuniformblocks' + into 'assets/shaders/glsl/inlineuniformblocks' include '*.*' } diff --git a/android/examples/inputattachments/build.gradle b/android/examples/inputattachments/build.gradle index 4102b0f0..06a7f6ae 100644 --- a/android/examples/inputattachments/build.gradle +++ b/android/examples/inputattachments/build.gradle @@ -48,14 +48,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/inputattachments' - into 'assets/shaders/inputattachments' + from '../../../data/shaders/glsl/inputattachments' + into 'assets/shaders/glsl/inputattachments' include '*.*' } @@ -64,7 +64,7 @@ task copyTask { into 'assets/models' include 'treasure_smooth.dae' } - + } preBuild.dependsOn copyTask \ No newline at end of file diff --git a/android/examples/instancing/build.gradle b/android/examples/instancing/build.gradle index 1a7a68ac..69ab8bc8 100644 --- a/android/examples/instancing/build.gradle +++ b/android/examples/instancing/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/instancing' - into 'assets/shaders/instancing' + from '../../../data/shaders/glsl/instancing' + into 'assets/shaders/glsl/instancing' include '*.*' } diff --git a/android/examples/multisampling/build.gradle b/android/examples/multisampling/build.gradle index a398cc85..fcac664d 100644 --- a/android/examples/multisampling/build.gradle +++ b/android/examples/multisampling/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/multisampling' - into 'assets/shaders/mesh' + from '../../../data/shaders/glsl/multisampling' + into 'assets/shaders/glsl/mesh' include '*.*' } diff --git a/android/examples/multithreading/build.gradle b/android/examples/multithreading/build.gradle index 4a427147..64604c12 100644 --- a/android/examples/multithreading/build.gradle +++ b/android/examples/multithreading/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/multithreading' - into 'assets/shaders/multithreading' + from '../../../data/shaders/glsl/multithreading' + into 'assets/shaders/glsl/multithreading' include '*.*' } diff --git a/android/examples/multiview/build.gradle b/android/examples/multiview/build.gradle index 84d6166c..481c6665 100644 --- a/android/examples/multiview/build.gradle +++ b/android/examples/multiview/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/multiview' - into 'assets/shaders/multiview' + from '../../../data/shaders/glsl/multiview' + into 'assets/shaders/glsl/multiview' include '*.*' } diff --git a/android/examples/negativeviewportheight/build.gradle b/android/examples/negativeviewportheight/build.gradle index 2822d74d..fcee9a9b 100644 --- a/android/examples/negativeviewportheight/build.gradle +++ b/android/examples/negativeviewportheight/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/negativeviewportheight' - into 'assets/shaders/negativeviewportheight' + from '../../../data/shaders/glsl/negativeviewportheight' + into 'assets/shaders/glsl/negativeviewportheight' include '*.*' } diff --git a/android/examples/occlusionquery/build.gradle b/android/examples/occlusionquery/build.gradle index 65a853b0..0aff998b 100644 --- a/android/examples/occlusionquery/build.gradle +++ b/android/examples/occlusionquery/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/occlusionquery' - into 'assets/shaders/occlusionquery' + from '../../../data/shaders/glsl/occlusionquery' + into 'assets/shaders/glsl/occlusionquery' include '*.*' } diff --git a/android/examples/offscreen/build.gradle b/android/examples/offscreen/build.gradle index f2e3c568..7fb3756e 100644 --- a/android/examples/offscreen/build.gradle +++ b/android/examples/offscreen/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/offscreen' - into 'assets/shaders/offscreen' + from '../../../data/shaders/glsl/offscreen' + into 'assets/shaders/glsl/offscreen' include '*.*' } diff --git a/android/examples/parallaxmapping/build.gradle b/android/examples/parallaxmapping/build.gradle index 84b6e682..e26808b8 100644 --- a/android/examples/parallaxmapping/build.gradle +++ b/android/examples/parallaxmapping/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/parallaxmapping' - into 'assets/shaders/parallaxmapping' + from '../../../data/shaders/glsl/parallaxmapping' + into 'assets/shaders/glsl/parallaxmapping' include '*.*' } diff --git a/android/examples/particlefire/build.gradle b/android/examples/particlefire/build.gradle index 85696dde..beba17b0 100644 --- a/android/examples/particlefire/build.gradle +++ b/android/examples/particlefire/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/particlefire' - into 'assets/shaders/particlefire' + from '../../../data/shaders/glsl/particlefire' + into 'assets/shaders/glsl/particlefire' include '*.*' } diff --git a/android/examples/pbrbasic/build.gradle b/android/examples/pbrbasic/build.gradle index 0ba55abf..9204d359 100644 --- a/android/examples/pbrbasic/build.gradle +++ b/android/examples/pbrbasic/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pbrbasic' - into 'assets/shaders/pbrbasic' + from '../../../data/shaders/glsl/pbrbasic' + into 'assets/shaders/glsl/pbrbasic' include '*.*' } diff --git a/android/examples/pbribl/build.gradle b/android/examples/pbribl/build.gradle index 515b0e33..2feb7709 100644 --- a/android/examples/pbribl/build.gradle +++ b/android/examples/pbribl/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pbribl' - into 'assets/shaders/pbribl' + from '../../../data/shaders/glsl/pbribl' + into 'assets/shaders/glsl/pbribl' include '*.*' } diff --git a/android/examples/pbrtexture/build.gradle b/android/examples/pbrtexture/build.gradle index 5ebe67fe..184bdfe1 100644 --- a/android/examples/pbrtexture/build.gradle +++ b/android/examples/pbrtexture/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pbrtexture' - into 'assets/shaders/pbrtexture' + from '../../../data/shaders/glsl/pbrtexture' + into 'assets/shaders/glsl/pbrtexture' include '*.*' } diff --git a/android/examples/pipelines/build.gradle b/android/examples/pipelines/build.gradle index 9d1fa448..36cb9f07 100644 --- a/android/examples/pipelines/build.gradle +++ b/android/examples/pipelines/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pipelines' - into 'assets/shaders/pipelines' + from '../../../data/shaders/glsl/pipelines' + into 'assets/shaders/glsl/pipelines' include '*.*' } diff --git a/android/examples/pipelinestatistics/build.gradle b/android/examples/pipelinestatistics/build.gradle index 21522054..3eb8f8ea 100644 --- a/android/examples/pipelinestatistics/build.gradle +++ b/android/examples/pipelinestatistics/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pipelinestatistics' - into 'assets/shaders/pipelinestatistics' + from '../../../data/shaders/glsl/pipelinestatistics' + into 'assets/shaders/glsl/pipelinestatistics' include '*.*' } diff --git a/android/examples/pushconstants/build.gradle b/android/examples/pushconstants/build.gradle index e993ba1a..ee017703 100644 --- a/android/examples/pushconstants/build.gradle +++ b/android/examples/pushconstants/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pushconstants' - into 'assets/shaders/pushconstants' + from '../../../data/shaders/glsl/pushconstants' + into 'assets/shaders/glsl/pushconstants' include '*.*' } diff --git a/android/examples/pushdescriptors/build.gradle b/android/examples/pushdescriptors/build.gradle index c04b5532..270e97ad 100644 --- a/android/examples/pushdescriptors/build.gradle +++ b/android/examples/pushdescriptors/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/pushdescriptors' - into 'assets/shaders/pushdescriptors' + from '../../../data/shaders/glsl/pushdescriptors' + into 'assets/shaders/glsl/pushdescriptors' include '*.*' } diff --git a/android/examples/radialblur/build.gradle b/android/examples/radialblur/build.gradle index ea8463ba..fbd6745c 100644 --- a/android/examples/radialblur/build.gradle +++ b/android/examples/radialblur/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/radialblur' - into 'assets/shaders/radialblur' + from '../../../data/shaders/glsl/radialblur' + into 'assets/shaders/glsl/radialblur' include '*.*' } diff --git a/android/examples/renderheadless/build.gradle b/android/examples/renderheadless/build.gradle index 75a4a6af..75bb3f3e 100644 --- a/android/examples/renderheadless/build.gradle +++ b/android/examples/renderheadless/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/renderheadless' - into 'assets/shaders/renderheadless' + from '../../../data/shaders/glsl/renderheadless' + into 'assets/shaders/glsl/renderheadless' include '*.*' } diff --git a/android/examples/scenerendering/build.gradle b/android/examples/scenerendering/build.gradle index 7ace9b7d..4de41b21 100644 --- a/android/examples/scenerendering/build.gradle +++ b/android/examples/scenerendering/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/scenerendering' - into 'assets/shaders/scenerendering' + from '../../../data/shaders/glsl/scenerendering' + into 'assets/shaders/glsl/scenerendering' include '*.*' } diff --git a/android/examples/screenshot/build.gradle b/android/examples/screenshot/build.gradle index 377a210a..b226ee23 100644 --- a/android/examples/screenshot/build.gradle +++ b/android/examples/screenshot/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/screenshot' - into 'assets/shaders/screenshot' + from '../../../data/shaders/glsl/screenshot' + into 'assets/shaders/glsl/screenshot' include '*.*' } diff --git a/android/examples/shadowmapping/build.gradle b/android/examples/shadowmapping/build.gradle index 1eb439e2..f78da5d5 100644 --- a/android/examples/shadowmapping/build.gradle +++ b/android/examples/shadowmapping/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/shadowmapping' - into 'assets/shaders/shadowmapping' + from '../../../data/shaders/glsl/shadowmapping' + into 'assets/shaders/glsl/shadowmapping' include '*.*' } diff --git a/android/examples/shadowmappingcascade/build.gradle b/android/examples/shadowmappingcascade/build.gradle index 57f421ff..9b140841 100644 --- a/android/examples/shadowmappingcascade/build.gradle +++ b/android/examples/shadowmappingcascade/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/shadowmappingcascade' - into 'assets/shaders/shadowmappingcascade' + from '../../../data/shaders/glsl/shadowmappingcascade' + into 'assets/shaders/glsl/shadowmappingcascade' include '*.*' } diff --git a/android/examples/shadowmappingomni/build.gradle b/android/examples/shadowmappingomni/build.gradle index e36544af..38685ff9 100644 --- a/android/examples/shadowmappingomni/build.gradle +++ b/android/examples/shadowmappingomni/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/shadowmapomni' - into 'assets/shaders/shadowmapomni' + from '../../../data/shaders/glsl/shadowmapomni' + into 'assets/shaders/glsl/shadowmapomni' include '*.*' } diff --git a/android/examples/skeletalanimation/build.gradle b/android/examples/skeletalanimation/build.gradle index e86aa8bf..cdb88fce 100644 --- a/android/examples/skeletalanimation/build.gradle +++ b/android/examples/skeletalanimation/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/skeletalanimation' - into 'assets/shaders/skeletalanimation' + from '../../../data/shaders/glsl/skeletalanimation' + into 'assets/shaders/glsl/skeletalanimation' include '*.*' } diff --git a/android/examples/specializationconstants/build.gradle b/android/examples/specializationconstants/build.gradle index afbe66ed..73556cbe 100644 --- a/android/examples/specializationconstants/build.gradle +++ b/android/examples/specializationconstants/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/specializationconstants' - into 'assets/shaders/specializationconstants' + from '../../../data/shaders/glsl/specializationconstants' + into 'assets/shaders/glsl/specializationconstants' include '*.*' } diff --git a/android/examples/sphericalenvmapping/build.gradle b/android/examples/sphericalenvmapping/build.gradle index 5e89a45d..3b48d16c 100644 --- a/android/examples/sphericalenvmapping/build.gradle +++ b/android/examples/sphericalenvmapping/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/sphericalenvmapping' - into 'assets/shaders/sphericalenvmapping' + from '../../../data/shaders/glsl/sphericalenvmapping' + into 'assets/shaders/glsl/sphericalenvmapping' include '*.*' } diff --git a/android/examples/ssao/build.gradle b/android/examples/ssao/build.gradle index 118df53b..abae9d55 100644 --- a/android/examples/ssao/build.gradle +++ b/android/examples/ssao/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/ssao' - into 'assets/shaders/ssao' + from '../../../data/shaders/glsl/ssao' + into 'assets/shaders/glsl/ssao' include '*.*' } diff --git a/android/examples/stencilbuffer/build.gradle b/android/examples/stencilbuffer/build.gradle index 48c38a30..97a2149c 100644 --- a/android/examples/stencilbuffer/build.gradle +++ b/android/examples/stencilbuffer/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/stencilbuffer' - into 'assets/shaders/stencilbuffer' + from '../../../data/shaders/glsl/stencilbuffer' + into 'assets/shaders/glsl/stencilbuffer' include '*.*' } diff --git a/android/examples/subpasses/build.gradle b/android/examples/subpasses/build.gradle index 41a6e5eb..a2fa2874 100644 --- a/android/examples/subpasses/build.gradle +++ b/android/examples/subpasses/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/subpasses' - into 'assets/shaders/subpasses' + from '../../../data/shaders/glsl/subpasses' + into 'assets/shaders/glsl/subpasses' include '*.*' } diff --git a/android/examples/terraintessellation/build.gradle b/android/examples/terraintessellation/build.gradle index 05b7acf9..6e8ed458 100644 --- a/android/examples/terraintessellation/build.gradle +++ b/android/examples/terraintessellation/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/terraintessellation' - into 'assets/shaders/terraintessellation' + from '../../../data/shaders/glsl/terraintessellation' + into 'assets/shaders/glsl/terraintessellation' include '*.*' } diff --git a/android/examples/tessellation/build.gradle b/android/examples/tessellation/build.gradle index e43ec428..a7ba36d2 100644 --- a/android/examples/tessellation/build.gradle +++ b/android/examples/tessellation/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/tessellation' - into 'assets/shaders/tessellation' + from '../../../data/shaders/glsl/tessellation' + into 'assets/shaders/glsl/tessellation' include '*.*' } diff --git a/android/examples/textoverlay/build.gradle b/android/examples/textoverlay/build.gradle index 4198d550..068941bf 100644 --- a/android/examples/textoverlay/build.gradle +++ b/android/examples/textoverlay/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/textoverlay' - into 'assets/shaders/textoverlay' + from '../../../data/shaders/glsl/textoverlay' + into 'assets/shaders/glsl/textoverlay' include '*.*' } diff --git a/android/examples/texture/build.gradle b/android/examples/texture/build.gradle index 6144ac11..a0f5da3a 100644 --- a/android/examples/texture/build.gradle +++ b/android/examples/texture/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/texture' - into 'assets/shaders/texture' + from '../../../data/shaders/glsl/texture' + into 'assets/shaders/glsl/texture' include '*.*' } diff --git a/android/examples/texture3d/build.gradle b/android/examples/texture3d/build.gradle index 807cc918..ed29b15b 100644 --- a/android/examples/texture3d/build.gradle +++ b/android/examples/texture3d/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/texture3d' - into 'assets/shaders/texture3d' + from '../../../data/shaders/glsl/texture3d' + into 'assets/shaders/glsl/texture3d' include '*.*' } diff --git a/android/examples/texturearray/build.gradle b/android/examples/texturearray/build.gradle index b2c9c02f..c8755100 100644 --- a/android/examples/texturearray/build.gradle +++ b/android/examples/texturearray/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/texturearray' - into 'assets/shaders/texturearray' + from '../../../data/shaders/glsl/texturearray' + into 'assets/shaders/glsl/texturearray' include '*.*' } diff --git a/android/examples/texturecubemap/build.gradle b/android/examples/texturecubemap/build.gradle index 739dbe8b..b07224b5 100644 --- a/android/examples/texturecubemap/build.gradle +++ b/android/examples/texturecubemap/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/texturecubemap' - into 'assets/shaders/texturecubemap' + from '../../../data/shaders/glsl/texturecubemap' + into 'assets/shaders/glsl/texturecubemap' include '*.*' } diff --git a/android/examples/texturemipmapgen/build.gradle b/android/examples/texturemipmapgen/build.gradle index a0fe719b..04036d61 100644 --- a/android/examples/texturemipmapgen/build.gradle +++ b/android/examples/texturemipmapgen/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/texturemipmapgen' - into 'assets/shaders/texturemipmapgen' + from '../../../data/shaders/glsl/texturemipmapgen' + into 'assets/shaders/glsl/texturemipmapgen' include '*.*' } diff --git a/android/examples/triangle/build.gradle b/android/examples/triangle/build.gradle index 7fcb5758..dba65944 100644 --- a/android/examples/triangle/build.gradle +++ b/android/examples/triangle/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/triangle' - into 'assets/shaders/triangle' + from '../../../data/shaders/glsl/triangle' + into 'assets/shaders/glsl/triangle' include '*.*' } diff --git a/android/examples/viewportarray/build.gradle b/android/examples/viewportarray/build.gradle index a066416b..ab3c8654 100644 --- a/android/examples/viewportarray/build.gradle +++ b/android/examples/viewportarray/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/viewportarray' - into 'assets/shaders/viewportarray' + from '../../../data/shaders/glsl/viewportarray' + into 'assets/shaders/glsl/viewportarray' include '*.*' } diff --git a/android/examples/vulkanscene/build.gradle b/android/examples/vulkanscene/build.gradle index 65d21b6b..a0651def 100644 --- a/android/examples/vulkanscene/build.gradle +++ b/android/examples/vulkanscene/build.gradle @@ -43,14 +43,14 @@ task copyTask { } copy { - from '../../../data/shaders/base' - into "assets/shaders/base" + from '../../../data/shaders/glsl/base' + into 'assets/shaders/glsl/base' include '*.spv' } copy { - from '../../../data/shaders/vulkanscene' - into 'assets/shaders/vulkanscene' + from '../../../data/shaders/glsl/vulkanscene' + into 'assets/shaders/glsl/vulkanscene' include '*.*' } diff --git a/base/VulkanTools.cpp b/base/VulkanTools.cpp index 5e720fc8..40783e78 100644 --- a/base/VulkanTools.cpp +++ b/base/VulkanTools.cpp @@ -19,6 +19,11 @@ const std::string getAssetPath() #endif } +const std::string getShadersPath() +{ + return getAssetPath() + "shaders/glsl/"; +} + namespace vks { namespace tools @@ -152,7 +157,7 @@ namespace vks break; case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: - // Image is a transfer source + // Image is a transfer source // Make sure any reads from the image have been finished imageMemoryBarrier.srcAccessMask = VK_ACCESS_TRANSFER_READ_BIT; break; diff --git a/base/VulkanTools.h b/base/VulkanTools.h index 46ff411f..d6b0fd6b 100644 --- a/base/VulkanTools.h +++ b/base/VulkanTools.h @@ -60,6 +60,7 @@ #endif const std::string getAssetPath(); +const std::string getShadersPath(); namespace vks { @@ -113,7 +114,7 @@ namespace vks void exitFatal(std::string message, int32_t exitCode); void exitFatal(std::string message, VkResult resultCode); - // Load a SPIR-V shader (binary) + // Load a SPIR-V shader (binary) #if defined(__ANDROID__) VkShaderModule loadShader(AAssetManager* assetManager, const char *fileName, VkDevice device); #else diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 66695059..2cfbfbfa 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -17,7 +17,7 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation) // Validation can also be forced via a define #if defined(_VALIDATION) this->settings.validation = true; -#endif +#endif VkApplicationInfo appInfo = {}; appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; @@ -66,7 +66,7 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation) if (settings.validation) { // The VK_LAYER_KHRONOS_validation contains all current validation functionality. - // Note that on Android this layer requires at least NDK r20 + // Note that on Android this layer requires at least NDK r20 const char* validationLayerName = "VK_LAYER_KHRONOS_validation"; // Check if this layer is available at instance level uint32_t instanceLayerCount; @@ -155,8 +155,8 @@ void VulkanExampleBase::prepare() UIOverlay.device = vulkanDevice; UIOverlay.queue = queue; UIOverlay.shaders = { - loadShader(getAssetPath() + "shaders/base/uioverlay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/base/uioverlay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT), + loadShader(getShadersPath() + "base/uioverlay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "base/uioverlay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT), }; UIOverlay.prepareResources(); UIOverlay.preparePipeline(pipelineCache, renderPass); @@ -685,7 +685,7 @@ VulkanExampleBase::VulkanExampleBase(bool enableValidation) benchmark.outputFrameTimes = true; } } - + #if defined(VK_USE_PLATFORM_ANDROID_KHR) // Vulkan library is loaded dynamically on Android bool libLoaded = vks::android::loadVulkanLibrary(); @@ -822,7 +822,7 @@ bool VulkanExampleBase::initVulkan() // Defaults to the first device unless specified by command line uint32_t selectedDevice = 0; -#if !defined(VK_USE_PLATFORM_ANDROID_KHR) +#if !defined(VK_USE_PLATFORM_ANDROID_KHR) // GPU selection via command line argument for (size_t i = 0; i < args.size(); i++) { @@ -832,11 +832,11 @@ bool VulkanExampleBase::initVulkan() char* endptr; uint32_t index = strtol(args[i + 1], &endptr, 10); if (endptr != args[i + 1]) - { + { if (index > gpuCount - 1) { std::cerr << "Selected device index " << index << " is out of range, reverting to device 0 (use -listgpus to show available Vulkan devices)" << std::endl; - } + } else { std::cout << "Selected Vulkan device " << index << std::endl; @@ -1794,7 +1794,7 @@ xcb_window_t VulkanExampleBase::setupWindow() &(atom_wm_fullscreen->atom)); free(atom_wm_fullscreen); free(atom_wm_state); - } + } xcb_map_window(connection, window); @@ -1888,7 +1888,7 @@ void VulkanExampleBase::handleEvent(const xcb_generic_event_t *event) break; } } - break; + break; case XCB_KEY_RELEASE: { const xcb_key_release_event_t *keyEvent = (const xcb_key_release_event_t *)event; @@ -2127,7 +2127,7 @@ void VulkanExampleBase::windowResize() vkDestroyImageView(device, depthStencil.view, nullptr); vkDestroyImage(device, depthStencil.image, nullptr); vkFreeMemory(device, depthStencil.mem, nullptr); - setupDepthStencil(); + setupDepthStencil(); for (uint32_t i = 0; i < frameBuffers.size(); i++) { vkDestroyFramebuffer(device, frameBuffers[i], nullptr); } @@ -2200,7 +2200,7 @@ void VulkanExampleBase::initSwapchain() { #if defined(_WIN32) swapChain.initSurface(windowInstance, window); -#elif defined(VK_USE_PLATFORM_ANDROID_KHR) +#elif defined(VK_USE_PLATFORM_ANDROID_KHR) swapChain.initSurface(androidApp->window); #elif (defined(VK_USE_PLATFORM_IOS_MVK) || defined(VK_USE_PLATFORM_MACOS_MVK)) swapChain.initSurface(view); diff --git a/data/shaders/base/generate-spirv.bat b/data/shaders/glsl/base/generate-spirv.bat similarity index 100% rename from data/shaders/base/generate-spirv.bat rename to data/shaders/glsl/base/generate-spirv.bat diff --git a/data/shaders/base/textoverlay.frag b/data/shaders/glsl/base/textoverlay.frag similarity index 100% rename from data/shaders/base/textoverlay.frag rename to data/shaders/glsl/base/textoverlay.frag diff --git a/data/shaders/base/textoverlay.frag.spv b/data/shaders/glsl/base/textoverlay.frag.spv similarity index 100% rename from data/shaders/base/textoverlay.frag.spv rename to data/shaders/glsl/base/textoverlay.frag.spv diff --git a/data/shaders/base/textoverlay.vert b/data/shaders/glsl/base/textoverlay.vert similarity index 100% rename from data/shaders/base/textoverlay.vert rename to data/shaders/glsl/base/textoverlay.vert diff --git a/data/shaders/base/textoverlay.vert.spv b/data/shaders/glsl/base/textoverlay.vert.spv similarity index 100% rename from data/shaders/base/textoverlay.vert.spv rename to data/shaders/glsl/base/textoverlay.vert.spv diff --git a/data/shaders/base/uioverlay.frag b/data/shaders/glsl/base/uioverlay.frag similarity index 100% rename from data/shaders/base/uioverlay.frag rename to data/shaders/glsl/base/uioverlay.frag diff --git a/data/shaders/base/uioverlay.frag.spv b/data/shaders/glsl/base/uioverlay.frag.spv similarity index 100% rename from data/shaders/base/uioverlay.frag.spv rename to data/shaders/glsl/base/uioverlay.frag.spv diff --git a/data/shaders/base/uioverlay.vert b/data/shaders/glsl/base/uioverlay.vert similarity index 100% rename from data/shaders/base/uioverlay.vert rename to data/shaders/glsl/base/uioverlay.vert diff --git a/data/shaders/base/uioverlay.vert.spv b/data/shaders/glsl/base/uioverlay.vert.spv similarity index 100% rename from data/shaders/base/uioverlay.vert.spv rename to data/shaders/glsl/base/uioverlay.vert.spv diff --git a/data/shaders/bloom/colorpass.frag b/data/shaders/glsl/bloom/colorpass.frag similarity index 100% rename from data/shaders/bloom/colorpass.frag rename to data/shaders/glsl/bloom/colorpass.frag diff --git a/data/shaders/bloom/colorpass.frag.spv b/data/shaders/glsl/bloom/colorpass.frag.spv similarity index 100% rename from data/shaders/bloom/colorpass.frag.spv rename to data/shaders/glsl/bloom/colorpass.frag.spv diff --git a/data/shaders/bloom/colorpass.vert b/data/shaders/glsl/bloom/colorpass.vert similarity index 100% rename from data/shaders/bloom/colorpass.vert rename to data/shaders/glsl/bloom/colorpass.vert diff --git a/data/shaders/bloom/colorpass.vert.spv b/data/shaders/glsl/bloom/colorpass.vert.spv similarity index 100% rename from data/shaders/bloom/colorpass.vert.spv rename to data/shaders/glsl/bloom/colorpass.vert.spv diff --git a/data/shaders/bloom/gaussblur.frag b/data/shaders/glsl/bloom/gaussblur.frag similarity index 100% rename from data/shaders/bloom/gaussblur.frag rename to data/shaders/glsl/bloom/gaussblur.frag diff --git a/data/shaders/bloom/gaussblur.frag.spv b/data/shaders/glsl/bloom/gaussblur.frag.spv similarity index 100% rename from data/shaders/bloom/gaussblur.frag.spv rename to data/shaders/glsl/bloom/gaussblur.frag.spv diff --git a/data/shaders/bloom/gaussblur.vert b/data/shaders/glsl/bloom/gaussblur.vert similarity index 100% rename from data/shaders/bloom/gaussblur.vert rename to data/shaders/glsl/bloom/gaussblur.vert diff --git a/data/shaders/bloom/gaussblur.vert.spv b/data/shaders/glsl/bloom/gaussblur.vert.spv similarity index 100% rename from data/shaders/bloom/gaussblur.vert.spv rename to data/shaders/glsl/bloom/gaussblur.vert.spv diff --git a/data/shaders/bloom/generate-spirv.bat b/data/shaders/glsl/bloom/generate-spirv.bat similarity index 100% rename from data/shaders/bloom/generate-spirv.bat rename to data/shaders/glsl/bloom/generate-spirv.bat diff --git a/data/shaders/bloom/phongpass.frag b/data/shaders/glsl/bloom/phongpass.frag similarity index 100% rename from data/shaders/bloom/phongpass.frag rename to data/shaders/glsl/bloom/phongpass.frag diff --git a/data/shaders/bloom/phongpass.frag.spv b/data/shaders/glsl/bloom/phongpass.frag.spv similarity index 100% rename from data/shaders/bloom/phongpass.frag.spv rename to data/shaders/glsl/bloom/phongpass.frag.spv diff --git a/data/shaders/bloom/phongpass.vert b/data/shaders/glsl/bloom/phongpass.vert similarity index 100% rename from data/shaders/bloom/phongpass.vert rename to data/shaders/glsl/bloom/phongpass.vert diff --git a/data/shaders/bloom/phongpass.vert.spv b/data/shaders/glsl/bloom/phongpass.vert.spv similarity index 100% rename from data/shaders/bloom/phongpass.vert.spv rename to data/shaders/glsl/bloom/phongpass.vert.spv diff --git a/data/shaders/bloom/skybox.frag b/data/shaders/glsl/bloom/skybox.frag similarity index 100% rename from data/shaders/bloom/skybox.frag rename to data/shaders/glsl/bloom/skybox.frag diff --git a/data/shaders/bloom/skybox.frag.spv b/data/shaders/glsl/bloom/skybox.frag.spv similarity index 100% rename from data/shaders/bloom/skybox.frag.spv rename to data/shaders/glsl/bloom/skybox.frag.spv diff --git a/data/shaders/bloom/skybox.vert b/data/shaders/glsl/bloom/skybox.vert similarity index 100% rename from data/shaders/bloom/skybox.vert rename to data/shaders/glsl/bloom/skybox.vert diff --git a/data/shaders/bloom/skybox.vert.spv b/data/shaders/glsl/bloom/skybox.vert.spv similarity index 100% rename from data/shaders/bloom/skybox.vert.spv rename to data/shaders/glsl/bloom/skybox.vert.spv diff --git a/data/shaders/compileshaders.py b/data/shaders/glsl/compileshaders.py similarity index 100% rename from data/shaders/compileshaders.py rename to data/shaders/glsl/compileshaders.py diff --git a/data/shaders/computecloth/cloth.comp b/data/shaders/glsl/computecloth/cloth.comp similarity index 100% rename from data/shaders/computecloth/cloth.comp rename to data/shaders/glsl/computecloth/cloth.comp diff --git a/data/shaders/computecloth/cloth.comp.spv b/data/shaders/glsl/computecloth/cloth.comp.spv similarity index 100% rename from data/shaders/computecloth/cloth.comp.spv rename to data/shaders/glsl/computecloth/cloth.comp.spv diff --git a/data/shaders/computecloth/cloth.frag b/data/shaders/glsl/computecloth/cloth.frag similarity index 100% rename from data/shaders/computecloth/cloth.frag rename to data/shaders/glsl/computecloth/cloth.frag diff --git a/data/shaders/computecloth/cloth.frag.spv b/data/shaders/glsl/computecloth/cloth.frag.spv similarity index 100% rename from data/shaders/computecloth/cloth.frag.spv rename to data/shaders/glsl/computecloth/cloth.frag.spv diff --git a/data/shaders/computecloth/cloth.vert b/data/shaders/glsl/computecloth/cloth.vert similarity index 100% rename from data/shaders/computecloth/cloth.vert rename to data/shaders/glsl/computecloth/cloth.vert diff --git a/data/shaders/computecloth/cloth.vert.spv b/data/shaders/glsl/computecloth/cloth.vert.spv similarity index 100% rename from data/shaders/computecloth/cloth.vert.spv rename to data/shaders/glsl/computecloth/cloth.vert.spv diff --git a/data/shaders/computecloth/sphere.frag b/data/shaders/glsl/computecloth/sphere.frag similarity index 100% rename from data/shaders/computecloth/sphere.frag rename to data/shaders/glsl/computecloth/sphere.frag diff --git a/data/shaders/computecloth/sphere.frag.spv b/data/shaders/glsl/computecloth/sphere.frag.spv similarity index 100% rename from data/shaders/computecloth/sphere.frag.spv rename to data/shaders/glsl/computecloth/sphere.frag.spv diff --git a/data/shaders/computecloth/sphere.vert b/data/shaders/glsl/computecloth/sphere.vert similarity index 100% rename from data/shaders/computecloth/sphere.vert rename to data/shaders/glsl/computecloth/sphere.vert diff --git a/data/shaders/computecloth/sphere.vert.spv b/data/shaders/glsl/computecloth/sphere.vert.spv similarity index 100% rename from data/shaders/computecloth/sphere.vert.spv rename to data/shaders/glsl/computecloth/sphere.vert.spv diff --git a/data/shaders/computecullandlod/cull.comp b/data/shaders/glsl/computecullandlod/cull.comp similarity index 100% rename from data/shaders/computecullandlod/cull.comp rename to data/shaders/glsl/computecullandlod/cull.comp diff --git a/data/shaders/computecullandlod/cull.comp.spv b/data/shaders/glsl/computecullandlod/cull.comp.spv similarity index 100% rename from data/shaders/computecullandlod/cull.comp.spv rename to data/shaders/glsl/computecullandlod/cull.comp.spv diff --git a/data/shaders/computecullandlod/indirectdraw.frag b/data/shaders/glsl/computecullandlod/indirectdraw.frag similarity index 100% rename from data/shaders/computecullandlod/indirectdraw.frag rename to data/shaders/glsl/computecullandlod/indirectdraw.frag diff --git a/data/shaders/computecullandlod/indirectdraw.frag.spv b/data/shaders/glsl/computecullandlod/indirectdraw.frag.spv similarity index 100% rename from data/shaders/computecullandlod/indirectdraw.frag.spv rename to data/shaders/glsl/computecullandlod/indirectdraw.frag.spv diff --git a/data/shaders/computecullandlod/indirectdraw.vert b/data/shaders/glsl/computecullandlod/indirectdraw.vert similarity index 100% rename from data/shaders/computecullandlod/indirectdraw.vert rename to data/shaders/glsl/computecullandlod/indirectdraw.vert diff --git a/data/shaders/computecullandlod/indirectdraw.vert.spv b/data/shaders/glsl/computecullandlod/indirectdraw.vert.spv similarity index 100% rename from data/shaders/computecullandlod/indirectdraw.vert.spv rename to data/shaders/glsl/computecullandlod/indirectdraw.vert.spv diff --git a/data/shaders/computeheadless/headless.comp b/data/shaders/glsl/computeheadless/headless.comp similarity index 100% rename from data/shaders/computeheadless/headless.comp rename to data/shaders/glsl/computeheadless/headless.comp diff --git a/data/shaders/computeheadless/headless.comp.spv b/data/shaders/glsl/computeheadless/headless.comp.spv similarity index 100% rename from data/shaders/computeheadless/headless.comp.spv rename to data/shaders/glsl/computeheadless/headless.comp.spv diff --git a/data/shaders/computenbody/particle.frag b/data/shaders/glsl/computenbody/particle.frag similarity index 100% rename from data/shaders/computenbody/particle.frag rename to data/shaders/glsl/computenbody/particle.frag diff --git a/data/shaders/computenbody/particle.frag.spv b/data/shaders/glsl/computenbody/particle.frag.spv similarity index 100% rename from data/shaders/computenbody/particle.frag.spv rename to data/shaders/glsl/computenbody/particle.frag.spv diff --git a/data/shaders/computenbody/particle.vert b/data/shaders/glsl/computenbody/particle.vert similarity index 100% rename from data/shaders/computenbody/particle.vert rename to data/shaders/glsl/computenbody/particle.vert diff --git a/data/shaders/computenbody/particle.vert.spv b/data/shaders/glsl/computenbody/particle.vert.spv similarity index 100% rename from data/shaders/computenbody/particle.vert.spv rename to data/shaders/glsl/computenbody/particle.vert.spv diff --git a/data/shaders/computenbody/particle_calculate.comp b/data/shaders/glsl/computenbody/particle_calculate.comp similarity index 100% rename from data/shaders/computenbody/particle_calculate.comp rename to data/shaders/glsl/computenbody/particle_calculate.comp diff --git a/data/shaders/computenbody/particle_calculate.comp.spv b/data/shaders/glsl/computenbody/particle_calculate.comp.spv similarity index 100% rename from data/shaders/computenbody/particle_calculate.comp.spv rename to data/shaders/glsl/computenbody/particle_calculate.comp.spv diff --git a/data/shaders/computenbody/particle_integrate.comp b/data/shaders/glsl/computenbody/particle_integrate.comp similarity index 100% rename from data/shaders/computenbody/particle_integrate.comp rename to data/shaders/glsl/computenbody/particle_integrate.comp diff --git a/data/shaders/computenbody/particle_integrate.comp.spv b/data/shaders/glsl/computenbody/particle_integrate.comp.spv similarity index 100% rename from data/shaders/computenbody/particle_integrate.comp.spv rename to data/shaders/glsl/computenbody/particle_integrate.comp.spv diff --git a/data/shaders/computeparticles/generate-spirv.bat b/data/shaders/glsl/computeparticles/generate-spirv.bat similarity index 100% rename from data/shaders/computeparticles/generate-spirv.bat rename to data/shaders/glsl/computeparticles/generate-spirv.bat diff --git a/data/shaders/computeparticles/particle.comp b/data/shaders/glsl/computeparticles/particle.comp similarity index 100% rename from data/shaders/computeparticles/particle.comp rename to data/shaders/glsl/computeparticles/particle.comp diff --git a/data/shaders/computeparticles/particle.comp.spv b/data/shaders/glsl/computeparticles/particle.comp.spv similarity index 100% rename from data/shaders/computeparticles/particle.comp.spv rename to data/shaders/glsl/computeparticles/particle.comp.spv diff --git a/data/shaders/computeparticles/particle.frag b/data/shaders/glsl/computeparticles/particle.frag similarity index 100% rename from data/shaders/computeparticles/particle.frag rename to data/shaders/glsl/computeparticles/particle.frag diff --git a/data/shaders/computeparticles/particle.frag.spv b/data/shaders/glsl/computeparticles/particle.frag.spv similarity index 100% rename from data/shaders/computeparticles/particle.frag.spv rename to data/shaders/glsl/computeparticles/particle.frag.spv diff --git a/data/shaders/computeparticles/particle.vert b/data/shaders/glsl/computeparticles/particle.vert similarity index 100% rename from data/shaders/computeparticles/particle.vert rename to data/shaders/glsl/computeparticles/particle.vert diff --git a/data/shaders/computeparticles/particle.vert.spv b/data/shaders/glsl/computeparticles/particle.vert.spv similarity index 100% rename from data/shaders/computeparticles/particle.vert.spv rename to data/shaders/glsl/computeparticles/particle.vert.spv diff --git a/data/shaders/computeraytracing/generate-spirv.bat b/data/shaders/glsl/computeraytracing/generate-spirv.bat similarity index 100% rename from data/shaders/computeraytracing/generate-spirv.bat rename to data/shaders/glsl/computeraytracing/generate-spirv.bat diff --git a/data/shaders/computeraytracing/raytracing.comp b/data/shaders/glsl/computeraytracing/raytracing.comp similarity index 100% rename from data/shaders/computeraytracing/raytracing.comp rename to data/shaders/glsl/computeraytracing/raytracing.comp diff --git a/data/shaders/computeraytracing/raytracing.comp.spv b/data/shaders/glsl/computeraytracing/raytracing.comp.spv similarity index 100% rename from data/shaders/computeraytracing/raytracing.comp.spv rename to data/shaders/glsl/computeraytracing/raytracing.comp.spv diff --git a/data/shaders/computeraytracing/texture.frag b/data/shaders/glsl/computeraytracing/texture.frag similarity index 100% rename from data/shaders/computeraytracing/texture.frag rename to data/shaders/glsl/computeraytracing/texture.frag diff --git a/data/shaders/computeraytracing/texture.frag.spv b/data/shaders/glsl/computeraytracing/texture.frag.spv similarity index 100% rename from data/shaders/computeraytracing/texture.frag.spv rename to data/shaders/glsl/computeraytracing/texture.frag.spv diff --git a/data/shaders/computeraytracing/texture.vert b/data/shaders/glsl/computeraytracing/texture.vert similarity index 100% rename from data/shaders/computeraytracing/texture.vert rename to data/shaders/glsl/computeraytracing/texture.vert diff --git a/data/shaders/computeraytracing/texture.vert.spv b/data/shaders/glsl/computeraytracing/texture.vert.spv similarity index 100% rename from data/shaders/computeraytracing/texture.vert.spv rename to data/shaders/glsl/computeraytracing/texture.vert.spv diff --git a/data/shaders/computeshader/edgedetect.comp b/data/shaders/glsl/computeshader/edgedetect.comp similarity index 100% rename from data/shaders/computeshader/edgedetect.comp rename to data/shaders/glsl/computeshader/edgedetect.comp diff --git a/data/shaders/computeshader/edgedetect.comp.spv b/data/shaders/glsl/computeshader/edgedetect.comp.spv similarity index 100% rename from data/shaders/computeshader/edgedetect.comp.spv rename to data/shaders/glsl/computeshader/edgedetect.comp.spv diff --git a/data/shaders/computeshader/emboss.comp b/data/shaders/glsl/computeshader/emboss.comp similarity index 100% rename from data/shaders/computeshader/emboss.comp rename to data/shaders/glsl/computeshader/emboss.comp diff --git a/data/shaders/computeshader/emboss.comp.spv b/data/shaders/glsl/computeshader/emboss.comp.spv similarity index 100% rename from data/shaders/computeshader/emboss.comp.spv rename to data/shaders/glsl/computeshader/emboss.comp.spv diff --git a/data/shaders/computeshader/generate-spirv.bat b/data/shaders/glsl/computeshader/generate-spirv.bat similarity index 100% rename from data/shaders/computeshader/generate-spirv.bat rename to data/shaders/glsl/computeshader/generate-spirv.bat diff --git a/data/shaders/computeshader/sharpen.comp b/data/shaders/glsl/computeshader/sharpen.comp similarity index 100% rename from data/shaders/computeshader/sharpen.comp rename to data/shaders/glsl/computeshader/sharpen.comp diff --git a/data/shaders/computeshader/sharpen.comp.spv b/data/shaders/glsl/computeshader/sharpen.comp.spv similarity index 100% rename from data/shaders/computeshader/sharpen.comp.spv rename to data/shaders/glsl/computeshader/sharpen.comp.spv diff --git a/data/shaders/computeshader/texture.frag b/data/shaders/glsl/computeshader/texture.frag similarity index 100% rename from data/shaders/computeshader/texture.frag rename to data/shaders/glsl/computeshader/texture.frag diff --git a/data/shaders/computeshader/texture.frag.spv b/data/shaders/glsl/computeshader/texture.frag.spv similarity index 100% rename from data/shaders/computeshader/texture.frag.spv rename to data/shaders/glsl/computeshader/texture.frag.spv diff --git a/data/shaders/computeshader/texture.vert b/data/shaders/glsl/computeshader/texture.vert similarity index 100% rename from data/shaders/computeshader/texture.vert rename to data/shaders/glsl/computeshader/texture.vert diff --git a/data/shaders/computeshader/texture.vert.spv b/data/shaders/glsl/computeshader/texture.vert.spv similarity index 100% rename from data/shaders/computeshader/texture.vert.spv rename to data/shaders/glsl/computeshader/texture.vert.spv diff --git a/data/shaders/conditionalrender/model.frag b/data/shaders/glsl/conditionalrender/model.frag similarity index 100% rename from data/shaders/conditionalrender/model.frag rename to data/shaders/glsl/conditionalrender/model.frag diff --git a/data/shaders/conditionalrender/model.frag.spv b/data/shaders/glsl/conditionalrender/model.frag.spv similarity index 100% rename from data/shaders/conditionalrender/model.frag.spv rename to data/shaders/glsl/conditionalrender/model.frag.spv diff --git a/data/shaders/conditionalrender/model.vert b/data/shaders/glsl/conditionalrender/model.vert similarity index 100% rename from data/shaders/conditionalrender/model.vert rename to data/shaders/glsl/conditionalrender/model.vert diff --git a/data/shaders/conditionalrender/model.vert.spv b/data/shaders/glsl/conditionalrender/model.vert.spv similarity index 100% rename from data/shaders/conditionalrender/model.vert.spv rename to data/shaders/glsl/conditionalrender/model.vert.spv diff --git a/data/shaders/conservativeraster/fullscreen.frag b/data/shaders/glsl/conservativeraster/fullscreen.frag similarity index 100% rename from data/shaders/conservativeraster/fullscreen.frag rename to data/shaders/glsl/conservativeraster/fullscreen.frag diff --git a/data/shaders/conservativeraster/fullscreen.frag.spv b/data/shaders/glsl/conservativeraster/fullscreen.frag.spv similarity index 100% rename from data/shaders/conservativeraster/fullscreen.frag.spv rename to data/shaders/glsl/conservativeraster/fullscreen.frag.spv diff --git a/data/shaders/conservativeraster/fullscreen.vert b/data/shaders/glsl/conservativeraster/fullscreen.vert similarity index 100% rename from data/shaders/conservativeraster/fullscreen.vert rename to data/shaders/glsl/conservativeraster/fullscreen.vert diff --git a/data/shaders/conservativeraster/fullscreen.vert.spv b/data/shaders/glsl/conservativeraster/fullscreen.vert.spv similarity index 100% rename from data/shaders/conservativeraster/fullscreen.vert.spv rename to data/shaders/glsl/conservativeraster/fullscreen.vert.spv diff --git a/data/shaders/conservativeraster/triangle.frag b/data/shaders/glsl/conservativeraster/triangle.frag similarity index 100% rename from data/shaders/conservativeraster/triangle.frag rename to data/shaders/glsl/conservativeraster/triangle.frag diff --git a/data/shaders/conservativeraster/triangle.frag.spv b/data/shaders/glsl/conservativeraster/triangle.frag.spv similarity index 100% rename from data/shaders/conservativeraster/triangle.frag.spv rename to data/shaders/glsl/conservativeraster/triangle.frag.spv diff --git a/data/shaders/conservativeraster/triangle.vert b/data/shaders/glsl/conservativeraster/triangle.vert similarity index 100% rename from data/shaders/conservativeraster/triangle.vert rename to data/shaders/glsl/conservativeraster/triangle.vert diff --git a/data/shaders/conservativeraster/triangle.vert.spv b/data/shaders/glsl/conservativeraster/triangle.vert.spv similarity index 100% rename from data/shaders/conservativeraster/triangle.vert.spv rename to data/shaders/glsl/conservativeraster/triangle.vert.spv diff --git a/data/shaders/conservativeraster/triangleoverlay.frag b/data/shaders/glsl/conservativeraster/triangleoverlay.frag similarity index 100% rename from data/shaders/conservativeraster/triangleoverlay.frag rename to data/shaders/glsl/conservativeraster/triangleoverlay.frag diff --git a/data/shaders/conservativeraster/triangleoverlay.frag.spv b/data/shaders/glsl/conservativeraster/triangleoverlay.frag.spv similarity index 100% rename from data/shaders/conservativeraster/triangleoverlay.frag.spv rename to data/shaders/glsl/conservativeraster/triangleoverlay.frag.spv diff --git a/data/shaders/debugmarker/colorpass.frag b/data/shaders/glsl/debugmarker/colorpass.frag similarity index 100% rename from data/shaders/debugmarker/colorpass.frag rename to data/shaders/glsl/debugmarker/colorpass.frag diff --git a/data/shaders/debugmarker/colorpass.frag.spv b/data/shaders/glsl/debugmarker/colorpass.frag.spv similarity index 100% rename from data/shaders/debugmarker/colorpass.frag.spv rename to data/shaders/glsl/debugmarker/colorpass.frag.spv diff --git a/data/shaders/debugmarker/colorpass.vert b/data/shaders/glsl/debugmarker/colorpass.vert similarity index 100% rename from data/shaders/debugmarker/colorpass.vert rename to data/shaders/glsl/debugmarker/colorpass.vert diff --git a/data/shaders/debugmarker/colorpass.vert.spv b/data/shaders/glsl/debugmarker/colorpass.vert.spv similarity index 100% rename from data/shaders/debugmarker/colorpass.vert.spv rename to data/shaders/glsl/debugmarker/colorpass.vert.spv diff --git a/data/shaders/debugmarker/generate-spirv.bat b/data/shaders/glsl/debugmarker/generate-spirv.bat similarity index 100% rename from data/shaders/debugmarker/generate-spirv.bat rename to data/shaders/glsl/debugmarker/generate-spirv.bat diff --git a/data/shaders/debugmarker/postprocess.frag b/data/shaders/glsl/debugmarker/postprocess.frag similarity index 100% rename from data/shaders/debugmarker/postprocess.frag rename to data/shaders/glsl/debugmarker/postprocess.frag diff --git a/data/shaders/debugmarker/postprocess.frag.spv b/data/shaders/glsl/debugmarker/postprocess.frag.spv similarity index 100% rename from data/shaders/debugmarker/postprocess.frag.spv rename to data/shaders/glsl/debugmarker/postprocess.frag.spv diff --git a/data/shaders/debugmarker/postprocess.vert b/data/shaders/glsl/debugmarker/postprocess.vert similarity index 100% rename from data/shaders/debugmarker/postprocess.vert rename to data/shaders/glsl/debugmarker/postprocess.vert diff --git a/data/shaders/debugmarker/postprocess.vert.spv b/data/shaders/glsl/debugmarker/postprocess.vert.spv similarity index 100% rename from data/shaders/debugmarker/postprocess.vert.spv rename to data/shaders/glsl/debugmarker/postprocess.vert.spv diff --git a/data/shaders/debugmarker/toon.frag b/data/shaders/glsl/debugmarker/toon.frag similarity index 100% rename from data/shaders/debugmarker/toon.frag rename to data/shaders/glsl/debugmarker/toon.frag diff --git a/data/shaders/debugmarker/toon.frag.spv b/data/shaders/glsl/debugmarker/toon.frag.spv similarity index 100% rename from data/shaders/debugmarker/toon.frag.spv rename to data/shaders/glsl/debugmarker/toon.frag.spv diff --git a/data/shaders/debugmarker/toon.vert b/data/shaders/glsl/debugmarker/toon.vert similarity index 100% rename from data/shaders/debugmarker/toon.vert rename to data/shaders/glsl/debugmarker/toon.vert diff --git a/data/shaders/debugmarker/toon.vert.spv b/data/shaders/glsl/debugmarker/toon.vert.spv similarity index 100% rename from data/shaders/debugmarker/toon.vert.spv rename to data/shaders/glsl/debugmarker/toon.vert.spv diff --git a/data/shaders/deferred/debug.frag b/data/shaders/glsl/deferred/debug.frag similarity index 100% rename from data/shaders/deferred/debug.frag rename to data/shaders/glsl/deferred/debug.frag diff --git a/data/shaders/deferred/debug.frag.spv b/data/shaders/glsl/deferred/debug.frag.spv similarity index 100% rename from data/shaders/deferred/debug.frag.spv rename to data/shaders/glsl/deferred/debug.frag.spv diff --git a/data/shaders/deferred/debug.vert b/data/shaders/glsl/deferred/debug.vert similarity index 100% rename from data/shaders/deferred/debug.vert rename to data/shaders/glsl/deferred/debug.vert diff --git a/data/shaders/deferred/debug.vert.spv b/data/shaders/glsl/deferred/debug.vert.spv similarity index 100% rename from data/shaders/deferred/debug.vert.spv rename to data/shaders/glsl/deferred/debug.vert.spv diff --git a/data/shaders/deferred/deferred.frag b/data/shaders/glsl/deferred/deferred.frag similarity index 100% rename from data/shaders/deferred/deferred.frag rename to data/shaders/glsl/deferred/deferred.frag diff --git a/data/shaders/deferred/deferred.frag.spv b/data/shaders/glsl/deferred/deferred.frag.spv similarity index 100% rename from data/shaders/deferred/deferred.frag.spv rename to data/shaders/glsl/deferred/deferred.frag.spv diff --git a/data/shaders/deferred/deferred.vert b/data/shaders/glsl/deferred/deferred.vert similarity index 100% rename from data/shaders/deferred/deferred.vert rename to data/shaders/glsl/deferred/deferred.vert diff --git a/data/shaders/deferred/deferred.vert.spv b/data/shaders/glsl/deferred/deferred.vert.spv similarity index 100% rename from data/shaders/deferred/deferred.vert.spv rename to data/shaders/glsl/deferred/deferred.vert.spv diff --git a/data/shaders/deferred/generate-spirv.bat b/data/shaders/glsl/deferred/generate-spirv.bat similarity index 100% rename from data/shaders/deferred/generate-spirv.bat rename to data/shaders/glsl/deferred/generate-spirv.bat diff --git a/data/shaders/deferred/mrt.frag b/data/shaders/glsl/deferred/mrt.frag similarity index 100% rename from data/shaders/deferred/mrt.frag rename to data/shaders/glsl/deferred/mrt.frag diff --git a/data/shaders/deferred/mrt.frag.spv b/data/shaders/glsl/deferred/mrt.frag.spv similarity index 100% rename from data/shaders/deferred/mrt.frag.spv rename to data/shaders/glsl/deferred/mrt.frag.spv diff --git a/data/shaders/deferred/mrt.vert b/data/shaders/glsl/deferred/mrt.vert similarity index 100% rename from data/shaders/deferred/mrt.vert rename to data/shaders/glsl/deferred/mrt.vert diff --git a/data/shaders/deferred/mrt.vert.spv b/data/shaders/glsl/deferred/mrt.vert.spv similarity index 100% rename from data/shaders/deferred/mrt.vert.spv rename to data/shaders/glsl/deferred/mrt.vert.spv diff --git a/data/shaders/deferredmultisampling/debug.frag b/data/shaders/glsl/deferredmultisampling/debug.frag similarity index 100% rename from data/shaders/deferredmultisampling/debug.frag rename to data/shaders/glsl/deferredmultisampling/debug.frag diff --git a/data/shaders/deferredmultisampling/debug.frag.spv b/data/shaders/glsl/deferredmultisampling/debug.frag.spv similarity index 100% rename from data/shaders/deferredmultisampling/debug.frag.spv rename to data/shaders/glsl/deferredmultisampling/debug.frag.spv diff --git a/data/shaders/deferredmultisampling/debug.vert b/data/shaders/glsl/deferredmultisampling/debug.vert similarity index 100% rename from data/shaders/deferredmultisampling/debug.vert rename to data/shaders/glsl/deferredmultisampling/debug.vert diff --git a/data/shaders/deferredmultisampling/debug.vert.spv b/data/shaders/glsl/deferredmultisampling/debug.vert.spv similarity index 100% rename from data/shaders/deferredmultisampling/debug.vert.spv rename to data/shaders/glsl/deferredmultisampling/debug.vert.spv diff --git a/data/shaders/deferredmultisampling/deferred.frag b/data/shaders/glsl/deferredmultisampling/deferred.frag similarity index 100% rename from data/shaders/deferredmultisampling/deferred.frag rename to data/shaders/glsl/deferredmultisampling/deferred.frag diff --git a/data/shaders/deferredmultisampling/deferred.frag.spv b/data/shaders/glsl/deferredmultisampling/deferred.frag.spv similarity index 100% rename from data/shaders/deferredmultisampling/deferred.frag.spv rename to data/shaders/glsl/deferredmultisampling/deferred.frag.spv diff --git a/data/shaders/deferredmultisampling/deferred.vert b/data/shaders/glsl/deferredmultisampling/deferred.vert similarity index 100% rename from data/shaders/deferredmultisampling/deferred.vert rename to data/shaders/glsl/deferredmultisampling/deferred.vert diff --git a/data/shaders/deferredmultisampling/deferred.vert.spv b/data/shaders/glsl/deferredmultisampling/deferred.vert.spv similarity index 100% rename from data/shaders/deferredmultisampling/deferred.vert.spv rename to data/shaders/glsl/deferredmultisampling/deferred.vert.spv diff --git a/data/shaders/deferredmultisampling/mrt.frag b/data/shaders/glsl/deferredmultisampling/mrt.frag similarity index 100% rename from data/shaders/deferredmultisampling/mrt.frag rename to data/shaders/glsl/deferredmultisampling/mrt.frag diff --git a/data/shaders/deferredmultisampling/mrt.frag.spv b/data/shaders/glsl/deferredmultisampling/mrt.frag.spv similarity index 100% rename from data/shaders/deferredmultisampling/mrt.frag.spv rename to data/shaders/glsl/deferredmultisampling/mrt.frag.spv diff --git a/data/shaders/deferredmultisampling/mrt.vert b/data/shaders/glsl/deferredmultisampling/mrt.vert similarity index 100% rename from data/shaders/deferredmultisampling/mrt.vert rename to data/shaders/glsl/deferredmultisampling/mrt.vert diff --git a/data/shaders/deferredmultisampling/mrt.vert.spv b/data/shaders/glsl/deferredmultisampling/mrt.vert.spv similarity index 100% rename from data/shaders/deferredmultisampling/mrt.vert.spv rename to data/shaders/glsl/deferredmultisampling/mrt.vert.spv diff --git a/data/shaders/deferredshadows/debug.frag b/data/shaders/glsl/deferredshadows/debug.frag similarity index 100% rename from data/shaders/deferredshadows/debug.frag rename to data/shaders/glsl/deferredshadows/debug.frag diff --git a/data/shaders/deferredshadows/debug.frag.spv b/data/shaders/glsl/deferredshadows/debug.frag.spv similarity index 100% rename from data/shaders/deferredshadows/debug.frag.spv rename to data/shaders/glsl/deferredshadows/debug.frag.spv diff --git a/data/shaders/deferredshadows/debug.vert b/data/shaders/glsl/deferredshadows/debug.vert similarity index 100% rename from data/shaders/deferredshadows/debug.vert rename to data/shaders/glsl/deferredshadows/debug.vert diff --git a/data/shaders/deferredshadows/debug.vert.spv b/data/shaders/glsl/deferredshadows/debug.vert.spv similarity index 100% rename from data/shaders/deferredshadows/debug.vert.spv rename to data/shaders/glsl/deferredshadows/debug.vert.spv diff --git a/data/shaders/deferredshadows/deferred.frag b/data/shaders/glsl/deferredshadows/deferred.frag similarity index 100% rename from data/shaders/deferredshadows/deferred.frag rename to data/shaders/glsl/deferredshadows/deferred.frag diff --git a/data/shaders/deferredshadows/deferred.frag.spv b/data/shaders/glsl/deferredshadows/deferred.frag.spv similarity index 100% rename from data/shaders/deferredshadows/deferred.frag.spv rename to data/shaders/glsl/deferredshadows/deferred.frag.spv diff --git a/data/shaders/deferredshadows/deferred.vert b/data/shaders/glsl/deferredshadows/deferred.vert similarity index 100% rename from data/shaders/deferredshadows/deferred.vert rename to data/shaders/glsl/deferredshadows/deferred.vert diff --git a/data/shaders/deferredshadows/deferred.vert.spv b/data/shaders/glsl/deferredshadows/deferred.vert.spv similarity index 100% rename from data/shaders/deferredshadows/deferred.vert.spv rename to data/shaders/glsl/deferredshadows/deferred.vert.spv diff --git a/data/shaders/deferredshadows/generate-spirv.bat b/data/shaders/glsl/deferredshadows/generate-spirv.bat similarity index 100% rename from data/shaders/deferredshadows/generate-spirv.bat rename to data/shaders/glsl/deferredshadows/generate-spirv.bat diff --git a/data/shaders/deferredshadows/geom.spv b/data/shaders/glsl/deferredshadows/geom.spv similarity index 100% rename from data/shaders/deferredshadows/geom.spv rename to data/shaders/glsl/deferredshadows/geom.spv diff --git a/data/shaders/deferredshadows/mrt.frag b/data/shaders/glsl/deferredshadows/mrt.frag similarity index 100% rename from data/shaders/deferredshadows/mrt.frag rename to data/shaders/glsl/deferredshadows/mrt.frag diff --git a/data/shaders/deferredshadows/mrt.frag.spv b/data/shaders/glsl/deferredshadows/mrt.frag.spv similarity index 100% rename from data/shaders/deferredshadows/mrt.frag.spv rename to data/shaders/glsl/deferredshadows/mrt.frag.spv diff --git a/data/shaders/deferredshadows/mrt.vert b/data/shaders/glsl/deferredshadows/mrt.vert similarity index 100% rename from data/shaders/deferredshadows/mrt.vert rename to data/shaders/glsl/deferredshadows/mrt.vert diff --git a/data/shaders/deferredshadows/mrt.vert.spv b/data/shaders/glsl/deferredshadows/mrt.vert.spv similarity index 100% rename from data/shaders/deferredshadows/mrt.vert.spv rename to data/shaders/glsl/deferredshadows/mrt.vert.spv diff --git a/data/shaders/deferredshadows/shadow.geom b/data/shaders/glsl/deferredshadows/shadow.geom similarity index 100% rename from data/shaders/deferredshadows/shadow.geom rename to data/shaders/glsl/deferredshadows/shadow.geom diff --git a/data/shaders/deferredshadows/shadow.geom.spv b/data/shaders/glsl/deferredshadows/shadow.geom.spv similarity index 100% rename from data/shaders/deferredshadows/shadow.geom.spv rename to data/shaders/glsl/deferredshadows/shadow.geom.spv diff --git a/data/shaders/deferredshadows/shadow.vert b/data/shaders/glsl/deferredshadows/shadow.vert similarity index 100% rename from data/shaders/deferredshadows/shadow.vert rename to data/shaders/glsl/deferredshadows/shadow.vert diff --git a/data/shaders/deferredshadows/shadow.vert.spv b/data/shaders/glsl/deferredshadows/shadow.vert.spv similarity index 100% rename from data/shaders/deferredshadows/shadow.vert.spv rename to data/shaders/glsl/deferredshadows/shadow.vert.spv diff --git a/data/shaders/descriptorindexing/descriptorindexing.frag b/data/shaders/glsl/descriptorindexing/descriptorindexing.frag similarity index 100% rename from data/shaders/descriptorindexing/descriptorindexing.frag rename to data/shaders/glsl/descriptorindexing/descriptorindexing.frag diff --git a/data/shaders/descriptorindexing/descriptorindexing.frag.spv b/data/shaders/glsl/descriptorindexing/descriptorindexing.frag.spv similarity index 100% rename from data/shaders/descriptorindexing/descriptorindexing.frag.spv rename to data/shaders/glsl/descriptorindexing/descriptorindexing.frag.spv diff --git a/data/shaders/descriptorindexing/descriptorindexing.vert b/data/shaders/glsl/descriptorindexing/descriptorindexing.vert similarity index 100% rename from data/shaders/descriptorindexing/descriptorindexing.vert rename to data/shaders/glsl/descriptorindexing/descriptorindexing.vert diff --git a/data/shaders/descriptorindexing/descriptorindexing.vert.spv b/data/shaders/glsl/descriptorindexing/descriptorindexing.vert.spv similarity index 100% rename from data/shaders/descriptorindexing/descriptorindexing.vert.spv rename to data/shaders/glsl/descriptorindexing/descriptorindexing.vert.spv diff --git a/data/shaders/descriptorsets/cube.frag b/data/shaders/glsl/descriptorsets/cube.frag similarity index 100% rename from data/shaders/descriptorsets/cube.frag rename to data/shaders/glsl/descriptorsets/cube.frag diff --git a/data/shaders/descriptorsets/cube.frag.spv b/data/shaders/glsl/descriptorsets/cube.frag.spv similarity index 100% rename from data/shaders/descriptorsets/cube.frag.spv rename to data/shaders/glsl/descriptorsets/cube.frag.spv diff --git a/data/shaders/descriptorsets/cube.vert b/data/shaders/glsl/descriptorsets/cube.vert similarity index 100% rename from data/shaders/descriptorsets/cube.vert rename to data/shaders/glsl/descriptorsets/cube.vert diff --git a/data/shaders/descriptorsets/cube.vert.spv b/data/shaders/glsl/descriptorsets/cube.vert.spv similarity index 100% rename from data/shaders/descriptorsets/cube.vert.spv rename to data/shaders/glsl/descriptorsets/cube.vert.spv diff --git a/data/shaders/displacement/base.frag b/data/shaders/glsl/displacement/base.frag similarity index 100% rename from data/shaders/displacement/base.frag rename to data/shaders/glsl/displacement/base.frag diff --git a/data/shaders/displacement/base.frag.spv b/data/shaders/glsl/displacement/base.frag.spv similarity index 100% rename from data/shaders/displacement/base.frag.spv rename to data/shaders/glsl/displacement/base.frag.spv diff --git a/data/shaders/displacement/base.vert b/data/shaders/glsl/displacement/base.vert similarity index 100% rename from data/shaders/displacement/base.vert rename to data/shaders/glsl/displacement/base.vert diff --git a/data/shaders/displacement/base.vert.spv b/data/shaders/glsl/displacement/base.vert.spv similarity index 100% rename from data/shaders/displacement/base.vert.spv rename to data/shaders/glsl/displacement/base.vert.spv diff --git a/data/shaders/displacement/displacement.tesc b/data/shaders/glsl/displacement/displacement.tesc similarity index 100% rename from data/shaders/displacement/displacement.tesc rename to data/shaders/glsl/displacement/displacement.tesc diff --git a/data/shaders/displacement/displacement.tesc.spv b/data/shaders/glsl/displacement/displacement.tesc.spv similarity index 100% rename from data/shaders/displacement/displacement.tesc.spv rename to data/shaders/glsl/displacement/displacement.tesc.spv diff --git a/data/shaders/displacement/displacement.tese b/data/shaders/glsl/displacement/displacement.tese similarity index 100% rename from data/shaders/displacement/displacement.tese rename to data/shaders/glsl/displacement/displacement.tese diff --git a/data/shaders/displacement/displacement.tese.spv b/data/shaders/glsl/displacement/displacement.tese.spv similarity index 100% rename from data/shaders/displacement/displacement.tese.spv rename to data/shaders/glsl/displacement/displacement.tese.spv diff --git a/data/shaders/displacement/generate-spirv.bat b/data/shaders/glsl/displacement/generate-spirv.bat similarity index 100% rename from data/shaders/displacement/generate-spirv.bat rename to data/shaders/glsl/displacement/generate-spirv.bat diff --git a/data/shaders/distancefieldfonts/bitmap.frag b/data/shaders/glsl/distancefieldfonts/bitmap.frag similarity index 100% rename from data/shaders/distancefieldfonts/bitmap.frag rename to data/shaders/glsl/distancefieldfonts/bitmap.frag diff --git a/data/shaders/distancefieldfonts/bitmap.frag.spv b/data/shaders/glsl/distancefieldfonts/bitmap.frag.spv similarity index 100% rename from data/shaders/distancefieldfonts/bitmap.frag.spv rename to data/shaders/glsl/distancefieldfonts/bitmap.frag.spv diff --git a/data/shaders/distancefieldfonts/bitmap.vert b/data/shaders/glsl/distancefieldfonts/bitmap.vert similarity index 100% rename from data/shaders/distancefieldfonts/bitmap.vert rename to data/shaders/glsl/distancefieldfonts/bitmap.vert diff --git a/data/shaders/distancefieldfonts/bitmap.vert.spv b/data/shaders/glsl/distancefieldfonts/bitmap.vert.spv similarity index 100% rename from data/shaders/distancefieldfonts/bitmap.vert.spv rename to data/shaders/glsl/distancefieldfonts/bitmap.vert.spv diff --git a/data/shaders/distancefieldfonts/generate-spirv.bat b/data/shaders/glsl/distancefieldfonts/generate-spirv.bat similarity index 100% rename from data/shaders/distancefieldfonts/generate-spirv.bat rename to data/shaders/glsl/distancefieldfonts/generate-spirv.bat diff --git a/data/shaders/distancefieldfonts/sdf.frag b/data/shaders/glsl/distancefieldfonts/sdf.frag similarity index 100% rename from data/shaders/distancefieldfonts/sdf.frag rename to data/shaders/glsl/distancefieldfonts/sdf.frag diff --git a/data/shaders/distancefieldfonts/sdf.frag.spv b/data/shaders/glsl/distancefieldfonts/sdf.frag.spv similarity index 100% rename from data/shaders/distancefieldfonts/sdf.frag.spv rename to data/shaders/glsl/distancefieldfonts/sdf.frag.spv diff --git a/data/shaders/distancefieldfonts/sdf.vert b/data/shaders/glsl/distancefieldfonts/sdf.vert similarity index 100% rename from data/shaders/distancefieldfonts/sdf.vert rename to data/shaders/glsl/distancefieldfonts/sdf.vert diff --git a/data/shaders/distancefieldfonts/sdf.vert.spv b/data/shaders/glsl/distancefieldfonts/sdf.vert.spv similarity index 100% rename from data/shaders/distancefieldfonts/sdf.vert.spv rename to data/shaders/glsl/distancefieldfonts/sdf.vert.spv diff --git a/data/shaders/dynamicuniformbuffer/base.frag b/data/shaders/glsl/dynamicuniformbuffer/base.frag similarity index 100% rename from data/shaders/dynamicuniformbuffer/base.frag rename to data/shaders/glsl/dynamicuniformbuffer/base.frag diff --git a/data/shaders/dynamicuniformbuffer/base.frag.spv b/data/shaders/glsl/dynamicuniformbuffer/base.frag.spv similarity index 100% rename from data/shaders/dynamicuniformbuffer/base.frag.spv rename to data/shaders/glsl/dynamicuniformbuffer/base.frag.spv diff --git a/data/shaders/dynamicuniformbuffer/base.vert b/data/shaders/glsl/dynamicuniformbuffer/base.vert similarity index 100% rename from data/shaders/dynamicuniformbuffer/base.vert rename to data/shaders/glsl/dynamicuniformbuffer/base.vert diff --git a/data/shaders/dynamicuniformbuffer/base.vert.spv b/data/shaders/glsl/dynamicuniformbuffer/base.vert.spv similarity index 100% rename from data/shaders/dynamicuniformbuffer/base.vert.spv rename to data/shaders/glsl/dynamicuniformbuffer/base.vert.spv diff --git a/data/shaders/gears/gears.frag b/data/shaders/glsl/gears/gears.frag similarity index 100% rename from data/shaders/gears/gears.frag rename to data/shaders/glsl/gears/gears.frag diff --git a/data/shaders/gears/gears.frag.spv b/data/shaders/glsl/gears/gears.frag.spv similarity index 100% rename from data/shaders/gears/gears.frag.spv rename to data/shaders/glsl/gears/gears.frag.spv diff --git a/data/shaders/gears/gears.vert b/data/shaders/glsl/gears/gears.vert similarity index 100% rename from data/shaders/gears/gears.vert rename to data/shaders/glsl/gears/gears.vert diff --git a/data/shaders/gears/gears.vert.spv b/data/shaders/glsl/gears/gears.vert.spv similarity index 100% rename from data/shaders/gears/gears.vert.spv rename to data/shaders/glsl/gears/gears.vert.spv diff --git a/data/shaders/geometryshader/base.frag b/data/shaders/glsl/geometryshader/base.frag similarity index 100% rename from data/shaders/geometryshader/base.frag rename to data/shaders/glsl/geometryshader/base.frag diff --git a/data/shaders/geometryshader/base.frag.spv b/data/shaders/glsl/geometryshader/base.frag.spv similarity index 100% rename from data/shaders/geometryshader/base.frag.spv rename to data/shaders/glsl/geometryshader/base.frag.spv diff --git a/data/shaders/geometryshader/base.vert b/data/shaders/glsl/geometryshader/base.vert similarity index 100% rename from data/shaders/geometryshader/base.vert rename to data/shaders/glsl/geometryshader/base.vert diff --git a/data/shaders/geometryshader/base.vert.spv b/data/shaders/glsl/geometryshader/base.vert.spv similarity index 100% rename from data/shaders/geometryshader/base.vert.spv rename to data/shaders/glsl/geometryshader/base.vert.spv diff --git a/data/shaders/geometryshader/generate-spirv.bat b/data/shaders/glsl/geometryshader/generate-spirv.bat similarity index 100% rename from data/shaders/geometryshader/generate-spirv.bat rename to data/shaders/glsl/geometryshader/generate-spirv.bat diff --git a/data/shaders/geometryshader/mesh.frag b/data/shaders/glsl/geometryshader/mesh.frag similarity index 100% rename from data/shaders/geometryshader/mesh.frag rename to data/shaders/glsl/geometryshader/mesh.frag diff --git a/data/shaders/geometryshader/mesh.frag.spv b/data/shaders/glsl/geometryshader/mesh.frag.spv similarity index 100% rename from data/shaders/geometryshader/mesh.frag.spv rename to data/shaders/glsl/geometryshader/mesh.frag.spv diff --git a/data/shaders/geometryshader/mesh.vert b/data/shaders/glsl/geometryshader/mesh.vert similarity index 100% rename from data/shaders/geometryshader/mesh.vert rename to data/shaders/glsl/geometryshader/mesh.vert diff --git a/data/shaders/geometryshader/mesh.vert.spv b/data/shaders/glsl/geometryshader/mesh.vert.spv similarity index 100% rename from data/shaders/geometryshader/mesh.vert.spv rename to data/shaders/glsl/geometryshader/mesh.vert.spv diff --git a/data/shaders/geometryshader/normaldebug.geom b/data/shaders/glsl/geometryshader/normaldebug.geom similarity index 100% rename from data/shaders/geometryshader/normaldebug.geom rename to data/shaders/glsl/geometryshader/normaldebug.geom diff --git a/data/shaders/geometryshader/normaldebug.geom.spv b/data/shaders/glsl/geometryshader/normaldebug.geom.spv similarity index 100% rename from data/shaders/geometryshader/normaldebug.geom.spv rename to data/shaders/glsl/geometryshader/normaldebug.geom.spv diff --git a/data/shaders/gltfscene/mesh.frag b/data/shaders/glsl/gltfscene/mesh.frag similarity index 100% rename from data/shaders/gltfscene/mesh.frag rename to data/shaders/glsl/gltfscene/mesh.frag diff --git a/data/shaders/gltfscene/mesh.frag.spv b/data/shaders/glsl/gltfscene/mesh.frag.spv similarity index 100% rename from data/shaders/gltfscene/mesh.frag.spv rename to data/shaders/glsl/gltfscene/mesh.frag.spv diff --git a/data/shaders/gltfscene/mesh.vert b/data/shaders/glsl/gltfscene/mesh.vert similarity index 100% rename from data/shaders/gltfscene/mesh.vert rename to data/shaders/glsl/gltfscene/mesh.vert diff --git a/data/shaders/gltfscene/mesh.vert.spv b/data/shaders/glsl/gltfscene/mesh.vert.spv similarity index 100% rename from data/shaders/gltfscene/mesh.vert.spv rename to data/shaders/glsl/gltfscene/mesh.vert.spv diff --git a/data/shaders/hdr/bloom.frag b/data/shaders/glsl/hdr/bloom.frag similarity index 100% rename from data/shaders/hdr/bloom.frag rename to data/shaders/glsl/hdr/bloom.frag diff --git a/data/shaders/hdr/bloom.frag.spv b/data/shaders/glsl/hdr/bloom.frag.spv similarity index 100% rename from data/shaders/hdr/bloom.frag.spv rename to data/shaders/glsl/hdr/bloom.frag.spv diff --git a/data/shaders/hdr/bloom.vert b/data/shaders/glsl/hdr/bloom.vert similarity index 100% rename from data/shaders/hdr/bloom.vert rename to data/shaders/glsl/hdr/bloom.vert diff --git a/data/shaders/hdr/bloom.vert.spv b/data/shaders/glsl/hdr/bloom.vert.spv similarity index 100% rename from data/shaders/hdr/bloom.vert.spv rename to data/shaders/glsl/hdr/bloom.vert.spv diff --git a/data/shaders/hdr/composition.frag b/data/shaders/glsl/hdr/composition.frag similarity index 100% rename from data/shaders/hdr/composition.frag rename to data/shaders/glsl/hdr/composition.frag diff --git a/data/shaders/hdr/composition.frag.spv b/data/shaders/glsl/hdr/composition.frag.spv similarity index 100% rename from data/shaders/hdr/composition.frag.spv rename to data/shaders/glsl/hdr/composition.frag.spv diff --git a/data/shaders/hdr/composition.vert b/data/shaders/glsl/hdr/composition.vert similarity index 100% rename from data/shaders/hdr/composition.vert rename to data/shaders/glsl/hdr/composition.vert diff --git a/data/shaders/hdr/composition.vert.spv b/data/shaders/glsl/hdr/composition.vert.spv similarity index 100% rename from data/shaders/hdr/composition.vert.spv rename to data/shaders/glsl/hdr/composition.vert.spv diff --git a/data/shaders/hdr/gbuffer.frag b/data/shaders/glsl/hdr/gbuffer.frag similarity index 100% rename from data/shaders/hdr/gbuffer.frag rename to data/shaders/glsl/hdr/gbuffer.frag diff --git a/data/shaders/hdr/gbuffer.frag.spv b/data/shaders/glsl/hdr/gbuffer.frag.spv similarity index 100% rename from data/shaders/hdr/gbuffer.frag.spv rename to data/shaders/glsl/hdr/gbuffer.frag.spv diff --git a/data/shaders/hdr/gbuffer.vert b/data/shaders/glsl/hdr/gbuffer.vert similarity index 100% rename from data/shaders/hdr/gbuffer.vert rename to data/shaders/glsl/hdr/gbuffer.vert diff --git a/data/shaders/hdr/gbuffer.vert.spv b/data/shaders/glsl/hdr/gbuffer.vert.spv similarity index 100% rename from data/shaders/hdr/gbuffer.vert.spv rename to data/shaders/glsl/hdr/gbuffer.vert.spv diff --git a/data/shaders/imgui/scene.frag b/data/shaders/glsl/imgui/scene.frag similarity index 100% rename from data/shaders/imgui/scene.frag rename to data/shaders/glsl/imgui/scene.frag diff --git a/data/shaders/imgui/scene.frag.spv b/data/shaders/glsl/imgui/scene.frag.spv similarity index 100% rename from data/shaders/imgui/scene.frag.spv rename to data/shaders/glsl/imgui/scene.frag.spv diff --git a/data/shaders/imgui/scene.vert b/data/shaders/glsl/imgui/scene.vert similarity index 100% rename from data/shaders/imgui/scene.vert rename to data/shaders/glsl/imgui/scene.vert diff --git a/data/shaders/imgui/scene.vert.spv b/data/shaders/glsl/imgui/scene.vert.spv similarity index 100% rename from data/shaders/imgui/scene.vert.spv rename to data/shaders/glsl/imgui/scene.vert.spv diff --git a/data/shaders/imgui/ui.frag b/data/shaders/glsl/imgui/ui.frag similarity index 100% rename from data/shaders/imgui/ui.frag rename to data/shaders/glsl/imgui/ui.frag diff --git a/data/shaders/imgui/ui.frag.spv b/data/shaders/glsl/imgui/ui.frag.spv similarity index 100% rename from data/shaders/imgui/ui.frag.spv rename to data/shaders/glsl/imgui/ui.frag.spv diff --git a/data/shaders/imgui/ui.vert b/data/shaders/glsl/imgui/ui.vert similarity index 100% rename from data/shaders/imgui/ui.vert rename to data/shaders/glsl/imgui/ui.vert diff --git a/data/shaders/imgui/ui.vert.spv b/data/shaders/glsl/imgui/ui.vert.spv similarity index 100% rename from data/shaders/imgui/ui.vert.spv rename to data/shaders/glsl/imgui/ui.vert.spv diff --git a/data/shaders/indirectdraw/generate-spirv.bat b/data/shaders/glsl/indirectdraw/generate-spirv.bat similarity index 100% rename from data/shaders/indirectdraw/generate-spirv.bat rename to data/shaders/glsl/indirectdraw/generate-spirv.bat diff --git a/data/shaders/indirectdraw/ground.frag b/data/shaders/glsl/indirectdraw/ground.frag similarity index 100% rename from data/shaders/indirectdraw/ground.frag rename to data/shaders/glsl/indirectdraw/ground.frag diff --git a/data/shaders/indirectdraw/ground.frag.spv b/data/shaders/glsl/indirectdraw/ground.frag.spv similarity index 100% rename from data/shaders/indirectdraw/ground.frag.spv rename to data/shaders/glsl/indirectdraw/ground.frag.spv diff --git a/data/shaders/indirectdraw/ground.vert b/data/shaders/glsl/indirectdraw/ground.vert similarity index 100% rename from data/shaders/indirectdraw/ground.vert rename to data/shaders/glsl/indirectdraw/ground.vert diff --git a/data/shaders/indirectdraw/ground.vert.spv b/data/shaders/glsl/indirectdraw/ground.vert.spv similarity index 100% rename from data/shaders/indirectdraw/ground.vert.spv rename to data/shaders/glsl/indirectdraw/ground.vert.spv diff --git a/data/shaders/indirectdraw/indirectdraw.frag b/data/shaders/glsl/indirectdraw/indirectdraw.frag similarity index 100% rename from data/shaders/indirectdraw/indirectdraw.frag rename to data/shaders/glsl/indirectdraw/indirectdraw.frag diff --git a/data/shaders/indirectdraw/indirectdraw.frag.spv b/data/shaders/glsl/indirectdraw/indirectdraw.frag.spv similarity index 100% rename from data/shaders/indirectdraw/indirectdraw.frag.spv rename to data/shaders/glsl/indirectdraw/indirectdraw.frag.spv diff --git a/data/shaders/indirectdraw/indirectdraw.vert b/data/shaders/glsl/indirectdraw/indirectdraw.vert similarity index 100% rename from data/shaders/indirectdraw/indirectdraw.vert rename to data/shaders/glsl/indirectdraw/indirectdraw.vert diff --git a/data/shaders/indirectdraw/indirectdraw.vert.spv b/data/shaders/glsl/indirectdraw/indirectdraw.vert.spv similarity index 100% rename from data/shaders/indirectdraw/indirectdraw.vert.spv rename to data/shaders/glsl/indirectdraw/indirectdraw.vert.spv diff --git a/data/shaders/indirectdraw/skysphere.frag b/data/shaders/glsl/indirectdraw/skysphere.frag similarity index 100% rename from data/shaders/indirectdraw/skysphere.frag rename to data/shaders/glsl/indirectdraw/skysphere.frag diff --git a/data/shaders/indirectdraw/skysphere.frag.spv b/data/shaders/glsl/indirectdraw/skysphere.frag.spv similarity index 100% rename from data/shaders/indirectdraw/skysphere.frag.spv rename to data/shaders/glsl/indirectdraw/skysphere.frag.spv diff --git a/data/shaders/indirectdraw/skysphere.vert b/data/shaders/glsl/indirectdraw/skysphere.vert similarity index 100% rename from data/shaders/indirectdraw/skysphere.vert rename to data/shaders/glsl/indirectdraw/skysphere.vert diff --git a/data/shaders/indirectdraw/skysphere.vert.spv b/data/shaders/glsl/indirectdraw/skysphere.vert.spv similarity index 100% rename from data/shaders/indirectdraw/skysphere.vert.spv rename to data/shaders/glsl/indirectdraw/skysphere.vert.spv diff --git a/data/shaders/inlineuniformblocks/pbr.frag b/data/shaders/glsl/inlineuniformblocks/pbr.frag similarity index 100% rename from data/shaders/inlineuniformblocks/pbr.frag rename to data/shaders/glsl/inlineuniformblocks/pbr.frag diff --git a/data/shaders/inlineuniformblocks/pbr.frag.spv b/data/shaders/glsl/inlineuniformblocks/pbr.frag.spv similarity index 100% rename from data/shaders/inlineuniformblocks/pbr.frag.spv rename to data/shaders/glsl/inlineuniformblocks/pbr.frag.spv diff --git a/data/shaders/inlineuniformblocks/pbr.vert b/data/shaders/glsl/inlineuniformblocks/pbr.vert similarity index 100% rename from data/shaders/inlineuniformblocks/pbr.vert rename to data/shaders/glsl/inlineuniformblocks/pbr.vert diff --git a/data/shaders/inlineuniformblocks/pbr.vert.spv b/data/shaders/glsl/inlineuniformblocks/pbr.vert.spv similarity index 100% rename from data/shaders/inlineuniformblocks/pbr.vert.spv rename to data/shaders/glsl/inlineuniformblocks/pbr.vert.spv diff --git a/data/shaders/inputattachments/attachmentread.frag b/data/shaders/glsl/inputattachments/attachmentread.frag similarity index 100% rename from data/shaders/inputattachments/attachmentread.frag rename to data/shaders/glsl/inputattachments/attachmentread.frag diff --git a/data/shaders/inputattachments/attachmentread.frag.spv b/data/shaders/glsl/inputattachments/attachmentread.frag.spv similarity index 100% rename from data/shaders/inputattachments/attachmentread.frag.spv rename to data/shaders/glsl/inputattachments/attachmentread.frag.spv diff --git a/data/shaders/inputattachments/attachmentread.vert b/data/shaders/glsl/inputattachments/attachmentread.vert similarity index 100% rename from data/shaders/inputattachments/attachmentread.vert rename to data/shaders/glsl/inputattachments/attachmentread.vert diff --git a/data/shaders/inputattachments/attachmentread.vert.spv b/data/shaders/glsl/inputattachments/attachmentread.vert.spv similarity index 100% rename from data/shaders/inputattachments/attachmentread.vert.spv rename to data/shaders/glsl/inputattachments/attachmentread.vert.spv diff --git a/data/shaders/inputattachments/attachmentwrite.frag b/data/shaders/glsl/inputattachments/attachmentwrite.frag similarity index 100% rename from data/shaders/inputattachments/attachmentwrite.frag rename to data/shaders/glsl/inputattachments/attachmentwrite.frag diff --git a/data/shaders/inputattachments/attachmentwrite.frag.spv b/data/shaders/glsl/inputattachments/attachmentwrite.frag.spv similarity index 100% rename from data/shaders/inputattachments/attachmentwrite.frag.spv rename to data/shaders/glsl/inputattachments/attachmentwrite.frag.spv diff --git a/data/shaders/inputattachments/attachmentwrite.vert b/data/shaders/glsl/inputattachments/attachmentwrite.vert similarity index 100% rename from data/shaders/inputattachments/attachmentwrite.vert rename to data/shaders/glsl/inputattachments/attachmentwrite.vert diff --git a/data/shaders/inputattachments/attachmentwrite.vert.spv b/data/shaders/glsl/inputattachments/attachmentwrite.vert.spv similarity index 100% rename from data/shaders/inputattachments/attachmentwrite.vert.spv rename to data/shaders/glsl/inputattachments/attachmentwrite.vert.spv diff --git a/data/shaders/instancing/generate-spirv.bat b/data/shaders/glsl/instancing/generate-spirv.bat similarity index 100% rename from data/shaders/instancing/generate-spirv.bat rename to data/shaders/glsl/instancing/generate-spirv.bat diff --git a/data/shaders/instancing/instancing.frag b/data/shaders/glsl/instancing/instancing.frag similarity index 100% rename from data/shaders/instancing/instancing.frag rename to data/shaders/glsl/instancing/instancing.frag diff --git a/data/shaders/instancing/instancing.frag.spv b/data/shaders/glsl/instancing/instancing.frag.spv similarity index 100% rename from data/shaders/instancing/instancing.frag.spv rename to data/shaders/glsl/instancing/instancing.frag.spv diff --git a/data/shaders/instancing/instancing.vert b/data/shaders/glsl/instancing/instancing.vert similarity index 100% rename from data/shaders/instancing/instancing.vert rename to data/shaders/glsl/instancing/instancing.vert diff --git a/data/shaders/instancing/instancing.vert.spv b/data/shaders/glsl/instancing/instancing.vert.spv similarity index 100% rename from data/shaders/instancing/instancing.vert.spv rename to data/shaders/glsl/instancing/instancing.vert.spv diff --git a/data/shaders/instancing/planet.frag b/data/shaders/glsl/instancing/planet.frag similarity index 100% rename from data/shaders/instancing/planet.frag rename to data/shaders/glsl/instancing/planet.frag diff --git a/data/shaders/instancing/planet.frag.spv b/data/shaders/glsl/instancing/planet.frag.spv similarity index 100% rename from data/shaders/instancing/planet.frag.spv rename to data/shaders/glsl/instancing/planet.frag.spv diff --git a/data/shaders/instancing/planet.vert b/data/shaders/glsl/instancing/planet.vert similarity index 100% rename from data/shaders/instancing/planet.vert rename to data/shaders/glsl/instancing/planet.vert diff --git a/data/shaders/instancing/planet.vert.spv b/data/shaders/glsl/instancing/planet.vert.spv similarity index 100% rename from data/shaders/instancing/planet.vert.spv rename to data/shaders/glsl/instancing/planet.vert.spv diff --git a/data/shaders/instancing/starfield.frag b/data/shaders/glsl/instancing/starfield.frag similarity index 100% rename from data/shaders/instancing/starfield.frag rename to data/shaders/glsl/instancing/starfield.frag diff --git a/data/shaders/instancing/starfield.frag.spv b/data/shaders/glsl/instancing/starfield.frag.spv similarity index 100% rename from data/shaders/instancing/starfield.frag.spv rename to data/shaders/glsl/instancing/starfield.frag.spv diff --git a/data/shaders/instancing/starfield.vert b/data/shaders/glsl/instancing/starfield.vert similarity index 100% rename from data/shaders/instancing/starfield.vert rename to data/shaders/glsl/instancing/starfield.vert diff --git a/data/shaders/instancing/starfield.vert.spv b/data/shaders/glsl/instancing/starfield.vert.spv similarity index 100% rename from data/shaders/instancing/starfield.vert.spv rename to data/shaders/glsl/instancing/starfield.vert.spv diff --git a/data/shaders/multisampling/mesh.frag b/data/shaders/glsl/multisampling/mesh.frag similarity index 100% rename from data/shaders/multisampling/mesh.frag rename to data/shaders/glsl/multisampling/mesh.frag diff --git a/data/shaders/multisampling/mesh.frag.spv b/data/shaders/glsl/multisampling/mesh.frag.spv similarity index 100% rename from data/shaders/multisampling/mesh.frag.spv rename to data/shaders/glsl/multisampling/mesh.frag.spv diff --git a/data/shaders/multisampling/mesh.vert b/data/shaders/glsl/multisampling/mesh.vert similarity index 100% rename from data/shaders/multisampling/mesh.vert rename to data/shaders/glsl/multisampling/mesh.vert diff --git a/data/shaders/multisampling/mesh.vert.spv b/data/shaders/glsl/multisampling/mesh.vert.spv similarity index 100% rename from data/shaders/multisampling/mesh.vert.spv rename to data/shaders/glsl/multisampling/mesh.vert.spv diff --git a/data/shaders/multithreading/generate-spirv.bat b/data/shaders/glsl/multithreading/generate-spirv.bat similarity index 100% rename from data/shaders/multithreading/generate-spirv.bat rename to data/shaders/glsl/multithreading/generate-spirv.bat diff --git a/data/shaders/multithreading/phong.frag b/data/shaders/glsl/multithreading/phong.frag similarity index 100% rename from data/shaders/multithreading/phong.frag rename to data/shaders/glsl/multithreading/phong.frag diff --git a/data/shaders/multithreading/phong.frag.spv b/data/shaders/glsl/multithreading/phong.frag.spv similarity index 100% rename from data/shaders/multithreading/phong.frag.spv rename to data/shaders/glsl/multithreading/phong.frag.spv diff --git a/data/shaders/multithreading/phong.vert b/data/shaders/glsl/multithreading/phong.vert similarity index 100% rename from data/shaders/multithreading/phong.vert rename to data/shaders/glsl/multithreading/phong.vert diff --git a/data/shaders/multithreading/phong.vert.spv b/data/shaders/glsl/multithreading/phong.vert.spv similarity index 100% rename from data/shaders/multithreading/phong.vert.spv rename to data/shaders/glsl/multithreading/phong.vert.spv diff --git a/data/shaders/multithreading/starsphere.frag b/data/shaders/glsl/multithreading/starsphere.frag similarity index 100% rename from data/shaders/multithreading/starsphere.frag rename to data/shaders/glsl/multithreading/starsphere.frag diff --git a/data/shaders/multithreading/starsphere.frag.spv b/data/shaders/glsl/multithreading/starsphere.frag.spv similarity index 100% rename from data/shaders/multithreading/starsphere.frag.spv rename to data/shaders/glsl/multithreading/starsphere.frag.spv diff --git a/data/shaders/multithreading/starsphere.vert b/data/shaders/glsl/multithreading/starsphere.vert similarity index 100% rename from data/shaders/multithreading/starsphere.vert rename to data/shaders/glsl/multithreading/starsphere.vert diff --git a/data/shaders/multithreading/starsphere.vert.spv b/data/shaders/glsl/multithreading/starsphere.vert.spv similarity index 100% rename from data/shaders/multithreading/starsphere.vert.spv rename to data/shaders/glsl/multithreading/starsphere.vert.spv diff --git a/data/shaders/multiview/multiview.frag b/data/shaders/glsl/multiview/multiview.frag similarity index 100% rename from data/shaders/multiview/multiview.frag rename to data/shaders/glsl/multiview/multiview.frag diff --git a/data/shaders/multiview/multiview.frag.spv b/data/shaders/glsl/multiview/multiview.frag.spv similarity index 100% rename from data/shaders/multiview/multiview.frag.spv rename to data/shaders/glsl/multiview/multiview.frag.spv diff --git a/data/shaders/multiview/multiview.vert b/data/shaders/glsl/multiview/multiview.vert similarity index 100% rename from data/shaders/multiview/multiview.vert rename to data/shaders/glsl/multiview/multiview.vert diff --git a/data/shaders/multiview/multiview.vert.spv b/data/shaders/glsl/multiview/multiview.vert.spv similarity index 100% rename from data/shaders/multiview/multiview.vert.spv rename to data/shaders/glsl/multiview/multiview.vert.spv diff --git a/data/shaders/multiview/viewdisplay.frag b/data/shaders/glsl/multiview/viewdisplay.frag similarity index 100% rename from data/shaders/multiview/viewdisplay.frag rename to data/shaders/glsl/multiview/viewdisplay.frag diff --git a/data/shaders/multiview/viewdisplay.frag.spv b/data/shaders/glsl/multiview/viewdisplay.frag.spv similarity index 100% rename from data/shaders/multiview/viewdisplay.frag.spv rename to data/shaders/glsl/multiview/viewdisplay.frag.spv diff --git a/data/shaders/multiview/viewdisplay.vert b/data/shaders/glsl/multiview/viewdisplay.vert similarity index 100% rename from data/shaders/multiview/viewdisplay.vert rename to data/shaders/glsl/multiview/viewdisplay.vert diff --git a/data/shaders/multiview/viewdisplay.vert.spv b/data/shaders/glsl/multiview/viewdisplay.vert.spv similarity index 100% rename from data/shaders/multiview/viewdisplay.vert.spv rename to data/shaders/glsl/multiview/viewdisplay.vert.spv diff --git a/data/shaders/negativeviewportheight/quad.frag b/data/shaders/glsl/negativeviewportheight/quad.frag similarity index 100% rename from data/shaders/negativeviewportheight/quad.frag rename to data/shaders/glsl/negativeviewportheight/quad.frag diff --git a/data/shaders/negativeviewportheight/quad.frag.spv b/data/shaders/glsl/negativeviewportheight/quad.frag.spv similarity index 100% rename from data/shaders/negativeviewportheight/quad.frag.spv rename to data/shaders/glsl/negativeviewportheight/quad.frag.spv diff --git a/data/shaders/negativeviewportheight/quad.vert b/data/shaders/glsl/negativeviewportheight/quad.vert similarity index 100% rename from data/shaders/negativeviewportheight/quad.vert rename to data/shaders/glsl/negativeviewportheight/quad.vert diff --git a/data/shaders/negativeviewportheight/quad.vert.spv b/data/shaders/glsl/negativeviewportheight/quad.vert.spv similarity index 100% rename from data/shaders/negativeviewportheight/quad.vert.spv rename to data/shaders/glsl/negativeviewportheight/quad.vert.spv diff --git a/data/shaders/nv_ray_tracing_basic/closesthit.rchit b/data/shaders/glsl/nv_ray_tracing_basic/closesthit.rchit similarity index 100% rename from data/shaders/nv_ray_tracing_basic/closesthit.rchit rename to data/shaders/glsl/nv_ray_tracing_basic/closesthit.rchit diff --git a/data/shaders/nv_ray_tracing_basic/closesthit.rchit.spv b/data/shaders/glsl/nv_ray_tracing_basic/closesthit.rchit.spv similarity index 100% rename from data/shaders/nv_ray_tracing_basic/closesthit.rchit.spv rename to data/shaders/glsl/nv_ray_tracing_basic/closesthit.rchit.spv diff --git a/data/shaders/nv_ray_tracing_basic/miss.rmiss b/data/shaders/glsl/nv_ray_tracing_basic/miss.rmiss similarity index 100% rename from data/shaders/nv_ray_tracing_basic/miss.rmiss rename to data/shaders/glsl/nv_ray_tracing_basic/miss.rmiss diff --git a/data/shaders/nv_ray_tracing_basic/miss.rmiss.spv b/data/shaders/glsl/nv_ray_tracing_basic/miss.rmiss.spv similarity index 100% rename from data/shaders/nv_ray_tracing_basic/miss.rmiss.spv rename to data/shaders/glsl/nv_ray_tracing_basic/miss.rmiss.spv diff --git a/data/shaders/nv_ray_tracing_basic/raygen.rgen b/data/shaders/glsl/nv_ray_tracing_basic/raygen.rgen similarity index 100% rename from data/shaders/nv_ray_tracing_basic/raygen.rgen rename to data/shaders/glsl/nv_ray_tracing_basic/raygen.rgen diff --git a/data/shaders/nv_ray_tracing_basic/raygen.rgen.spv b/data/shaders/glsl/nv_ray_tracing_basic/raygen.rgen.spv similarity index 100% rename from data/shaders/nv_ray_tracing_basic/raygen.rgen.spv rename to data/shaders/glsl/nv_ray_tracing_basic/raygen.rgen.spv diff --git a/data/shaders/nv_ray_tracing_reflections/closesthit.rchit b/data/shaders/glsl/nv_ray_tracing_reflections/closesthit.rchit similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/closesthit.rchit rename to data/shaders/glsl/nv_ray_tracing_reflections/closesthit.rchit diff --git a/data/shaders/nv_ray_tracing_reflections/closesthit.rchit.spv b/data/shaders/glsl/nv_ray_tracing_reflections/closesthit.rchit.spv similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/closesthit.rchit.spv rename to data/shaders/glsl/nv_ray_tracing_reflections/closesthit.rchit.spv diff --git a/data/shaders/nv_ray_tracing_reflections/miss.rmiss b/data/shaders/glsl/nv_ray_tracing_reflections/miss.rmiss similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/miss.rmiss rename to data/shaders/glsl/nv_ray_tracing_reflections/miss.rmiss diff --git a/data/shaders/nv_ray_tracing_reflections/miss.rmiss.spv b/data/shaders/glsl/nv_ray_tracing_reflections/miss.rmiss.spv similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/miss.rmiss.spv rename to data/shaders/glsl/nv_ray_tracing_reflections/miss.rmiss.spv diff --git a/data/shaders/nv_ray_tracing_reflections/raygen.rgen b/data/shaders/glsl/nv_ray_tracing_reflections/raygen.rgen similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/raygen.rgen rename to data/shaders/glsl/nv_ray_tracing_reflections/raygen.rgen diff --git a/data/shaders/nv_ray_tracing_reflections/raygen.rgen.spv b/data/shaders/glsl/nv_ray_tracing_reflections/raygen.rgen.spv similarity index 100% rename from data/shaders/nv_ray_tracing_reflections/raygen.rgen.spv rename to data/shaders/glsl/nv_ray_tracing_reflections/raygen.rgen.spv diff --git a/data/shaders/nv_ray_tracing_shadows/closesthit.rchit b/data/shaders/glsl/nv_ray_tracing_shadows/closesthit.rchit similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/closesthit.rchit rename to data/shaders/glsl/nv_ray_tracing_shadows/closesthit.rchit diff --git a/data/shaders/nv_ray_tracing_shadows/closesthit.rchit.spv b/data/shaders/glsl/nv_ray_tracing_shadows/closesthit.rchit.spv similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/closesthit.rchit.spv rename to data/shaders/glsl/nv_ray_tracing_shadows/closesthit.rchit.spv diff --git a/data/shaders/nv_ray_tracing_shadows/miss.rmiss b/data/shaders/glsl/nv_ray_tracing_shadows/miss.rmiss similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/miss.rmiss rename to data/shaders/glsl/nv_ray_tracing_shadows/miss.rmiss diff --git a/data/shaders/nv_ray_tracing_shadows/miss.rmiss.spv b/data/shaders/glsl/nv_ray_tracing_shadows/miss.rmiss.spv similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/miss.rmiss.spv rename to data/shaders/glsl/nv_ray_tracing_shadows/miss.rmiss.spv diff --git a/data/shaders/nv_ray_tracing_shadows/raygen.rgen b/data/shaders/glsl/nv_ray_tracing_shadows/raygen.rgen similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/raygen.rgen rename to data/shaders/glsl/nv_ray_tracing_shadows/raygen.rgen diff --git a/data/shaders/nv_ray_tracing_shadows/raygen.rgen.spv b/data/shaders/glsl/nv_ray_tracing_shadows/raygen.rgen.spv similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/raygen.rgen.spv rename to data/shaders/glsl/nv_ray_tracing_shadows/raygen.rgen.spv diff --git a/data/shaders/nv_ray_tracing_shadows/shadow.rmiss b/data/shaders/glsl/nv_ray_tracing_shadows/shadow.rmiss similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/shadow.rmiss rename to data/shaders/glsl/nv_ray_tracing_shadows/shadow.rmiss diff --git a/data/shaders/nv_ray_tracing_shadows/shadow.rmiss.spv b/data/shaders/glsl/nv_ray_tracing_shadows/shadow.rmiss.spv similarity index 100% rename from data/shaders/nv_ray_tracing_shadows/shadow.rmiss.spv rename to data/shaders/glsl/nv_ray_tracing_shadows/shadow.rmiss.spv diff --git a/data/shaders/occlusionquery/generate-spirv.bat b/data/shaders/glsl/occlusionquery/generate-spirv.bat similarity index 100% rename from data/shaders/occlusionquery/generate-spirv.bat rename to data/shaders/glsl/occlusionquery/generate-spirv.bat diff --git a/data/shaders/occlusionquery/mesh.frag b/data/shaders/glsl/occlusionquery/mesh.frag similarity index 100% rename from data/shaders/occlusionquery/mesh.frag rename to data/shaders/glsl/occlusionquery/mesh.frag diff --git a/data/shaders/occlusionquery/mesh.frag.spv b/data/shaders/glsl/occlusionquery/mesh.frag.spv similarity index 100% rename from data/shaders/occlusionquery/mesh.frag.spv rename to data/shaders/glsl/occlusionquery/mesh.frag.spv diff --git a/data/shaders/occlusionquery/mesh.vert b/data/shaders/glsl/occlusionquery/mesh.vert similarity index 100% rename from data/shaders/occlusionquery/mesh.vert rename to data/shaders/glsl/occlusionquery/mesh.vert diff --git a/data/shaders/occlusionquery/mesh.vert.spv b/data/shaders/glsl/occlusionquery/mesh.vert.spv similarity index 100% rename from data/shaders/occlusionquery/mesh.vert.spv rename to data/shaders/glsl/occlusionquery/mesh.vert.spv diff --git a/data/shaders/occlusionquery/occluder.frag b/data/shaders/glsl/occlusionquery/occluder.frag similarity index 100% rename from data/shaders/occlusionquery/occluder.frag rename to data/shaders/glsl/occlusionquery/occluder.frag diff --git a/data/shaders/occlusionquery/occluder.frag.spv b/data/shaders/glsl/occlusionquery/occluder.frag.spv similarity index 100% rename from data/shaders/occlusionquery/occluder.frag.spv rename to data/shaders/glsl/occlusionquery/occluder.frag.spv diff --git a/data/shaders/occlusionquery/occluder.vert b/data/shaders/glsl/occlusionquery/occluder.vert similarity index 100% rename from data/shaders/occlusionquery/occluder.vert rename to data/shaders/glsl/occlusionquery/occluder.vert diff --git a/data/shaders/occlusionquery/occluder.vert.spv b/data/shaders/glsl/occlusionquery/occluder.vert.spv similarity index 100% rename from data/shaders/occlusionquery/occluder.vert.spv rename to data/shaders/glsl/occlusionquery/occluder.vert.spv diff --git a/data/shaders/occlusionquery/simple.frag b/data/shaders/glsl/occlusionquery/simple.frag similarity index 100% rename from data/shaders/occlusionquery/simple.frag rename to data/shaders/glsl/occlusionquery/simple.frag diff --git a/data/shaders/occlusionquery/simple.frag.spv b/data/shaders/glsl/occlusionquery/simple.frag.spv similarity index 100% rename from data/shaders/occlusionquery/simple.frag.spv rename to data/shaders/glsl/occlusionquery/simple.frag.spv diff --git a/data/shaders/occlusionquery/simple.vert b/data/shaders/glsl/occlusionquery/simple.vert similarity index 100% rename from data/shaders/occlusionquery/simple.vert rename to data/shaders/glsl/occlusionquery/simple.vert diff --git a/data/shaders/occlusionquery/simple.vert.spv b/data/shaders/glsl/occlusionquery/simple.vert.spv similarity index 100% rename from data/shaders/occlusionquery/simple.vert.spv rename to data/shaders/glsl/occlusionquery/simple.vert.spv diff --git a/data/shaders/offscreen/generate-spirv.bat b/data/shaders/glsl/offscreen/generate-spirv.bat similarity index 100% rename from data/shaders/offscreen/generate-spirv.bat rename to data/shaders/glsl/offscreen/generate-spirv.bat diff --git a/data/shaders/offscreen/mirror.frag b/data/shaders/glsl/offscreen/mirror.frag similarity index 100% rename from data/shaders/offscreen/mirror.frag rename to data/shaders/glsl/offscreen/mirror.frag diff --git a/data/shaders/offscreen/mirror.frag.spv b/data/shaders/glsl/offscreen/mirror.frag.spv similarity index 100% rename from data/shaders/offscreen/mirror.frag.spv rename to data/shaders/glsl/offscreen/mirror.frag.spv diff --git a/data/shaders/offscreen/mirror.vert b/data/shaders/glsl/offscreen/mirror.vert similarity index 100% rename from data/shaders/offscreen/mirror.vert rename to data/shaders/glsl/offscreen/mirror.vert diff --git a/data/shaders/offscreen/mirror.vert.spv b/data/shaders/glsl/offscreen/mirror.vert.spv similarity index 100% rename from data/shaders/offscreen/mirror.vert.spv rename to data/shaders/glsl/offscreen/mirror.vert.spv diff --git a/data/shaders/offscreen/phong.frag b/data/shaders/glsl/offscreen/phong.frag similarity index 100% rename from data/shaders/offscreen/phong.frag rename to data/shaders/glsl/offscreen/phong.frag diff --git a/data/shaders/offscreen/phong.frag.spv b/data/shaders/glsl/offscreen/phong.frag.spv similarity index 100% rename from data/shaders/offscreen/phong.frag.spv rename to data/shaders/glsl/offscreen/phong.frag.spv diff --git a/data/shaders/offscreen/phong.vert b/data/shaders/glsl/offscreen/phong.vert similarity index 100% rename from data/shaders/offscreen/phong.vert rename to data/shaders/glsl/offscreen/phong.vert diff --git a/data/shaders/offscreen/phong.vert.spv b/data/shaders/glsl/offscreen/phong.vert.spv similarity index 100% rename from data/shaders/offscreen/phong.vert.spv rename to data/shaders/glsl/offscreen/phong.vert.spv diff --git a/data/shaders/offscreen/quad.frag b/data/shaders/glsl/offscreen/quad.frag similarity index 100% rename from data/shaders/offscreen/quad.frag rename to data/shaders/glsl/offscreen/quad.frag diff --git a/data/shaders/offscreen/quad.frag.spv b/data/shaders/glsl/offscreen/quad.frag.spv similarity index 100% rename from data/shaders/offscreen/quad.frag.spv rename to data/shaders/glsl/offscreen/quad.frag.spv diff --git a/data/shaders/offscreen/quad.vert b/data/shaders/glsl/offscreen/quad.vert similarity index 100% rename from data/shaders/offscreen/quad.vert rename to data/shaders/glsl/offscreen/quad.vert diff --git a/data/shaders/offscreen/quad.vert.spv b/data/shaders/glsl/offscreen/quad.vert.spv similarity index 100% rename from data/shaders/offscreen/quad.vert.spv rename to data/shaders/glsl/offscreen/quad.vert.spv diff --git a/data/shaders/parallaxmapping/parallax.frag b/data/shaders/glsl/parallaxmapping/parallax.frag similarity index 100% rename from data/shaders/parallaxmapping/parallax.frag rename to data/shaders/glsl/parallaxmapping/parallax.frag diff --git a/data/shaders/parallaxmapping/parallax.frag.spv b/data/shaders/glsl/parallaxmapping/parallax.frag.spv similarity index 100% rename from data/shaders/parallaxmapping/parallax.frag.spv rename to data/shaders/glsl/parallaxmapping/parallax.frag.spv diff --git a/data/shaders/parallaxmapping/parallax.vert b/data/shaders/glsl/parallaxmapping/parallax.vert similarity index 100% rename from data/shaders/parallaxmapping/parallax.vert rename to data/shaders/glsl/parallaxmapping/parallax.vert diff --git a/data/shaders/parallaxmapping/parallax.vert.spv b/data/shaders/glsl/parallaxmapping/parallax.vert.spv similarity index 100% rename from data/shaders/parallaxmapping/parallax.vert.spv rename to data/shaders/glsl/parallaxmapping/parallax.vert.spv diff --git a/data/shaders/particlefire/generate-spirv.bat b/data/shaders/glsl/particlefire/generate-spirv.bat similarity index 100% rename from data/shaders/particlefire/generate-spirv.bat rename to data/shaders/glsl/particlefire/generate-spirv.bat diff --git a/data/shaders/particlefire/normalmap.frag b/data/shaders/glsl/particlefire/normalmap.frag similarity index 100% rename from data/shaders/particlefire/normalmap.frag rename to data/shaders/glsl/particlefire/normalmap.frag diff --git a/data/shaders/particlefire/normalmap.frag.spv b/data/shaders/glsl/particlefire/normalmap.frag.spv similarity index 100% rename from data/shaders/particlefire/normalmap.frag.spv rename to data/shaders/glsl/particlefire/normalmap.frag.spv diff --git a/data/shaders/particlefire/normalmap.vert b/data/shaders/glsl/particlefire/normalmap.vert similarity index 100% rename from data/shaders/particlefire/normalmap.vert rename to data/shaders/glsl/particlefire/normalmap.vert diff --git a/data/shaders/particlefire/normalmap.vert.spv b/data/shaders/glsl/particlefire/normalmap.vert.spv similarity index 100% rename from data/shaders/particlefire/normalmap.vert.spv rename to data/shaders/glsl/particlefire/normalmap.vert.spv diff --git a/data/shaders/particlefire/particle.frag b/data/shaders/glsl/particlefire/particle.frag similarity index 100% rename from data/shaders/particlefire/particle.frag rename to data/shaders/glsl/particlefire/particle.frag diff --git a/data/shaders/particlefire/particle.frag.spv b/data/shaders/glsl/particlefire/particle.frag.spv similarity index 100% rename from data/shaders/particlefire/particle.frag.spv rename to data/shaders/glsl/particlefire/particle.frag.spv diff --git a/data/shaders/particlefire/particle.vert b/data/shaders/glsl/particlefire/particle.vert similarity index 100% rename from data/shaders/particlefire/particle.vert rename to data/shaders/glsl/particlefire/particle.vert diff --git a/data/shaders/particlefire/particle.vert.spv b/data/shaders/glsl/particlefire/particle.vert.spv similarity index 100% rename from data/shaders/particlefire/particle.vert.spv rename to data/shaders/glsl/particlefire/particle.vert.spv diff --git a/data/shaders/pbrbasic/pbr.frag b/data/shaders/glsl/pbrbasic/pbr.frag similarity index 100% rename from data/shaders/pbrbasic/pbr.frag rename to data/shaders/glsl/pbrbasic/pbr.frag diff --git a/data/shaders/pbrbasic/pbr.frag.spv b/data/shaders/glsl/pbrbasic/pbr.frag.spv similarity index 100% rename from data/shaders/pbrbasic/pbr.frag.spv rename to data/shaders/glsl/pbrbasic/pbr.frag.spv diff --git a/data/shaders/pbrbasic/pbr.vert b/data/shaders/glsl/pbrbasic/pbr.vert similarity index 100% rename from data/shaders/pbrbasic/pbr.vert rename to data/shaders/glsl/pbrbasic/pbr.vert diff --git a/data/shaders/pbrbasic/pbr.vert.spv b/data/shaders/glsl/pbrbasic/pbr.vert.spv similarity index 100% rename from data/shaders/pbrbasic/pbr.vert.spv rename to data/shaders/glsl/pbrbasic/pbr.vert.spv diff --git a/data/shaders/pbribl/filtercube.vert b/data/shaders/glsl/pbribl/filtercube.vert similarity index 100% rename from data/shaders/pbribl/filtercube.vert rename to data/shaders/glsl/pbribl/filtercube.vert diff --git a/data/shaders/pbribl/filtercube.vert.spv b/data/shaders/glsl/pbribl/filtercube.vert.spv similarity index 100% rename from data/shaders/pbribl/filtercube.vert.spv rename to data/shaders/glsl/pbribl/filtercube.vert.spv diff --git a/data/shaders/pbribl/genbrdflut.frag b/data/shaders/glsl/pbribl/genbrdflut.frag similarity index 100% rename from data/shaders/pbribl/genbrdflut.frag rename to data/shaders/glsl/pbribl/genbrdflut.frag diff --git a/data/shaders/pbribl/genbrdflut.frag.spv b/data/shaders/glsl/pbribl/genbrdflut.frag.spv similarity index 100% rename from data/shaders/pbribl/genbrdflut.frag.spv rename to data/shaders/glsl/pbribl/genbrdflut.frag.spv diff --git a/data/shaders/pbribl/genbrdflut.vert b/data/shaders/glsl/pbribl/genbrdflut.vert similarity index 100% rename from data/shaders/pbribl/genbrdflut.vert rename to data/shaders/glsl/pbribl/genbrdflut.vert diff --git a/data/shaders/pbribl/genbrdflut.vert.spv b/data/shaders/glsl/pbribl/genbrdflut.vert.spv similarity index 100% rename from data/shaders/pbribl/genbrdflut.vert.spv rename to data/shaders/glsl/pbribl/genbrdflut.vert.spv diff --git a/data/shaders/pbribl/irradiancecube.frag b/data/shaders/glsl/pbribl/irradiancecube.frag similarity index 100% rename from data/shaders/pbribl/irradiancecube.frag rename to data/shaders/glsl/pbribl/irradiancecube.frag diff --git a/data/shaders/pbribl/irradiancecube.frag.spv b/data/shaders/glsl/pbribl/irradiancecube.frag.spv similarity index 100% rename from data/shaders/pbribl/irradiancecube.frag.spv rename to data/shaders/glsl/pbribl/irradiancecube.frag.spv diff --git a/data/shaders/pbribl/pbribl.frag b/data/shaders/glsl/pbribl/pbribl.frag similarity index 100% rename from data/shaders/pbribl/pbribl.frag rename to data/shaders/glsl/pbribl/pbribl.frag diff --git a/data/shaders/pbribl/pbribl.frag.spv b/data/shaders/glsl/pbribl/pbribl.frag.spv similarity index 100% rename from data/shaders/pbribl/pbribl.frag.spv rename to data/shaders/glsl/pbribl/pbribl.frag.spv diff --git a/data/shaders/pbribl/pbribl.vert b/data/shaders/glsl/pbribl/pbribl.vert similarity index 100% rename from data/shaders/pbribl/pbribl.vert rename to data/shaders/glsl/pbribl/pbribl.vert diff --git a/data/shaders/pbribl/pbribl.vert.spv b/data/shaders/glsl/pbribl/pbribl.vert.spv similarity index 100% rename from data/shaders/pbribl/pbribl.vert.spv rename to data/shaders/glsl/pbribl/pbribl.vert.spv diff --git a/data/shaders/pbribl/prefilterenvmap.frag b/data/shaders/glsl/pbribl/prefilterenvmap.frag similarity index 100% rename from data/shaders/pbribl/prefilterenvmap.frag rename to data/shaders/glsl/pbribl/prefilterenvmap.frag diff --git a/data/shaders/pbribl/prefilterenvmap.frag.spv b/data/shaders/glsl/pbribl/prefilterenvmap.frag.spv similarity index 100% rename from data/shaders/pbribl/prefilterenvmap.frag.spv rename to data/shaders/glsl/pbribl/prefilterenvmap.frag.spv diff --git a/data/shaders/pbribl/skybox.frag b/data/shaders/glsl/pbribl/skybox.frag similarity index 100% rename from data/shaders/pbribl/skybox.frag rename to data/shaders/glsl/pbribl/skybox.frag diff --git a/data/shaders/pbribl/skybox.frag.spv b/data/shaders/glsl/pbribl/skybox.frag.spv similarity index 100% rename from data/shaders/pbribl/skybox.frag.spv rename to data/shaders/glsl/pbribl/skybox.frag.spv diff --git a/data/shaders/pbribl/skybox.vert b/data/shaders/glsl/pbribl/skybox.vert similarity index 100% rename from data/shaders/pbribl/skybox.vert rename to data/shaders/glsl/pbribl/skybox.vert diff --git a/data/shaders/pbribl/skybox.vert.spv b/data/shaders/glsl/pbribl/skybox.vert.spv similarity index 100% rename from data/shaders/pbribl/skybox.vert.spv rename to data/shaders/glsl/pbribl/skybox.vert.spv diff --git a/data/shaders/pbrtexture/filtercube.vert b/data/shaders/glsl/pbrtexture/filtercube.vert similarity index 100% rename from data/shaders/pbrtexture/filtercube.vert rename to data/shaders/glsl/pbrtexture/filtercube.vert diff --git a/data/shaders/pbrtexture/filtercube.vert.spv b/data/shaders/glsl/pbrtexture/filtercube.vert.spv similarity index 100% rename from data/shaders/pbrtexture/filtercube.vert.spv rename to data/shaders/glsl/pbrtexture/filtercube.vert.spv diff --git a/data/shaders/pbrtexture/genbrdflut.frag b/data/shaders/glsl/pbrtexture/genbrdflut.frag similarity index 100% rename from data/shaders/pbrtexture/genbrdflut.frag rename to data/shaders/glsl/pbrtexture/genbrdflut.frag diff --git a/data/shaders/pbrtexture/genbrdflut.frag.spv b/data/shaders/glsl/pbrtexture/genbrdflut.frag.spv similarity index 100% rename from data/shaders/pbrtexture/genbrdflut.frag.spv rename to data/shaders/glsl/pbrtexture/genbrdflut.frag.spv diff --git a/data/shaders/pbrtexture/genbrdflut.vert b/data/shaders/glsl/pbrtexture/genbrdflut.vert similarity index 100% rename from data/shaders/pbrtexture/genbrdflut.vert rename to data/shaders/glsl/pbrtexture/genbrdflut.vert diff --git a/data/shaders/pbrtexture/genbrdflut.vert.spv b/data/shaders/glsl/pbrtexture/genbrdflut.vert.spv similarity index 100% rename from data/shaders/pbrtexture/genbrdflut.vert.spv rename to data/shaders/glsl/pbrtexture/genbrdflut.vert.spv diff --git a/data/shaders/pbrtexture/irradiancecube.frag b/data/shaders/glsl/pbrtexture/irradiancecube.frag similarity index 100% rename from data/shaders/pbrtexture/irradiancecube.frag rename to data/shaders/glsl/pbrtexture/irradiancecube.frag diff --git a/data/shaders/pbrtexture/irradiancecube.frag.spv b/data/shaders/glsl/pbrtexture/irradiancecube.frag.spv similarity index 100% rename from data/shaders/pbrtexture/irradiancecube.frag.spv rename to data/shaders/glsl/pbrtexture/irradiancecube.frag.spv diff --git a/data/shaders/pbrtexture/pbrtexture.frag b/data/shaders/glsl/pbrtexture/pbrtexture.frag similarity index 100% rename from data/shaders/pbrtexture/pbrtexture.frag rename to data/shaders/glsl/pbrtexture/pbrtexture.frag diff --git a/data/shaders/pbrtexture/pbrtexture.frag.spv b/data/shaders/glsl/pbrtexture/pbrtexture.frag.spv similarity index 100% rename from data/shaders/pbrtexture/pbrtexture.frag.spv rename to data/shaders/glsl/pbrtexture/pbrtexture.frag.spv diff --git a/data/shaders/pbrtexture/pbrtexture.vert b/data/shaders/glsl/pbrtexture/pbrtexture.vert similarity index 100% rename from data/shaders/pbrtexture/pbrtexture.vert rename to data/shaders/glsl/pbrtexture/pbrtexture.vert diff --git a/data/shaders/pbrtexture/pbrtexture.vert.spv b/data/shaders/glsl/pbrtexture/pbrtexture.vert.spv similarity index 100% rename from data/shaders/pbrtexture/pbrtexture.vert.spv rename to data/shaders/glsl/pbrtexture/pbrtexture.vert.spv diff --git a/data/shaders/pbrtexture/prefilterenvmap.frag b/data/shaders/glsl/pbrtexture/prefilterenvmap.frag similarity index 100% rename from data/shaders/pbrtexture/prefilterenvmap.frag rename to data/shaders/glsl/pbrtexture/prefilterenvmap.frag diff --git a/data/shaders/pbrtexture/prefilterenvmap.frag.spv b/data/shaders/glsl/pbrtexture/prefilterenvmap.frag.spv similarity index 100% rename from data/shaders/pbrtexture/prefilterenvmap.frag.spv rename to data/shaders/glsl/pbrtexture/prefilterenvmap.frag.spv diff --git a/data/shaders/pbrtexture/skybox.frag b/data/shaders/glsl/pbrtexture/skybox.frag similarity index 100% rename from data/shaders/pbrtexture/skybox.frag rename to data/shaders/glsl/pbrtexture/skybox.frag diff --git a/data/shaders/pbrtexture/skybox.frag.spv b/data/shaders/glsl/pbrtexture/skybox.frag.spv similarity index 100% rename from data/shaders/pbrtexture/skybox.frag.spv rename to data/shaders/glsl/pbrtexture/skybox.frag.spv diff --git a/data/shaders/pbrtexture/skybox.vert b/data/shaders/glsl/pbrtexture/skybox.vert similarity index 100% rename from data/shaders/pbrtexture/skybox.vert rename to data/shaders/glsl/pbrtexture/skybox.vert diff --git a/data/shaders/pbrtexture/skybox.vert.spv b/data/shaders/glsl/pbrtexture/skybox.vert.spv similarity index 100% rename from data/shaders/pbrtexture/skybox.vert.spv rename to data/shaders/glsl/pbrtexture/skybox.vert.spv diff --git a/data/shaders/pipelines/generate-spriv.bat b/data/shaders/glsl/pipelines/generate-spriv.bat similarity index 100% rename from data/shaders/pipelines/generate-spriv.bat rename to data/shaders/glsl/pipelines/generate-spriv.bat diff --git a/data/shaders/pipelines/phong.frag b/data/shaders/glsl/pipelines/phong.frag similarity index 100% rename from data/shaders/pipelines/phong.frag rename to data/shaders/glsl/pipelines/phong.frag diff --git a/data/shaders/pipelines/phong.frag.spv b/data/shaders/glsl/pipelines/phong.frag.spv similarity index 100% rename from data/shaders/pipelines/phong.frag.spv rename to data/shaders/glsl/pipelines/phong.frag.spv diff --git a/data/shaders/pipelines/phong.vert b/data/shaders/glsl/pipelines/phong.vert similarity index 100% rename from data/shaders/pipelines/phong.vert rename to data/shaders/glsl/pipelines/phong.vert diff --git a/data/shaders/pipelines/phong.vert.spv b/data/shaders/glsl/pipelines/phong.vert.spv similarity index 100% rename from data/shaders/pipelines/phong.vert.spv rename to data/shaders/glsl/pipelines/phong.vert.spv diff --git a/data/shaders/pipelines/toon.frag b/data/shaders/glsl/pipelines/toon.frag similarity index 100% rename from data/shaders/pipelines/toon.frag rename to data/shaders/glsl/pipelines/toon.frag diff --git a/data/shaders/pipelines/toon.frag.spv b/data/shaders/glsl/pipelines/toon.frag.spv similarity index 100% rename from data/shaders/pipelines/toon.frag.spv rename to data/shaders/glsl/pipelines/toon.frag.spv diff --git a/data/shaders/pipelines/toon.vert b/data/shaders/glsl/pipelines/toon.vert similarity index 100% rename from data/shaders/pipelines/toon.vert rename to data/shaders/glsl/pipelines/toon.vert diff --git a/data/shaders/pipelines/toon.vert.spv b/data/shaders/glsl/pipelines/toon.vert.spv similarity index 100% rename from data/shaders/pipelines/toon.vert.spv rename to data/shaders/glsl/pipelines/toon.vert.spv diff --git a/data/shaders/pipelines/wireframe.frag b/data/shaders/glsl/pipelines/wireframe.frag similarity index 100% rename from data/shaders/pipelines/wireframe.frag rename to data/shaders/glsl/pipelines/wireframe.frag diff --git a/data/shaders/pipelines/wireframe.frag.spv b/data/shaders/glsl/pipelines/wireframe.frag.spv similarity index 100% rename from data/shaders/pipelines/wireframe.frag.spv rename to data/shaders/glsl/pipelines/wireframe.frag.spv diff --git a/data/shaders/pipelines/wireframe.vert b/data/shaders/glsl/pipelines/wireframe.vert similarity index 100% rename from data/shaders/pipelines/wireframe.vert rename to data/shaders/glsl/pipelines/wireframe.vert diff --git a/data/shaders/pipelines/wireframe.vert.spv b/data/shaders/glsl/pipelines/wireframe.vert.spv similarity index 100% rename from data/shaders/pipelines/wireframe.vert.spv rename to data/shaders/glsl/pipelines/wireframe.vert.spv diff --git a/data/shaders/pipelinestatistics/scene.frag b/data/shaders/glsl/pipelinestatistics/scene.frag similarity index 100% rename from data/shaders/pipelinestatistics/scene.frag rename to data/shaders/glsl/pipelinestatistics/scene.frag diff --git a/data/shaders/pipelinestatistics/scene.frag.spv b/data/shaders/glsl/pipelinestatistics/scene.frag.spv similarity index 100% rename from data/shaders/pipelinestatistics/scene.frag.spv rename to data/shaders/glsl/pipelinestatistics/scene.frag.spv diff --git a/data/shaders/pipelinestatistics/scene.tesc b/data/shaders/glsl/pipelinestatistics/scene.tesc similarity index 100% rename from data/shaders/pipelinestatistics/scene.tesc rename to data/shaders/glsl/pipelinestatistics/scene.tesc diff --git a/data/shaders/pipelinestatistics/scene.tesc.spv b/data/shaders/glsl/pipelinestatistics/scene.tesc.spv similarity index 100% rename from data/shaders/pipelinestatistics/scene.tesc.spv rename to data/shaders/glsl/pipelinestatistics/scene.tesc.spv diff --git a/data/shaders/pipelinestatistics/scene.tese b/data/shaders/glsl/pipelinestatistics/scene.tese similarity index 100% rename from data/shaders/pipelinestatistics/scene.tese rename to data/shaders/glsl/pipelinestatistics/scene.tese diff --git a/data/shaders/pipelinestatistics/scene.tese.spv b/data/shaders/glsl/pipelinestatistics/scene.tese.spv similarity index 100% rename from data/shaders/pipelinestatistics/scene.tese.spv rename to data/shaders/glsl/pipelinestatistics/scene.tese.spv diff --git a/data/shaders/pipelinestatistics/scene.vert b/data/shaders/glsl/pipelinestatistics/scene.vert similarity index 100% rename from data/shaders/pipelinestatistics/scene.vert rename to data/shaders/glsl/pipelinestatistics/scene.vert diff --git a/data/shaders/pipelinestatistics/scene.vert.spv b/data/shaders/glsl/pipelinestatistics/scene.vert.spv similarity index 100% rename from data/shaders/pipelinestatistics/scene.vert.spv rename to data/shaders/glsl/pipelinestatistics/scene.vert.spv diff --git a/data/shaders/pushconstants/generate-spirv.bat b/data/shaders/glsl/pushconstants/generate-spirv.bat similarity index 100% rename from data/shaders/pushconstants/generate-spirv.bat rename to data/shaders/glsl/pushconstants/generate-spirv.bat diff --git a/data/shaders/pushconstants/lights.frag b/data/shaders/glsl/pushconstants/lights.frag similarity index 100% rename from data/shaders/pushconstants/lights.frag rename to data/shaders/glsl/pushconstants/lights.frag diff --git a/data/shaders/pushconstants/lights.frag.spv b/data/shaders/glsl/pushconstants/lights.frag.spv similarity index 100% rename from data/shaders/pushconstants/lights.frag.spv rename to data/shaders/glsl/pushconstants/lights.frag.spv diff --git a/data/shaders/pushconstants/lights.vert b/data/shaders/glsl/pushconstants/lights.vert similarity index 100% rename from data/shaders/pushconstants/lights.vert rename to data/shaders/glsl/pushconstants/lights.vert diff --git a/data/shaders/pushconstants/lights.vert.spv b/data/shaders/glsl/pushconstants/lights.vert.spv similarity index 100% rename from data/shaders/pushconstants/lights.vert.spv rename to data/shaders/glsl/pushconstants/lights.vert.spv diff --git a/data/shaders/pushdescriptors/cube.frag b/data/shaders/glsl/pushdescriptors/cube.frag similarity index 100% rename from data/shaders/pushdescriptors/cube.frag rename to data/shaders/glsl/pushdescriptors/cube.frag diff --git a/data/shaders/pushdescriptors/cube.frag.spv b/data/shaders/glsl/pushdescriptors/cube.frag.spv similarity index 100% rename from data/shaders/pushdescriptors/cube.frag.spv rename to data/shaders/glsl/pushdescriptors/cube.frag.spv diff --git a/data/shaders/pushdescriptors/cube.vert b/data/shaders/glsl/pushdescriptors/cube.vert similarity index 100% rename from data/shaders/pushdescriptors/cube.vert rename to data/shaders/glsl/pushdescriptors/cube.vert diff --git a/data/shaders/pushdescriptors/cube.vert.spv b/data/shaders/glsl/pushdescriptors/cube.vert.spv similarity index 100% rename from data/shaders/pushdescriptors/cube.vert.spv rename to data/shaders/glsl/pushdescriptors/cube.vert.spv diff --git a/data/shaders/radialblur/colorpass.frag b/data/shaders/glsl/radialblur/colorpass.frag similarity index 100% rename from data/shaders/radialblur/colorpass.frag rename to data/shaders/glsl/radialblur/colorpass.frag diff --git a/data/shaders/radialblur/colorpass.frag.spv b/data/shaders/glsl/radialblur/colorpass.frag.spv similarity index 100% rename from data/shaders/radialblur/colorpass.frag.spv rename to data/shaders/glsl/radialblur/colorpass.frag.spv diff --git a/data/shaders/radialblur/colorpass.vert b/data/shaders/glsl/radialblur/colorpass.vert similarity index 100% rename from data/shaders/radialblur/colorpass.vert rename to data/shaders/glsl/radialblur/colorpass.vert diff --git a/data/shaders/radialblur/colorpass.vert.spv b/data/shaders/glsl/radialblur/colorpass.vert.spv similarity index 100% rename from data/shaders/radialblur/colorpass.vert.spv rename to data/shaders/glsl/radialblur/colorpass.vert.spv diff --git a/data/shaders/radialblur/generate-spirv.bat b/data/shaders/glsl/radialblur/generate-spirv.bat similarity index 100% rename from data/shaders/radialblur/generate-spirv.bat rename to data/shaders/glsl/radialblur/generate-spirv.bat diff --git a/data/shaders/radialblur/phongpass.frag b/data/shaders/glsl/radialblur/phongpass.frag similarity index 100% rename from data/shaders/radialblur/phongpass.frag rename to data/shaders/glsl/radialblur/phongpass.frag diff --git a/data/shaders/radialblur/phongpass.frag.spv b/data/shaders/glsl/radialblur/phongpass.frag.spv similarity index 100% rename from data/shaders/radialblur/phongpass.frag.spv rename to data/shaders/glsl/radialblur/phongpass.frag.spv diff --git a/data/shaders/radialblur/phongpass.vert b/data/shaders/glsl/radialblur/phongpass.vert similarity index 100% rename from data/shaders/radialblur/phongpass.vert rename to data/shaders/glsl/radialblur/phongpass.vert diff --git a/data/shaders/radialblur/phongpass.vert.spv b/data/shaders/glsl/radialblur/phongpass.vert.spv similarity index 100% rename from data/shaders/radialblur/phongpass.vert.spv rename to data/shaders/glsl/radialblur/phongpass.vert.spv diff --git a/data/shaders/radialblur/radialblur.frag b/data/shaders/glsl/radialblur/radialblur.frag similarity index 100% rename from data/shaders/radialblur/radialblur.frag rename to data/shaders/glsl/radialblur/radialblur.frag diff --git a/data/shaders/radialblur/radialblur.frag.spv b/data/shaders/glsl/radialblur/radialblur.frag.spv similarity index 100% rename from data/shaders/radialblur/radialblur.frag.spv rename to data/shaders/glsl/radialblur/radialblur.frag.spv diff --git a/data/shaders/radialblur/radialblur.vert b/data/shaders/glsl/radialblur/radialblur.vert similarity index 100% rename from data/shaders/radialblur/radialblur.vert rename to data/shaders/glsl/radialblur/radialblur.vert diff --git a/data/shaders/radialblur/radialblur.vert.spv b/data/shaders/glsl/radialblur/radialblur.vert.spv similarity index 100% rename from data/shaders/radialblur/radialblur.vert.spv rename to data/shaders/glsl/radialblur/radialblur.vert.spv diff --git a/data/shaders/renderheadless/triangle.frag b/data/shaders/glsl/renderheadless/triangle.frag similarity index 100% rename from data/shaders/renderheadless/triangle.frag rename to data/shaders/glsl/renderheadless/triangle.frag diff --git a/data/shaders/renderheadless/triangle.frag.spv b/data/shaders/glsl/renderheadless/triangle.frag.spv similarity index 100% rename from data/shaders/renderheadless/triangle.frag.spv rename to data/shaders/glsl/renderheadless/triangle.frag.spv diff --git a/data/shaders/renderheadless/triangle.vert b/data/shaders/glsl/renderheadless/triangle.vert similarity index 100% rename from data/shaders/renderheadless/triangle.vert rename to data/shaders/glsl/renderheadless/triangle.vert diff --git a/data/shaders/renderheadless/triangle.vert.spv b/data/shaders/glsl/renderheadless/triangle.vert.spv similarity index 100% rename from data/shaders/renderheadless/triangle.vert.spv rename to data/shaders/glsl/renderheadless/triangle.vert.spv diff --git a/data/shaders/scenerendering/generate-spirv.bat b/data/shaders/glsl/scenerendering/generate-spirv.bat similarity index 100% rename from data/shaders/scenerendering/generate-spirv.bat rename to data/shaders/glsl/scenerendering/generate-spirv.bat diff --git a/data/shaders/scenerendering/scene.frag b/data/shaders/glsl/scenerendering/scene.frag similarity index 100% rename from data/shaders/scenerendering/scene.frag rename to data/shaders/glsl/scenerendering/scene.frag diff --git a/data/shaders/scenerendering/scene.frag.spv b/data/shaders/glsl/scenerendering/scene.frag.spv similarity index 100% rename from data/shaders/scenerendering/scene.frag.spv rename to data/shaders/glsl/scenerendering/scene.frag.spv diff --git a/data/shaders/scenerendering/scene.vert b/data/shaders/glsl/scenerendering/scene.vert similarity index 100% rename from data/shaders/scenerendering/scene.vert rename to data/shaders/glsl/scenerendering/scene.vert diff --git a/data/shaders/scenerendering/scene.vert.spv b/data/shaders/glsl/scenerendering/scene.vert.spv similarity index 100% rename from data/shaders/scenerendering/scene.vert.spv rename to data/shaders/glsl/scenerendering/scene.vert.spv diff --git a/data/shaders/screenshot/mesh.frag b/data/shaders/glsl/screenshot/mesh.frag similarity index 100% rename from data/shaders/screenshot/mesh.frag rename to data/shaders/glsl/screenshot/mesh.frag diff --git a/data/shaders/screenshot/mesh.frag.spv b/data/shaders/glsl/screenshot/mesh.frag.spv similarity index 100% rename from data/shaders/screenshot/mesh.frag.spv rename to data/shaders/glsl/screenshot/mesh.frag.spv diff --git a/data/shaders/screenshot/mesh.vert b/data/shaders/glsl/screenshot/mesh.vert similarity index 100% rename from data/shaders/screenshot/mesh.vert rename to data/shaders/glsl/screenshot/mesh.vert diff --git a/data/shaders/screenshot/mesh.vert.spv b/data/shaders/glsl/screenshot/mesh.vert.spv similarity index 100% rename from data/shaders/screenshot/mesh.vert.spv rename to data/shaders/glsl/screenshot/mesh.vert.spv diff --git a/data/shaders/shadowmapomni/cubemapdisplay.frag b/data/shaders/glsl/shadowmapomni/cubemapdisplay.frag similarity index 100% rename from data/shaders/shadowmapomni/cubemapdisplay.frag rename to data/shaders/glsl/shadowmapomni/cubemapdisplay.frag diff --git a/data/shaders/shadowmapomni/cubemapdisplay.frag.spv b/data/shaders/glsl/shadowmapomni/cubemapdisplay.frag.spv similarity index 100% rename from data/shaders/shadowmapomni/cubemapdisplay.frag.spv rename to data/shaders/glsl/shadowmapomni/cubemapdisplay.frag.spv diff --git a/data/shaders/shadowmapomni/cubemapdisplay.vert b/data/shaders/glsl/shadowmapomni/cubemapdisplay.vert similarity index 100% rename from data/shaders/shadowmapomni/cubemapdisplay.vert rename to data/shaders/glsl/shadowmapomni/cubemapdisplay.vert diff --git a/data/shaders/shadowmapomni/cubemapdisplay.vert.spv b/data/shaders/glsl/shadowmapomni/cubemapdisplay.vert.spv similarity index 100% rename from data/shaders/shadowmapomni/cubemapdisplay.vert.spv rename to data/shaders/glsl/shadowmapomni/cubemapdisplay.vert.spv diff --git a/data/shaders/shadowmapomni/generate-spirv.bat b/data/shaders/glsl/shadowmapomni/generate-spirv.bat similarity index 100% rename from data/shaders/shadowmapomni/generate-spirv.bat rename to data/shaders/glsl/shadowmapomni/generate-spirv.bat diff --git a/data/shaders/shadowmapomni/offscreen.frag b/data/shaders/glsl/shadowmapomni/offscreen.frag similarity index 100% rename from data/shaders/shadowmapomni/offscreen.frag rename to data/shaders/glsl/shadowmapomni/offscreen.frag diff --git a/data/shaders/shadowmapomni/offscreen.frag.spv b/data/shaders/glsl/shadowmapomni/offscreen.frag.spv similarity index 100% rename from data/shaders/shadowmapomni/offscreen.frag.spv rename to data/shaders/glsl/shadowmapomni/offscreen.frag.spv diff --git a/data/shaders/shadowmapomni/offscreen.vert b/data/shaders/glsl/shadowmapomni/offscreen.vert similarity index 100% rename from data/shaders/shadowmapomni/offscreen.vert rename to data/shaders/glsl/shadowmapomni/offscreen.vert diff --git a/data/shaders/shadowmapomni/offscreen.vert.spv b/data/shaders/glsl/shadowmapomni/offscreen.vert.spv similarity index 100% rename from data/shaders/shadowmapomni/offscreen.vert.spv rename to data/shaders/glsl/shadowmapomni/offscreen.vert.spv diff --git a/data/shaders/shadowmapomni/scene.frag b/data/shaders/glsl/shadowmapomni/scene.frag similarity index 100% rename from data/shaders/shadowmapomni/scene.frag rename to data/shaders/glsl/shadowmapomni/scene.frag diff --git a/data/shaders/shadowmapomni/scene.frag.spv b/data/shaders/glsl/shadowmapomni/scene.frag.spv similarity index 100% rename from data/shaders/shadowmapomni/scene.frag.spv rename to data/shaders/glsl/shadowmapomni/scene.frag.spv diff --git a/data/shaders/shadowmapomni/scene.vert b/data/shaders/glsl/shadowmapomni/scene.vert similarity index 100% rename from data/shaders/shadowmapomni/scene.vert rename to data/shaders/glsl/shadowmapomni/scene.vert diff --git a/data/shaders/shadowmapomni/scene.vert.spv b/data/shaders/glsl/shadowmapomni/scene.vert.spv similarity index 100% rename from data/shaders/shadowmapomni/scene.vert.spv rename to data/shaders/glsl/shadowmapomni/scene.vert.spv diff --git a/data/shaders/shadowmapping/generate-spirv.bat b/data/shaders/glsl/shadowmapping/generate-spirv.bat similarity index 100% rename from data/shaders/shadowmapping/generate-spirv.bat rename to data/shaders/glsl/shadowmapping/generate-spirv.bat diff --git a/data/shaders/shadowmapping/offscreen.frag b/data/shaders/glsl/shadowmapping/offscreen.frag similarity index 100% rename from data/shaders/shadowmapping/offscreen.frag rename to data/shaders/glsl/shadowmapping/offscreen.frag diff --git a/data/shaders/shadowmapping/offscreen.frag.spv b/data/shaders/glsl/shadowmapping/offscreen.frag.spv similarity index 100% rename from data/shaders/shadowmapping/offscreen.frag.spv rename to data/shaders/glsl/shadowmapping/offscreen.frag.spv diff --git a/data/shaders/shadowmapping/offscreen.vert b/data/shaders/glsl/shadowmapping/offscreen.vert similarity index 100% rename from data/shaders/shadowmapping/offscreen.vert rename to data/shaders/glsl/shadowmapping/offscreen.vert diff --git a/data/shaders/shadowmapping/offscreen.vert.spv b/data/shaders/glsl/shadowmapping/offscreen.vert.spv similarity index 100% rename from data/shaders/shadowmapping/offscreen.vert.spv rename to data/shaders/glsl/shadowmapping/offscreen.vert.spv diff --git a/data/shaders/shadowmapping/quad.frag b/data/shaders/glsl/shadowmapping/quad.frag similarity index 100% rename from data/shaders/shadowmapping/quad.frag rename to data/shaders/glsl/shadowmapping/quad.frag diff --git a/data/shaders/shadowmapping/quad.frag.spv b/data/shaders/glsl/shadowmapping/quad.frag.spv similarity index 100% rename from data/shaders/shadowmapping/quad.frag.spv rename to data/shaders/glsl/shadowmapping/quad.frag.spv diff --git a/data/shaders/shadowmapping/quad.vert b/data/shaders/glsl/shadowmapping/quad.vert similarity index 100% rename from data/shaders/shadowmapping/quad.vert rename to data/shaders/glsl/shadowmapping/quad.vert diff --git a/data/shaders/shadowmapping/quad.vert.spv b/data/shaders/glsl/shadowmapping/quad.vert.spv similarity index 100% rename from data/shaders/shadowmapping/quad.vert.spv rename to data/shaders/glsl/shadowmapping/quad.vert.spv diff --git a/data/shaders/shadowmapping/scene.frag b/data/shaders/glsl/shadowmapping/scene.frag similarity index 100% rename from data/shaders/shadowmapping/scene.frag rename to data/shaders/glsl/shadowmapping/scene.frag diff --git a/data/shaders/shadowmapping/scene.frag.spv b/data/shaders/glsl/shadowmapping/scene.frag.spv similarity index 100% rename from data/shaders/shadowmapping/scene.frag.spv rename to data/shaders/glsl/shadowmapping/scene.frag.spv diff --git a/data/shaders/shadowmapping/scene.vert b/data/shaders/glsl/shadowmapping/scene.vert similarity index 100% rename from data/shaders/shadowmapping/scene.vert rename to data/shaders/glsl/shadowmapping/scene.vert diff --git a/data/shaders/shadowmapping/scene.vert.spv b/data/shaders/glsl/shadowmapping/scene.vert.spv similarity index 100% rename from data/shaders/shadowmapping/scene.vert.spv rename to data/shaders/glsl/shadowmapping/scene.vert.spv diff --git a/data/shaders/shadowmappingcascade/debugshadowmap.frag b/data/shaders/glsl/shadowmappingcascade/debugshadowmap.frag similarity index 100% rename from data/shaders/shadowmappingcascade/debugshadowmap.frag rename to data/shaders/glsl/shadowmappingcascade/debugshadowmap.frag diff --git a/data/shaders/shadowmappingcascade/debugshadowmap.frag.spv b/data/shaders/glsl/shadowmappingcascade/debugshadowmap.frag.spv similarity index 100% rename from data/shaders/shadowmappingcascade/debugshadowmap.frag.spv rename to data/shaders/glsl/shadowmappingcascade/debugshadowmap.frag.spv diff --git a/data/shaders/shadowmappingcascade/debugshadowmap.vert b/data/shaders/glsl/shadowmappingcascade/debugshadowmap.vert similarity index 100% rename from data/shaders/shadowmappingcascade/debugshadowmap.vert rename to data/shaders/glsl/shadowmappingcascade/debugshadowmap.vert diff --git a/data/shaders/shadowmappingcascade/debugshadowmap.vert.spv b/data/shaders/glsl/shadowmappingcascade/debugshadowmap.vert.spv similarity index 100% rename from data/shaders/shadowmappingcascade/debugshadowmap.vert.spv rename to data/shaders/glsl/shadowmappingcascade/debugshadowmap.vert.spv diff --git a/data/shaders/shadowmappingcascade/depthpass.frag b/data/shaders/glsl/shadowmappingcascade/depthpass.frag similarity index 100% rename from data/shaders/shadowmappingcascade/depthpass.frag rename to data/shaders/glsl/shadowmappingcascade/depthpass.frag diff --git a/data/shaders/shadowmappingcascade/depthpass.frag.spv b/data/shaders/glsl/shadowmappingcascade/depthpass.frag.spv similarity index 100% rename from data/shaders/shadowmappingcascade/depthpass.frag.spv rename to data/shaders/glsl/shadowmappingcascade/depthpass.frag.spv diff --git a/data/shaders/shadowmappingcascade/depthpass.vert b/data/shaders/glsl/shadowmappingcascade/depthpass.vert similarity index 100% rename from data/shaders/shadowmappingcascade/depthpass.vert rename to data/shaders/glsl/shadowmappingcascade/depthpass.vert diff --git a/data/shaders/shadowmappingcascade/depthpass.vert.spv b/data/shaders/glsl/shadowmappingcascade/depthpass.vert.spv similarity index 100% rename from data/shaders/shadowmappingcascade/depthpass.vert.spv rename to data/shaders/glsl/shadowmappingcascade/depthpass.vert.spv diff --git a/data/shaders/shadowmappingcascade/scene.frag b/data/shaders/glsl/shadowmappingcascade/scene.frag similarity index 100% rename from data/shaders/shadowmappingcascade/scene.frag rename to data/shaders/glsl/shadowmappingcascade/scene.frag diff --git a/data/shaders/shadowmappingcascade/scene.frag.spv b/data/shaders/glsl/shadowmappingcascade/scene.frag.spv similarity index 100% rename from data/shaders/shadowmappingcascade/scene.frag.spv rename to data/shaders/glsl/shadowmappingcascade/scene.frag.spv diff --git a/data/shaders/shadowmappingcascade/scene.vert b/data/shaders/glsl/shadowmappingcascade/scene.vert similarity index 100% rename from data/shaders/shadowmappingcascade/scene.vert rename to data/shaders/glsl/shadowmappingcascade/scene.vert diff --git a/data/shaders/shadowmappingcascade/scene.vert.spv b/data/shaders/glsl/shadowmappingcascade/scene.vert.spv similarity index 100% rename from data/shaders/shadowmappingcascade/scene.vert.spv rename to data/shaders/glsl/shadowmappingcascade/scene.vert.spv diff --git a/data/shaders/skeletalanimation/mesh.frag b/data/shaders/glsl/skeletalanimation/mesh.frag similarity index 100% rename from data/shaders/skeletalanimation/mesh.frag rename to data/shaders/glsl/skeletalanimation/mesh.frag diff --git a/data/shaders/skeletalanimation/mesh.frag.spv b/data/shaders/glsl/skeletalanimation/mesh.frag.spv similarity index 100% rename from data/shaders/skeletalanimation/mesh.frag.spv rename to data/shaders/glsl/skeletalanimation/mesh.frag.spv diff --git a/data/shaders/skeletalanimation/mesh.vert b/data/shaders/glsl/skeletalanimation/mesh.vert similarity index 100% rename from data/shaders/skeletalanimation/mesh.vert rename to data/shaders/glsl/skeletalanimation/mesh.vert diff --git a/data/shaders/skeletalanimation/mesh.vert.spv b/data/shaders/glsl/skeletalanimation/mesh.vert.spv similarity index 100% rename from data/shaders/skeletalanimation/mesh.vert.spv rename to data/shaders/glsl/skeletalanimation/mesh.vert.spv diff --git a/data/shaders/skeletalanimation/texture.frag b/data/shaders/glsl/skeletalanimation/texture.frag similarity index 100% rename from data/shaders/skeletalanimation/texture.frag rename to data/shaders/glsl/skeletalanimation/texture.frag diff --git a/data/shaders/skeletalanimation/texture.frag.spv b/data/shaders/glsl/skeletalanimation/texture.frag.spv similarity index 100% rename from data/shaders/skeletalanimation/texture.frag.spv rename to data/shaders/glsl/skeletalanimation/texture.frag.spv diff --git a/data/shaders/skeletalanimation/texture.vert b/data/shaders/glsl/skeletalanimation/texture.vert similarity index 100% rename from data/shaders/skeletalanimation/texture.vert rename to data/shaders/glsl/skeletalanimation/texture.vert diff --git a/data/shaders/skeletalanimation/texture.vert.spv b/data/shaders/glsl/skeletalanimation/texture.vert.spv similarity index 100% rename from data/shaders/skeletalanimation/texture.vert.spv rename to data/shaders/glsl/skeletalanimation/texture.vert.spv diff --git a/data/shaders/specializationconstants/uber.frag b/data/shaders/glsl/specializationconstants/uber.frag similarity index 100% rename from data/shaders/specializationconstants/uber.frag rename to data/shaders/glsl/specializationconstants/uber.frag diff --git a/data/shaders/specializationconstants/uber.frag.spv b/data/shaders/glsl/specializationconstants/uber.frag.spv similarity index 100% rename from data/shaders/specializationconstants/uber.frag.spv rename to data/shaders/glsl/specializationconstants/uber.frag.spv diff --git a/data/shaders/specializationconstants/uber.vert b/data/shaders/glsl/specializationconstants/uber.vert similarity index 100% rename from data/shaders/specializationconstants/uber.vert rename to data/shaders/glsl/specializationconstants/uber.vert diff --git a/data/shaders/specializationconstants/uber.vert.spv b/data/shaders/glsl/specializationconstants/uber.vert.spv similarity index 100% rename from data/shaders/specializationconstants/uber.vert.spv rename to data/shaders/glsl/specializationconstants/uber.vert.spv diff --git a/data/shaders/sphericalenvmapping/generate-spirv.bat b/data/shaders/glsl/sphericalenvmapping/generate-spirv.bat similarity index 100% rename from data/shaders/sphericalenvmapping/generate-spirv.bat rename to data/shaders/glsl/sphericalenvmapping/generate-spirv.bat diff --git a/data/shaders/sphericalenvmapping/sem.frag b/data/shaders/glsl/sphericalenvmapping/sem.frag similarity index 100% rename from data/shaders/sphericalenvmapping/sem.frag rename to data/shaders/glsl/sphericalenvmapping/sem.frag diff --git a/data/shaders/sphericalenvmapping/sem.frag.spv b/data/shaders/glsl/sphericalenvmapping/sem.frag.spv similarity index 100% rename from data/shaders/sphericalenvmapping/sem.frag.spv rename to data/shaders/glsl/sphericalenvmapping/sem.frag.spv diff --git a/data/shaders/sphericalenvmapping/sem.vert b/data/shaders/glsl/sphericalenvmapping/sem.vert similarity index 100% rename from data/shaders/sphericalenvmapping/sem.vert rename to data/shaders/glsl/sphericalenvmapping/sem.vert diff --git a/data/shaders/sphericalenvmapping/sem.vert.spv b/data/shaders/glsl/sphericalenvmapping/sem.vert.spv similarity index 100% rename from data/shaders/sphericalenvmapping/sem.vert.spv rename to data/shaders/glsl/sphericalenvmapping/sem.vert.spv diff --git a/data/shaders/ssao/blur.frag b/data/shaders/glsl/ssao/blur.frag similarity index 100% rename from data/shaders/ssao/blur.frag rename to data/shaders/glsl/ssao/blur.frag diff --git a/data/shaders/ssao/blur.frag.spv b/data/shaders/glsl/ssao/blur.frag.spv similarity index 100% rename from data/shaders/ssao/blur.frag.spv rename to data/shaders/glsl/ssao/blur.frag.spv diff --git a/data/shaders/ssao/composition.frag b/data/shaders/glsl/ssao/composition.frag similarity index 100% rename from data/shaders/ssao/composition.frag rename to data/shaders/glsl/ssao/composition.frag diff --git a/data/shaders/ssao/composition.frag.spv b/data/shaders/glsl/ssao/composition.frag.spv similarity index 100% rename from data/shaders/ssao/composition.frag.spv rename to data/shaders/glsl/ssao/composition.frag.spv diff --git a/data/shaders/ssao/fullscreen.vert b/data/shaders/glsl/ssao/fullscreen.vert similarity index 100% rename from data/shaders/ssao/fullscreen.vert rename to data/shaders/glsl/ssao/fullscreen.vert diff --git a/data/shaders/ssao/fullscreen.vert.spv b/data/shaders/glsl/ssao/fullscreen.vert.spv similarity index 100% rename from data/shaders/ssao/fullscreen.vert.spv rename to data/shaders/glsl/ssao/fullscreen.vert.spv diff --git a/data/shaders/ssao/gbuffer.frag b/data/shaders/glsl/ssao/gbuffer.frag similarity index 100% rename from data/shaders/ssao/gbuffer.frag rename to data/shaders/glsl/ssao/gbuffer.frag diff --git a/data/shaders/ssao/gbuffer.frag.spv b/data/shaders/glsl/ssao/gbuffer.frag.spv similarity index 100% rename from data/shaders/ssao/gbuffer.frag.spv rename to data/shaders/glsl/ssao/gbuffer.frag.spv diff --git a/data/shaders/ssao/gbuffer.vert b/data/shaders/glsl/ssao/gbuffer.vert similarity index 100% rename from data/shaders/ssao/gbuffer.vert rename to data/shaders/glsl/ssao/gbuffer.vert diff --git a/data/shaders/ssao/gbuffer.vert.spv b/data/shaders/glsl/ssao/gbuffer.vert.spv similarity index 100% rename from data/shaders/ssao/gbuffer.vert.spv rename to data/shaders/glsl/ssao/gbuffer.vert.spv diff --git a/data/shaders/ssao/ssao.frag b/data/shaders/glsl/ssao/ssao.frag similarity index 100% rename from data/shaders/ssao/ssao.frag rename to data/shaders/glsl/ssao/ssao.frag diff --git a/data/shaders/ssao/ssao.frag.spv b/data/shaders/glsl/ssao/ssao.frag.spv similarity index 100% rename from data/shaders/ssao/ssao.frag.spv rename to data/shaders/glsl/ssao/ssao.frag.spv diff --git a/data/shaders/stencilbuffer/outline.frag b/data/shaders/glsl/stencilbuffer/outline.frag similarity index 100% rename from data/shaders/stencilbuffer/outline.frag rename to data/shaders/glsl/stencilbuffer/outline.frag diff --git a/data/shaders/stencilbuffer/outline.frag.spv b/data/shaders/glsl/stencilbuffer/outline.frag.spv similarity index 100% rename from data/shaders/stencilbuffer/outline.frag.spv rename to data/shaders/glsl/stencilbuffer/outline.frag.spv diff --git a/data/shaders/stencilbuffer/outline.vert b/data/shaders/glsl/stencilbuffer/outline.vert similarity index 100% rename from data/shaders/stencilbuffer/outline.vert rename to data/shaders/glsl/stencilbuffer/outline.vert diff --git a/data/shaders/stencilbuffer/outline.vert.spv b/data/shaders/glsl/stencilbuffer/outline.vert.spv similarity index 100% rename from data/shaders/stencilbuffer/outline.vert.spv rename to data/shaders/glsl/stencilbuffer/outline.vert.spv diff --git a/data/shaders/stencilbuffer/toon.frag b/data/shaders/glsl/stencilbuffer/toon.frag similarity index 100% rename from data/shaders/stencilbuffer/toon.frag rename to data/shaders/glsl/stencilbuffer/toon.frag diff --git a/data/shaders/stencilbuffer/toon.frag.spv b/data/shaders/glsl/stencilbuffer/toon.frag.spv similarity index 100% rename from data/shaders/stencilbuffer/toon.frag.spv rename to data/shaders/glsl/stencilbuffer/toon.frag.spv diff --git a/data/shaders/stencilbuffer/toon.vert b/data/shaders/glsl/stencilbuffer/toon.vert similarity index 100% rename from data/shaders/stencilbuffer/toon.vert rename to data/shaders/glsl/stencilbuffer/toon.vert diff --git a/data/shaders/stencilbuffer/toon.vert.spv b/data/shaders/glsl/stencilbuffer/toon.vert.spv similarity index 100% rename from data/shaders/stencilbuffer/toon.vert.spv rename to data/shaders/glsl/stencilbuffer/toon.vert.spv diff --git a/data/shaders/subpasses/composition.frag b/data/shaders/glsl/subpasses/composition.frag similarity index 100% rename from data/shaders/subpasses/composition.frag rename to data/shaders/glsl/subpasses/composition.frag diff --git a/data/shaders/subpasses/composition.frag.spv b/data/shaders/glsl/subpasses/composition.frag.spv similarity index 100% rename from data/shaders/subpasses/composition.frag.spv rename to data/shaders/glsl/subpasses/composition.frag.spv diff --git a/data/shaders/subpasses/composition.vert b/data/shaders/glsl/subpasses/composition.vert similarity index 100% rename from data/shaders/subpasses/composition.vert rename to data/shaders/glsl/subpasses/composition.vert diff --git a/data/shaders/subpasses/composition.vert.spv b/data/shaders/glsl/subpasses/composition.vert.spv similarity index 100% rename from data/shaders/subpasses/composition.vert.spv rename to data/shaders/glsl/subpasses/composition.vert.spv diff --git a/data/shaders/subpasses/gbuffer.frag b/data/shaders/glsl/subpasses/gbuffer.frag similarity index 100% rename from data/shaders/subpasses/gbuffer.frag rename to data/shaders/glsl/subpasses/gbuffer.frag diff --git a/data/shaders/subpasses/gbuffer.frag.spv b/data/shaders/glsl/subpasses/gbuffer.frag.spv similarity index 100% rename from data/shaders/subpasses/gbuffer.frag.spv rename to data/shaders/glsl/subpasses/gbuffer.frag.spv diff --git a/data/shaders/subpasses/gbuffer.vert b/data/shaders/glsl/subpasses/gbuffer.vert similarity index 100% rename from data/shaders/subpasses/gbuffer.vert rename to data/shaders/glsl/subpasses/gbuffer.vert diff --git a/data/shaders/subpasses/gbuffer.vert.spv b/data/shaders/glsl/subpasses/gbuffer.vert.spv similarity index 100% rename from data/shaders/subpasses/gbuffer.vert.spv rename to data/shaders/glsl/subpasses/gbuffer.vert.spv diff --git a/data/shaders/subpasses/transparent.frag b/data/shaders/glsl/subpasses/transparent.frag similarity index 100% rename from data/shaders/subpasses/transparent.frag rename to data/shaders/glsl/subpasses/transparent.frag diff --git a/data/shaders/subpasses/transparent.frag.spv b/data/shaders/glsl/subpasses/transparent.frag.spv similarity index 100% rename from data/shaders/subpasses/transparent.frag.spv rename to data/shaders/glsl/subpasses/transparent.frag.spv diff --git a/data/shaders/subpasses/transparent.vert b/data/shaders/glsl/subpasses/transparent.vert similarity index 100% rename from data/shaders/subpasses/transparent.vert rename to data/shaders/glsl/subpasses/transparent.vert diff --git a/data/shaders/subpasses/transparent.vert.spv b/data/shaders/glsl/subpasses/transparent.vert.spv similarity index 100% rename from data/shaders/subpasses/transparent.vert.spv rename to data/shaders/glsl/subpasses/transparent.vert.spv diff --git a/data/shaders/terraintessellation/generate-spirv.bat b/data/shaders/glsl/terraintessellation/generate-spirv.bat similarity index 100% rename from data/shaders/terraintessellation/generate-spirv.bat rename to data/shaders/glsl/terraintessellation/generate-spirv.bat diff --git a/data/shaders/terraintessellation/skysphere.frag b/data/shaders/glsl/terraintessellation/skysphere.frag similarity index 100% rename from data/shaders/terraintessellation/skysphere.frag rename to data/shaders/glsl/terraintessellation/skysphere.frag diff --git a/data/shaders/terraintessellation/skysphere.frag.spv b/data/shaders/glsl/terraintessellation/skysphere.frag.spv similarity index 100% rename from data/shaders/terraintessellation/skysphere.frag.spv rename to data/shaders/glsl/terraintessellation/skysphere.frag.spv diff --git a/data/shaders/terraintessellation/skysphere.vert b/data/shaders/glsl/terraintessellation/skysphere.vert similarity index 100% rename from data/shaders/terraintessellation/skysphere.vert rename to data/shaders/glsl/terraintessellation/skysphere.vert diff --git a/data/shaders/terraintessellation/skysphere.vert.spv b/data/shaders/glsl/terraintessellation/skysphere.vert.spv similarity index 100% rename from data/shaders/terraintessellation/skysphere.vert.spv rename to data/shaders/glsl/terraintessellation/skysphere.vert.spv diff --git a/data/shaders/terraintessellation/terrain.frag b/data/shaders/glsl/terraintessellation/terrain.frag similarity index 100% rename from data/shaders/terraintessellation/terrain.frag rename to data/shaders/glsl/terraintessellation/terrain.frag diff --git a/data/shaders/terraintessellation/terrain.frag.spv b/data/shaders/glsl/terraintessellation/terrain.frag.spv similarity index 100% rename from data/shaders/terraintessellation/terrain.frag.spv rename to data/shaders/glsl/terraintessellation/terrain.frag.spv diff --git a/data/shaders/terraintessellation/terrain.tesc b/data/shaders/glsl/terraintessellation/terrain.tesc similarity index 100% rename from data/shaders/terraintessellation/terrain.tesc rename to data/shaders/glsl/terraintessellation/terrain.tesc diff --git a/data/shaders/terraintessellation/terrain.tesc.spv b/data/shaders/glsl/terraintessellation/terrain.tesc.spv similarity index 100% rename from data/shaders/terraintessellation/terrain.tesc.spv rename to data/shaders/glsl/terraintessellation/terrain.tesc.spv diff --git a/data/shaders/terraintessellation/terrain.tese b/data/shaders/glsl/terraintessellation/terrain.tese similarity index 100% rename from data/shaders/terraintessellation/terrain.tese rename to data/shaders/glsl/terraintessellation/terrain.tese diff --git a/data/shaders/terraintessellation/terrain.tese.spv b/data/shaders/glsl/terraintessellation/terrain.tese.spv similarity index 100% rename from data/shaders/terraintessellation/terrain.tese.spv rename to data/shaders/glsl/terraintessellation/terrain.tese.spv diff --git a/data/shaders/terraintessellation/terrain.vert b/data/shaders/glsl/terraintessellation/terrain.vert similarity index 100% rename from data/shaders/terraintessellation/terrain.vert rename to data/shaders/glsl/terraintessellation/terrain.vert diff --git a/data/shaders/terraintessellation/terrain.vert.spv b/data/shaders/glsl/terraintessellation/terrain.vert.spv similarity index 100% rename from data/shaders/terraintessellation/terrain.vert.spv rename to data/shaders/glsl/terraintessellation/terrain.vert.spv diff --git a/data/shaders/tessellation/base.frag b/data/shaders/glsl/tessellation/base.frag similarity index 100% rename from data/shaders/tessellation/base.frag rename to data/shaders/glsl/tessellation/base.frag diff --git a/data/shaders/tessellation/base.frag.spv b/data/shaders/glsl/tessellation/base.frag.spv similarity index 100% rename from data/shaders/tessellation/base.frag.spv rename to data/shaders/glsl/tessellation/base.frag.spv diff --git a/data/shaders/tessellation/base.vert b/data/shaders/glsl/tessellation/base.vert similarity index 100% rename from data/shaders/tessellation/base.vert rename to data/shaders/glsl/tessellation/base.vert diff --git a/data/shaders/tessellation/base.vert.spv b/data/shaders/glsl/tessellation/base.vert.spv similarity index 100% rename from data/shaders/tessellation/base.vert.spv rename to data/shaders/glsl/tessellation/base.vert.spv diff --git a/data/shaders/tessellation/generate-spriv.bat b/data/shaders/glsl/tessellation/generate-spriv.bat similarity index 100% rename from data/shaders/tessellation/generate-spriv.bat rename to data/shaders/glsl/tessellation/generate-spriv.bat diff --git a/data/shaders/tessellation/passthrough.tesc b/data/shaders/glsl/tessellation/passthrough.tesc similarity index 100% rename from data/shaders/tessellation/passthrough.tesc rename to data/shaders/glsl/tessellation/passthrough.tesc diff --git a/data/shaders/tessellation/passthrough.tesc.spv b/data/shaders/glsl/tessellation/passthrough.tesc.spv similarity index 100% rename from data/shaders/tessellation/passthrough.tesc.spv rename to data/shaders/glsl/tessellation/passthrough.tesc.spv diff --git a/data/shaders/tessellation/passthrough.tese b/data/shaders/glsl/tessellation/passthrough.tese similarity index 100% rename from data/shaders/tessellation/passthrough.tese rename to data/shaders/glsl/tessellation/passthrough.tese diff --git a/data/shaders/tessellation/passthrough.tese.spv b/data/shaders/glsl/tessellation/passthrough.tese.spv similarity index 100% rename from data/shaders/tessellation/passthrough.tese.spv rename to data/shaders/glsl/tessellation/passthrough.tese.spv diff --git a/data/shaders/tessellation/pntriangles.tesc b/data/shaders/glsl/tessellation/pntriangles.tesc similarity index 100% rename from data/shaders/tessellation/pntriangles.tesc rename to data/shaders/glsl/tessellation/pntriangles.tesc diff --git a/data/shaders/tessellation/pntriangles.tesc.spv b/data/shaders/glsl/tessellation/pntriangles.tesc.spv similarity index 100% rename from data/shaders/tessellation/pntriangles.tesc.spv rename to data/shaders/glsl/tessellation/pntriangles.tesc.spv diff --git a/data/shaders/tessellation/pntriangles.tese b/data/shaders/glsl/tessellation/pntriangles.tese similarity index 100% rename from data/shaders/tessellation/pntriangles.tese rename to data/shaders/glsl/tessellation/pntriangles.tese diff --git a/data/shaders/tessellation/pntriangles.tese.spv b/data/shaders/glsl/tessellation/pntriangles.tese.spv similarity index 100% rename from data/shaders/tessellation/pntriangles.tese.spv rename to data/shaders/glsl/tessellation/pntriangles.tese.spv diff --git a/data/shaders/textoverlay/mesh.frag b/data/shaders/glsl/textoverlay/mesh.frag similarity index 100% rename from data/shaders/textoverlay/mesh.frag rename to data/shaders/glsl/textoverlay/mesh.frag diff --git a/data/shaders/textoverlay/mesh.frag.spv b/data/shaders/glsl/textoverlay/mesh.frag.spv similarity index 100% rename from data/shaders/textoverlay/mesh.frag.spv rename to data/shaders/glsl/textoverlay/mesh.frag.spv diff --git a/data/shaders/textoverlay/mesh.vert b/data/shaders/glsl/textoverlay/mesh.vert similarity index 100% rename from data/shaders/textoverlay/mesh.vert rename to data/shaders/glsl/textoverlay/mesh.vert diff --git a/data/shaders/textoverlay/mesh.vert.spv b/data/shaders/glsl/textoverlay/mesh.vert.spv similarity index 100% rename from data/shaders/textoverlay/mesh.vert.spv rename to data/shaders/glsl/textoverlay/mesh.vert.spv diff --git a/data/shaders/textoverlay/text.frag b/data/shaders/glsl/textoverlay/text.frag similarity index 100% rename from data/shaders/textoverlay/text.frag rename to data/shaders/glsl/textoverlay/text.frag diff --git a/data/shaders/textoverlay/text.frag.spv b/data/shaders/glsl/textoverlay/text.frag.spv similarity index 100% rename from data/shaders/textoverlay/text.frag.spv rename to data/shaders/glsl/textoverlay/text.frag.spv diff --git a/data/shaders/textoverlay/text.vert b/data/shaders/glsl/textoverlay/text.vert similarity index 100% rename from data/shaders/textoverlay/text.vert rename to data/shaders/glsl/textoverlay/text.vert diff --git a/data/shaders/textoverlay/text.vert.spv b/data/shaders/glsl/textoverlay/text.vert.spv similarity index 100% rename from data/shaders/textoverlay/text.vert.spv rename to data/shaders/glsl/textoverlay/text.vert.spv diff --git a/data/shaders/texture/generate-spirv.bat b/data/shaders/glsl/texture/generate-spirv.bat similarity index 100% rename from data/shaders/texture/generate-spirv.bat rename to data/shaders/glsl/texture/generate-spirv.bat diff --git a/data/shaders/texture/texture.frag b/data/shaders/glsl/texture/texture.frag similarity index 100% rename from data/shaders/texture/texture.frag rename to data/shaders/glsl/texture/texture.frag diff --git a/data/shaders/texture/texture.frag.spv b/data/shaders/glsl/texture/texture.frag.spv similarity index 100% rename from data/shaders/texture/texture.frag.spv rename to data/shaders/glsl/texture/texture.frag.spv diff --git a/data/shaders/texture/texture.vert b/data/shaders/glsl/texture/texture.vert similarity index 100% rename from data/shaders/texture/texture.vert rename to data/shaders/glsl/texture/texture.vert diff --git a/data/shaders/texture/texture.vert.spv b/data/shaders/glsl/texture/texture.vert.spv similarity index 100% rename from data/shaders/texture/texture.vert.spv rename to data/shaders/glsl/texture/texture.vert.spv diff --git a/data/shaders/texture3d/texture3d.frag b/data/shaders/glsl/texture3d/texture3d.frag similarity index 100% rename from data/shaders/texture3d/texture3d.frag rename to data/shaders/glsl/texture3d/texture3d.frag diff --git a/data/shaders/texture3d/texture3d.frag.spv b/data/shaders/glsl/texture3d/texture3d.frag.spv similarity index 100% rename from data/shaders/texture3d/texture3d.frag.spv rename to data/shaders/glsl/texture3d/texture3d.frag.spv diff --git a/data/shaders/texture3d/texture3d.vert b/data/shaders/glsl/texture3d/texture3d.vert similarity index 100% rename from data/shaders/texture3d/texture3d.vert rename to data/shaders/glsl/texture3d/texture3d.vert diff --git a/data/shaders/texture3d/texture3d.vert.spv b/data/shaders/glsl/texture3d/texture3d.vert.spv similarity index 100% rename from data/shaders/texture3d/texture3d.vert.spv rename to data/shaders/glsl/texture3d/texture3d.vert.spv diff --git a/data/shaders/texturearray/generate-spirv.bat b/data/shaders/glsl/texturearray/generate-spirv.bat similarity index 100% rename from data/shaders/texturearray/generate-spirv.bat rename to data/shaders/glsl/texturearray/generate-spirv.bat diff --git a/data/shaders/texturearray/instancing.frag b/data/shaders/glsl/texturearray/instancing.frag similarity index 100% rename from data/shaders/texturearray/instancing.frag rename to data/shaders/glsl/texturearray/instancing.frag diff --git a/data/shaders/texturearray/instancing.frag.spv b/data/shaders/glsl/texturearray/instancing.frag.spv similarity index 100% rename from data/shaders/texturearray/instancing.frag.spv rename to data/shaders/glsl/texturearray/instancing.frag.spv diff --git a/data/shaders/texturearray/instancing.vert b/data/shaders/glsl/texturearray/instancing.vert similarity index 100% rename from data/shaders/texturearray/instancing.vert rename to data/shaders/glsl/texturearray/instancing.vert diff --git a/data/shaders/texturearray/instancing.vert.spv b/data/shaders/glsl/texturearray/instancing.vert.spv similarity index 100% rename from data/shaders/texturearray/instancing.vert.spv rename to data/shaders/glsl/texturearray/instancing.vert.spv diff --git a/data/shaders/texturecubemap/reflect.frag b/data/shaders/glsl/texturecubemap/reflect.frag similarity index 100% rename from data/shaders/texturecubemap/reflect.frag rename to data/shaders/glsl/texturecubemap/reflect.frag diff --git a/data/shaders/texturecubemap/reflect.frag.spv b/data/shaders/glsl/texturecubemap/reflect.frag.spv similarity index 100% rename from data/shaders/texturecubemap/reflect.frag.spv rename to data/shaders/glsl/texturecubemap/reflect.frag.spv diff --git a/data/shaders/texturecubemap/reflect.vert b/data/shaders/glsl/texturecubemap/reflect.vert similarity index 100% rename from data/shaders/texturecubemap/reflect.vert rename to data/shaders/glsl/texturecubemap/reflect.vert diff --git a/data/shaders/texturecubemap/reflect.vert.spv b/data/shaders/glsl/texturecubemap/reflect.vert.spv similarity index 100% rename from data/shaders/texturecubemap/reflect.vert.spv rename to data/shaders/glsl/texturecubemap/reflect.vert.spv diff --git a/data/shaders/texturecubemap/skybox.frag b/data/shaders/glsl/texturecubemap/skybox.frag similarity index 100% rename from data/shaders/texturecubemap/skybox.frag rename to data/shaders/glsl/texturecubemap/skybox.frag diff --git a/data/shaders/texturecubemap/skybox.frag.spv b/data/shaders/glsl/texturecubemap/skybox.frag.spv similarity index 100% rename from data/shaders/texturecubemap/skybox.frag.spv rename to data/shaders/glsl/texturecubemap/skybox.frag.spv diff --git a/data/shaders/texturecubemap/skybox.vert b/data/shaders/glsl/texturecubemap/skybox.vert similarity index 100% rename from data/shaders/texturecubemap/skybox.vert rename to data/shaders/glsl/texturecubemap/skybox.vert diff --git a/data/shaders/texturecubemap/skybox.vert.spv b/data/shaders/glsl/texturecubemap/skybox.vert.spv similarity index 100% rename from data/shaders/texturecubemap/skybox.vert.spv rename to data/shaders/glsl/texturecubemap/skybox.vert.spv diff --git a/data/shaders/texturemipmapgen/texture.frag b/data/shaders/glsl/texturemipmapgen/texture.frag similarity index 100% rename from data/shaders/texturemipmapgen/texture.frag rename to data/shaders/glsl/texturemipmapgen/texture.frag diff --git a/data/shaders/texturemipmapgen/texture.frag.spv b/data/shaders/glsl/texturemipmapgen/texture.frag.spv similarity index 100% rename from data/shaders/texturemipmapgen/texture.frag.spv rename to data/shaders/glsl/texturemipmapgen/texture.frag.spv diff --git a/data/shaders/texturemipmapgen/texture.vert b/data/shaders/glsl/texturemipmapgen/texture.vert similarity index 100% rename from data/shaders/texturemipmapgen/texture.vert rename to data/shaders/glsl/texturemipmapgen/texture.vert diff --git a/data/shaders/texturemipmapgen/texture.vert.spv b/data/shaders/glsl/texturemipmapgen/texture.vert.spv similarity index 100% rename from data/shaders/texturemipmapgen/texture.vert.spv rename to data/shaders/glsl/texturemipmapgen/texture.vert.spv diff --git a/data/shaders/texturesparseresidency/sparseresidency.frag b/data/shaders/glsl/texturesparseresidency/sparseresidency.frag similarity index 100% rename from data/shaders/texturesparseresidency/sparseresidency.frag rename to data/shaders/glsl/texturesparseresidency/sparseresidency.frag diff --git a/data/shaders/texturesparseresidency/sparseresidency.frag.spv b/data/shaders/glsl/texturesparseresidency/sparseresidency.frag.spv similarity index 100% rename from data/shaders/texturesparseresidency/sparseresidency.frag.spv rename to data/shaders/glsl/texturesparseresidency/sparseresidency.frag.spv diff --git a/data/shaders/texturesparseresidency/sparseresidency.vert b/data/shaders/glsl/texturesparseresidency/sparseresidency.vert similarity index 100% rename from data/shaders/texturesparseresidency/sparseresidency.vert rename to data/shaders/glsl/texturesparseresidency/sparseresidency.vert diff --git a/data/shaders/texturesparseresidency/sparseresidency.vert.spv b/data/shaders/glsl/texturesparseresidency/sparseresidency.vert.spv similarity index 100% rename from data/shaders/texturesparseresidency/sparseresidency.vert.spv rename to data/shaders/glsl/texturesparseresidency/sparseresidency.vert.spv diff --git a/data/shaders/triangle/triangle.frag b/data/shaders/glsl/triangle/triangle.frag similarity index 100% rename from data/shaders/triangle/triangle.frag rename to data/shaders/glsl/triangle/triangle.frag diff --git a/data/shaders/triangle/triangle.frag.spv b/data/shaders/glsl/triangle/triangle.frag.spv similarity index 100% rename from data/shaders/triangle/triangle.frag.spv rename to data/shaders/glsl/triangle/triangle.frag.spv diff --git a/data/shaders/triangle/triangle.vert b/data/shaders/glsl/triangle/triangle.vert similarity index 100% rename from data/shaders/triangle/triangle.vert rename to data/shaders/glsl/triangle/triangle.vert diff --git a/data/shaders/triangle/triangle.vert.spv b/data/shaders/glsl/triangle/triangle.vert.spv similarity index 100% rename from data/shaders/triangle/triangle.vert.spv rename to data/shaders/glsl/triangle/triangle.vert.spv diff --git a/data/shaders/viewportarray/multiview.geom b/data/shaders/glsl/viewportarray/multiview.geom similarity index 100% rename from data/shaders/viewportarray/multiview.geom rename to data/shaders/glsl/viewportarray/multiview.geom diff --git a/data/shaders/viewportarray/multiview.geom.spv b/data/shaders/glsl/viewportarray/multiview.geom.spv similarity index 100% rename from data/shaders/viewportarray/multiview.geom.spv rename to data/shaders/glsl/viewportarray/multiview.geom.spv diff --git a/data/shaders/viewportarray/scene.frag b/data/shaders/glsl/viewportarray/scene.frag similarity index 100% rename from data/shaders/viewportarray/scene.frag rename to data/shaders/glsl/viewportarray/scene.frag diff --git a/data/shaders/viewportarray/scene.frag.spv b/data/shaders/glsl/viewportarray/scene.frag.spv similarity index 100% rename from data/shaders/viewportarray/scene.frag.spv rename to data/shaders/glsl/viewportarray/scene.frag.spv diff --git a/data/shaders/viewportarray/scene.vert b/data/shaders/glsl/viewportarray/scene.vert similarity index 100% rename from data/shaders/viewportarray/scene.vert rename to data/shaders/glsl/viewportarray/scene.vert diff --git a/data/shaders/viewportarray/scene.vert.spv b/data/shaders/glsl/viewportarray/scene.vert.spv similarity index 100% rename from data/shaders/viewportarray/scene.vert.spv rename to data/shaders/glsl/viewportarray/scene.vert.spv diff --git a/data/shaders/vulkanscene/generate-spriv.bat b/data/shaders/glsl/vulkanscene/generate-spriv.bat similarity index 100% rename from data/shaders/vulkanscene/generate-spriv.bat rename to data/shaders/glsl/vulkanscene/generate-spriv.bat diff --git a/data/shaders/vulkanscene/logo.frag b/data/shaders/glsl/vulkanscene/logo.frag similarity index 100% rename from data/shaders/vulkanscene/logo.frag rename to data/shaders/glsl/vulkanscene/logo.frag diff --git a/data/shaders/vulkanscene/logo.frag.spv b/data/shaders/glsl/vulkanscene/logo.frag.spv similarity index 100% rename from data/shaders/vulkanscene/logo.frag.spv rename to data/shaders/glsl/vulkanscene/logo.frag.spv diff --git a/data/shaders/vulkanscene/logo.vert b/data/shaders/glsl/vulkanscene/logo.vert similarity index 100% rename from data/shaders/vulkanscene/logo.vert rename to data/shaders/glsl/vulkanscene/logo.vert diff --git a/data/shaders/vulkanscene/logo.vert.spv b/data/shaders/glsl/vulkanscene/logo.vert.spv similarity index 100% rename from data/shaders/vulkanscene/logo.vert.spv rename to data/shaders/glsl/vulkanscene/logo.vert.spv diff --git a/data/shaders/vulkanscene/mesh.frag b/data/shaders/glsl/vulkanscene/mesh.frag similarity index 100% rename from data/shaders/vulkanscene/mesh.frag rename to data/shaders/glsl/vulkanscene/mesh.frag diff --git a/data/shaders/vulkanscene/mesh.frag.spv b/data/shaders/glsl/vulkanscene/mesh.frag.spv similarity index 100% rename from data/shaders/vulkanscene/mesh.frag.spv rename to data/shaders/glsl/vulkanscene/mesh.frag.spv diff --git a/data/shaders/vulkanscene/mesh.vert b/data/shaders/glsl/vulkanscene/mesh.vert similarity index 100% rename from data/shaders/vulkanscene/mesh.vert rename to data/shaders/glsl/vulkanscene/mesh.vert diff --git a/data/shaders/vulkanscene/mesh.vert.spv b/data/shaders/glsl/vulkanscene/mesh.vert.spv similarity index 100% rename from data/shaders/vulkanscene/mesh.vert.spv rename to data/shaders/glsl/vulkanscene/mesh.vert.spv diff --git a/data/shaders/vulkanscene/skybox.frag b/data/shaders/glsl/vulkanscene/skybox.frag similarity index 100% rename from data/shaders/vulkanscene/skybox.frag rename to data/shaders/glsl/vulkanscene/skybox.frag diff --git a/data/shaders/vulkanscene/skybox.frag.spv b/data/shaders/glsl/vulkanscene/skybox.frag.spv similarity index 100% rename from data/shaders/vulkanscene/skybox.frag.spv rename to data/shaders/glsl/vulkanscene/skybox.frag.spv diff --git a/data/shaders/vulkanscene/skybox.vert b/data/shaders/glsl/vulkanscene/skybox.vert similarity index 100% rename from data/shaders/vulkanscene/skybox.vert rename to data/shaders/glsl/vulkanscene/skybox.vert diff --git a/data/shaders/vulkanscene/skybox.vert.spv b/data/shaders/glsl/vulkanscene/skybox.vert.spv similarity index 100% rename from data/shaders/vulkanscene/skybox.vert.spv rename to data/shaders/glsl/vulkanscene/skybox.vert.spv diff --git a/data/hlsl/README.md b/data/shaders/hlsl/README.md similarity index 93% rename from data/hlsl/README.md rename to data/shaders/hlsl/README.md index dfb2c79d..20a3de5b 100644 --- a/data/hlsl/README.md +++ b/data/shaders/hlsl/README.md @@ -1,6 +1,6 @@ ## HLSL Shaders -This directory contains a fork of the shaders found in [data/shaders](https://github.com/SaschaWillems/Vulkan/tree/master/data/shaders), re-written in HLSL. +This directory contains a fork of the shaders found in [data/shaders/glsl](https://github.com/SaschaWillems/Vulkan/tree/master/data/shaders/glsl), re-written in HLSL. These can be compiled with [DXC](https://github.com/microsoft/DirectXShaderCompiler) using the `compile.py` script. ### Known issues diff --git a/data/hlsl/base/textoverlay.frag b/data/shaders/hlsl/base/textoverlay.frag similarity index 100% rename from data/hlsl/base/textoverlay.frag rename to data/shaders/hlsl/base/textoverlay.frag diff --git a/data/hlsl/base/textoverlay.vert b/data/shaders/hlsl/base/textoverlay.vert similarity index 100% rename from data/hlsl/base/textoverlay.vert rename to data/shaders/hlsl/base/textoverlay.vert diff --git a/data/hlsl/base/uioverlay.frag b/data/shaders/hlsl/base/uioverlay.frag similarity index 100% rename from data/hlsl/base/uioverlay.frag rename to data/shaders/hlsl/base/uioverlay.frag diff --git a/data/hlsl/base/uioverlay.vert b/data/shaders/hlsl/base/uioverlay.vert similarity index 100% rename from data/hlsl/base/uioverlay.vert rename to data/shaders/hlsl/base/uioverlay.vert diff --git a/data/hlsl/bloom/colorpass.frag b/data/shaders/hlsl/bloom/colorpass.frag similarity index 100% rename from data/hlsl/bloom/colorpass.frag rename to data/shaders/hlsl/bloom/colorpass.frag diff --git a/data/hlsl/bloom/colorpass.vert b/data/shaders/hlsl/bloom/colorpass.vert similarity index 100% rename from data/hlsl/bloom/colorpass.vert rename to data/shaders/hlsl/bloom/colorpass.vert diff --git a/data/hlsl/bloom/gaussblur.frag b/data/shaders/hlsl/bloom/gaussblur.frag similarity index 100% rename from data/hlsl/bloom/gaussblur.frag rename to data/shaders/hlsl/bloom/gaussblur.frag diff --git a/data/hlsl/bloom/gaussblur.vert b/data/shaders/hlsl/bloom/gaussblur.vert similarity index 100% rename from data/hlsl/bloom/gaussblur.vert rename to data/shaders/hlsl/bloom/gaussblur.vert diff --git a/data/hlsl/bloom/phongpass.frag b/data/shaders/hlsl/bloom/phongpass.frag similarity index 100% rename from data/hlsl/bloom/phongpass.frag rename to data/shaders/hlsl/bloom/phongpass.frag diff --git a/data/hlsl/bloom/phongpass.vert b/data/shaders/hlsl/bloom/phongpass.vert similarity index 100% rename from data/hlsl/bloom/phongpass.vert rename to data/shaders/hlsl/bloom/phongpass.vert diff --git a/data/hlsl/bloom/skybox.frag b/data/shaders/hlsl/bloom/skybox.frag similarity index 100% rename from data/hlsl/bloom/skybox.frag rename to data/shaders/hlsl/bloom/skybox.frag diff --git a/data/hlsl/bloom/skybox.vert b/data/shaders/hlsl/bloom/skybox.vert similarity index 100% rename from data/hlsl/bloom/skybox.vert rename to data/shaders/hlsl/bloom/skybox.vert diff --git a/data/hlsl/compile.py b/data/shaders/hlsl/compile.py similarity index 97% rename from data/hlsl/compile.py rename to data/shaders/hlsl/compile.py index bad1f59b..2538b0d9 100644 --- a/data/hlsl/compile.py +++ b/data/shaders/hlsl/compile.py @@ -36,7 +36,7 @@ for root, dirs, files in os.walk(dir_path): if file.endswith(".vert") or file.endswith(".frag") or file.endswith(".comp") or file.endswith(".geom") or file.endswith(".tesc") or file.endswith(".tese") or file.endswith(".rgen") or file.endswith(".rchit") or file.endswith(".rmiss"): hlsl_file = os.path.join(root, file) - spv_out = os.path.abspath(os.path.join(dir_path, "..", "shaders", os.path.relpath(hlsl_file, dir_path) + ".spv")) + spv_out = os.path.abspath(os.path.join(dir_path, "..", "glsl", os.path.relpath(hlsl_file, dir_path) + ".spv")) # Make the spv directory if it does not already exist spv_dir = os.path.dirname(spv_out) diff --git a/data/hlsl/computecloth/cloth.comp b/data/shaders/hlsl/computecloth/cloth.comp similarity index 100% rename from data/hlsl/computecloth/cloth.comp rename to data/shaders/hlsl/computecloth/cloth.comp diff --git a/data/hlsl/computecloth/cloth.frag b/data/shaders/hlsl/computecloth/cloth.frag similarity index 100% rename from data/hlsl/computecloth/cloth.frag rename to data/shaders/hlsl/computecloth/cloth.frag diff --git a/data/hlsl/computecloth/cloth.vert b/data/shaders/hlsl/computecloth/cloth.vert similarity index 100% rename from data/hlsl/computecloth/cloth.vert rename to data/shaders/hlsl/computecloth/cloth.vert diff --git a/data/hlsl/computecloth/sphere.frag b/data/shaders/hlsl/computecloth/sphere.frag similarity index 100% rename from data/hlsl/computecloth/sphere.frag rename to data/shaders/hlsl/computecloth/sphere.frag diff --git a/data/hlsl/computecloth/sphere.vert b/data/shaders/hlsl/computecloth/sphere.vert similarity index 100% rename from data/hlsl/computecloth/sphere.vert rename to data/shaders/hlsl/computecloth/sphere.vert diff --git a/data/hlsl/computecullandlod/cull.comp b/data/shaders/hlsl/computecullandlod/cull.comp similarity index 100% rename from data/hlsl/computecullandlod/cull.comp rename to data/shaders/hlsl/computecullandlod/cull.comp diff --git a/data/hlsl/computecullandlod/indirectdraw.frag b/data/shaders/hlsl/computecullandlod/indirectdraw.frag similarity index 100% rename from data/hlsl/computecullandlod/indirectdraw.frag rename to data/shaders/hlsl/computecullandlod/indirectdraw.frag diff --git a/data/hlsl/computecullandlod/indirectdraw.vert b/data/shaders/hlsl/computecullandlod/indirectdraw.vert similarity index 100% rename from data/hlsl/computecullandlod/indirectdraw.vert rename to data/shaders/hlsl/computecullandlod/indirectdraw.vert diff --git a/data/hlsl/computeheadless/headless.comp b/data/shaders/hlsl/computeheadless/headless.comp similarity index 100% rename from data/hlsl/computeheadless/headless.comp rename to data/shaders/hlsl/computeheadless/headless.comp diff --git a/data/hlsl/computenbody/particle.frag b/data/shaders/hlsl/computenbody/particle.frag similarity index 100% rename from data/hlsl/computenbody/particle.frag rename to data/shaders/hlsl/computenbody/particle.frag diff --git a/data/hlsl/computenbody/particle.vert b/data/shaders/hlsl/computenbody/particle.vert similarity index 100% rename from data/hlsl/computenbody/particle.vert rename to data/shaders/hlsl/computenbody/particle.vert diff --git a/data/hlsl/computenbody/particle_calculate.comp b/data/shaders/hlsl/computenbody/particle_calculate.comp similarity index 100% rename from data/hlsl/computenbody/particle_calculate.comp rename to data/shaders/hlsl/computenbody/particle_calculate.comp diff --git a/data/hlsl/computenbody/particle_integrate.comp b/data/shaders/hlsl/computenbody/particle_integrate.comp similarity index 100% rename from data/hlsl/computenbody/particle_integrate.comp rename to data/shaders/hlsl/computenbody/particle_integrate.comp diff --git a/data/hlsl/computeparticles/particle.comp b/data/shaders/hlsl/computeparticles/particle.comp similarity index 100% rename from data/hlsl/computeparticles/particle.comp rename to data/shaders/hlsl/computeparticles/particle.comp diff --git a/data/hlsl/computeparticles/particle.frag b/data/shaders/hlsl/computeparticles/particle.frag similarity index 100% rename from data/hlsl/computeparticles/particle.frag rename to data/shaders/hlsl/computeparticles/particle.frag diff --git a/data/hlsl/computeparticles/particle.vert b/data/shaders/hlsl/computeparticles/particle.vert similarity index 100% rename from data/hlsl/computeparticles/particle.vert rename to data/shaders/hlsl/computeparticles/particle.vert diff --git a/data/hlsl/computeraytracing/raytracing.comp b/data/shaders/hlsl/computeraytracing/raytracing.comp similarity index 100% rename from data/hlsl/computeraytracing/raytracing.comp rename to data/shaders/hlsl/computeraytracing/raytracing.comp diff --git a/data/hlsl/computeraytracing/texture.frag b/data/shaders/hlsl/computeraytracing/texture.frag similarity index 100% rename from data/hlsl/computeraytracing/texture.frag rename to data/shaders/hlsl/computeraytracing/texture.frag diff --git a/data/hlsl/computeraytracing/texture.vert b/data/shaders/hlsl/computeraytracing/texture.vert similarity index 100% rename from data/hlsl/computeraytracing/texture.vert rename to data/shaders/hlsl/computeraytracing/texture.vert diff --git a/data/hlsl/computeshader/edgedetect.comp b/data/shaders/hlsl/computeshader/edgedetect.comp similarity index 100% rename from data/hlsl/computeshader/edgedetect.comp rename to data/shaders/hlsl/computeshader/edgedetect.comp diff --git a/data/hlsl/computeshader/emboss.comp b/data/shaders/hlsl/computeshader/emboss.comp similarity index 100% rename from data/hlsl/computeshader/emboss.comp rename to data/shaders/hlsl/computeshader/emboss.comp diff --git a/data/hlsl/computeshader/sharpen.comp b/data/shaders/hlsl/computeshader/sharpen.comp similarity index 100% rename from data/hlsl/computeshader/sharpen.comp rename to data/shaders/hlsl/computeshader/sharpen.comp diff --git a/data/hlsl/computeshader/texture.frag b/data/shaders/hlsl/computeshader/texture.frag similarity index 100% rename from data/hlsl/computeshader/texture.frag rename to data/shaders/hlsl/computeshader/texture.frag diff --git a/data/hlsl/computeshader/texture.vert b/data/shaders/hlsl/computeshader/texture.vert similarity index 100% rename from data/hlsl/computeshader/texture.vert rename to data/shaders/hlsl/computeshader/texture.vert diff --git a/data/hlsl/conditionalrender/model.frag b/data/shaders/hlsl/conditionalrender/model.frag similarity index 100% rename from data/hlsl/conditionalrender/model.frag rename to data/shaders/hlsl/conditionalrender/model.frag diff --git a/data/hlsl/conditionalrender/model.vert b/data/shaders/hlsl/conditionalrender/model.vert similarity index 100% rename from data/hlsl/conditionalrender/model.vert rename to data/shaders/hlsl/conditionalrender/model.vert diff --git a/data/hlsl/conservativeraster/fullscreen.frag b/data/shaders/hlsl/conservativeraster/fullscreen.frag similarity index 100% rename from data/hlsl/conservativeraster/fullscreen.frag rename to data/shaders/hlsl/conservativeraster/fullscreen.frag diff --git a/data/hlsl/conservativeraster/fullscreen.vert b/data/shaders/hlsl/conservativeraster/fullscreen.vert similarity index 100% rename from data/hlsl/conservativeraster/fullscreen.vert rename to data/shaders/hlsl/conservativeraster/fullscreen.vert diff --git a/data/hlsl/conservativeraster/triangle.frag b/data/shaders/hlsl/conservativeraster/triangle.frag similarity index 100% rename from data/hlsl/conservativeraster/triangle.frag rename to data/shaders/hlsl/conservativeraster/triangle.frag diff --git a/data/hlsl/conservativeraster/triangle.vert b/data/shaders/hlsl/conservativeraster/triangle.vert similarity index 100% rename from data/hlsl/conservativeraster/triangle.vert rename to data/shaders/hlsl/conservativeraster/triangle.vert diff --git a/data/hlsl/conservativeraster/triangleoverlay.frag b/data/shaders/hlsl/conservativeraster/triangleoverlay.frag similarity index 100% rename from data/hlsl/conservativeraster/triangleoverlay.frag rename to data/shaders/hlsl/conservativeraster/triangleoverlay.frag diff --git a/data/hlsl/debugmarker/colorpass.frag b/data/shaders/hlsl/debugmarker/colorpass.frag similarity index 100% rename from data/hlsl/debugmarker/colorpass.frag rename to data/shaders/hlsl/debugmarker/colorpass.frag diff --git a/data/hlsl/debugmarker/colorpass.vert b/data/shaders/hlsl/debugmarker/colorpass.vert similarity index 100% rename from data/hlsl/debugmarker/colorpass.vert rename to data/shaders/hlsl/debugmarker/colorpass.vert diff --git a/data/hlsl/debugmarker/postprocess.frag b/data/shaders/hlsl/debugmarker/postprocess.frag similarity index 100% rename from data/hlsl/debugmarker/postprocess.frag rename to data/shaders/hlsl/debugmarker/postprocess.frag diff --git a/data/hlsl/debugmarker/postprocess.vert b/data/shaders/hlsl/debugmarker/postprocess.vert similarity index 100% rename from data/hlsl/debugmarker/postprocess.vert rename to data/shaders/hlsl/debugmarker/postprocess.vert diff --git a/data/hlsl/debugmarker/toon.frag b/data/shaders/hlsl/debugmarker/toon.frag similarity index 100% rename from data/hlsl/debugmarker/toon.frag rename to data/shaders/hlsl/debugmarker/toon.frag diff --git a/data/hlsl/debugmarker/toon.vert b/data/shaders/hlsl/debugmarker/toon.vert similarity index 100% rename from data/hlsl/debugmarker/toon.vert rename to data/shaders/hlsl/debugmarker/toon.vert diff --git a/data/hlsl/deferred/debug.frag b/data/shaders/hlsl/deferred/debug.frag similarity index 100% rename from data/hlsl/deferred/debug.frag rename to data/shaders/hlsl/deferred/debug.frag diff --git a/data/hlsl/deferred/debug.vert b/data/shaders/hlsl/deferred/debug.vert similarity index 100% rename from data/hlsl/deferred/debug.vert rename to data/shaders/hlsl/deferred/debug.vert diff --git a/data/hlsl/deferred/deferred.frag b/data/shaders/hlsl/deferred/deferred.frag similarity index 100% rename from data/hlsl/deferred/deferred.frag rename to data/shaders/hlsl/deferred/deferred.frag diff --git a/data/hlsl/deferred/deferred.vert b/data/shaders/hlsl/deferred/deferred.vert similarity index 100% rename from data/hlsl/deferred/deferred.vert rename to data/shaders/hlsl/deferred/deferred.vert diff --git a/data/hlsl/deferred/mrt.frag b/data/shaders/hlsl/deferred/mrt.frag similarity index 100% rename from data/hlsl/deferred/mrt.frag rename to data/shaders/hlsl/deferred/mrt.frag diff --git a/data/hlsl/deferred/mrt.vert b/data/shaders/hlsl/deferred/mrt.vert similarity index 100% rename from data/hlsl/deferred/mrt.vert rename to data/shaders/hlsl/deferred/mrt.vert diff --git a/data/hlsl/deferredmultisampling/debug.frag b/data/shaders/hlsl/deferredmultisampling/debug.frag similarity index 100% rename from data/hlsl/deferredmultisampling/debug.frag rename to data/shaders/hlsl/deferredmultisampling/debug.frag diff --git a/data/hlsl/deferredmultisampling/debug.vert b/data/shaders/hlsl/deferredmultisampling/debug.vert similarity index 100% rename from data/hlsl/deferredmultisampling/debug.vert rename to data/shaders/hlsl/deferredmultisampling/debug.vert diff --git a/data/hlsl/deferredmultisampling/deferred.frag b/data/shaders/hlsl/deferredmultisampling/deferred.frag similarity index 100% rename from data/hlsl/deferredmultisampling/deferred.frag rename to data/shaders/hlsl/deferredmultisampling/deferred.frag diff --git a/data/hlsl/deferredmultisampling/deferred.vert b/data/shaders/hlsl/deferredmultisampling/deferred.vert similarity index 100% rename from data/hlsl/deferredmultisampling/deferred.vert rename to data/shaders/hlsl/deferredmultisampling/deferred.vert diff --git a/data/hlsl/deferredmultisampling/mrt.frag b/data/shaders/hlsl/deferredmultisampling/mrt.frag similarity index 100% rename from data/hlsl/deferredmultisampling/mrt.frag rename to data/shaders/hlsl/deferredmultisampling/mrt.frag diff --git a/data/hlsl/deferredmultisampling/mrt.vert b/data/shaders/hlsl/deferredmultisampling/mrt.vert similarity index 100% rename from data/hlsl/deferredmultisampling/mrt.vert rename to data/shaders/hlsl/deferredmultisampling/mrt.vert diff --git a/data/hlsl/deferredshadows/debug.frag b/data/shaders/hlsl/deferredshadows/debug.frag similarity index 100% rename from data/hlsl/deferredshadows/debug.frag rename to data/shaders/hlsl/deferredshadows/debug.frag diff --git a/data/hlsl/deferredshadows/debug.vert b/data/shaders/hlsl/deferredshadows/debug.vert similarity index 100% rename from data/hlsl/deferredshadows/debug.vert rename to data/shaders/hlsl/deferredshadows/debug.vert diff --git a/data/hlsl/deferredshadows/deferred.frag b/data/shaders/hlsl/deferredshadows/deferred.frag similarity index 100% rename from data/hlsl/deferredshadows/deferred.frag rename to data/shaders/hlsl/deferredshadows/deferred.frag diff --git a/data/hlsl/deferredshadows/deferred.vert b/data/shaders/hlsl/deferredshadows/deferred.vert similarity index 100% rename from data/hlsl/deferredshadows/deferred.vert rename to data/shaders/hlsl/deferredshadows/deferred.vert diff --git a/data/hlsl/deferredshadows/mrt.frag b/data/shaders/hlsl/deferredshadows/mrt.frag similarity index 100% rename from data/hlsl/deferredshadows/mrt.frag rename to data/shaders/hlsl/deferredshadows/mrt.frag diff --git a/data/hlsl/deferredshadows/mrt.vert b/data/shaders/hlsl/deferredshadows/mrt.vert similarity index 100% rename from data/hlsl/deferredshadows/mrt.vert rename to data/shaders/hlsl/deferredshadows/mrt.vert diff --git a/data/hlsl/deferredshadows/shadow.geom b/data/shaders/hlsl/deferredshadows/shadow.geom similarity index 100% rename from data/hlsl/deferredshadows/shadow.geom rename to data/shaders/hlsl/deferredshadows/shadow.geom diff --git a/data/hlsl/deferredshadows/shadow.vert b/data/shaders/hlsl/deferredshadows/shadow.vert similarity index 100% rename from data/hlsl/deferredshadows/shadow.vert rename to data/shaders/hlsl/deferredshadows/shadow.vert diff --git a/data/hlsl/descriptorsets/cube.frag b/data/shaders/hlsl/descriptorsets/cube.frag similarity index 100% rename from data/hlsl/descriptorsets/cube.frag rename to data/shaders/hlsl/descriptorsets/cube.frag diff --git a/data/hlsl/descriptorsets/cube.vert b/data/shaders/hlsl/descriptorsets/cube.vert similarity index 100% rename from data/hlsl/descriptorsets/cube.vert rename to data/shaders/hlsl/descriptorsets/cube.vert diff --git a/data/hlsl/displacement/base.frag b/data/shaders/hlsl/displacement/base.frag similarity index 100% rename from data/hlsl/displacement/base.frag rename to data/shaders/hlsl/displacement/base.frag diff --git a/data/hlsl/displacement/base.vert b/data/shaders/hlsl/displacement/base.vert similarity index 100% rename from data/hlsl/displacement/base.vert rename to data/shaders/hlsl/displacement/base.vert diff --git a/data/hlsl/displacement/displacement.tesc b/data/shaders/hlsl/displacement/displacement.tesc similarity index 100% rename from data/hlsl/displacement/displacement.tesc rename to data/shaders/hlsl/displacement/displacement.tesc diff --git a/data/hlsl/displacement/displacement.tese b/data/shaders/hlsl/displacement/displacement.tese similarity index 100% rename from data/hlsl/displacement/displacement.tese rename to data/shaders/hlsl/displacement/displacement.tese diff --git a/data/hlsl/distancefieldfonts/bitmap.frag b/data/shaders/hlsl/distancefieldfonts/bitmap.frag similarity index 100% rename from data/hlsl/distancefieldfonts/bitmap.frag rename to data/shaders/hlsl/distancefieldfonts/bitmap.frag diff --git a/data/hlsl/distancefieldfonts/bitmap.vert b/data/shaders/hlsl/distancefieldfonts/bitmap.vert similarity index 100% rename from data/hlsl/distancefieldfonts/bitmap.vert rename to data/shaders/hlsl/distancefieldfonts/bitmap.vert diff --git a/data/hlsl/distancefieldfonts/sdf.frag b/data/shaders/hlsl/distancefieldfonts/sdf.frag similarity index 100% rename from data/hlsl/distancefieldfonts/sdf.frag rename to data/shaders/hlsl/distancefieldfonts/sdf.frag diff --git a/data/hlsl/distancefieldfonts/sdf.vert b/data/shaders/hlsl/distancefieldfonts/sdf.vert similarity index 100% rename from data/hlsl/distancefieldfonts/sdf.vert rename to data/shaders/hlsl/distancefieldfonts/sdf.vert diff --git a/data/hlsl/dynamicuniformbuffer/base.frag b/data/shaders/hlsl/dynamicuniformbuffer/base.frag similarity index 100% rename from data/hlsl/dynamicuniformbuffer/base.frag rename to data/shaders/hlsl/dynamicuniformbuffer/base.frag diff --git a/data/hlsl/dynamicuniformbuffer/base.vert b/data/shaders/hlsl/dynamicuniformbuffer/base.vert similarity index 100% rename from data/hlsl/dynamicuniformbuffer/base.vert rename to data/shaders/hlsl/dynamicuniformbuffer/base.vert diff --git a/data/hlsl/gears/gears.frag b/data/shaders/hlsl/gears/gears.frag similarity index 100% rename from data/hlsl/gears/gears.frag rename to data/shaders/hlsl/gears/gears.frag diff --git a/data/hlsl/gears/gears.vert b/data/shaders/hlsl/gears/gears.vert similarity index 100% rename from data/hlsl/gears/gears.vert rename to data/shaders/hlsl/gears/gears.vert diff --git a/data/hlsl/geometryshader/base.frag b/data/shaders/hlsl/geometryshader/base.frag similarity index 100% rename from data/hlsl/geometryshader/base.frag rename to data/shaders/hlsl/geometryshader/base.frag diff --git a/data/hlsl/geometryshader/base.vert b/data/shaders/hlsl/geometryshader/base.vert similarity index 100% rename from data/hlsl/geometryshader/base.vert rename to data/shaders/hlsl/geometryshader/base.vert diff --git a/data/hlsl/geometryshader/mesh.frag b/data/shaders/hlsl/geometryshader/mesh.frag similarity index 100% rename from data/hlsl/geometryshader/mesh.frag rename to data/shaders/hlsl/geometryshader/mesh.frag diff --git a/data/hlsl/geometryshader/mesh.vert b/data/shaders/hlsl/geometryshader/mesh.vert similarity index 100% rename from data/hlsl/geometryshader/mesh.vert rename to data/shaders/hlsl/geometryshader/mesh.vert diff --git a/data/hlsl/geometryshader/normaldebug.geom b/data/shaders/hlsl/geometryshader/normaldebug.geom similarity index 100% rename from data/hlsl/geometryshader/normaldebug.geom rename to data/shaders/hlsl/geometryshader/normaldebug.geom diff --git a/data/hlsl/gltfscene/mesh.frag b/data/shaders/hlsl/gltfscene/mesh.frag similarity index 100% rename from data/hlsl/gltfscene/mesh.frag rename to data/shaders/hlsl/gltfscene/mesh.frag diff --git a/data/hlsl/gltfscene/mesh.vert b/data/shaders/hlsl/gltfscene/mesh.vert similarity index 100% rename from data/hlsl/gltfscene/mesh.vert rename to data/shaders/hlsl/gltfscene/mesh.vert diff --git a/data/hlsl/hdr/bloom.frag b/data/shaders/hlsl/hdr/bloom.frag similarity index 100% rename from data/hlsl/hdr/bloom.frag rename to data/shaders/hlsl/hdr/bloom.frag diff --git a/data/hlsl/hdr/bloom.vert b/data/shaders/hlsl/hdr/bloom.vert similarity index 100% rename from data/hlsl/hdr/bloom.vert rename to data/shaders/hlsl/hdr/bloom.vert diff --git a/data/hlsl/hdr/composition.frag b/data/shaders/hlsl/hdr/composition.frag similarity index 100% rename from data/hlsl/hdr/composition.frag rename to data/shaders/hlsl/hdr/composition.frag diff --git a/data/hlsl/hdr/composition.vert b/data/shaders/hlsl/hdr/composition.vert similarity index 100% rename from data/hlsl/hdr/composition.vert rename to data/shaders/hlsl/hdr/composition.vert diff --git a/data/hlsl/hdr/gbuffer.frag b/data/shaders/hlsl/hdr/gbuffer.frag similarity index 100% rename from data/hlsl/hdr/gbuffer.frag rename to data/shaders/hlsl/hdr/gbuffer.frag diff --git a/data/hlsl/hdr/gbuffer.vert b/data/shaders/hlsl/hdr/gbuffer.vert similarity index 100% rename from data/hlsl/hdr/gbuffer.vert rename to data/shaders/hlsl/hdr/gbuffer.vert diff --git a/data/hlsl/imgui/scene.frag b/data/shaders/hlsl/imgui/scene.frag similarity index 100% rename from data/hlsl/imgui/scene.frag rename to data/shaders/hlsl/imgui/scene.frag diff --git a/data/hlsl/imgui/scene.vert b/data/shaders/hlsl/imgui/scene.vert similarity index 100% rename from data/hlsl/imgui/scene.vert rename to data/shaders/hlsl/imgui/scene.vert diff --git a/data/hlsl/imgui/ui.frag b/data/shaders/hlsl/imgui/ui.frag similarity index 100% rename from data/hlsl/imgui/ui.frag rename to data/shaders/hlsl/imgui/ui.frag diff --git a/data/hlsl/imgui/ui.vert b/data/shaders/hlsl/imgui/ui.vert similarity index 100% rename from data/hlsl/imgui/ui.vert rename to data/shaders/hlsl/imgui/ui.vert diff --git a/data/hlsl/indirectdraw/ground.frag b/data/shaders/hlsl/indirectdraw/ground.frag similarity index 100% rename from data/hlsl/indirectdraw/ground.frag rename to data/shaders/hlsl/indirectdraw/ground.frag diff --git a/data/hlsl/indirectdraw/ground.vert b/data/shaders/hlsl/indirectdraw/ground.vert similarity index 100% rename from data/hlsl/indirectdraw/ground.vert rename to data/shaders/hlsl/indirectdraw/ground.vert diff --git a/data/hlsl/indirectdraw/indirectdraw.frag b/data/shaders/hlsl/indirectdraw/indirectdraw.frag similarity index 100% rename from data/hlsl/indirectdraw/indirectdraw.frag rename to data/shaders/hlsl/indirectdraw/indirectdraw.frag diff --git a/data/hlsl/indirectdraw/indirectdraw.vert b/data/shaders/hlsl/indirectdraw/indirectdraw.vert similarity index 100% rename from data/hlsl/indirectdraw/indirectdraw.vert rename to data/shaders/hlsl/indirectdraw/indirectdraw.vert diff --git a/data/hlsl/indirectdraw/skysphere.frag b/data/shaders/hlsl/indirectdraw/skysphere.frag similarity index 100% rename from data/hlsl/indirectdraw/skysphere.frag rename to data/shaders/hlsl/indirectdraw/skysphere.frag diff --git a/data/hlsl/indirectdraw/skysphere.vert b/data/shaders/hlsl/indirectdraw/skysphere.vert similarity index 100% rename from data/hlsl/indirectdraw/skysphere.vert rename to data/shaders/hlsl/indirectdraw/skysphere.vert diff --git a/data/hlsl/inlineuniformblocks/pbr.frag b/data/shaders/hlsl/inlineuniformblocks/pbr.frag similarity index 100% rename from data/hlsl/inlineuniformblocks/pbr.frag rename to data/shaders/hlsl/inlineuniformblocks/pbr.frag diff --git a/data/hlsl/inlineuniformblocks/pbr.vert b/data/shaders/hlsl/inlineuniformblocks/pbr.vert similarity index 100% rename from data/hlsl/inlineuniformblocks/pbr.vert rename to data/shaders/hlsl/inlineuniformblocks/pbr.vert diff --git a/data/hlsl/inputattachments/attachmentread.frag b/data/shaders/hlsl/inputattachments/attachmentread.frag similarity index 100% rename from data/hlsl/inputattachments/attachmentread.frag rename to data/shaders/hlsl/inputattachments/attachmentread.frag diff --git a/data/hlsl/inputattachments/attachmentread.vert b/data/shaders/hlsl/inputattachments/attachmentread.vert similarity index 100% rename from data/hlsl/inputattachments/attachmentread.vert rename to data/shaders/hlsl/inputattachments/attachmentread.vert diff --git a/data/hlsl/inputattachments/attachmentwrite.frag b/data/shaders/hlsl/inputattachments/attachmentwrite.frag similarity index 100% rename from data/hlsl/inputattachments/attachmentwrite.frag rename to data/shaders/hlsl/inputattachments/attachmentwrite.frag diff --git a/data/hlsl/inputattachments/attachmentwrite.vert b/data/shaders/hlsl/inputattachments/attachmentwrite.vert similarity index 100% rename from data/hlsl/inputattachments/attachmentwrite.vert rename to data/shaders/hlsl/inputattachments/attachmentwrite.vert diff --git a/data/hlsl/instancing/instancing.frag b/data/shaders/hlsl/instancing/instancing.frag similarity index 100% rename from data/hlsl/instancing/instancing.frag rename to data/shaders/hlsl/instancing/instancing.frag diff --git a/data/hlsl/instancing/instancing.vert b/data/shaders/hlsl/instancing/instancing.vert similarity index 100% rename from data/hlsl/instancing/instancing.vert rename to data/shaders/hlsl/instancing/instancing.vert diff --git a/data/hlsl/instancing/planet.frag b/data/shaders/hlsl/instancing/planet.frag similarity index 100% rename from data/hlsl/instancing/planet.frag rename to data/shaders/hlsl/instancing/planet.frag diff --git a/data/hlsl/instancing/planet.vert b/data/shaders/hlsl/instancing/planet.vert similarity index 100% rename from data/hlsl/instancing/planet.vert rename to data/shaders/hlsl/instancing/planet.vert diff --git a/data/hlsl/instancing/starfield.frag b/data/shaders/hlsl/instancing/starfield.frag similarity index 100% rename from data/hlsl/instancing/starfield.frag rename to data/shaders/hlsl/instancing/starfield.frag diff --git a/data/hlsl/instancing/starfield.vert b/data/shaders/hlsl/instancing/starfield.vert similarity index 100% rename from data/hlsl/instancing/starfield.vert rename to data/shaders/hlsl/instancing/starfield.vert diff --git a/data/hlsl/mesh/mesh.frag b/data/shaders/hlsl/mesh/mesh.frag similarity index 100% rename from data/hlsl/mesh/mesh.frag rename to data/shaders/hlsl/mesh/mesh.frag diff --git a/data/hlsl/mesh/mesh.vert b/data/shaders/hlsl/mesh/mesh.vert similarity index 100% rename from data/hlsl/mesh/mesh.vert rename to data/shaders/hlsl/mesh/mesh.vert diff --git a/data/hlsl/multisampling/scene.frag b/data/shaders/hlsl/multisampling/scene.frag similarity index 100% rename from data/hlsl/multisampling/scene.frag rename to data/shaders/hlsl/multisampling/scene.frag diff --git a/data/hlsl/multisampling/scene.vert b/data/shaders/hlsl/multisampling/scene.vert similarity index 100% rename from data/hlsl/multisampling/scene.vert rename to data/shaders/hlsl/multisampling/scene.vert diff --git a/data/hlsl/multithreading/phong.frag b/data/shaders/hlsl/multithreading/phong.frag similarity index 100% rename from data/hlsl/multithreading/phong.frag rename to data/shaders/hlsl/multithreading/phong.frag diff --git a/data/hlsl/multithreading/phong.vert b/data/shaders/hlsl/multithreading/phong.vert similarity index 100% rename from data/hlsl/multithreading/phong.vert rename to data/shaders/hlsl/multithreading/phong.vert diff --git a/data/hlsl/multithreading/starsphere.frag b/data/shaders/hlsl/multithreading/starsphere.frag similarity index 100% rename from data/hlsl/multithreading/starsphere.frag rename to data/shaders/hlsl/multithreading/starsphere.frag diff --git a/data/hlsl/multithreading/starsphere.vert b/data/shaders/hlsl/multithreading/starsphere.vert similarity index 100% rename from data/hlsl/multithreading/starsphere.vert rename to data/shaders/hlsl/multithreading/starsphere.vert diff --git a/data/hlsl/multiview/multiview.frag b/data/shaders/hlsl/multiview/multiview.frag similarity index 100% rename from data/hlsl/multiview/multiview.frag rename to data/shaders/hlsl/multiview/multiview.frag diff --git a/data/hlsl/multiview/multiview.vert b/data/shaders/hlsl/multiview/multiview.vert similarity index 100% rename from data/hlsl/multiview/multiview.vert rename to data/shaders/hlsl/multiview/multiview.vert diff --git a/data/hlsl/multiview/viewdisplay.frag b/data/shaders/hlsl/multiview/viewdisplay.frag similarity index 100% rename from data/hlsl/multiview/viewdisplay.frag rename to data/shaders/hlsl/multiview/viewdisplay.frag diff --git a/data/hlsl/multiview/viewdisplay.vert b/data/shaders/hlsl/multiview/viewdisplay.vert similarity index 100% rename from data/hlsl/multiview/viewdisplay.vert rename to data/shaders/hlsl/multiview/viewdisplay.vert diff --git a/data/hlsl/negativeviewportheight/quad.frag b/data/shaders/hlsl/negativeviewportheight/quad.frag similarity index 100% rename from data/hlsl/negativeviewportheight/quad.frag rename to data/shaders/hlsl/negativeviewportheight/quad.frag diff --git a/data/hlsl/negativeviewportheight/quad.vert b/data/shaders/hlsl/negativeviewportheight/quad.vert similarity index 100% rename from data/hlsl/negativeviewportheight/quad.vert rename to data/shaders/hlsl/negativeviewportheight/quad.vert diff --git a/data/hlsl/nv_ray_tracing_basic/closesthit.rchit b/data/shaders/hlsl/nv_ray_tracing_basic/closesthit.rchit similarity index 100% rename from data/hlsl/nv_ray_tracing_basic/closesthit.rchit rename to data/shaders/hlsl/nv_ray_tracing_basic/closesthit.rchit diff --git a/data/hlsl/nv_ray_tracing_basic/miss.rmiss b/data/shaders/hlsl/nv_ray_tracing_basic/miss.rmiss similarity index 100% rename from data/hlsl/nv_ray_tracing_basic/miss.rmiss rename to data/shaders/hlsl/nv_ray_tracing_basic/miss.rmiss diff --git a/data/hlsl/nv_ray_tracing_basic/raygen.rgen b/data/shaders/hlsl/nv_ray_tracing_basic/raygen.rgen similarity index 100% rename from data/hlsl/nv_ray_tracing_basic/raygen.rgen rename to data/shaders/hlsl/nv_ray_tracing_basic/raygen.rgen diff --git a/data/hlsl/nv_ray_tracing_reflections/closesthit.rchit b/data/shaders/hlsl/nv_ray_tracing_reflections/closesthit.rchit similarity index 100% rename from data/hlsl/nv_ray_tracing_reflections/closesthit.rchit rename to data/shaders/hlsl/nv_ray_tracing_reflections/closesthit.rchit diff --git a/data/hlsl/nv_ray_tracing_reflections/miss.rmiss b/data/shaders/hlsl/nv_ray_tracing_reflections/miss.rmiss similarity index 100% rename from data/hlsl/nv_ray_tracing_reflections/miss.rmiss rename to data/shaders/hlsl/nv_ray_tracing_reflections/miss.rmiss diff --git a/data/hlsl/nv_ray_tracing_reflections/raygen.rgen b/data/shaders/hlsl/nv_ray_tracing_reflections/raygen.rgen similarity index 100% rename from data/hlsl/nv_ray_tracing_reflections/raygen.rgen rename to data/shaders/hlsl/nv_ray_tracing_reflections/raygen.rgen diff --git a/data/hlsl/nv_ray_tracing_shadows/closesthit.rchit b/data/shaders/hlsl/nv_ray_tracing_shadows/closesthit.rchit similarity index 100% rename from data/hlsl/nv_ray_tracing_shadows/closesthit.rchit rename to data/shaders/hlsl/nv_ray_tracing_shadows/closesthit.rchit diff --git a/data/hlsl/nv_ray_tracing_shadows/miss.rmiss b/data/shaders/hlsl/nv_ray_tracing_shadows/miss.rmiss similarity index 100% rename from data/hlsl/nv_ray_tracing_shadows/miss.rmiss rename to data/shaders/hlsl/nv_ray_tracing_shadows/miss.rmiss diff --git a/data/hlsl/nv_ray_tracing_shadows/raygen.rgen b/data/shaders/hlsl/nv_ray_tracing_shadows/raygen.rgen similarity index 100% rename from data/hlsl/nv_ray_tracing_shadows/raygen.rgen rename to data/shaders/hlsl/nv_ray_tracing_shadows/raygen.rgen diff --git a/data/hlsl/nv_ray_tracing_shadows/shadow.rmiss b/data/shaders/hlsl/nv_ray_tracing_shadows/shadow.rmiss similarity index 100% rename from data/hlsl/nv_ray_tracing_shadows/shadow.rmiss rename to data/shaders/hlsl/nv_ray_tracing_shadows/shadow.rmiss diff --git a/data/hlsl/occlusionquery/mesh.frag b/data/shaders/hlsl/occlusionquery/mesh.frag similarity index 100% rename from data/hlsl/occlusionquery/mesh.frag rename to data/shaders/hlsl/occlusionquery/mesh.frag diff --git a/data/hlsl/occlusionquery/mesh.vert b/data/shaders/hlsl/occlusionquery/mesh.vert similarity index 100% rename from data/hlsl/occlusionquery/mesh.vert rename to data/shaders/hlsl/occlusionquery/mesh.vert diff --git a/data/hlsl/occlusionquery/occluder.frag b/data/shaders/hlsl/occlusionquery/occluder.frag similarity index 100% rename from data/hlsl/occlusionquery/occluder.frag rename to data/shaders/hlsl/occlusionquery/occluder.frag diff --git a/data/hlsl/occlusionquery/occluder.vert b/data/shaders/hlsl/occlusionquery/occluder.vert similarity index 100% rename from data/hlsl/occlusionquery/occluder.vert rename to data/shaders/hlsl/occlusionquery/occluder.vert diff --git a/data/hlsl/occlusionquery/simple.frag b/data/shaders/hlsl/occlusionquery/simple.frag similarity index 100% rename from data/hlsl/occlusionquery/simple.frag rename to data/shaders/hlsl/occlusionquery/simple.frag diff --git a/data/hlsl/occlusionquery/simple.vert b/data/shaders/hlsl/occlusionquery/simple.vert similarity index 100% rename from data/hlsl/occlusionquery/simple.vert rename to data/shaders/hlsl/occlusionquery/simple.vert diff --git a/data/hlsl/offscreen/mirror.frag b/data/shaders/hlsl/offscreen/mirror.frag similarity index 100% rename from data/hlsl/offscreen/mirror.frag rename to data/shaders/hlsl/offscreen/mirror.frag diff --git a/data/hlsl/offscreen/mirror.vert b/data/shaders/hlsl/offscreen/mirror.vert similarity index 100% rename from data/hlsl/offscreen/mirror.vert rename to data/shaders/hlsl/offscreen/mirror.vert diff --git a/data/hlsl/offscreen/phong.frag b/data/shaders/hlsl/offscreen/phong.frag similarity index 100% rename from data/hlsl/offscreen/phong.frag rename to data/shaders/hlsl/offscreen/phong.frag diff --git a/data/hlsl/offscreen/phong.vert b/data/shaders/hlsl/offscreen/phong.vert similarity index 100% rename from data/hlsl/offscreen/phong.vert rename to data/shaders/hlsl/offscreen/phong.vert diff --git a/data/hlsl/offscreen/quad.frag b/data/shaders/hlsl/offscreen/quad.frag similarity index 100% rename from data/hlsl/offscreen/quad.frag rename to data/shaders/hlsl/offscreen/quad.frag diff --git a/data/hlsl/offscreen/quad.vert b/data/shaders/hlsl/offscreen/quad.vert similarity index 100% rename from data/hlsl/offscreen/quad.vert rename to data/shaders/hlsl/offscreen/quad.vert diff --git a/data/hlsl/parallaxmapping/parallax.frag b/data/shaders/hlsl/parallaxmapping/parallax.frag similarity index 100% rename from data/hlsl/parallaxmapping/parallax.frag rename to data/shaders/hlsl/parallaxmapping/parallax.frag diff --git a/data/hlsl/parallaxmapping/parallax.vert b/data/shaders/hlsl/parallaxmapping/parallax.vert similarity index 100% rename from data/hlsl/parallaxmapping/parallax.vert rename to data/shaders/hlsl/parallaxmapping/parallax.vert diff --git a/data/hlsl/particlefire/normalmap.frag b/data/shaders/hlsl/particlefire/normalmap.frag similarity index 100% rename from data/hlsl/particlefire/normalmap.frag rename to data/shaders/hlsl/particlefire/normalmap.frag diff --git a/data/hlsl/particlefire/normalmap.vert b/data/shaders/hlsl/particlefire/normalmap.vert similarity index 100% rename from data/hlsl/particlefire/normalmap.vert rename to data/shaders/hlsl/particlefire/normalmap.vert diff --git a/data/hlsl/particlefire/particle.frag b/data/shaders/hlsl/particlefire/particle.frag similarity index 100% rename from data/hlsl/particlefire/particle.frag rename to data/shaders/hlsl/particlefire/particle.frag diff --git a/data/hlsl/particlefire/particle.vert b/data/shaders/hlsl/particlefire/particle.vert similarity index 100% rename from data/hlsl/particlefire/particle.vert rename to data/shaders/hlsl/particlefire/particle.vert diff --git a/data/hlsl/pbrbasic/pbr.frag b/data/shaders/hlsl/pbrbasic/pbr.frag similarity index 100% rename from data/hlsl/pbrbasic/pbr.frag rename to data/shaders/hlsl/pbrbasic/pbr.frag diff --git a/data/hlsl/pbrbasic/pbr.vert b/data/shaders/hlsl/pbrbasic/pbr.vert similarity index 100% rename from data/hlsl/pbrbasic/pbr.vert rename to data/shaders/hlsl/pbrbasic/pbr.vert diff --git a/data/hlsl/pbribl/filtercube.vert b/data/shaders/hlsl/pbribl/filtercube.vert similarity index 100% rename from data/hlsl/pbribl/filtercube.vert rename to data/shaders/hlsl/pbribl/filtercube.vert diff --git a/data/hlsl/pbribl/genbrdflut.frag b/data/shaders/hlsl/pbribl/genbrdflut.frag similarity index 100% rename from data/hlsl/pbribl/genbrdflut.frag rename to data/shaders/hlsl/pbribl/genbrdflut.frag diff --git a/data/hlsl/pbribl/genbrdflut.vert b/data/shaders/hlsl/pbribl/genbrdflut.vert similarity index 100% rename from data/hlsl/pbribl/genbrdflut.vert rename to data/shaders/hlsl/pbribl/genbrdflut.vert diff --git a/data/hlsl/pbribl/irradiancecube.frag b/data/shaders/hlsl/pbribl/irradiancecube.frag similarity index 100% rename from data/hlsl/pbribl/irradiancecube.frag rename to data/shaders/hlsl/pbribl/irradiancecube.frag diff --git a/data/hlsl/pbribl/pbribl.frag b/data/shaders/hlsl/pbribl/pbribl.frag similarity index 100% rename from data/hlsl/pbribl/pbribl.frag rename to data/shaders/hlsl/pbribl/pbribl.frag diff --git a/data/hlsl/pbribl/pbribl.vert b/data/shaders/hlsl/pbribl/pbribl.vert similarity index 100% rename from data/hlsl/pbribl/pbribl.vert rename to data/shaders/hlsl/pbribl/pbribl.vert diff --git a/data/hlsl/pbribl/prefilterenvmap.frag b/data/shaders/hlsl/pbribl/prefilterenvmap.frag similarity index 100% rename from data/hlsl/pbribl/prefilterenvmap.frag rename to data/shaders/hlsl/pbribl/prefilterenvmap.frag diff --git a/data/hlsl/pbribl/skybox.frag b/data/shaders/hlsl/pbribl/skybox.frag similarity index 100% rename from data/hlsl/pbribl/skybox.frag rename to data/shaders/hlsl/pbribl/skybox.frag diff --git a/data/hlsl/pbribl/skybox.vert b/data/shaders/hlsl/pbribl/skybox.vert similarity index 100% rename from data/hlsl/pbribl/skybox.vert rename to data/shaders/hlsl/pbribl/skybox.vert diff --git a/data/hlsl/pbrtexture/filtercube.vert b/data/shaders/hlsl/pbrtexture/filtercube.vert similarity index 100% rename from data/hlsl/pbrtexture/filtercube.vert rename to data/shaders/hlsl/pbrtexture/filtercube.vert diff --git a/data/hlsl/pbrtexture/genbrdflut.frag b/data/shaders/hlsl/pbrtexture/genbrdflut.frag similarity index 100% rename from data/hlsl/pbrtexture/genbrdflut.frag rename to data/shaders/hlsl/pbrtexture/genbrdflut.frag diff --git a/data/hlsl/pbrtexture/genbrdflut.vert b/data/shaders/hlsl/pbrtexture/genbrdflut.vert similarity index 100% rename from data/hlsl/pbrtexture/genbrdflut.vert rename to data/shaders/hlsl/pbrtexture/genbrdflut.vert diff --git a/data/hlsl/pbrtexture/irradiancecube.frag b/data/shaders/hlsl/pbrtexture/irradiancecube.frag similarity index 100% rename from data/hlsl/pbrtexture/irradiancecube.frag rename to data/shaders/hlsl/pbrtexture/irradiancecube.frag diff --git a/data/hlsl/pbrtexture/pbrtexture.frag b/data/shaders/hlsl/pbrtexture/pbrtexture.frag similarity index 100% rename from data/hlsl/pbrtexture/pbrtexture.frag rename to data/shaders/hlsl/pbrtexture/pbrtexture.frag diff --git a/data/hlsl/pbrtexture/pbrtexture.vert b/data/shaders/hlsl/pbrtexture/pbrtexture.vert similarity index 100% rename from data/hlsl/pbrtexture/pbrtexture.vert rename to data/shaders/hlsl/pbrtexture/pbrtexture.vert diff --git a/data/hlsl/pbrtexture/prefilterenvmap.frag b/data/shaders/hlsl/pbrtexture/prefilterenvmap.frag similarity index 100% rename from data/hlsl/pbrtexture/prefilterenvmap.frag rename to data/shaders/hlsl/pbrtexture/prefilterenvmap.frag diff --git a/data/hlsl/pbrtexture/skybox.frag b/data/shaders/hlsl/pbrtexture/skybox.frag similarity index 100% rename from data/hlsl/pbrtexture/skybox.frag rename to data/shaders/hlsl/pbrtexture/skybox.frag diff --git a/data/hlsl/pbrtexture/skybox.vert b/data/shaders/hlsl/pbrtexture/skybox.vert similarity index 100% rename from data/hlsl/pbrtexture/skybox.vert rename to data/shaders/hlsl/pbrtexture/skybox.vert diff --git a/data/hlsl/pipelines/phong.frag b/data/shaders/hlsl/pipelines/phong.frag similarity index 100% rename from data/hlsl/pipelines/phong.frag rename to data/shaders/hlsl/pipelines/phong.frag diff --git a/data/hlsl/pipelines/phong.vert b/data/shaders/hlsl/pipelines/phong.vert similarity index 100% rename from data/hlsl/pipelines/phong.vert rename to data/shaders/hlsl/pipelines/phong.vert diff --git a/data/hlsl/pipelines/toon.frag b/data/shaders/hlsl/pipelines/toon.frag similarity index 100% rename from data/hlsl/pipelines/toon.frag rename to data/shaders/hlsl/pipelines/toon.frag diff --git a/data/hlsl/pipelines/toon.vert b/data/shaders/hlsl/pipelines/toon.vert similarity index 100% rename from data/hlsl/pipelines/toon.vert rename to data/shaders/hlsl/pipelines/toon.vert diff --git a/data/hlsl/pipelines/wireframe.frag b/data/shaders/hlsl/pipelines/wireframe.frag similarity index 100% rename from data/hlsl/pipelines/wireframe.frag rename to data/shaders/hlsl/pipelines/wireframe.frag diff --git a/data/hlsl/pipelines/wireframe.vert b/data/shaders/hlsl/pipelines/wireframe.vert similarity index 100% rename from data/hlsl/pipelines/wireframe.vert rename to data/shaders/hlsl/pipelines/wireframe.vert diff --git a/data/hlsl/pipelinestatistics/scene.frag b/data/shaders/hlsl/pipelinestatistics/scene.frag similarity index 100% rename from data/hlsl/pipelinestatistics/scene.frag rename to data/shaders/hlsl/pipelinestatistics/scene.frag diff --git a/data/hlsl/pipelinestatistics/scene.tesc b/data/shaders/hlsl/pipelinestatistics/scene.tesc similarity index 100% rename from data/hlsl/pipelinestatistics/scene.tesc rename to data/shaders/hlsl/pipelinestatistics/scene.tesc diff --git a/data/hlsl/pipelinestatistics/scene.tese b/data/shaders/hlsl/pipelinestatistics/scene.tese similarity index 100% rename from data/hlsl/pipelinestatistics/scene.tese rename to data/shaders/hlsl/pipelinestatistics/scene.tese diff --git a/data/hlsl/pipelinestatistics/scene.vert b/data/shaders/hlsl/pipelinestatistics/scene.vert similarity index 100% rename from data/hlsl/pipelinestatistics/scene.vert rename to data/shaders/hlsl/pipelinestatistics/scene.vert diff --git a/data/hlsl/pushconstants/lights.frag b/data/shaders/hlsl/pushconstants/lights.frag similarity index 100% rename from data/hlsl/pushconstants/lights.frag rename to data/shaders/hlsl/pushconstants/lights.frag diff --git a/data/hlsl/pushconstants/lights.vert b/data/shaders/hlsl/pushconstants/lights.vert similarity index 100% rename from data/hlsl/pushconstants/lights.vert rename to data/shaders/hlsl/pushconstants/lights.vert diff --git a/data/hlsl/pushdescriptors/cube.frag b/data/shaders/hlsl/pushdescriptors/cube.frag similarity index 100% rename from data/hlsl/pushdescriptors/cube.frag rename to data/shaders/hlsl/pushdescriptors/cube.frag diff --git a/data/hlsl/pushdescriptors/cube.vert b/data/shaders/hlsl/pushdescriptors/cube.vert similarity index 100% rename from data/hlsl/pushdescriptors/cube.vert rename to data/shaders/hlsl/pushdescriptors/cube.vert diff --git a/data/hlsl/radialblur/colorpass.frag b/data/shaders/hlsl/radialblur/colorpass.frag similarity index 100% rename from data/hlsl/radialblur/colorpass.frag rename to data/shaders/hlsl/radialblur/colorpass.frag diff --git a/data/hlsl/radialblur/colorpass.vert b/data/shaders/hlsl/radialblur/colorpass.vert similarity index 100% rename from data/hlsl/radialblur/colorpass.vert rename to data/shaders/hlsl/radialblur/colorpass.vert diff --git a/data/hlsl/radialblur/phongpass.frag b/data/shaders/hlsl/radialblur/phongpass.frag similarity index 100% rename from data/hlsl/radialblur/phongpass.frag rename to data/shaders/hlsl/radialblur/phongpass.frag diff --git a/data/hlsl/radialblur/phongpass.vert b/data/shaders/hlsl/radialblur/phongpass.vert similarity index 100% rename from data/hlsl/radialblur/phongpass.vert rename to data/shaders/hlsl/radialblur/phongpass.vert diff --git a/data/hlsl/radialblur/radialblur.frag b/data/shaders/hlsl/radialblur/radialblur.frag similarity index 100% rename from data/hlsl/radialblur/radialblur.frag rename to data/shaders/hlsl/radialblur/radialblur.frag diff --git a/data/hlsl/radialblur/radialblur.vert b/data/shaders/hlsl/radialblur/radialblur.vert similarity index 100% rename from data/hlsl/radialblur/radialblur.vert rename to data/shaders/hlsl/radialblur/radialblur.vert diff --git a/data/hlsl/renderheadless/triangle.frag b/data/shaders/hlsl/renderheadless/triangle.frag similarity index 100% rename from data/hlsl/renderheadless/triangle.frag rename to data/shaders/hlsl/renderheadless/triangle.frag diff --git a/data/hlsl/renderheadless/triangle.vert b/data/shaders/hlsl/renderheadless/triangle.vert similarity index 100% rename from data/hlsl/renderheadless/triangle.vert rename to data/shaders/hlsl/renderheadless/triangle.vert diff --git a/data/hlsl/scenerendering/scene.frag b/data/shaders/hlsl/scenerendering/scene.frag similarity index 100% rename from data/hlsl/scenerendering/scene.frag rename to data/shaders/hlsl/scenerendering/scene.frag diff --git a/data/hlsl/scenerendering/scene.vert b/data/shaders/hlsl/scenerendering/scene.vert similarity index 100% rename from data/hlsl/scenerendering/scene.vert rename to data/shaders/hlsl/scenerendering/scene.vert diff --git a/data/hlsl/screenshot/mesh.frag b/data/shaders/hlsl/screenshot/mesh.frag similarity index 100% rename from data/hlsl/screenshot/mesh.frag rename to data/shaders/hlsl/screenshot/mesh.frag diff --git a/data/hlsl/screenshot/mesh.vert b/data/shaders/hlsl/screenshot/mesh.vert similarity index 100% rename from data/hlsl/screenshot/mesh.vert rename to data/shaders/hlsl/screenshot/mesh.vert diff --git a/data/hlsl/shadowmapomni/cubemapdisplay.frag b/data/shaders/hlsl/shadowmapomni/cubemapdisplay.frag similarity index 100% rename from data/hlsl/shadowmapomni/cubemapdisplay.frag rename to data/shaders/hlsl/shadowmapomni/cubemapdisplay.frag diff --git a/data/hlsl/shadowmapomni/cubemapdisplay.vert b/data/shaders/hlsl/shadowmapomni/cubemapdisplay.vert similarity index 100% rename from data/hlsl/shadowmapomni/cubemapdisplay.vert rename to data/shaders/hlsl/shadowmapomni/cubemapdisplay.vert diff --git a/data/hlsl/shadowmapomni/offscreen.frag b/data/shaders/hlsl/shadowmapomni/offscreen.frag similarity index 100% rename from data/hlsl/shadowmapomni/offscreen.frag rename to data/shaders/hlsl/shadowmapomni/offscreen.frag diff --git a/data/hlsl/shadowmapomni/offscreen.vert b/data/shaders/hlsl/shadowmapomni/offscreen.vert similarity index 100% rename from data/hlsl/shadowmapomni/offscreen.vert rename to data/shaders/hlsl/shadowmapomni/offscreen.vert diff --git a/data/hlsl/shadowmapomni/scene.frag b/data/shaders/hlsl/shadowmapomni/scene.frag similarity index 100% rename from data/hlsl/shadowmapomni/scene.frag rename to data/shaders/hlsl/shadowmapomni/scene.frag diff --git a/data/hlsl/shadowmapomni/scene.vert b/data/shaders/hlsl/shadowmapomni/scene.vert similarity index 100% rename from data/hlsl/shadowmapomni/scene.vert rename to data/shaders/hlsl/shadowmapomni/scene.vert diff --git a/data/hlsl/shadowmapping/offscreen.frag b/data/shaders/hlsl/shadowmapping/offscreen.frag similarity index 100% rename from data/hlsl/shadowmapping/offscreen.frag rename to data/shaders/hlsl/shadowmapping/offscreen.frag diff --git a/data/hlsl/shadowmapping/offscreen.vert b/data/shaders/hlsl/shadowmapping/offscreen.vert similarity index 100% rename from data/hlsl/shadowmapping/offscreen.vert rename to data/shaders/hlsl/shadowmapping/offscreen.vert diff --git a/data/hlsl/shadowmapping/quad.frag b/data/shaders/hlsl/shadowmapping/quad.frag similarity index 100% rename from data/hlsl/shadowmapping/quad.frag rename to data/shaders/hlsl/shadowmapping/quad.frag diff --git a/data/hlsl/shadowmapping/quad.vert b/data/shaders/hlsl/shadowmapping/quad.vert similarity index 100% rename from data/hlsl/shadowmapping/quad.vert rename to data/shaders/hlsl/shadowmapping/quad.vert diff --git a/data/hlsl/shadowmapping/scene.frag b/data/shaders/hlsl/shadowmapping/scene.frag similarity index 100% rename from data/hlsl/shadowmapping/scene.frag rename to data/shaders/hlsl/shadowmapping/scene.frag diff --git a/data/hlsl/shadowmapping/scene.vert b/data/shaders/hlsl/shadowmapping/scene.vert similarity index 100% rename from data/hlsl/shadowmapping/scene.vert rename to data/shaders/hlsl/shadowmapping/scene.vert diff --git a/data/hlsl/shadowmappingcascade/debugshadowmap.frag b/data/shaders/hlsl/shadowmappingcascade/debugshadowmap.frag similarity index 100% rename from data/hlsl/shadowmappingcascade/debugshadowmap.frag rename to data/shaders/hlsl/shadowmappingcascade/debugshadowmap.frag diff --git a/data/hlsl/shadowmappingcascade/debugshadowmap.vert b/data/shaders/hlsl/shadowmappingcascade/debugshadowmap.vert similarity index 100% rename from data/hlsl/shadowmappingcascade/debugshadowmap.vert rename to data/shaders/hlsl/shadowmappingcascade/debugshadowmap.vert diff --git a/data/hlsl/shadowmappingcascade/depthpass.frag b/data/shaders/hlsl/shadowmappingcascade/depthpass.frag similarity index 100% rename from data/hlsl/shadowmappingcascade/depthpass.frag rename to data/shaders/hlsl/shadowmappingcascade/depthpass.frag diff --git a/data/hlsl/shadowmappingcascade/depthpass.vert b/data/shaders/hlsl/shadowmappingcascade/depthpass.vert similarity index 100% rename from data/hlsl/shadowmappingcascade/depthpass.vert rename to data/shaders/hlsl/shadowmappingcascade/depthpass.vert diff --git a/data/hlsl/shadowmappingcascade/scene.frag b/data/shaders/hlsl/shadowmappingcascade/scene.frag similarity index 100% rename from data/hlsl/shadowmappingcascade/scene.frag rename to data/shaders/hlsl/shadowmappingcascade/scene.frag diff --git a/data/hlsl/shadowmappingcascade/scene.vert b/data/shaders/hlsl/shadowmappingcascade/scene.vert similarity index 100% rename from data/hlsl/shadowmappingcascade/scene.vert rename to data/shaders/hlsl/shadowmappingcascade/scene.vert diff --git a/data/hlsl/skeletalanimation/mesh.frag b/data/shaders/hlsl/skeletalanimation/mesh.frag similarity index 100% rename from data/hlsl/skeletalanimation/mesh.frag rename to data/shaders/hlsl/skeletalanimation/mesh.frag diff --git a/data/hlsl/skeletalanimation/mesh.vert b/data/shaders/hlsl/skeletalanimation/mesh.vert similarity index 100% rename from data/hlsl/skeletalanimation/mesh.vert rename to data/shaders/hlsl/skeletalanimation/mesh.vert diff --git a/data/hlsl/skeletalanimation/texture.frag b/data/shaders/hlsl/skeletalanimation/texture.frag similarity index 100% rename from data/hlsl/skeletalanimation/texture.frag rename to data/shaders/hlsl/skeletalanimation/texture.frag diff --git a/data/hlsl/skeletalanimation/texture.vert b/data/shaders/hlsl/skeletalanimation/texture.vert similarity index 100% rename from data/hlsl/skeletalanimation/texture.vert rename to data/shaders/hlsl/skeletalanimation/texture.vert diff --git a/data/hlsl/specializationconstants/uber.frag b/data/shaders/hlsl/specializationconstants/uber.frag similarity index 100% rename from data/hlsl/specializationconstants/uber.frag rename to data/shaders/hlsl/specializationconstants/uber.frag diff --git a/data/hlsl/specializationconstants/uber.vert b/data/shaders/hlsl/specializationconstants/uber.vert similarity index 100% rename from data/hlsl/specializationconstants/uber.vert rename to data/shaders/hlsl/specializationconstants/uber.vert diff --git a/data/hlsl/sphericalenvmapping/sem.frag b/data/shaders/hlsl/sphericalenvmapping/sem.frag similarity index 100% rename from data/hlsl/sphericalenvmapping/sem.frag rename to data/shaders/hlsl/sphericalenvmapping/sem.frag diff --git a/data/hlsl/sphericalenvmapping/sem.vert b/data/shaders/hlsl/sphericalenvmapping/sem.vert similarity index 100% rename from data/hlsl/sphericalenvmapping/sem.vert rename to data/shaders/hlsl/sphericalenvmapping/sem.vert diff --git a/data/hlsl/ssao/blur.frag b/data/shaders/hlsl/ssao/blur.frag similarity index 100% rename from data/hlsl/ssao/blur.frag rename to data/shaders/hlsl/ssao/blur.frag diff --git a/data/hlsl/ssao/composition.frag b/data/shaders/hlsl/ssao/composition.frag similarity index 100% rename from data/hlsl/ssao/composition.frag rename to data/shaders/hlsl/ssao/composition.frag diff --git a/data/hlsl/ssao/fullscreen.vert b/data/shaders/hlsl/ssao/fullscreen.vert similarity index 100% rename from data/hlsl/ssao/fullscreen.vert rename to data/shaders/hlsl/ssao/fullscreen.vert diff --git a/data/hlsl/ssao/gbuffer.frag b/data/shaders/hlsl/ssao/gbuffer.frag similarity index 100% rename from data/hlsl/ssao/gbuffer.frag rename to data/shaders/hlsl/ssao/gbuffer.frag diff --git a/data/hlsl/ssao/gbuffer.vert b/data/shaders/hlsl/ssao/gbuffer.vert similarity index 100% rename from data/hlsl/ssao/gbuffer.vert rename to data/shaders/hlsl/ssao/gbuffer.vert diff --git a/data/hlsl/ssao/ssao.frag b/data/shaders/hlsl/ssao/ssao.frag similarity index 100% rename from data/hlsl/ssao/ssao.frag rename to data/shaders/hlsl/ssao/ssao.frag diff --git a/data/hlsl/stencilbuffer/outline.frag b/data/shaders/hlsl/stencilbuffer/outline.frag similarity index 100% rename from data/hlsl/stencilbuffer/outline.frag rename to data/shaders/hlsl/stencilbuffer/outline.frag diff --git a/data/hlsl/stencilbuffer/outline.vert b/data/shaders/hlsl/stencilbuffer/outline.vert similarity index 100% rename from data/hlsl/stencilbuffer/outline.vert rename to data/shaders/hlsl/stencilbuffer/outline.vert diff --git a/data/hlsl/stencilbuffer/toon.frag b/data/shaders/hlsl/stencilbuffer/toon.frag similarity index 100% rename from data/hlsl/stencilbuffer/toon.frag rename to data/shaders/hlsl/stencilbuffer/toon.frag diff --git a/data/hlsl/stencilbuffer/toon.vert b/data/shaders/hlsl/stencilbuffer/toon.vert similarity index 100% rename from data/hlsl/stencilbuffer/toon.vert rename to data/shaders/hlsl/stencilbuffer/toon.vert diff --git a/data/hlsl/subpasses/composition.frag b/data/shaders/hlsl/subpasses/composition.frag similarity index 100% rename from data/hlsl/subpasses/composition.frag rename to data/shaders/hlsl/subpasses/composition.frag diff --git a/data/hlsl/subpasses/composition.vert b/data/shaders/hlsl/subpasses/composition.vert similarity index 100% rename from data/hlsl/subpasses/composition.vert rename to data/shaders/hlsl/subpasses/composition.vert diff --git a/data/hlsl/subpasses/gbuffer.frag b/data/shaders/hlsl/subpasses/gbuffer.frag similarity index 100% rename from data/hlsl/subpasses/gbuffer.frag rename to data/shaders/hlsl/subpasses/gbuffer.frag diff --git a/data/hlsl/subpasses/gbuffer.vert b/data/shaders/hlsl/subpasses/gbuffer.vert similarity index 100% rename from data/hlsl/subpasses/gbuffer.vert rename to data/shaders/hlsl/subpasses/gbuffer.vert diff --git a/data/hlsl/subpasses/transparent.frag b/data/shaders/hlsl/subpasses/transparent.frag similarity index 100% rename from data/hlsl/subpasses/transparent.frag rename to data/shaders/hlsl/subpasses/transparent.frag diff --git a/data/hlsl/subpasses/transparent.vert b/data/shaders/hlsl/subpasses/transparent.vert similarity index 100% rename from data/hlsl/subpasses/transparent.vert rename to data/shaders/hlsl/subpasses/transparent.vert diff --git a/data/hlsl/terraintessellation/skysphere.frag b/data/shaders/hlsl/terraintessellation/skysphere.frag similarity index 100% rename from data/hlsl/terraintessellation/skysphere.frag rename to data/shaders/hlsl/terraintessellation/skysphere.frag diff --git a/data/hlsl/terraintessellation/skysphere.vert b/data/shaders/hlsl/terraintessellation/skysphere.vert similarity index 100% rename from data/hlsl/terraintessellation/skysphere.vert rename to data/shaders/hlsl/terraintessellation/skysphere.vert diff --git a/data/hlsl/terraintessellation/terrain.frag b/data/shaders/hlsl/terraintessellation/terrain.frag similarity index 100% rename from data/hlsl/terraintessellation/terrain.frag rename to data/shaders/hlsl/terraintessellation/terrain.frag diff --git a/data/hlsl/terraintessellation/terrain.tesc b/data/shaders/hlsl/terraintessellation/terrain.tesc similarity index 100% rename from data/hlsl/terraintessellation/terrain.tesc rename to data/shaders/hlsl/terraintessellation/terrain.tesc diff --git a/data/hlsl/terraintessellation/terrain.tese b/data/shaders/hlsl/terraintessellation/terrain.tese similarity index 100% rename from data/hlsl/terraintessellation/terrain.tese rename to data/shaders/hlsl/terraintessellation/terrain.tese diff --git a/data/hlsl/terraintessellation/terrain.vert b/data/shaders/hlsl/terraintessellation/terrain.vert similarity index 100% rename from data/hlsl/terraintessellation/terrain.vert rename to data/shaders/hlsl/terraintessellation/terrain.vert diff --git a/data/hlsl/tessellation/base.frag b/data/shaders/hlsl/tessellation/base.frag similarity index 100% rename from data/hlsl/tessellation/base.frag rename to data/shaders/hlsl/tessellation/base.frag diff --git a/data/hlsl/tessellation/base.vert b/data/shaders/hlsl/tessellation/base.vert similarity index 100% rename from data/hlsl/tessellation/base.vert rename to data/shaders/hlsl/tessellation/base.vert diff --git a/data/hlsl/tessellation/passthrough.tesc b/data/shaders/hlsl/tessellation/passthrough.tesc similarity index 100% rename from data/hlsl/tessellation/passthrough.tesc rename to data/shaders/hlsl/tessellation/passthrough.tesc diff --git a/data/hlsl/tessellation/passthrough.tese b/data/shaders/hlsl/tessellation/passthrough.tese similarity index 100% rename from data/hlsl/tessellation/passthrough.tese rename to data/shaders/hlsl/tessellation/passthrough.tese diff --git a/data/hlsl/tessellation/pntriangles.tesc b/data/shaders/hlsl/tessellation/pntriangles.tesc similarity index 100% rename from data/hlsl/tessellation/pntriangles.tesc rename to data/shaders/hlsl/tessellation/pntriangles.tesc diff --git a/data/hlsl/tessellation/pntriangles.tese b/data/shaders/hlsl/tessellation/pntriangles.tese similarity index 100% rename from data/hlsl/tessellation/pntriangles.tese rename to data/shaders/hlsl/tessellation/pntriangles.tese diff --git a/data/hlsl/textoverlay/mesh.frag b/data/shaders/hlsl/textoverlay/mesh.frag similarity index 100% rename from data/hlsl/textoverlay/mesh.frag rename to data/shaders/hlsl/textoverlay/mesh.frag diff --git a/data/hlsl/textoverlay/mesh.vert b/data/shaders/hlsl/textoverlay/mesh.vert similarity index 100% rename from data/hlsl/textoverlay/mesh.vert rename to data/shaders/hlsl/textoverlay/mesh.vert diff --git a/data/hlsl/textoverlay/text.frag b/data/shaders/hlsl/textoverlay/text.frag similarity index 100% rename from data/hlsl/textoverlay/text.frag rename to data/shaders/hlsl/textoverlay/text.frag diff --git a/data/hlsl/textoverlay/text.vert b/data/shaders/hlsl/textoverlay/text.vert similarity index 100% rename from data/hlsl/textoverlay/text.vert rename to data/shaders/hlsl/textoverlay/text.vert diff --git a/data/hlsl/texture/texture.frag b/data/shaders/hlsl/texture/texture.frag similarity index 100% rename from data/hlsl/texture/texture.frag rename to data/shaders/hlsl/texture/texture.frag diff --git a/data/hlsl/texture/texture.vert b/data/shaders/hlsl/texture/texture.vert similarity index 100% rename from data/hlsl/texture/texture.vert rename to data/shaders/hlsl/texture/texture.vert diff --git a/data/hlsl/texture3d/texture3d.frag b/data/shaders/hlsl/texture3d/texture3d.frag similarity index 100% rename from data/hlsl/texture3d/texture3d.frag rename to data/shaders/hlsl/texture3d/texture3d.frag diff --git a/data/hlsl/texture3d/texture3d.vert b/data/shaders/hlsl/texture3d/texture3d.vert similarity index 100% rename from data/hlsl/texture3d/texture3d.vert rename to data/shaders/hlsl/texture3d/texture3d.vert diff --git a/data/hlsl/texturearray/instancing.frag b/data/shaders/hlsl/texturearray/instancing.frag similarity index 100% rename from data/hlsl/texturearray/instancing.frag rename to data/shaders/hlsl/texturearray/instancing.frag diff --git a/data/hlsl/texturearray/instancing.vert b/data/shaders/hlsl/texturearray/instancing.vert similarity index 100% rename from data/hlsl/texturearray/instancing.vert rename to data/shaders/hlsl/texturearray/instancing.vert diff --git a/data/hlsl/texturecubemap/reflect.frag b/data/shaders/hlsl/texturecubemap/reflect.frag similarity index 100% rename from data/hlsl/texturecubemap/reflect.frag rename to data/shaders/hlsl/texturecubemap/reflect.frag diff --git a/data/hlsl/texturecubemap/reflect.vert b/data/shaders/hlsl/texturecubemap/reflect.vert similarity index 100% rename from data/hlsl/texturecubemap/reflect.vert rename to data/shaders/hlsl/texturecubemap/reflect.vert diff --git a/data/hlsl/texturecubemap/skybox.frag b/data/shaders/hlsl/texturecubemap/skybox.frag similarity index 100% rename from data/hlsl/texturecubemap/skybox.frag rename to data/shaders/hlsl/texturecubemap/skybox.frag diff --git a/data/hlsl/texturecubemap/skybox.vert b/data/shaders/hlsl/texturecubemap/skybox.vert similarity index 100% rename from data/hlsl/texturecubemap/skybox.vert rename to data/shaders/hlsl/texturecubemap/skybox.vert diff --git a/data/hlsl/texturemipmapgen/texture.frag b/data/shaders/hlsl/texturemipmapgen/texture.frag similarity index 100% rename from data/hlsl/texturemipmapgen/texture.frag rename to data/shaders/hlsl/texturemipmapgen/texture.frag diff --git a/data/hlsl/texturemipmapgen/texture.vert b/data/shaders/hlsl/texturemipmapgen/texture.vert similarity index 100% rename from data/hlsl/texturemipmapgen/texture.vert rename to data/shaders/hlsl/texturemipmapgen/texture.vert diff --git a/data/hlsl/texturesparseresidency/sparseresidency.frag b/data/shaders/hlsl/texturesparseresidency/sparseresidency.frag similarity index 100% rename from data/hlsl/texturesparseresidency/sparseresidency.frag rename to data/shaders/hlsl/texturesparseresidency/sparseresidency.frag diff --git a/data/hlsl/texturesparseresidency/sparseresidency.vert b/data/shaders/hlsl/texturesparseresidency/sparseresidency.vert similarity index 100% rename from data/hlsl/texturesparseresidency/sparseresidency.vert rename to data/shaders/hlsl/texturesparseresidency/sparseresidency.vert diff --git a/data/hlsl/triangle/triangle.frag b/data/shaders/hlsl/triangle/triangle.frag similarity index 100% rename from data/hlsl/triangle/triangle.frag rename to data/shaders/hlsl/triangle/triangle.frag diff --git a/data/hlsl/triangle/triangle.vert b/data/shaders/hlsl/triangle/triangle.vert similarity index 100% rename from data/hlsl/triangle/triangle.vert rename to data/shaders/hlsl/triangle/triangle.vert diff --git a/data/hlsl/viewportarray/multiview.geom b/data/shaders/hlsl/viewportarray/multiview.geom similarity index 100% rename from data/hlsl/viewportarray/multiview.geom rename to data/shaders/hlsl/viewportarray/multiview.geom diff --git a/data/hlsl/viewportarray/scene.frag b/data/shaders/hlsl/viewportarray/scene.frag similarity index 100% rename from data/hlsl/viewportarray/scene.frag rename to data/shaders/hlsl/viewportarray/scene.frag diff --git a/data/hlsl/viewportarray/scene.vert b/data/shaders/hlsl/viewportarray/scene.vert similarity index 100% rename from data/hlsl/viewportarray/scene.vert rename to data/shaders/hlsl/viewportarray/scene.vert diff --git a/data/hlsl/vulkanscene/logo.frag b/data/shaders/hlsl/vulkanscene/logo.frag similarity index 100% rename from data/hlsl/vulkanscene/logo.frag rename to data/shaders/hlsl/vulkanscene/logo.frag diff --git a/data/hlsl/vulkanscene/logo.vert b/data/shaders/hlsl/vulkanscene/logo.vert similarity index 100% rename from data/hlsl/vulkanscene/logo.vert rename to data/shaders/hlsl/vulkanscene/logo.vert diff --git a/data/hlsl/vulkanscene/mesh.frag b/data/shaders/hlsl/vulkanscene/mesh.frag similarity index 100% rename from data/hlsl/vulkanscene/mesh.frag rename to data/shaders/hlsl/vulkanscene/mesh.frag diff --git a/data/hlsl/vulkanscene/mesh.vert b/data/shaders/hlsl/vulkanscene/mesh.vert similarity index 100% rename from data/hlsl/vulkanscene/mesh.vert rename to data/shaders/hlsl/vulkanscene/mesh.vert diff --git a/data/hlsl/vulkanscene/skybox.frag b/data/shaders/hlsl/vulkanscene/skybox.frag similarity index 100% rename from data/hlsl/vulkanscene/skybox.frag rename to data/shaders/hlsl/vulkanscene/skybox.frag diff --git a/data/hlsl/vulkanscene/skybox.vert b/data/shaders/hlsl/vulkanscene/skybox.vert similarity index 100% rename from data/hlsl/vulkanscene/skybox.vert rename to data/shaders/hlsl/vulkanscene/skybox.vert diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a53c834c..b8a6faff 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -18,7 +18,7 @@ function(buildExample EXAMPLE_NAME) SET(SOURCE ${SOURCE} ${CMAKE_BINARY_DIR}/xdg-shell-client-protocol.h ${CMAKE_BINARY_DIR}/xdg-shell-protocol.c) ENDIF() # Add shaders - set(SHADER_DIR "../data/shaders/${EXAMPLE_NAME}") + set(SHADER_DIR "../data/shaders/glsl/${EXAMPLE_NAME}") file(GLOB SHADERS "${SHADER_DIR}/*.vert" "${SHADER_DIR}/*.frag" "${SHADER_DIR}/*.comp" "${SHADER_DIR}/*.geom" "${SHADER_DIR}/*.tesc" "${SHADER_DIR}/*.tese" "${SHADER_DIR}/*.mesh" "${SHADER_DIR}/*.task" "${SHADER_DIR}/*.rgen" "${SHADER_DIR}/*.rchit" "${SHADER_DIR}/*.rmiss") source_group("Shaders" FILES ${SHADERS}) if(WIN32) diff --git a/examples/bloom/bloom.cpp b/examples/bloom/bloom.cpp index 16d3ee9e..c0d1c0a1 100644 --- a/examples/bloom/bloom.cpp +++ b/examples/bloom/bloom.cpp @@ -85,7 +85,7 @@ public: struct { VkPipelineLayout blur; VkPipelineLayout scene; - } pipelineLayouts; + } pipelineLayouts; struct { VkDescriptorSet blurVert; @@ -130,7 +130,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroySampler(device, offscreenPass.sampler, nullptr); @@ -256,13 +256,13 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &frameBuf->framebuffer)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set frameBuf->descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; frameBuf->descriptor.imageView = frameBuf->color.view; frameBuf->descriptor.sampler = offscreenPass.sampler; } - // Prepare the offscreen framebuffers used for the vertical- and horizontal blur + // Prepare the offscreen framebuffers used for the vertical- and horizontal blur void prepareOffscreen() { offscreenPass.width = FB_DIM; @@ -457,7 +457,7 @@ public: VkDeviceSize offsets[1] = { 0 }; - // Skybox + // Skybox vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayouts.scene, 0, 1, &descriptorSets.skyBox, 0, NULL); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.skyBox); @@ -532,9 +532,9 @@ public: VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pipelineLayoutCreateInfo, nullptr, &pipelineLayouts.blur)); // Scene rendering - setLayoutBindings = { - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0 : Vertex shader uniform buffer - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 1 : Fragment shader image sampler + setLayoutBindings = { + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0 : Vertex shader uniform buffer + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 1 : Fragment shader image sampler vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), // Binding 2 : Framgnet shader image sampler }; @@ -553,8 +553,8 @@ public: // Vertical descriptorSetAllocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayouts.blur, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAllocInfo, &descriptorSets.blurVert)); - writeDescriptorSets = { - vks::initializers::writeDescriptorSet(descriptorSets.blurVert, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.blurParams.descriptor), // Binding 0: Fragment shader uniform buffer + writeDescriptorSets = { + vks::initializers::writeDescriptorSet(descriptorSets.blurVert, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.blurParams.descriptor), // Binding 0: Fragment shader uniform buffer vks::initializers::writeDescriptorSet(descriptorSets.blurVert, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &offscreenPass.framebuffers[0].descriptor), // Binding 1: Fragment shader texture sampler }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -562,7 +562,7 @@ public: descriptorSetAllocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayouts.blur, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAllocInfo, &descriptorSets.blurHorz)); writeDescriptorSets = { - vks::initializers::writeDescriptorSet(descriptorSets.blurHorz, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.blurParams.descriptor), // Binding 0: Fragment shader uniform buffer + vks::initializers::writeDescriptorSet(descriptorSets.blurHorz, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.blurParams.descriptor), // Binding 0: Fragment shader uniform buffer vks::initializers::writeDescriptorSet(descriptorSets.blurHorz, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &offscreenPass.framebuffers[1].descriptor), // Binding 1: Fragment shader texture sampler }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -570,15 +570,15 @@ public: // Scene rendering descriptorSetAllocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayouts.scene, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAllocInfo, &descriptorSets.scene)); - writeDescriptorSets = { + writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSets.scene, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.scene.descriptor) // Binding 0: Vertex shader uniform buffer }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); // Skybox VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAllocInfo, &descriptorSets.skyBox)); - writeDescriptorSets = { - vks::initializers::writeDescriptorSet(descriptorSets.skyBox, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.skyBox.descriptor), // Binding 0: Vertex shader uniform buffer + writeDescriptorSets = { + vks::initializers::writeDescriptorSet(descriptorSets.skyBox, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.skyBox.descriptor), // Binding 0: Vertex shader uniform buffer vks::initializers::writeDescriptorSet(descriptorSets.skyBox, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.cubemap.descriptor), // Binding 1: Fragment shader texture sampler }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -595,7 +595,7 @@ public: VkPipelineMultisampleStateCreateInfo multisampleStateCI = vks::initializers::pipelineMultisampleStateCreateInfo(VK_SAMPLE_COUNT_1_BIT, 0); std::vector dynamicStateEnables = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; VkPipelineDynamicStateCreateInfo dynamicStateCI = vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables.data(), dynamicStateEnables.size(), 0); - + std::array shaderStages; VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayouts.blur, renderPass, 0); @@ -610,8 +610,8 @@ public: pipelineCI.pStages = shaderStages.data(); // Blur pipelines - shaderStages[0] = loadShader(getAssetPath() + "shaders/bloom/gaussblur.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/bloom/gaussblur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "bloom/gaussblur.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "bloom/gaussblur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCI.pVertexInputState = &emptyInputState; @@ -645,7 +645,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Normal @@ -657,8 +657,8 @@ public: vertexInputState.pVertexAttributeDescriptions = vertexInputAttributes.data(); pipelineCI.pVertexInputState = &vertexInputState; pipelineCI.layout = pipelineLayouts.scene; - shaderStages[0] = loadShader(getAssetPath() + "shaders/bloom/phongpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/bloom/phongpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "bloom/phongpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "bloom/phongpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); blendAttachmentState.blendEnable = VK_FALSE; depthStencilStateCI.depthWriteEnable = VK_TRUE; rasterizationStateCI.cullMode = VK_CULL_MODE_BACK_BIT; @@ -666,14 +666,14 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.phongPass)); // Color only pass (offscreen blur base) - shaderStages[0] = loadShader(getAssetPath() + "shaders/bloom/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/bloom/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "bloom/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "bloom/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCI.renderPass = offscreenPass.renderPass; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.glowPass)); // Skybox (cubemap) - shaderStages[0] = loadShader(getAssetPath() + "shaders/bloom/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/bloom/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "bloom/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "bloom/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); depthStencilStateCI.depthWriteEnable = VK_FALSE; rasterizationStateCI.cullMode = VK_CULL_MODE_FRONT_BIT; pipelineCI.renderPass = renderPass; diff --git a/examples/commandbuffers/commandbuffers.cpp b/examples/commandbuffers/commandbuffers.cpp index 0e0f6052..bfa82617 100644 --- a/examples/commandbuffers/commandbuffers.cpp +++ b/examples/commandbuffers/commandbuffers.cpp @@ -31,7 +31,7 @@ class VulkanExample : public VulkanExampleBase { public: - enum RenderMode { + enum RenderMode { SINGLE_CB_RECREATE = 0, MULTIPLE_CB_STATIC = 1, }; @@ -128,7 +128,7 @@ public: renderMode = mode; vkDeviceWaitIdle(device); switch (renderMode) { - case SINGLE_CB_RECREATE: + case SINGLE_CB_RECREATE: std::cout << "Using single command buffer, recreating each frame" << std::endl; break; case MULTIPLE_CB_STATIC: @@ -193,9 +193,9 @@ public: std::vector vertexInputAttributes = { vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0 : Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1 : Normal + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1 : Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 3 : UV - vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8) // Location 3 : Cpöpr + vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8) // Location 3 : Cp�pr }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -206,8 +206,8 @@ public: // Load shaders std::array shaderStages = { - loadShader(getAssetPath() + "shaders/pushconstants/lights.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/pushconstants/lights.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "pushconstants/lights.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "pushconstants/lights.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); @@ -228,11 +228,11 @@ public: void prepareUniformBuffers() { /* - Single command buffer + Single command buffer */ VK_CHECK_RESULT(vulkanDevice->createBuffer( - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, &singleCB.uniformBuffer, sizeof(ShaderValues))); VK_CHECK_RESULT(singleCB.uniformBuffer.map()); @@ -242,7 +242,7 @@ public: */ for (auto i = 0; i < multiCB.uniformBuffers.size(); i++) { VK_CHECK_RESULT(vulkanDevice->createBuffer( - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, &multiCB.uniformBuffers[i], sizeof(ShaderValues))); @@ -404,7 +404,7 @@ public: /* Multiple command buffers rendering to different framebuffers */ - void recordCommandBuffers() + void recordCommandBuffers() { VkClearValue clearValues[2]; clearValues[0].color = defaultClearColor; @@ -592,7 +592,7 @@ public: case 0x32: setRenderMode(MULTIPLE_CB_STATIC); break; - } + } } #endif }; diff --git a/examples/computecloth/computecloth.cpp b/examples/computecloth/computecloth.cpp index c73cf479..964d39e5 100644 --- a/examples/computecloth/computecloth.cpp +++ b/examples/computecloth/computecloth.cpp @@ -142,7 +142,7 @@ public: vkDestroyCommandPool(device, compute.commandPool, nullptr); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { if (deviceFeatures.samplerAnisotropy) { @@ -156,7 +156,7 @@ public: modelSphere.loadFromFile(getAssetPath() + "models/geosphere.obj", vertexLayout, compute.ubo.sphereRadius * 0.05f, vulkanDevice, queue); } - void addGraphicsToComputeBarriers(VkCommandBuffer commandBuffer) + void addGraphicsToComputeBarriers(VkCommandBuffer commandBuffer) { if (specializedComputeQueue) { VkBufferMemoryBarrier bufferBarrier = vks::initializers::bufferMemoryBarrier(); @@ -179,9 +179,9 @@ public: static_cast(bufferBarriers.size()), bufferBarriers.data(), 0, nullptr); } - } + } - void addComputeToComputeBarriers(VkCommandBuffer commandBuffer) + void addComputeToComputeBarriers(VkCommandBuffer commandBuffer) { VkBufferMemoryBarrier bufferBarrier = vks::initializers::bufferMemoryBarrier(); bufferBarrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; @@ -202,7 +202,7 @@ public: 0, nullptr, static_cast(bufferBarriers.size()), bufferBarriers.data(), 0, nullptr); - } + } void addComputeToGraphicsBarriers(VkCommandBuffer commandBuffer) { @@ -227,7 +227,7 @@ public: static_cast(bufferBarriers.size()), bufferBarriers.data(), 0, nullptr); } - } + } void buildCommandBuffers() { @@ -386,7 +386,7 @@ public: VkDeviceSize storageBufferSize = particleBuffer.size() * sizeof(Particle); // Staging - // SSBO won't be changed on the host after upload so copy to device local memory + // SSBO won't be changed on the host after upload so copy to device local memory vks::Buffer stagingBuffer; @@ -415,7 +415,7 @@ public: copyRegion.size = storageBufferSize; vkCmdCopyBuffer(copyCmd, stagingBuffer.buffer, compute.storageBuffers.input.buffer, 1, ©Region); vkCmdCopyBuffer(copyCmd, stagingBuffer.buffer, compute.storageBuffers.output.buffer, 1, ©Region); - // Add an initial release barrier to the graphics queue, + // Add an initial release barrier to the graphics queue, // so that when the compute command buffer executes for the first time // it doesn't complain about a lack of a corresponding "release" to its "acquire" addGraphicsToComputeBarriers(copyCmd); @@ -489,7 +489,7 @@ public: VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pipelineLayoutCreateInfo, nullptr, &graphics.pipelineLayout)); // Set - VkDescriptorSetAllocateInfo allocInfo = + VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &graphics.descriptorSetLayout, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &graphics.descriptorSet)); @@ -533,8 +533,8 @@ public: // Rendering pipeline std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computecloth/cloth.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computecloth/cloth.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computecloth/cloth.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computecloth/cloth.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -542,7 +542,7 @@ public: renderPass, 0); - // Input attributes + // Input attributes // Binding description std::vector inputBindings = { @@ -590,8 +590,8 @@ public: inputAssemblyState.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; inputAssemblyState.primitiveRestartEnable = VK_FALSE; rasterizationState.polygonMode = VK_POLYGON_MODE_FILL; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computecloth/sphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computecloth/sphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computecloth/sphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computecloth/sphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &graphics.pipelines.sphere)); } @@ -626,7 +626,7 @@ public: VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &compute.descriptorSetLayout, 1); - // Create two descriptor sets with input and output buffers switched + // Create two descriptor sets with input and output buffers switched VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &compute.descriptorSets[0])); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &compute.descriptorSets[1])); @@ -642,9 +642,9 @@ public: vkUpdateDescriptorSets(device, static_cast(computeWriteDescriptorSets.size()), computeWriteDescriptorSets.data(), 0, NULL); - // Create pipeline + // Create pipeline VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(compute.pipelineLayout, 0); - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computecloth/cloth.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computecloth/cloth.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &compute.pipeline)); // Separate command pool as queue family for compute may be different than graphics @@ -656,7 +656,7 @@ public: // Create a command buffer for compute operations VkCommandBufferAllocateInfo cmdBufAllocateInfo = - vks::initializers::commandBufferAllocateInfo(compute.commandPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY, 2); + vks::initializers::commandBufferAllocateInfo(compute.commandPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY, 2); VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &compute.commandBuffers[0])); @@ -679,7 +679,7 @@ public: &compute.uniformBuffer, sizeof(compute.ubo)); VK_CHECK_RESULT(compute.uniformBuffer.map()); - + // Initial values float dx = cloth.size.x / (cloth.gridsize.x - 1); float dy = cloth.size.y / (cloth.gridsize.y - 1); diff --git a/examples/computecullandlod/computecullandlod.cpp b/examples/computecullandlod/computecullandlod.cpp index ec9c0ec0..ca4ea04e 100644 --- a/examples/computecullandlod/computecullandlod.cpp +++ b/examples/computecullandlod/computecullandlod.cpp @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include @@ -195,7 +195,7 @@ public: vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.plants); vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &models.lodObject.vertices.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], INSTANCE_BUFFER_BIND_ID, 1, &instanceBuffer.buffer, offsets); - + vkCmdBindIndexBuffer(drawCmdBuffers[i], models.lodObject.indices.buffer, 0, VK_INDEX_TYPE_UINT32); if (vulkanDevice->features.multiDrawIndirect) @@ -209,7 +209,7 @@ public: { vkCmdDrawIndexedIndirect(drawCmdBuffers[i], indirectCommandsBuffer.buffer, j * sizeof(VkDrawIndexedIndirectCommand), 1, sizeof(VkDrawIndexedIndirectCommand)); } - } + } drawUI(drawCmdBuffers[i]); @@ -233,7 +233,7 @@ public: vks::initializers::vertexInputBindingDescription(VERTEX_BUFFER_BIND_ID, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX); // Binding 1: Per instance - vertices.bindingDescriptions[1] = + vertices.bindingDescriptions[1] = vks::initializers::vertexInputBindingDescription(INSTANCE_BUFFER_BIND_ID, sizeof(InstanceData), VK_VERTEX_INPUT_RATE_INSTANCE); // Attribute descriptions @@ -295,10 +295,10 @@ public: VkBufferMemoryBarrier bufferBarrier = vks::initializers::bufferMemoryBarrier(); bufferBarrier.buffer = indirectCommandsBuffer.buffer; bufferBarrier.size = indirectCommandsBuffer.descriptor.range; - bufferBarrier.srcAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT; - bufferBarrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT; - bufferBarrier.srcQueueFamilyIndex = vulkanDevice->queueFamilyIndices.graphics; - bufferBarrier.dstQueueFamilyIndex = vulkanDevice->queueFamilyIndices.compute; + bufferBarrier.srcAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT; + bufferBarrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + bufferBarrier.srcQueueFamilyIndex = vulkanDevice->queueFamilyIndices.graphics; + bufferBarrier.dstQueueFamilyIndex = vulkanDevice->queueFamilyIndices.compute; vkCmdPipelineBarrier( compute.commandBuffer, @@ -313,7 +313,7 @@ public: vkCmdBindDescriptorSets(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineLayout, 0, 1, &compute.descriptorSet, 0, 0); // Dispatch the compute job - // The compute shader will do the frustum culling and adjust the indirect draw calls depending on object visibility. + // The compute shader will do the frustum culling and adjust the indirect draw calls depending on object visibility. // It also determines the lod to use depending on distance to the viewer. vkCmdDispatch(compute.commandBuffer, objectCount / 16, 1, 1); @@ -341,7 +341,7 @@ public: void setupDescriptorPool() { - // Example uses one ubo + // Example uses one ubo std::vector poolSizes = { vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2), @@ -475,8 +475,8 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); // Indirect (and instanced) pipeline for the plants - shaderStages[0] = loadShader(getAssetPath() + "shaders/computecullandlod/indirectdraw.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computecullandlod/indirectdraw.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computecullandlod/indirectdraw.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computecullandlod/indirectdraw.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.plants)); } @@ -706,9 +706,9 @@ public: vkUpdateDescriptorSets(device, static_cast(computeWriteDescriptorSets.size()), computeWriteDescriptorSets.data(), 0, NULL); - // Create pipeline + // Create pipeline VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(compute.pipelineLayout, 0); - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computecullandlod/cull.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computecullandlod/cull.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); // Use specialization constants to pass max. level of detail (determined by no. of meshes) VkSpecializationMapEntry specializationEntry{}; @@ -750,7 +750,7 @@ public: VkSemaphoreCreateInfo semaphoreCreateInfo = vks::initializers::semaphoreCreateInfo(); VK_CHECK_RESULT(vkCreateSemaphore(device, &semaphoreCreateInfo, nullptr, &compute.semaphore)); - + // Build a single command buffer containing the compute dispatch commands buildComputeCommandBuffer(); } @@ -789,7 +789,7 @@ public: computeSubmitInfo.pSignalSemaphores = &compute.semaphore; VK_CHECK_RESULT(vkQueueSubmit(compute.queue, 1, &computeSubmitInfo, VK_NULL_HANDLE)); - + // Submit graphics command buffer submitInfo.commandBufferCount = 1; diff --git a/examples/computeheadless/computeheadless.cpp b/examples/computeheadless/computeheadless.cpp index cab4bfed..11ee8c2f 100644 --- a/examples/computeheadless/computeheadless.cpp +++ b/examples/computeheadless/computeheadless.cpp @@ -1,5 +1,5 @@ /* -* Vulkan Example - Minimal headless compute example +* Vulkan Example - Minimal headless compute example * * Copyright (C) 2017 by Sascha Willems - www.saschawillems.de * @@ -51,7 +51,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL debugMessageCallback( int32_t messageCode, const char* pLayerPrefix, const char* pMessage, - void* pUserData) + void* pUserData) { LOG("[VALIDATION]: %s - %s\n", pLayerPrefix, pMessage); return VK_FALSE; @@ -62,7 +62,7 @@ class VulkanExample public: VkInstance instance; VkPhysicalDevice physicalDevice; - VkDevice device; + VkDevice device; uint32_t queueFamilyIndex; VkPipelineCache pipelineCache; VkQueue queue; @@ -133,8 +133,8 @@ public: appInfo.pEngineName = "VulkanExample"; appInfo.apiVersion = VK_API_VERSION_1_0; - /* - Vulkan instance creation (without surface extensions) + /* + Vulkan instance creation (without surface extensions) */ VkInstanceCreateInfo instanceCreateInfo = {}; instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; @@ -197,10 +197,10 @@ public: } #endif - /* - Vulkan device creation + /* + Vulkan device creation */ - // Physical device (always use first) + // Physical device (always use first) uint32_t deviceCount = 0; VK_CHECK_RESULT(vkEnumeratePhysicalDevices(instance, &deviceCount, nullptr)); std::vector physicalDevices(deviceCount); @@ -245,7 +245,7 @@ public: cmdPoolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; VK_CHECK_RESULT(vkCreateCommandPool(device, &cmdPoolInfo, nullptr, &commandPool)); - /* + /* Prepare storage buffers */ std::vector computeInput(BUFFER_ELEMENTS); @@ -314,7 +314,7 @@ public: vkFreeCommandBuffers(device, commandPool, 1, ©Cmd); } - /* + /* Prepare compute pipeline */ { @@ -351,7 +351,7 @@ public: pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; VK_CHECK_RESULT(vkCreatePipelineCache(device, &pipelineCacheCreateInfo, nullptr, &pipelineCache)); - // Create pipeline + // Create pipeline VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(pipelineLayout, 0); // Pass SSBO size via specialization constant @@ -365,9 +365,9 @@ public: shaderStage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; shaderStage.stage = VK_SHADER_STAGE_COMPUTE_BIT; #if defined(VK_USE_PLATFORM_ANDROID_KHR) - shaderStage.module = vks::tools::loadShader(androidapp->activity->assetManager, (getAssetPath() + "shaders/computeheadless/headless.comp.spv").c_str(), device); + shaderStage.module = vks::tools::loadShader(androidapp->activity->assetManager, (getShadersPath() + "computeheadless/headless.comp.spv").c_str(), device); #else - shaderStage.module = vks::tools::loadShader((getAssetPath() + "shaders/computeheadless/headless.comp.spv").c_str(), device); + shaderStage.module = vks::tools::loadShader((getShadersPath() + "computeheadless/headless.comp.spv").c_str(), device); #endif shaderStage.pName = "main"; shaderStage.pSpecializationInfo = &specializationInfo; @@ -387,7 +387,7 @@ public: VK_CHECK_RESULT(vkCreateFence(device, &fenceCreateInfo, nullptr, &fence)); } - /* + /* Command buffer creation (for compute work submission) */ { diff --git a/examples/computenbody/computenbody.cpp b/examples/computenbody/computenbody.cpp index 7e184c30..df17164d 100644 --- a/examples/computenbody/computenbody.cpp +++ b/examples/computenbody/computenbody.cpp @@ -170,7 +170,7 @@ public: graphics.queueFamilyIndex, compute.storageBuffer.buffer, 0, - compute.storageBuffer.size + compute.storageBuffer.size }; vkCmdPipelineBarrier( @@ -198,7 +198,7 @@ public: VkDeviceSize offsets[1] = { 0 }; vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &compute.storageBuffer.buffer, offsets); vkCmdDraw(drawCmdBuffers[i], numParticles, 1, 0, 0); - + drawUI(drawCmdBuffers[i]); vkCmdEndRenderPass(drawCmdBuffers[i]); @@ -253,7 +253,7 @@ public: compute.queueFamilyIndex, compute.storageBuffer.buffer, 0, - compute.storageBuffer.size + compute.storageBuffer.size }; vkCmdPipelineBarrier( @@ -366,7 +366,7 @@ public: } else { - // Position + // Position glm::vec3 position(attractors[i] + glm::vec3(rndDist(rndEngine), rndDist(rndEngine), rndDist(rndEngine)) * 0.75f); float len = glm::length(glm::normalize(position - attractors[i])); position.y *= 2.0f - (len * len); @@ -390,7 +390,7 @@ public: VkDeviceSize storageBufferSize = particleBuffer.size() * sizeof(Particle); // Staging - // SSBO won't be changed on the host after upload so copy to device local memory + // SSBO won't be changed on the host after upload so copy to device local memory vks::Buffer stagingBuffer; @@ -426,7 +426,7 @@ public: compute.queueFamilyIndex, compute.storageBuffer.buffer, 0, - compute.storageBuffer.size + compute.storageBuffer.size }; vkCmdPipelineBarrier( @@ -590,8 +590,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computenbody/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computenbody/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computenbody/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computenbody/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -705,7 +705,7 @@ public: VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(compute.pipelineLayout, 0); // 1st pass - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computenbody/particle_calculate.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computenbody/particle_calculate.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); // Set shader parameters via specialization constants struct SpecializationData { @@ -727,14 +727,14 @@ public: specializationData.power = 0.75f; specializationData.soften = 0.05f; - VkSpecializationInfo specializationInfo = + VkSpecializationInfo specializationInfo = vks::initializers::specializationInfo(static_cast(specializationMapEntries.size()), specializationMapEntries.data(), sizeof(specializationData), &specializationData); computePipelineCreateInfo.stage.pSpecializationInfo = &specializationInfo; VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &compute.pipelineCalculate)); // 2nd pass - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computenbody/particle_integrate.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computenbody/particle_integrate.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &compute.pipelineIntegrate)); // Separate command pool as queue family for compute may be different than graphics @@ -763,7 +763,7 @@ public: // If graphics and compute queue family indices differ, acquire and immediately release the storage buffer, so that the initial acquire from the graphics command buffers are matched up properly if (graphics.queueFamilyIndex != compute.queueFamilyIndex) - { + { // Create a transient command buffer for setting up the initial buffer transfer state VkCommandBuffer transferCmd = vulkanDevice->createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, compute.commandPool, true); diff --git a/examples/computeparticles/computeparticles.cpp b/examples/computeparticles/computeparticles.cpp index 306a425e..7e4cd858 100644 --- a/examples/computeparticles/computeparticles.cpp +++ b/examples/computeparticles/computeparticles.cpp @@ -539,8 +539,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computeparticles/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computeparticles/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computeparticles/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computeparticles/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -652,7 +652,7 @@ public: // Create pipeline VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(compute.pipelineLayout, 0); - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computeparticles/particle.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computeparticles/particle.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &compute.pipeline)); // Separate command pool as queue family for compute may be different than graphics diff --git a/examples/computeraytracing/computeraytracing.cpp b/examples/computeraytracing/computeraytracing.cpp index cceaa587..76ca504c 100644 --- a/examples/computeraytracing/computeraytracing.cpp +++ b/examples/computeraytracing/computeraytracing.cpp @@ -71,9 +71,9 @@ public: } ubo; } compute; - // SSBO sphere declaration + // SSBO sphere declaration struct Sphere { // Shader uses std140 layout (so we only use vec4 instead of vec3) - glm::vec3 pos; + glm::vec3 pos; float radius; glm::vec3 diffuse; float specular; @@ -166,9 +166,9 @@ public: tex->imageLayout = VK_IMAGE_LAYOUT_GENERAL; vks::tools::setImageLayout( - layoutCmd, + layoutCmd, tex->image, - VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_UNDEFINED, tex->imageLayout); @@ -500,8 +500,8 @@ public: // Display pipeline std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computeraytracing/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computeraytracing/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computeraytracing/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computeraytracing/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -626,7 +626,7 @@ public: compute.pipelineLayout, 0); - computePipelineCreateInfo.stage = loadShader(getAssetPath() + "shaders/computeraytracing/raytracing.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + computePipelineCreateInfo.stage = loadShader(getShadersPath() + "computeraytracing/raytracing.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &compute.pipeline)); // Separate command pool as queue family for compute may be different than graphics @@ -711,7 +711,7 @@ public: setupDescriptorPool(); setupDescriptorSet(); prepareCompute(); - buildCommandBuffers(); + buildCommandBuffers(); prepared = true; } diff --git a/examples/computeshader/computeshader.cpp b/examples/computeshader/computeshader.cpp index 4a650424..f23c3269 100644 --- a/examples/computeshader/computeshader.cpp +++ b/examples/computeshader/computeshader.cpp @@ -159,9 +159,9 @@ public: tex->imageLayout = VK_IMAGE_LAYOUT_GENERAL; vks::tools::setImageLayout( - layoutCmd, tex->image, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_LAYOUT_UNDEFINED, + layoutCmd, tex->image, + VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_UNDEFINED, tex->imageLayout); vulkanDevice->flushCommandBuffer(layoutCmd, queue, true); @@ -359,7 +359,7 @@ public: void setupDescriptorPool() { std::vector poolSizes = { - // Graphics pipelines uniform buffers + // Graphics pipelines uniform buffers vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2), // Graphics pipelines image samplers for displaying compute output image vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 2), @@ -372,7 +372,7 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = { + std::vector setLayoutBindings = { // Binding 0: Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 1: Fragment shader input image @@ -381,7 +381,7 @@ public: VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorLayout, nullptr, &graphics.descriptorSetLayout)); - + VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = vks::initializers::pipelineLayoutCreateInfo(&graphics.descriptorSetLayout, 1); VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pPipelineLayoutCreateInfo, nullptr, &graphics.pipelineLayout)); } @@ -401,7 +401,7 @@ public: // Final image (after compute shader processing) VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &graphics.descriptorSetPostCompute)); - std::vector writeDescriptorSets = { + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(graphics.descriptorSetPostCompute, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBufferVS.descriptor), vks::initializers::writeDescriptorSet(graphics.descriptorSetPostCompute, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textureComputeTarget.descriptor) }; @@ -462,8 +462,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/computeshader/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/computeshader/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "computeshader/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "computeshader/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -554,7 +554,7 @@ public: vks::initializers::descriptorSetAllocateInfo(descriptorPool, &compute.descriptorSetLayout, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &compute.descriptorSet)); - std::vector computeWriteDescriptorSets = { + std::vector computeWriteDescriptorSets = { vks::initializers::writeDescriptorSet(compute.descriptorSet, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 0, &textureColorMap.descriptor), vks::initializers::writeDescriptorSet(compute.descriptorSet, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, &textureComputeTarget.descriptor) }; @@ -567,7 +567,7 @@ public: // One pipeline for each effect shaderNames = { "emboss", "edgedetect", "sharpen" }; for (auto& shaderName : shaderNames) { - std::string fileName = getAssetPath() + "shaders/computeshader/" + shaderName + ".comp.spv"; + std::string fileName = getShadersPath() + "computeshader/" + shaderName + ".comp.spv"; computePipelineCreateInfo.stage = loadShader(fileName, VK_SHADER_STAGE_COMPUTE_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateComputePipelines(device, pipelineCache, 1, &computePipelineCreateInfo, nullptr, &pipeline)); @@ -656,7 +656,7 @@ public: setupDescriptorPool(); setupDescriptorSet(); prepareCompute(); - buildCommandBuffers(); + buildCommandBuffers(); prepared = true; } diff --git a/examples/conditionalrender/conditionalrender.cpp b/examples/conditionalrender/conditionalrender.cpp index 20112e23..3424802b 100644 --- a/examples/conditionalrender/conditionalrender.cpp +++ b/examples/conditionalrender/conditionalrender.cpp @@ -85,7 +85,7 @@ public: node->mesh->uniformBuffer.descriptorSet }; vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, static_cast(descriptorsets.size()), descriptorsets.data(), 0, NULL); - + struct PushBlock { glm::vec4 baseColorFactor; } pushBlock; @@ -152,7 +152,7 @@ public: vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSet, 0, NULL); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - + const VkDeviceSize offsets[1] = { 0 }; vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &scene.vertices.buffer, offsets); vkCmdBindIndexBuffer(drawCmdBuffers[i], scene.indices.buffer, 0, VK_INDEX_TYPE_UINT32); @@ -244,8 +244,8 @@ public: pipelineCreateInfoCI.pDynamicState = &dynamicStateCI; const std::array shaderStages = { - loadShader(getAssetPath() + "shaders/conditionalrender/model.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/conditionalrender/model.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "conditionalrender/model.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "conditionalrender/model.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; pipelineCreateInfoCI.stageCount = static_cast(shaderStages.size()); diff --git a/examples/conservativeraster/conservativeraster.cpp b/examples/conservativeraster/conservativeraster.cpp index 5571316a..f247f77d 100644 --- a/examples/conservativeraster/conservativeraster.cpp +++ b/examples/conservativeraster/conservativeraster.cpp @@ -109,7 +109,7 @@ public: // Enable extension required for conservative rasterization enabledDeviceExtensions.push_back(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME); - + // Reading device properties of conservative rasterization requires VK_KHR_get_physical_device_properties2 to be enabled enabledInstanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); } @@ -145,13 +145,13 @@ public: triangle.indices.destroy(); } - void getEnabledFeatures() + void getEnabledFeatures() { enabledFeatures.fillModeNonSolid = deviceFeatures.fillModeNonSolid; enabledFeatures.wideLines = deviceFeatures.wideLines; } - /* + /* Setup offscreen framebuffer, attachments and render passes for lower resolution rendering of the scene */ void prepareOffscreen() @@ -315,12 +315,12 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &offscreenPass.frameBuffer)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set offscreenPass.descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; offscreenPass.descriptor.imageView = offscreenPass.color.view; offscreenPass.descriptor.sampler = offscreenPass.sampler; } - + void buildCommandBuffers() { VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); @@ -397,7 +397,7 @@ public: vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayouts.fullscreen, 0, 1, &descriptorSets.fullscreen, 0, nullptr); vkCmdDraw(drawCmdBuffers[i], 3, 1, 0, 0); - // Overlay actual triangle + // Overlay actual triangle VkDeviceSize offsets[1] = { 0 }; vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &triangle.vertices.buffer, offsets); vkCmdBindIndexBuffer(drawCmdBuffers[i], triangle.indices.buffer, 0, VK_INDEX_TYPE_UINT32); @@ -490,9 +490,9 @@ public: VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo; // Scene rendering - setLayoutBindings = { - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 1: Fragment shader image sampler + setLayoutBindings = { + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 1: Fragment shader image sampler vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 2) // Binding 2: Fragment shader uniform buffer }; descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings.data(), static_cast(setLayoutBindings.size())); @@ -501,8 +501,8 @@ public: VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pPipelineLayoutCreateInfo, nullptr, &pipelineLayouts.scene)); // Fullscreen pass - setLayoutBindings = { - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer + setLayoutBindings = { + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1) // Binding 1: Fragment shader image sampler }; descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings.data(), static_cast(setLayoutBindings.size())); @@ -588,7 +588,7 @@ public: vks::initializers::vertexInputBindingDescription(0, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -608,8 +608,8 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); // Full screen pass - shaderStages[0] = loadShader(getAssetPath() + "shaders/conservativeraster/fullscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/conservativeraster/fullscreen.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "conservativeraster/fullscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "conservativeraster/fullscreen.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state (full screen triangle generated in vertex shader) VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCreateInfo.pVertexInputState = &emptyInputState; @@ -623,8 +623,8 @@ public: // TODO: Check support for lines rasterizationStateCI.lineWidth = 2.0f; rasterizationStateCI.polygonMode = VK_POLYGON_MODE_LINE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/conservativeraster/triangle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/conservativeraster/triangleoverlay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "conservativeraster/triangle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "conservativeraster/triangleoverlay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.triangleOverlay)); pipelineCreateInfo.renderPass = offscreenPass.renderPass; @@ -633,8 +633,8 @@ public: Triangle rendering */ rasterizationStateCI.polygonMode = VK_POLYGON_MODE_FILL; - shaderStages[0] = loadShader(getAssetPath() + "shaders/conservativeraster/triangle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/conservativeraster/triangle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "conservativeraster/triangle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "conservativeraster/triangle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); /* Basic pipeline diff --git a/examples/debugmarker/debugmarker.cpp b/examples/debugmarker/debugmarker.cpp index 52fd55e9..768e1d58 100644 --- a/examples/debugmarker/debugmarker.cpp +++ b/examples/debugmarker/debugmarker.cpp @@ -8,7 +8,7 @@ /* * Note: This sample is deprecated! - * An updated version using VK_EXT_debug_utils along with an in-depth tutorial is available in the pfficial Khronos Vulkan Samples repository at + * An updated version using VK_EXT_debug_utils along with an in-depth tutorial is available in the pfficial Khronos Vulkan Samples repository at * https://github.com/KhronosGroup/Vulkan-Samples/blob/master/samples/extensions/debug_utils. */ @@ -246,7 +246,7 @@ public: camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Fill mode non solid is required for wireframe display @@ -258,7 +258,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.toonshading, nullptr); vkDestroyPipeline(device, pipelines.color, nullptr); @@ -270,7 +270,7 @@ public: vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); - // Destroy and free mesh resources + // Destroy and free mesh resources scene.model.destroy(); sceneGlow.model.destroy(); @@ -454,7 +454,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &offscreenPass.frameBuffer)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set offscreenPass.descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; offscreenPass.descriptor.imageView = offscreenPass.color.view; offscreenPass.descriptor.sampler = offscreenPass.sampler; @@ -503,7 +503,7 @@ public: /* First render pass: Offscreen rendering */ - if (glow) + if (glow) { VkClearValue clearValues[2]; clearValues[0].color = { { 0.0f, 0.0f, 0.0f, 0.0f } }; @@ -519,7 +519,7 @@ public: // Start a new debug marker region DebugMarker::beginRegion(drawCmdBuffers[i], "Off-screen scene rendering", glm::vec4(1.0f, 0.78f, 0.05f, 1.0f)); - + vkCmdBeginRenderPass(drawCmdBuffers[i], &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE); VkViewport viewport = vks::initializers::viewport((float)offscreenPass.width, (float)offscreenPass.height, 0.0f, 1.0f); @@ -616,7 +616,7 @@ public: vkCmdEndRenderPass(drawCmdBuffers[i]); // End current debug marker region - DebugMarker::endRegion(drawCmdBuffers[i]); + DebugMarker::endRegion(drawCmdBuffers[i]); } @@ -663,7 +663,7 @@ public: std::vector writeDescriptorSets = { // Binding 0 : Vertex shader uniform buffer vks::initializers::writeDescriptorSet(descriptorSets.scene, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor), - // Binding 1 : Color map + // Binding 1 : Color map vks::initializers::writeDescriptorSet(descriptorSets.scene, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &offscreenPass.descriptor) }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -701,10 +701,10 @@ public: // Attribute descriptions // Describes memory layout and shader positions std::vector vertexInputAttributes = { - { 0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0 }, // Location 0: Position - { 1, 0, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3 }, // Location 1: Normal - { 2, 0, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6 }, // Location 2: Texture coordinates - { 3, 0, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8 }, // Location 3: Color + { 0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0 }, // Location 0: Position + { 1, 0, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3 }, // Location 1: Normal + { 2, 0, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6 }, // Location 2: Texture coordinates + { 3, 0, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8 }, // Location 3: Color }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -716,13 +716,13 @@ public: pipelineCI.pVertexInputState = &vertexInputState; // Toon shading pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/debugmarker/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/debugmarker/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "debugmarker/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "debugmarker/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.toonshading)); // Color only pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/debugmarker/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/debugmarker/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "debugmarker/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "debugmarker/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCI.renderPass = offscreenPass.renderPass; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.color)); @@ -735,8 +735,8 @@ public: } // Post processing effect - shaderStages[0] = loadShader(getAssetPath() + "shaders/debugmarker/postprocess.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/debugmarker/postprocess.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "debugmarker/postprocess.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "debugmarker/postprocess.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); depthStencilStateCI.depthTestEnable = VK_FALSE; depthStencilStateCI.depthWriteEnable = VK_FALSE; rasterizationStateCI.polygonMode = VK_POLYGON_MODE_FILL; diff --git a/examples/deferred/deferred.cpp b/examples/deferred/deferred.cpp index f004067c..715ba7d3 100644 --- a/examples/deferred/deferred.cpp +++ b/examples/deferred/deferred.cpp @@ -101,7 +101,7 @@ public: } pipelines; struct { - VkPipelineLayout deferred; + VkPipelineLayout deferred; VkPipelineLayout offscreen; } pipelineLayouts; @@ -122,12 +122,12 @@ public: }; struct FrameBuffer { int32_t width, height; - VkFramebuffer frameBuffer; + VkFramebuffer frameBuffer; FrameBufferAttachment position, normal, albedo; FrameBufferAttachment depth; VkRenderPass renderPass; } offScreenFrameBuf; - + // One sampler for the frame buffer color attachments VkSampler colorSampler; @@ -152,7 +152,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroySampler(device, colorSampler, nullptr); @@ -210,14 +210,14 @@ public: vkDestroySemaphore(device, offscreenSemaphore, nullptr); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable anisotropic filtering if supported if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -231,7 +231,7 @@ public: // Create a frame buffer attachment void createAttachment( - VkFormat format, + VkFormat format, VkImageUsageFlagBits usage, FrameBufferAttachment *attachment) { @@ -274,7 +274,7 @@ public: memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &attachment->mem)); VK_CHECK_RESULT(vkBindImageMemory(device, attachment->image, attachment->mem, 0)); - + VkImageViewCreateInfo imageView = vks::initializers::imageViewCreateInfo(); imageView.viewType = VK_IMAGE_VIEW_TYPE_2D; imageView.format = format; @@ -381,8 +381,8 @@ public: dependencies[0].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; dependencies[0].dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; - dependencies[1].srcSubpass = 0; - dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL; + dependencies[1].srcSubpass = 0; + dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL; dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; dependencies[1].dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; dependencies[1].srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; @@ -397,9 +397,9 @@ public: renderPassInfo.pSubpasses = &subpass; renderPassInfo.dependencyCount = 2; renderPassInfo.pDependencies = dependencies.data(); - + VK_CHECK_RESULT(vkCreateRenderPass(device, &renderPassInfo, nullptr, &offScreenFrameBuf.renderPass)); - + std::array attachments; attachments[0] = offScreenFrameBuf.position.view; attachments[1] = offScreenFrameBuf.normal.view; @@ -595,7 +595,7 @@ public: void generateQuads() { // Setup vertices for multiple screen aligned quads - // Used for displaying final result and debug + // Used for displaying final result and debug struct Vertex { float pos[3]; float uv[2]; @@ -847,7 +847,7 @@ public: // Model VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSets.model)); - writeDescriptorSets = + writeDescriptorSets = { // Binding 0: Vertex shader uniform buffer vks::initializers::writeDescriptorSet( @@ -923,7 +923,7 @@ public: VkPipelineDepthStencilStateCreateInfo depthStencilState = vks::initializers::pipelineDepthStencilStateCreateInfo( - VK_TRUE, + VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS_OR_EQUAL); @@ -964,8 +964,8 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); // Final fullscreen composition pass pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferred/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferred/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferred/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferred/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state, quads are generated by the vertex shader VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCreateInfo.pVertexInputState = &emptyInputState; @@ -974,13 +974,13 @@ public: // Debug display pipeline pipelineCreateInfo.pVertexInputState = &vertices.inputState; - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferred/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferred/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferred/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferred/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.debug)); - + // Offscreen pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferred/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferred/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferred/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferred/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Separate render pass pipelineCreateInfo.renderPass = offScreenFrameBuf.renderPass; @@ -1048,7 +1048,7 @@ public: if (debugDisplay) { uboVS.projection = glm::ortho(0.0f, 2.0f, 0.0f, 2.0f, -1.0f, 1.0f); - } + } else { uboVS.projection = glm::ortho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f); @@ -1121,7 +1121,7 @@ public: VulkanExampleBase::prepareFrame(); // The scene render command buffer has to wait for the offscreen - // rendering to be finished before we can use the framebuffer + // rendering to be finished before we can use the framebuffer // color image for sampling during final rendering // To ensure this we use a dedicated offscreen synchronization // semaphore that will be signaled when offscreen renderin @@ -1170,7 +1170,7 @@ public: setupDescriptorPool(); setupDescriptorSet(); buildCommandBuffers(); - buildDeferredCommandBuffer(); + buildDeferredCommandBuffer(); prepared = true; } diff --git a/examples/deferredmultisampling/deferredmultisampling.cpp b/examples/deferredmultisampling/deferredmultisampling.cpp index 17efd146..97bb3940 100644 --- a/examples/deferredmultisampling/deferredmultisampling.cpp +++ b/examples/deferredmultisampling/deferredmultisampling.cpp @@ -100,7 +100,7 @@ public: } pipelines; struct { - VkPipelineLayout deferred; + VkPipelineLayout deferred; VkPipelineLayout offscreen; } pipelineLayouts; @@ -121,12 +121,12 @@ public: }; struct FrameBuffer { int32_t width, height; - VkFramebuffer frameBuffer; + VkFramebuffer frameBuffer; FrameBufferAttachment position, normal, albedo; FrameBufferAttachment depth; VkRenderPass renderPass; } offScreenFrameBuf; - + // One sampler for the frame buffer color attachments VkSampler colorSampler; @@ -152,7 +152,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroySampler(device, colorSampler, nullptr); @@ -211,7 +211,7 @@ public: vkDestroySemaphore(device, offscreenSemaphore, nullptr); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable sample rate shading filtering if supported @@ -222,7 +222,7 @@ public: if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -236,7 +236,7 @@ public: // Create a frame buffer attachment void createAttachment( - VkFormat format, + VkFormat format, VkImageUsageFlagBits usage, FrameBufferAttachment *attachment) { @@ -279,7 +279,7 @@ public: memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &attachment->mem)); VK_CHECK_RESULT(vkBindImageMemory(device, attachment->image, attachment->mem, 0)); - + VkImageViewCreateInfo imageView = vks::initializers::imageViewCreateInfo(); imageView.viewType = VK_IMAGE_VIEW_TYPE_2D; imageView.format = format; @@ -393,8 +393,8 @@ public: dependencies[0].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; dependencies[0].dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; - dependencies[1].srcSubpass = 0; - dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL; + dependencies[1].srcSubpass = 0; + dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL; dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; dependencies[1].dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; dependencies[1].srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; @@ -409,9 +409,9 @@ public: renderPassInfo.pSubpasses = &subpass; renderPassInfo.dependencyCount = 2; renderPassInfo.pDependencies = dependencies.data(); - + VK_CHECK_RESULT(vkCreateRenderPass(device, &renderPassInfo, nullptr, &offScreenFrameBuf.renderPass)); - + std::array attachments; attachments[0] = offScreenFrameBuf.position.view; attachments[1] = offScreenFrameBuf.normal.view; @@ -795,7 +795,7 @@ public: // Model VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSets.model)); - writeDescriptorSets = + writeDescriptorSets = { // Binding 0: Vertex shader uniform buffer vks::initializers::writeDescriptorSet( @@ -871,7 +871,7 @@ public: VkPipelineDepthStencilStateCreateInfo depthStencilState = vks::initializers::pipelineDepthStencilStateCreateInfo( - VK_TRUE, + VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS_OR_EQUAL); @@ -924,7 +924,7 @@ public: specializationEntry.constantID = 0; specializationEntry.offset = 0; specializationEntry.size = sizeof(uint32_t); - + uint32_t specializationData = sampleCount; VkSpecializationInfo specializationInfo; @@ -934,8 +934,8 @@ public: specializationInfo.pData = &specializationData; // With MSAA - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredmultisampling/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredmultisampling/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredmultisampling/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredmultisampling/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); shaderStages[1].pSpecializationInfo = &specializationInfo; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.deferred)); @@ -945,16 +945,16 @@ public: // Debug display pipeline specializationData = sampleCount; - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredmultisampling/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredmultisampling/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredmultisampling/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredmultisampling/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); shaderStages[1].pSpecializationInfo = &specializationInfo; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.debug)); - + // Offscreen scene rendering pipeline pipelineCreateInfo.pVertexInputState = &vertices.inputState; - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredmultisampling/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredmultisampling/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredmultisampling/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredmultisampling/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); //rasterizationState.polygonMode = VK_POLYGON_MODE_LINE; //rasterizationState.lineWidth = 2.0f; @@ -1031,7 +1031,7 @@ public: if (debugDisplay) { uboVS.projection = glm::ortho(0.0f, 2.0f, 0.0f, 2.0f, -1.0f, 1.0f); - } + } else { uboVS.projection = glm::ortho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f); @@ -1141,7 +1141,7 @@ public: setupDescriptorPool(); setupDescriptorSet(); buildCommandBuffers(); - buildDeferredCommandBuffer(); + buildDeferredCommandBuffer(); prepared = true; } diff --git a/examples/deferredshadows/deferredshadows.cpp b/examples/deferredshadows/deferredshadows.cpp index ca330bac..0be15577 100644 --- a/examples/deferredshadows/deferredshadows.cpp +++ b/examples/deferredshadows/deferredshadows.cpp @@ -39,7 +39,7 @@ #if defined(__ANDROID__) // Use max. screen dimension as deferred framebuffer size -#define FB_DIM std::max(width,height) +#define FB_DIM std::max(width,height) #else #define FB_DIM 2048 #endif @@ -73,7 +73,7 @@ public: vks::Texture2D normalMap; } background; } textures; - + // Vertex layout for the models vks::VertexLayout vertexLayout = vks::VertexLayout({ vks::VERTEX_COMPONENT_POSITION, @@ -230,7 +230,7 @@ public: vkDestroySemaphore(device, offscreenSemaphore, nullptr); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Geometry shader support is required for writing to multiple shadow map layers in one single pass @@ -244,7 +244,7 @@ public: if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -258,7 +258,7 @@ public: // Prepare a layered shadow map with each layer containing depth from a light's point of view // The shadow mapping pass uses geometry shader instancing to output the scene from the different - // light sources' point of view to the layers of the depth attachment in one single pass + // light sources' point of view to the layers of the depth attachment in one single pass void shadowSetup() { frameBuffers.shadow = new vks::Framebuffer(vulkanDevice); @@ -278,7 +278,7 @@ public: attachmentInfo.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; frameBuffers.shadow->addAttachment(attachmentInfo); - // Create sampler to sample from to depth attachment + // Create sampler to sample from to depth attachment // Used to sample in the fragment shader for shadowed rendering VK_CHECK_RESULT(frameBuffers.shadow->createSampler(VK_FILTER_LINEAR, VK_FILTER_LINEAR, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE)); @@ -370,7 +370,7 @@ public: // First pass: Shadow map generation // ------------------------------------------------------------------------------------------------------- - + clearValues[0].depthStencil = { 1.0f, 0 }; renderPassBeginInfo.renderPass = frameBuffers.shadow->renderPass; @@ -897,8 +897,8 @@ public: // Final fullscreen pass pipeline std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/deferred.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/deferred.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -920,13 +920,13 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.deferred)); // Debug display pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/debug.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/debug.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.debug)); // Offscreen pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "deferredshadows/mrt.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "deferredshadows/mrt.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Separate render pass pipelineCreateInfo.renderPass = frameBuffers.deferred->renderPass; @@ -950,15 +950,15 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.offscreen)); // Shadow mapping pipeline - // The shadow mapping pipeline uses geometry shader instancing (invocations layout modifier) to output + // The shadow mapping pipeline uses geometry shader instancing (invocations layout modifier) to output // shadow maps for multiple lights sources into the different shadow map layers in one single render pass std::array shadowStages; - shadowStages[0] = loadShader(getAssetPath() + "shaders/deferredshadows/shadow.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shadowStages[1] = loadShader(getAssetPath() + "shaders/deferredshadows/shadow.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); + shadowStages[0] = loadShader(getShadersPath() + "deferredshadows/shadow.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shadowStages[1] = loadShader(getShadersPath() + "deferredshadows/shadow.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); pipelineCreateInfo.pStages = shadowStages.data(); pipelineCreateInfo.stageCount = static_cast(shadowStages.size()); - + // Shadow pass doesn't use any color attachments colorBlendState.attachmentCount = 0; colorBlendState.pAttachments = nullptr; @@ -1093,7 +1093,7 @@ public: memcpy(uniformBuffers.uboShadowGS.mapped, &uboShadowGS, sizeof(uboShadowGS)); uboFragmentLights.viewPos = glm::vec4(camera.position, 0.0f) * glm::vec4(-1.0f, 1.0f, -1.0f, 1.0f);; - + memcpy(uniformBuffers.fsLights.mapped, &uboFragmentLights, sizeof(uboFragmentLights)); } diff --git a/examples/descriptorindexing/descriptorindexing.cpp b/examples/descriptorindexing/descriptorindexing.cpp index ced9f15a..8cc5a916 100644 --- a/examples/descriptorindexing/descriptorindexing.cpp +++ b/examples/descriptorindexing/descriptorindexing.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include @@ -69,7 +69,7 @@ public: camera.setPosition(glm::vec3(0.0f, 0.0f, -7.5f)); camera.setRotation(glm::vec3(-35.0f, 0.0f, 0.0f)); camera.setPerspective(45.0f, (float)width / (float)height, 0.1f, 256.0f); - + /* [POI] Enable required extensions */ @@ -182,7 +182,7 @@ public: { { scale, scale, -scale }, { 1.0f, 0.0f }, faceTextureIndex[1] }, { { scale, -scale, -scale }, { 1.0f, 1.0f }, faceTextureIndex[1] }, { { scale, -scale, scale }, { 0.0f, 1.0f }, faceTextureIndex[1] }, - + { { -scale, -scale, -scale }, { 0.0f, 0.0f }, faceTextureIndex[2] }, { { scale, -scale, -scale }, { 1.0f, 0.0f }, faceTextureIndex[2] }, { { scale, scale, -scale }, { 1.0f, 1.0f }, faceTextureIndex[2] }, @@ -192,7 +192,7 @@ public: { { -scale, -scale, scale }, { 1.0f, 0.0f }, faceTextureIndex[3] }, { { -scale, scale, scale }, { 1.0f, 1.0f }, faceTextureIndex[3] }, { { -scale, scale, -scale }, { 0.0f, 1.0f }, faceTextureIndex[3] }, - + { { scale, scale, scale }, { 0.0f, 0.0f }, faceTextureIndex[4] }, { { -scale, scale, scale }, { 1.0f, 0.0f }, faceTextureIndex[4] }, { { -scale, scale, -scale }, { 1.0f, 1.0f }, faceTextureIndex[4] }, @@ -262,8 +262,8 @@ public: // Binding 0 : Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), /* - [POI] - + [POI] + Binding 1 contains a texture array that is dynamically non-uniform sampled from FS: @@ -273,8 +273,8 @@ public: }; /* - [POI] - + [POI] + The fragment shader will be using an unsized array, which has to be marked with a certain flag FS: @@ -284,7 +284,7 @@ public: setLayoutBindingFlags.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT; setLayoutBindingFlags.bindingCount = 2; std::vector descriptorBindingFlags = { - 0, + 0, VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT }; setLayoutBindingFlags.pBindingFlags = descriptorBindingFlags.data(); @@ -351,7 +351,7 @@ public: VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCI = vks::initializers::pipelineInputAssemblyStateCreateInfo(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); VkPipelineRasterizationStateCreateInfo rasterizationStateCI = vks::initializers::pipelineRasterizationStateCreateInfo(VK_POLYGON_MODE_FILL, VK_CULL_MODE_NONE, VK_FRONT_FACE_COUNTER_CLOCKWISE, 0); - VkPipelineColorBlendAttachmentState blendAttachmentState = vks::initializers::pipelineColorBlendAttachmentState(0xf, VK_FALSE); + VkPipelineColorBlendAttachmentState blendAttachmentState = vks::initializers::pipelineColorBlendAttachmentState(0xf, VK_FALSE); VkPipelineColorBlendStateCreateInfo colorBlendStateCI = vks::initializers::pipelineColorBlendStateCreateInfo(1, &blendAttachmentState); VkPipelineDepthStencilStateCreateInfo depthStencilStateCI = vks::initializers::pipelineDepthStencilStateCreateInfo(VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS_OR_EQUAL); VkPipelineViewportStateCreateInfo viewportStateCI = vks::initializers::pipelineViewportStateCreateInfo(1, 1, 0); @@ -375,8 +375,8 @@ public: // Instacing pipeline std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/descriptorindexing/descriptorindexing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/descriptorindexing/descriptorindexing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "descriptorindexing/descriptorindexing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "descriptorindexing/descriptorindexing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); pipelineCI.pVertexInputState = &vertexInputStateCI; diff --git a/examples/descriptorsets/descriptorsets.cpp b/examples/descriptorsets/descriptorsets.cpp index 12ce4985..e6f4d6a9 100644 --- a/examples/descriptorsets/descriptorsets.cpp +++ b/examples/descriptorsets/descriptorsets.cpp @@ -55,7 +55,7 @@ public: struct Models { vks::Model cube; } models; - + VkPipeline pipeline; VkPipelineLayout pipelineLayout; @@ -126,7 +126,7 @@ public: vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &models.cube.vertices.buffer, offsets); vkCmdBindIndexBuffer(drawCmdBuffers[i], models.cube.indices.buffer, 0, VK_INDEX_TYPE_UINT32); - /* + /* [POI] Render cubes with separate descriptor sets */ for (auto cube : cubes) { @@ -158,7 +158,7 @@ public: /* Descriptor set layout - + The layout describes the shader bindings and types used for a certain descriptor layout and as such must match the shader bindings Shader bindings used in this example: @@ -185,7 +185,7 @@ public: setLayoutBindings[0].descriptorCount = 1; /* - Binding 1: Combined image sampler (used to pass per object texture information) + Binding 1: Combined image sampler (used to pass per object texture information) */ setLayoutBindings[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; setLayoutBindings[1].binding = 1; @@ -198,7 +198,7 @@ public: descriptorLayoutCI.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; descriptorLayoutCI.bindingCount = static_cast(setLayoutBindings.size()); descriptorLayoutCI.pBindings = setLayoutBindings.data(); - + VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorLayoutCI, nullptr, &descriptorSetLayout)); /* @@ -232,7 +232,7 @@ public: descriptorPoolCI.pPoolSizes = descriptorPoolSizes.data(); // Max. number of descriptor sets that can be allocted from this pool (one per object) descriptorPoolCI.maxSets = static_cast(cubes.size()); - + VK_CHECK_RESULT(vkCreateDescriptorPool(device, &descriptorPoolCI, nullptr, &descriptorPool)); /* @@ -293,7 +293,7 @@ public: void preparePipelines() { /* - [POI] Create a pipeline layout used for our graphics pipeline + [POI] Create a pipeline layout used for our graphics pipeline */ VkPipelineLayoutCreateInfo pipelineLayoutCI{}; pipelineLayoutCI.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; @@ -318,7 +318,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: UV vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color @@ -340,8 +340,8 @@ public: pipelineCreateInfoCI.pDynamicState = &dynamicStateCI; const std::array shaderStages = { - loadShader(getAssetPath() + "shaders/descriptorsets/cube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/descriptorsets/cube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "descriptorsets/cube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "descriptorsets/cube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; pipelineCreateInfoCI.stageCount = static_cast(shaderStages.size()); diff --git a/examples/displacement/displacement.cpp b/examples/displacement/displacement.cpp index d042a9c5..5280baaa 100644 --- a/examples/displacement/displacement.cpp +++ b/examples/displacement/displacement.cpp @@ -90,7 +90,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); if (pipelines.wireframe != VK_NULL_HANDLE) { @@ -106,7 +106,7 @@ public: textures.colorHeightMap.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Tessellation shader support is required for this example @@ -284,13 +284,13 @@ public: { // Binding 0 : Tessellation control shader ubo vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, 0), // Binding 1 : Tessellation evaluation shader ubo vks::initializers::descriptorSetLayoutBinding( VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, + VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, 1), // Binding 2 : Combined color (rgb) and height (alpha) map vks::initializers::descriptorSetLayoutBinding( @@ -386,10 +386,10 @@ public: // Tessellation pipeline // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/displacement/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/displacement/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - shaderStages[2] = loadShader(getAssetPath() + "shaders/displacement/displacement.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); - shaderStages[3] = loadShader(getAssetPath() + "shaders/displacement/displacement.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); + shaderStages[0] = loadShader(getShadersPath() + "displacement/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "displacement/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[2] = loadShader(getShadersPath() + "displacement/displacement.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); + shaderStages[3] = loadShader(getShadersPath() + "displacement/displacement.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/distancefieldfonts/distancefieldfonts.cpp b/examples/distancefieldfonts/distancefieldfonts.cpp index 0896ef8f..ffe9bdbf 100644 --- a/examples/distancefieldfonts/distancefieldfonts.cpp +++ b/examples/distancefieldfonts/distancefieldfonts.cpp @@ -121,7 +121,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class // Clean up texture resources @@ -342,8 +342,8 @@ public: vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions[0] = vks::initializers::vertexInputBindingDescription( - VERTEX_BUFFER_BIND_ID, - sizeof(Vertex), + VERTEX_BUFFER_BIND_ID, + sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX); // Attribute descriptions @@ -355,7 +355,7 @@ public: VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, - 0); + 0); // Location 1 : Texture coordinates vertices.attributeDescriptions[1] = vks::initializers::vertexInputAttributeDescription( @@ -379,7 +379,7 @@ public: vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 2) }; - VkDescriptorPoolCreateInfo descriptorPoolInfo = + VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo( poolSizes.size(), poolSizes.data(), @@ -391,17 +391,17 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = + std::vector setLayoutBindings = { // Binding 0 : Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - VK_SHADER_STAGE_VERTEX_BIT, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 1 : Fragment shader image sampler vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - VK_SHADER_STAGE_FRAGMENT_BIT, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 2 : Fragment shader uniform buffer vks::initializers::descriptorSetLayoutBinding( @@ -410,7 +410,7 @@ public: 2) }; - VkDescriptorSetLayoutCreateInfo descriptorLayout = + VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo( setLayoutBindings.data(), setLayoutBindings.size()); @@ -427,7 +427,7 @@ public: void setupDescriptorSet() { - VkDescriptorSetAllocateInfo allocInfo = + VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo( descriptorPool, &descriptorSetLayout, @@ -448,14 +448,14 @@ public: // Binding 0 : Vertex shader uniform buffer vks::initializers::writeDescriptorSet( descriptorSets.sdf, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - 0, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 0, &uniformBuffers.vs.descriptor), // Binding 1 : Fragment shader texture sampler vks::initializers::writeDescriptorSet( descriptorSets.sdf, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - 1, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + 1, &texDescriptor), // Binding 2 : Fragment shader uniform buffer vks::initializers::writeDescriptorSet( @@ -524,7 +524,7 @@ public: VkPipelineColorBlendStateCreateInfo colorBlendState = vks::initializers::pipelineColorBlendStateCreateInfo( - 1, + 1, &blendAttachmentState); VkPipelineDepthStencilStateCreateInfo depthStencilState = @@ -554,8 +554,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/distancefieldfonts/sdf.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/distancefieldfonts/sdf.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "distancefieldfonts/sdf.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "distancefieldfonts/sdf.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -577,8 +577,8 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.sdf)); // Default bitmap font rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/distancefieldfonts/bitmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/distancefieldfonts/bitmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "distancefieldfonts/bitmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "distancefieldfonts/bitmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.bitmap)); } diff --git a/examples/dynamicuniformbuffer/dynamicuniformbuffer.cpp b/examples/dynamicuniformbuffer/dynamicuniformbuffer.cpp index d0457e49..31e835d4 100644 --- a/examples/dynamicuniformbuffer/dynamicuniformbuffer.cpp +++ b/examples/dynamicuniformbuffer/dynamicuniformbuffer.cpp @@ -51,7 +51,7 @@ void* alignedAlloc(size_t size, size_t alignment) void *data = nullptr; #if defined(_MSC_VER) || defined(__MINGW32__) data = _aligned_malloc(size, alignment); -#else +#else int res = posix_memalign(&data, alignment, size); if (res != 0) data = nullptr; @@ -63,7 +63,7 @@ void alignedFree(void* data) { #if defined(_MSC_VER) || defined(__MINGW32__) _aligned_free(data); -#else +#else free(data); #endif } @@ -126,7 +126,7 @@ public: alignedFree(uboDataDynamic.model); } - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipeline, nullptr); @@ -224,8 +224,8 @@ public: { { -1.0f, 1.0f, -1.0f },{ 0.0f, 0.0f, 0.0f } }, }; - std::vector indices = { - 0,1,2, 2,3,0, 1,5,6, 6,2,1, 7,6,5, 5,4,7, 4,0,3, 3,7,4, 4,5,1, 1,0,4, 3,2,6, 6,7,3, + std::vector indices = { + 0,1,2, 2,3,0, 1,5,6, 6,2,1, 7,6,5, 5,4,7, 4,0,3, 3,7,4, 4,5,1, 1,0,4, 3,2,6, 6,7,3, }; indexCount = static_cast(indices.size()); @@ -322,7 +322,7 @@ public: VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); std::vector writeDescriptorSets = { - // Binding 0 : Projection/View matrix uniform buffer + // Binding 0 : Projection/View matrix uniform buffer vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.view.descriptor), // Binding 1 : Instance matrix as dynamic uniform buffer vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1, &uniformBuffers.dynamic.descriptor), @@ -383,8 +383,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/dynamicuniformbuffer/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/dynamicuniformbuffer/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "dynamicuniformbuffer/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "dynamicuniformbuffer/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -507,7 +507,7 @@ public: animationTimer = 0.0f; memcpy(uniformBuffers.dynamic.mapped, uboDataDynamic.model, uniformBuffers.dynamic.size); - // Flush to make changes visible to the host + // Flush to make changes visible to the host VkMappedMemoryRange memoryRange = vks::initializers::mappedMemoryRange(); memoryRange.memory = uniformBuffers.dynamic.memory; memoryRange.size = uniformBuffers.dynamic.size; diff --git a/examples/gears/gears.cpp b/examples/gears/gears.cpp index 77d369d9..b9582e27 100644 --- a/examples/gears/gears.cpp +++ b/examples/gears/gears.cpp @@ -55,7 +55,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); @@ -298,8 +298,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/gears/gears.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/gears/gears.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "gears/gears.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "gears/gears.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/geometryshader/geometryshader.cpp b/examples/geometryshader/geometryshader.cpp index 229e5792..40f39870 100644 --- a/examples/geometryshader/geometryshader.cpp +++ b/examples/geometryshader/geometryshader.cpp @@ -83,7 +83,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); vkDestroyPipeline(device, pipelines.normals, nullptr); @@ -97,7 +97,7 @@ public: uniformBuffers.VS.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Geometry shader support is required for this example @@ -352,9 +352,9 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/geometryshader/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/geometryshader/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - shaderStages[2] = loadShader(getAssetPath() + "shaders/geometryshader/normaldebug.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); + shaderStages[0] = loadShader(getShadersPath() + "geometryshader/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "geometryshader/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[2] = loadShader(getShadersPath() + "geometryshader/normaldebug.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -378,8 +378,8 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.normals)); // Solid rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/geometryshader/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/geometryshader/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "geometryshader/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "geometryshader/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCreateInfo.stageCount = 2; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.solid)); } diff --git a/examples/gltfscene/gltfscene.cpp b/examples/gltfscene/gltfscene.cpp index 74405946..9614dd89 100644 --- a/examples/gltfscene/gltfscene.cpp +++ b/examples/gltfscene/gltfscene.cpp @@ -13,7 +13,7 @@ * For details on how glTF 2.0 works, see the official spec at https://github.com/KhronosGroup/glTF/tree/master/specification/2.0 * * Other samples will load models using a dedicated model loader with more features (see base/VulkanglTFModel.hpp) - * + * * If you are looking for a complete glTF implementation, check out https://github.com/SaschaWillems/Vulkan-glTF-PBR/ */ @@ -45,12 +45,12 @@ // Contains everything required to render a glTF model in Vulkan // This class is heavily simplified (compared to glTF's feature set) but retains the basic glTF structure -class VulkanglTFModel +class VulkanglTFModel { public: // The class requires some Vulkan objects so it can create it's own resources vks::VulkanDevice* vulkanDevice; - VkQueue copyQueue; + VkQueue copyQueue; // The vertex layout for the samples' model struct Vertex { @@ -65,7 +65,7 @@ public: VkBuffer buffer; VkDeviceMemory memory; } vertices; - + // Single index buffer for all primitives struct { int count; @@ -73,7 +73,7 @@ public: VkDeviceMemory memory; } indices; - // The following structures roughly represent the glTF scene structure + // The following structures roughly represent the glTF scene structure // To keep things simple, they only contain those properties that are required for this sample struct Node; @@ -227,7 +227,7 @@ public: node.matrix = glm::make_mat4x4(inputNode.matrix.data()); }; - // Load node's children + // Load node's children if (inputNode.children.size() > 0) { for (size_t i = 0; i < inputNode.children.size(); i++) { loadNode(input.nodes[inputNode.children[i]], input , &node, indexBuffer, vertexBuffer); @@ -340,7 +340,7 @@ public: /* glTF rendering functions */ - + // Draw a single node including child nodes (if present) void drawNode(VkCommandBuffer commandBuffer, VkPipelineLayout pipelineLayout, VulkanglTFModel::Node node) { @@ -373,7 +373,7 @@ public: // Draw the glTF scene starting at the top-level-nodes void draw(VkCommandBuffer commandBuffer, VkPipelineLayout pipelineLayout) { - // All vertices and indices are stored in single buffers, so we only need to bind once + // All vertices and indices are stored in single buffers, so we only need to bind once VkDeviceSize offsets[1] = { 0 }; vkCmdBindVertexBuffers(commandBuffer, 0, 1, &vertices.buffer, offsets); vkCmdBindIndexBuffer(commandBuffer, indices.buffer, 0, VK_INDEX_TYPE_UINT32); @@ -427,7 +427,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); if (pipelines.wireframe != VK_NULL_HANDLE) { @@ -665,7 +665,7 @@ public: vks::initializers::vertexInputBindingDescription(0, sizeof(VulkanglTFModel::Vertex), VK_VERTEX_INPUT_RATE_VERTEX), }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(VulkanglTFModel::Vertex, pos)), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(VulkanglTFModel::Vertex, pos)), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, offsetof(VulkanglTFModel::Vertex, normal)),// Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, offsetof(VulkanglTFModel::Vertex, uv)), // Location 2: Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, offsetof(VulkanglTFModel::Vertex, color)), // Location 3: Color @@ -677,8 +677,8 @@ public: vertexInputStateCI.pVertexAttributeDescriptions = vertexInputAttributes.data(); const std::array shaderStages = { - loadShader(getAssetPath() + "shaders/gltfscene/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/gltfscene/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "gltfscene/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "gltfscene/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); @@ -713,7 +713,7 @@ public: VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, &shaderData.buffer, sizeof(shaderData.values))); - + // Map persistent VK_CHECK_RESULT(shaderData.buffer.map()); diff --git a/examples/hdr/hdr.cpp b/examples/hdr/hdr.cpp index cedec593..e37f030c 100644 --- a/examples/hdr/hdr.cpp +++ b/examples/hdr/hdr.cpp @@ -805,8 +805,8 @@ public: pipelineCreateInfo.pVertexInputState = &emptyInputState; // Final fullscreen composition pass pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/hdr/composition.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/hdr/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "hdr/composition.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "hdr/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCreateInfo.layout = pipelineLayouts.composition; pipelineCreateInfo.renderPass = renderPass; rasterizationState.cullMode = VK_CULL_MODE_FRONT_BIT; @@ -815,8 +815,8 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.composition)); // Bloom pass - shaderStages[0] = loadShader(getAssetPath() + "shaders/hdr/bloom.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/hdr/bloom.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "hdr/bloom.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "hdr/bloom.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); colorBlendState.pAttachments = &blendAttachmentState; blendAttachmentState.colorWriteMask = 0xF; blendAttachmentState.blendEnable = VK_TRUE; @@ -871,8 +871,8 @@ public: colorBlendState.attachmentCount = 2; colorBlendState.pAttachments = blendAttachmentStates.data(); - shaderStages[0] = loadShader(getAssetPath() + "shaders/hdr/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/hdr/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "hdr/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "hdr/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Set constant parameters via specialization constants specializationMapEntries[0] = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); diff --git a/examples/imgui/main.cpp b/examples/imgui/main.cpp index 2753ecde..8a2f72f3 100644 --- a/examples/imgui/main.cpp +++ b/examples/imgui/main.cpp @@ -70,12 +70,12 @@ public: glm::vec2 translate; } pushConstBlock; - ImGUI(VulkanExampleBase *example) : example(example) + ImGUI(VulkanExampleBase *example) : example(example) { device = example->vulkanDevice; ImGui::CreateContext(); }; - + ~ImGUI() { ImGui::DestroyContext(); @@ -329,8 +329,8 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; - shaderStages[0] = example->loadShader(getAssetPath() + "shaders/imgui/ui.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = example->loadShader(getAssetPath() + "shaders/imgui/ui.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = example->loadShader(getShadersPath() + "imgui/ui.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = example->loadShader(getShadersPath() + "imgui/ui.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device->logicalDevice, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline)); } @@ -539,7 +539,7 @@ public: delete imGui; } - + void buildCommandBuffers() { VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); @@ -689,9 +689,9 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal - vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Color + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal + vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Color }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); vertexInputState.vertexBindingDescriptionCount = static_cast(vertexInputBindings.size()); @@ -701,8 +701,8 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; - shaderStages[0] = loadShader(getAssetPath() + "shaders/imgui/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/imgui/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "imgui/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "imgui/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline)); } @@ -722,7 +722,7 @@ public: void updateUniformBuffers() { - // Vertex shader + // Vertex shader uboVS.projection = camera.matrices.perspective; uboVS.modelview = camera.matrices.view * glm::mat4(1.0f); @@ -802,7 +802,7 @@ public: virtual void mouseMoved(double x, double y, bool &handled) { - ImGuiIO& io = ImGui::GetIO(); + ImGuiIO& io = ImGui::GetIO(); handled = io.WantCaptureMouse; } diff --git a/examples/indirectdraw/indirectdraw.cpp b/examples/indirectdraw/indirectdraw.cpp index 472d69db..f1635c50 100644 --- a/examples/indirectdraw/indirectdraw.cpp +++ b/examples/indirectdraw/indirectdraw.cpp @@ -1,5 +1,5 @@ /* -* Vulkan Example - Indirect drawing +* Vulkan Example - Indirect drawing * * Copyright (C) 2016 by Sascha Willems - www.saschawillems.de * @@ -9,7 +9,7 @@ * Use a device local buffer that stores draw commands for instanced rendering of different meshes stored * in the same buffer. * -* Indirect drawing offloads draw command generation and offers the ability to update them on the GPU +* Indirect drawing offloads draw command generation and offers the ability to update them on the GPU * without the CPU having to touch the buffer again, also reducing the number of drawcalls. * * The example shows how to setup and fill such a buffer on the CPU side, stages it to the device and @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include @@ -149,7 +149,7 @@ public: uniformData.scene.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Example uses multi draw indirect if available @@ -160,7 +160,7 @@ public: if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -211,7 +211,7 @@ public: vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &models.plants.vertices.buffer, offsets); // Binding point 1 : Instance data buffer vkCmdBindVertexBuffers(drawCmdBuffers[i], INSTANCE_BUFFER_BIND_ID, 1, &instanceBuffer.buffer, offsets); - + vkCmdBindIndexBuffer(drawCmdBuffers[i], models.plants.indices.buffer, 0, VK_INDEX_TYPE_UINT32); // If the multi draw feature is supported: @@ -296,7 +296,7 @@ public: vertices.bindingDescriptions[1] = vks::initializers::vertexInputBindingDescription( INSTANCE_BUFFER_BIND_ID, - sizeof(InstanceData), + sizeof(InstanceData), // Input rate for the data passed to shader // Step for each instance rendered VK_VERTEX_INPUT_RATE_INSTANCE); @@ -370,7 +370,7 @@ public: void setupDescriptorPool() { - // Example uses one ubo + // Example uses one ubo std::vector poolSizes = { vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1), @@ -440,13 +440,13 @@ public: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformData.scene.descriptor), - // Binding 1: Plants texture array combined + // Binding 1: Plants texture array combined vks::initializers::writeDescriptorSet( descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.plants.descriptor), - // Binding 2: Ground texture combined + // Binding 2: Ground texture combined vks::initializers::writeDescriptorSet( descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, @@ -526,19 +526,19 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); // Indirect (and instanced) pipeline for the plants - shaderStages[0] = loadShader(getAssetPath() + "shaders/indirectdraw/indirectdraw.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/indirectdraw/indirectdraw.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "indirectdraw/indirectdraw.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "indirectdraw/indirectdraw.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.plants)); // Ground - shaderStages[0] = loadShader(getAssetPath() + "shaders/indirectdraw/ground.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/indirectdraw/ground.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "indirectdraw/ground.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "indirectdraw/ground.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); //rasterizationState.cullMode = VK_CULL_MODE_BACK_BIT; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.ground)); // Skysphere - shaderStages[0] = loadShader(getAssetPath() + "shaders/indirectdraw/skysphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/indirectdraw/skysphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "indirectdraw/skysphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "indirectdraw/skysphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); //rasterizationState.cullMode = VK_CULL_MODE_FRONT_BIT; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skysphere)); } @@ -557,7 +557,7 @@ public: indirectCmd.firstInstance = m * OBJECT_INSTANCE_COUNT; indirectCmd.firstIndex = modelPart.indexBase; indirectCmd.indexCount = modelPart.indexCount; - + indirectCommands.push_back(indirectCmd); m++; diff --git a/examples/inlineuniformblocks/inlineuniformblocks.cpp b/examples/inlineuniformblocks/inlineuniformblocks.cpp index a9e2a9eb..1fd68dfa 100644 --- a/examples/inlineuniformblocks/inlineuniformblocks.cpp +++ b/examples/inlineuniformblocks/inlineuniformblocks.cpp @@ -98,7 +98,7 @@ public: /* [POI] Enable extensions required for inline uniform blocks - */ + */ enabledDeviceExtensions.push_back(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME); enabledDeviceExtensions.push_back(VK_KHR_MAINTENANCE1_EXTENSION_NAME); enabledInstanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); @@ -159,7 +159,7 @@ public: for (uint32_t x = 0; x < objcount; x++) { /* [POI] Bind descriptor sets - Set 0 = Scene matrices: + Set 0 = Scene matrices: Set 1 = Object inline uniform block (In shader pbr.frag: layout (set = 1, binding = 0) uniform UniformInline ... ) */ std::vector descriptorSets = { @@ -335,8 +335,8 @@ public: pipelineCreateInfoCI.pStages = shaderStages.data(); pipelineCreateInfoCI.pVertexInputState = &vertexInputState; - shaderStages[0] = loadShader(getAssetPath() + "shaders/inlineuniformblocks/pbr.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/inlineuniformblocks/pbr.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "inlineuniformblocks/pbr.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "inlineuniformblocks/pbr.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfoCI, nullptr, &pipeline)); } diff --git a/examples/inputattachments/inputattachments.cpp b/examples/inputattachments/inputattachments.cpp index 912841a6..8393b4af 100644 --- a/examples/inputattachments/inputattachments.cpp +++ b/examples/inputattachments/inputattachments.cpp @@ -102,7 +102,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class for (uint32_t i = 0; i < attachments.size(); i++) { @@ -230,7 +230,7 @@ public: attachments[0].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; // Input attachments - // These will be written in the first subpass, transitioned to input attachments + // These will be written in the first subpass, transitioned to input attachments // and then read in the secod subpass // Color @@ -282,7 +282,7 @@ public: VkAttachmentReference inputReferences[2]; inputReferences[0] = { 1, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL }; inputReferences[1] = { 2, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL }; - + // Use the attachments filled in the first pass as input attachments subpassDescriptions[1].inputAttachmentCount = 2; subpassDescriptions[1].pInputAttachments = inputReferences; @@ -444,9 +444,9 @@ public: */ { std::vector setLayoutBindings = { - // Binding 0: Color input attachment + // Binding 0: Color input attachment vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, 0), - // Binding 1: Depth input attachment + // Binding 1: Depth input attachment vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 2: Display parameters uniform buffer vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), @@ -522,7 +522,7 @@ public: // Attribute descriptions std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Normal }; @@ -535,9 +535,9 @@ public: pipelineCI.pVertexInputState = &vertexInputStateCI; - shaderStages[0] = loadShader(getAssetPath() + "shaders/inputattachments/attachmentwrite.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/inputattachments/attachmentwrite.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - + shaderStages[0] = loadShader(getShadersPath() + "inputattachments/attachmentwrite.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "inputattachments/attachmentwrite.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.attachmentWrite)); /* @@ -556,8 +556,8 @@ public: rasterizationStateCI.cullMode = VK_CULL_MODE_NONE; depthStencilStateCI.depthWriteEnable = VK_FALSE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/inputattachments/attachmentread.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/inputattachments/attachmentread.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "inputattachments/attachmentread.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "inputattachments/attachmentread.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.attachmentRead)); } diff --git a/examples/instancing/instancing.cpp b/examples/instancing/instancing.cpp index fd41cae5..aa68962f 100644 --- a/examples/instancing/instancing.cpp +++ b/examples/instancing/instancing.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -121,14 +121,14 @@ public: uniformBuffers.scene.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable anisotropic filtering if supported if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -138,7 +138,7 @@ public: else if (deviceFeatures.textureCompressionETC2) { enabledFeatures.textureCompressionETC2 = VK_TRUE; } - }; + }; void buildCommandBuffers() { @@ -236,7 +236,7 @@ public: void setupDescriptorPool() { - // Example uses one ubo + // Example uses one ubo std::vector poolSizes = { vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2), @@ -286,23 +286,23 @@ public: void setupDescriptorSet() { VkDescriptorSetAllocateInfo descripotrSetAllocInfo; - std::vector writeDescriptorSets; + std::vector writeDescriptorSets; descripotrSetAllocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1);; // Instanced rocks VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descripotrSetAllocInfo, &descriptorSets.instancedRocks)); - writeDescriptorSets = { - vks::initializers::writeDescriptorSet(descriptorSets.instancedRocks, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.scene.descriptor), // Binding 0 : Vertex shader uniform buffer - vks::initializers::writeDescriptorSet(descriptorSets.instancedRocks, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.rocks.descriptor) // Binding 1 : Color map + writeDescriptorSets = { + vks::initializers::writeDescriptorSet(descriptorSets.instancedRocks, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.scene.descriptor), // Binding 0 : Vertex shader uniform buffer + vks::initializers::writeDescriptorSet(descriptorSets.instancedRocks, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.rocks.descriptor) // Binding 1 : Color map }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); // Planet VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descripotrSetAllocInfo, &descriptorSets.planet)); writeDescriptorSets = { - vks::initializers::writeDescriptorSet(descriptorSets.planet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.scene.descriptor), // Binding 0 : Vertex shader uniform buffer - vks::initializers::writeDescriptorSet(descriptorSets.planet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.planet.descriptor) // Binding 1 : Color map + vks::initializers::writeDescriptorSet(descriptorSets.planet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.scene.descriptor), // Binding 0 : Vertex shader uniform buffer + vks::initializers::writeDescriptorSet(descriptorSets.planet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.planet.descriptor) // Binding 1 : Color map }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -399,9 +399,9 @@ public: attributeDescriptions = { // Per-vertex attributees // These are advanced for each vertex fetched by the vertex shader - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color // Per-Instance attributes // These are fetched for each instance rendered @@ -416,16 +416,16 @@ public: pipelineCreateInfo.pVertexInputState = &inputState; // Instancing pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/instancing/instancing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/instancing/instancing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "instancing/instancing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "instancing/instancing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Use all input bindings and attribute descriptions inputState.vertexBindingDescriptionCount = static_cast(bindingDescriptions.size()); inputState.vertexAttributeDescriptionCount = static_cast(attributeDescriptions.size()); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.instancedRocks)); // Planet rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/instancing/planet.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/instancing/planet.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "instancing/planet.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "instancing/planet.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Only use the non-instanced input bindings and attribute descriptions inputState.vertexBindingDescriptionCount = 1; inputState.vertexAttributeDescriptionCount = 4; @@ -434,8 +434,8 @@ public: // Star field pipeline rasterizationState.cullMode = VK_CULL_MODE_NONE; depthStencilState.depthWriteEnable = VK_FALSE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/instancing/starfield.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/instancing/starfield.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "instancing/starfield.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "instancing/starfield.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Vertices are generated in the vertex shader inputState.vertexBindingDescriptionCount = 0; inputState.vertexAttributeDescriptionCount = 0; @@ -452,7 +452,7 @@ public: std::uniform_int_distribution rndTextureIndex(0, textures.rocks.layerCount); // Distribute rocks randomly on two different rings - for (auto i = 0; i < INSTANCE_COUNT / 2; i++) { + for (auto i = 0; i < INSTANCE_COUNT / 2; i++) { glm::vec2 ring0 { 7.0f, 11.0f }; glm::vec2 ring1 { 14.0f, 18.0f }; @@ -480,7 +480,7 @@ public: instanceBuffer.size = instanceData.size() * sizeof(InstanceData); // Staging - // Instanced data is static, copy to device local memory + // Instanced data is static, copy to device local memory // This results in better performance struct { diff --git a/examples/multisampling/multisampling.cpp b/examples/multisampling/multisampling.cpp index 9c568f32..8d0d84f4 100644 --- a/examples/multisampling/multisampling.cpp +++ b/examples/multisampling/multisampling.cpp @@ -90,7 +90,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.MSAA, nullptr); vkDestroyPipeline(device, pipelines.MSAASampleShading, nullptr); @@ -113,7 +113,7 @@ public: uniformBuffer.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable sample rate shading filtering if supported @@ -122,7 +122,7 @@ public: } } - // Creates a multi sample render target (image and view) that is used to resolve + // Creates a multi sample render target (image and view) that is used to resolve // into the visible frame buffer target in the render pass void setupMultisampleTarget() { @@ -204,7 +204,7 @@ public: { memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); } - + VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &multisampleTarget.depth.memory)); vkBindImageMemory(device, multisampleTarget.depth.image, multisampleTarget.depth.memory, 0); @@ -223,8 +223,8 @@ public: VK_CHECK_RESULT(vkCreateImageView(device, &viewInfo, nullptr, &multisampleTarget.depth.view)); } - // Setup a render pass for using a multi sampled attachment - // and a resolve attachment that the msaa image is resolved + // Setup a render pass for using a multi sampled attachment + // and a resolve attachment that the msaa image is resolved // to at the end of the render pass void setupRenderPass() { @@ -323,8 +323,8 @@ public: VK_CHECK_RESULT(vkCreateRenderPass(device, &renderPassInfo, nullptr, &renderPass)); } - // Frame buffer attachments must match with render pass setup, - // so we need to adjust frame buffer creation to cover our + // Frame buffer attachments must match with render pass setup, + // so we need to adjust frame buffer creation to cover our // multisample target void setupFrameBuffer() { @@ -470,7 +470,7 @@ public: 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - + std::vector writeDescriptorSets = { // Binding 0 : Vertex shader uniform buffer @@ -479,7 +479,7 @@ public: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor), - // Binding 1 : Color map + // Binding 1 : Color map vks::initializers::writeDescriptorSet( descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, @@ -555,7 +555,7 @@ public: vks::initializers::vertexInputBindingDescription(VERTEX_BUFFER_BIND_ID, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color @@ -570,11 +570,11 @@ public: pipelineCI.pVertexInputState = &vertexInputState; // MSAA rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/multisampling/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/multisampling/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "multisampling/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "multisampling/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Setup multi sampling multisampleState.rasterizationSamples = sampleCount; // Number of samples to use for rasterization - + VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.MSAA)); diff --git a/examples/multithreading/multithreading.cpp b/examples/multithreading/multithreading.cpp index 06711bc3..caf817a3 100644 --- a/examples/multithreading/multithreading.cpp +++ b/examples/multithreading/multithreading.cpp @@ -60,7 +60,7 @@ public: VkPipelineLayout pipelineLayout; VkCommandBuffer primaryCommandBuffer; - + // Secondary scene command buffers used to store backgdrop and user interface struct SecondaryCommandBuffers { VkCommandBuffer background; @@ -81,7 +81,7 @@ public: glm::mat4 mvp; glm::vec3 color; }; - + struct ObjectData { glm::mat4 model; glm::vec3 pos; @@ -144,7 +144,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.phong, nullptr); vkDestroyPipeline(device, pipelines.starsphere, nullptr); @@ -194,7 +194,7 @@ public: for (uint32_t i = 0; i < numThreads; i++) { ThreadData *thread = &threadData[i]; - + // Create one command pool for each thread VkCommandPoolCreateInfo cmdPoolInfo = vks::initializers::commandPoolCreateInfo(); cmdPoolInfo.queueFamilyIndex = swapChain.queueNodeIndex; @@ -228,7 +228,7 @@ public: thread->pushConstBlock[j].color = glm::vec3(rnd(1.0f), rnd(1.0f), rnd(1.0f)); } } - + } // Builds the secondary command buffer for each thread @@ -238,7 +238,7 @@ public: ObjectData *objectData = &thread->objectData[cmdBufferIndex]; // Check visibility against view frustum - objectData->visible = frustum.checkSphere(objectData->pos, objectSphereDim * 0.5f); + objectData->visible = frustum.checkSphere(objectData->pos, objectSphereDim * 0.5f); if (!objectData->visible) { @@ -359,8 +359,8 @@ public: VK_CHECK_RESULT(vkEndCommandBuffer(secondaryCommandBuffers.ui)); } - // Updates the secondary command buffers using a thread pool - // and puts them into the primary command buffer that's + // Updates the secondary command buffers using a thread pool + // and puts them into the primary command buffer that's // lat submitted to the queue for rendering void updateCommandBuffers(VkFramebuffer frameBuffer) { @@ -412,7 +412,7 @@ public: threadPool.threads[t]->addJob([=] { threadRenderCode(t, i, inheritanceInfo); }); } } - + threadPool.wait(); // Only submit if object is within the current view frustum @@ -534,7 +534,7 @@ public: }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Color }; @@ -547,15 +547,15 @@ public: pipelineCI.pVertexInputState = &vertexInputStateCI; // Object rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/multithreading/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/multithreading/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "multithreading/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "multithreading/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.phong)); // Star sphere rendering pipeline rasterizationState.cullMode = VK_CULL_MODE_FRONT_BIT; depthStencilState.depthWriteEnable = VK_FALSE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/multithreading/starsphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/multithreading/starsphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "multithreading/starsphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "multithreading/starsphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.starsphere)); } diff --git a/examples/multiview/multiview.cpp b/examples/multiview/multiview.cpp index 3600e6c8..15c825b5 100644 --- a/examples/multiview/multiview.cpp +++ b/examples/multiview/multiview.cpp @@ -1,7 +1,7 @@ /* * Vulkan Example - Multiview (VK_KHR_multiview) * -* Uses VK_KHR_multiview for simultaneously rendering to multiple views and displays these with barrel distortion using a fragment shader +* Uses VK_KHR_multiview for simultaneously rendering to multiple views and displays these with barrel distortion using a fragment shader * * Copyright (C) 2018 by Sascha Willems - www.saschawillems.de * @@ -86,7 +86,7 @@ public: // Enable extension required for multiview enabledDeviceExtensions.push_back(VK_KHR_MULTIVIEW_EXTENSION_NAME); - + // Reading device properties and features for multiview requires VK_KHR_get_physical_device_properties2 to be enabled enabledInstanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); } @@ -231,7 +231,7 @@ public: samplerCI.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; VK_CHECK_RESULT(vkCreateSampler(device, &samplerCI, nullptr, &multiviewPass.sampler)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set multiviewPass.descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; multiviewPass.descriptor.imageView = multiviewPass.color.view; multiviewPass.descriptor.sampler = multiviewPass.sampler; @@ -302,7 +302,7 @@ public: renderPassCI.pSubpasses = &subpassDescription; renderPassCI.dependencyCount = static_cast(dependencies.size()); renderPassCI.pDependencies = dependencies.data(); - + /* Setup multiview info for the renderpass */ @@ -454,7 +454,7 @@ public: void loadAssets() { - scene.loadFromFile(getAssetPath() + "models/sampleroom.dae", vertexLayout, 0.25f, vulkanDevice, queue); + scene.loadFromFile(getAssetPath() + "models/sampleroom.dae", vertexLayout, 0.25f, vulkanDevice, queue); } void prepareDescriptors() @@ -468,7 +468,7 @@ public: }; VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo(static_cast(poolSizes.size()), poolSizes.data(), 1); VK_CHECK_RESULT(vkCreateDescriptorPool(device, &descriptorPoolInfo, nullptr, &descriptorPool)); - + /* Layouts */ @@ -545,8 +545,8 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normals + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normals vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Color }; @@ -571,8 +571,8 @@ public: Contrary to the viewport array example we don't need a geometry shader for broadcasting */ std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/multiview/multiview.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/multiview/multiview.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "multiview/multiview.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "multiview/multiview.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCI.stageCount = 2; pipelineCI.pStages = shaderStages.data(); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -595,8 +595,8 @@ public: Separate pipelines per eye (view) using specialization constants to set view array layer to sample from */ for (uint32_t i = 0; i < 2; i++) { - shaderStages[0] = loadShader(getAssetPath() + "shaders/multiview/viewdisplay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/multiview/viewdisplay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "multiview/viewdisplay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "multiview/viewdisplay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); shaderStages[1].pSpecializationInfo = &specializationInfo; multiviewArrayLayer = (float)i; VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -646,7 +646,7 @@ public: rotM = glm::rotate(rotM, glm::radians(camera.rotation.x), glm::vec3(1.0f, 0.0f, 0.0f)); rotM = glm::rotate(rotM, glm::radians(camera.rotation.y), glm::vec3(0.0f, 1.0f, 0.0f)); rotM = glm::rotate(rotM, glm::radians(camera.rotation.z), glm::vec3(0.0f, 0.0f, 1.0f)); - + // Left eye left = -aspectRatio * wd2 + 0.5f * eyeSeparation * ndfl; right = aspectRatio * wd2 + 0.5f * eyeSeparation * ndfl; diff --git a/examples/negativeviewportheight/negativeviewportheight.cpp b/examples/negativeviewportheight/negativeviewportheight.cpp index 1ebc2a3b..4d277818 100644 --- a/examples/negativeviewportheight/negativeviewportheight.cpp +++ b/examples/negativeviewportheight/negativeviewportheight.cpp @@ -54,7 +54,7 @@ public: vks::Buffer verticesYDown; vks::Buffer indicesCCW; vks::Buffer indicesCW; - void destroy() + void destroy() { verticesYUp.destroy(); verticesYDown.destroy(); @@ -157,7 +157,7 @@ public: textures.CW.loadFromFile(getAssetPath() + "textures/texture_orientation_cw_rgba.ktx", VK_FORMAT_R8G8B8A8_UNORM, vulkanDevice, queue); textures.CCW.loadFromFile(getAssetPath() + "textures/texture_orientation_ccw_rgba.ktx", VK_FORMAT_R8G8B8A8_UNORM, vulkanDevice, queue); - // [POI] Create two quads with different Y orientations + // [POI] Create two quads with different Y orientations struct Vertex { float pos[3]; @@ -166,7 +166,7 @@ public: const float ar = (float)height / (float)width; - // OpenGL style (y points upwards) + // OpenGL style (y points upwards) std::vector verticesYPos = { { -1.0f * ar, 1.0f, 1.0f, 0.0f, 1.0f }, { -1.0f * ar, -1.0f, 1.0f, 0.0f, 0.0f }, @@ -209,10 +209,10 @@ public: VK_CHECK_RESULT(vkCreateDescriptorPool(device, &descriptorPoolCI, nullptr, &descriptorPool)); VkDescriptorSetAllocateInfo descriptorSetAI = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1); - + VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAI, &descriptorSets.CW)); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &descriptorSetAI, &descriptorSets.CCW)); - + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSets.CW, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &textures.CW.descriptor), vks::initializers::writeDescriptorSet(descriptorSets.CCW, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &textures.CCW.descriptor) @@ -248,7 +248,7 @@ public: vks::initializers::vertexInputBindingDescription(0, sizeof(float) * 5, VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // uv }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -269,8 +269,8 @@ public: pipelineCreateInfoCI.pDynamicState = &dynamicStateCI; const std::array shaderStages = { - loadShader(getAssetPath() + "shaders/negativeviewportheight/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/negativeviewportheight/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "negativeviewportheight/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "negativeviewportheight/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; pipelineCreateInfoCI.stageCount = static_cast(shaderStages.size()); diff --git a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp index e2e67af9..74549e1f 100644 --- a/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp +++ b/examples/nv_ray_tracing_basic/nv_ray_tracing_basic.cpp @@ -535,9 +535,9 @@ public: const uint32_t shaderIndexClosestHit = 2; std::array shaderStages; - shaderStages[shaderIndexRaygen] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_basic/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); - shaderStages[shaderIndexMiss] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_basic/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); - shaderStages[shaderIndexClosestHit] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_basic/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); + shaderStages[shaderIndexRaygen] = loadShader(getShadersPath() + "nv_ray_tracing_basic/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); + shaderStages[shaderIndexMiss] = loadShader(getShadersPath() + "nv_ray_tracing_basic/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); + shaderStages[shaderIndexClosestHit] = loadShader(getShadersPath() + "nv_ray_tracing_basic/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); /* Setup ray tracing shader groups @@ -607,7 +607,7 @@ public: vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipeline); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipelineLayout, 0, 1, &descriptorSet, 0, 0); - // Calculate shader binding offsets, which is pretty straight forward in our example + // Calculate shader binding offsets, which is pretty straight forward in our example VkDeviceSize bindingOffsetRayGenShader = rayTracingProperties.shaderGroupHandleSize * INDEX_RAYGEN; VkDeviceSize bindingOffsetMissShader = rayTracingProperties.shaderGroupHandleSize * INDEX_MISS; VkDeviceSize bindingOffsetHitShader = rayTracingProperties.shaderGroupHandleSize * INDEX_CLOSEST_HIT; diff --git a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp index 35407d9a..b79ce13c 100644 --- a/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp +++ b/examples/nv_ray_tracing_reflections/nv_ray_tracing_reflections.cpp @@ -549,9 +549,9 @@ public: const uint32_t shaderIndexClosestHit = 2; std::array shaderStages; - shaderStages[shaderIndexRaygen] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_reflections/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); - shaderStages[shaderIndexMiss] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_reflections/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); - shaderStages[shaderIndexClosestHit] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_reflections/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); + shaderStages[shaderIndexRaygen] = loadShader(getShadersPath() + "nv_ray_tracing_reflections/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); + shaderStages[shaderIndexMiss] = loadShader(getShadersPath() + "nv_ray_tracing_reflections/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); + shaderStages[shaderIndexClosestHit] = loadShader(getShadersPath() + "nv_ray_tracing_reflections/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); // Pass recursion depth for reflections to ray generation shader via specialization constant VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); @@ -630,7 +630,7 @@ public: vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipeline); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipelineLayout, 0, 1, &descriptorSet, 0, 0); - // Calculate shader binding offsets, which is pretty straight forward in our example + // Calculate shader binding offsets, which is pretty straight forward in our example VkDeviceSize bindingOffsetRayGenShader = rayTracingProperties.shaderGroupHandleSize * INDEX_RAYGEN; VkDeviceSize bindingOffsetMissShader = rayTracingProperties.shaderGroupHandleSize * INDEX_MISS; VkDeviceSize bindingOffsetHitShader = rayTracingProperties.shaderGroupHandleSize * INDEX_CLOSEST_HIT; diff --git a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp index c3f4731d..d5d739a7 100644 --- a/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp +++ b/examples/nv_ray_tracing_shadows/nv_ray_tracing_shadows.cpp @@ -561,10 +561,10 @@ public: const uint32_t shaderIndexClosestHit = 3; std::array shaderStages; - shaderStages[shaderIndexRaygen] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_shadows/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); - shaderStages[shaderIndexMiss] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_shadows/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); - shaderStages[shaderIndexShadowMiss] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_shadows/shadow.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); - shaderStages[shaderIndexClosestHit] = loadShader(getAssetPath() + "shaders/nv_ray_tracing_shadows/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); + shaderStages[shaderIndexRaygen] = loadShader(getShadersPath() + "nv_ray_tracing_shadows/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_NV); + shaderStages[shaderIndexMiss] = loadShader(getShadersPath() + "nv_ray_tracing_shadows/miss.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); + shaderStages[shaderIndexShadowMiss] = loadShader(getShadersPath() + "nv_ray_tracing_shadows/shadow.rmiss.spv", VK_SHADER_STAGE_MISS_BIT_NV); + shaderStages[shaderIndexClosestHit] = loadShader(getShadersPath() + "nv_ray_tracing_shadows/closesthit.rchit.spv", VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV); /* Setup ray tracing shader groups @@ -586,7 +586,7 @@ public: // Scene miss shader group groups[INDEX_MISS].type = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV; groups[INDEX_MISS].generalShader = shaderIndexMiss; - // Shadow miss shader group + // Shadow miss shader group groups[INDEX_SHADOW_MISS].type = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV; groups[INDEX_SHADOW_MISS].generalShader = shaderIndexShadowMiss; // Scene closest hit shader group @@ -645,7 +645,7 @@ public: vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipeline); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, pipelineLayout, 0, 1, &descriptorSet, 0, 0); - // Calculate shader binding offsets, which is pretty straight forward in our example + // Calculate shader binding offsets, which is pretty straight forward in our example VkDeviceSize bindingOffsetRayGenShader = rayTracingProperties.shaderGroupHandleSize * INDEX_RAYGEN; VkDeviceSize bindingOffsetMissShader = rayTracingProperties.shaderGroupHandleSize * INDEX_MISS; VkDeviceSize bindingOffsetHitShader = rayTracingProperties.shaderGroupHandleSize * INDEX_CLOSEST_HIT; diff --git a/examples/occlusionquery/occlusionquery.cpp b/examples/occlusionquery/occlusionquery.cpp index 089ad0ac..766d9fe4 100644 --- a/examples/occlusionquery/occlusionquery.cpp +++ b/examples/occlusionquery/occlusionquery.cpp @@ -95,7 +95,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); vkDestroyPipeline(device, pipelines.occluder, nullptr); @@ -130,7 +130,7 @@ public: { // We use vkGetQueryResults to copy the results into a host visible buffer vkGetQueryPoolResults( - device, + device, queryPool, 0, 2, @@ -468,8 +468,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/occlusionquery/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/occlusionquery/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "occlusionquery/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "occlusionquery/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -491,15 +491,15 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.solid)); // Basic pipeline for coloring occluded objects - shaderStages[0] = loadShader(getAssetPath() + "shaders/occlusionquery/simple.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/occlusionquery/simple.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "occlusionquery/simple.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "occlusionquery/simple.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); rasterizationState.cullMode = VK_CULL_MODE_NONE; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.simple)); // Visual pipeline for the occluder - shaderStages[0] = loadShader(getAssetPath() + "shaders/occlusionquery/occluder.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/occlusionquery/occluder.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "occlusionquery/occluder.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "occlusionquery/occluder.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Enable blending blendAttachmentState.blendEnable = VK_TRUE; diff --git a/examples/offscreen/offscreen.cpp b/examples/offscreen/offscreen.cpp index 73903237..da1451c5 100644 --- a/examples/offscreen/offscreen.cpp +++ b/examples/offscreen/offscreen.cpp @@ -93,7 +93,7 @@ public: }; struct OffscreenPass { int32_t width, height; - VkFramebuffer frameBuffer; + VkFramebuffer frameBuffer; FrameBufferAttachment color, depth; VkRenderPass renderPass; VkSampler sampler; @@ -119,7 +119,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class // Frame buffer @@ -324,7 +324,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &offscreenPass.frameBuffer)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set offscreenPass.descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; offscreenPass.descriptor.imageView = offscreenPass.color.view; offscreenPass.descriptor.sampler = offscreenPass.sampler; @@ -681,15 +681,15 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/offscreen/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/offscreen/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "offscreen/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "offscreen/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Vertex bindings and attributes const std::vector vertexInputBindings = { vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Location 1: UV vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Normal @@ -715,8 +715,8 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.debug)); // Mirror - shaderStages[0] = loadShader(getAssetPath() + "shaders/offscreen/mirror.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/offscreen/mirror.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "offscreen/mirror.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "offscreen/mirror.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); rasterizationState.cullMode = VK_CULL_MODE_NONE; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.mirror)); @@ -726,8 +726,8 @@ public: // Phong shading pipelines pipelineCI.layout = pipelineLayouts.shaded; // Scene - shaderStages[0] = loadShader(getAssetPath() + "shaders/offscreen/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/offscreen/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "offscreen/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "offscreen/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.shaded)); // Offscreen // Flip culling @@ -754,14 +754,14 @@ public: &uniformBuffers.vsMirror, sizeof(uboShared))); - // Offscreen vertex shader uniform buffer block + // Offscreen vertex shader uniform buffer block VK_CHECK_RESULT(vulkanDevice->createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, &uniformBuffers.vsOffScreen, sizeof(uboShared))); - // Debug quad vertex shader uniform buffer block + // Debug quad vertex shader uniform buffer block VK_CHECK_RESULT(vulkanDevice->createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, diff --git a/examples/parallaxmapping/parallaxmapping.cpp b/examples/parallaxmapping/parallaxmapping.cpp index 7aaaac0c..7d8ca5da 100644 --- a/examples/parallaxmapping/parallaxmapping.cpp +++ b/examples/parallaxmapping/parallaxmapping.cpp @@ -82,10 +82,10 @@ public: VkDescriptorSet descriptorSet; const std::vector mappingModes = { - "Color only", - "Normal mapping", - "Parallax mapping", - "Steep parallax mapping", + "Color only", + "Normal mapping", + "Parallax mapping", + "Steep parallax mapping", "Parallax occlusion mapping", }; @@ -103,12 +103,12 @@ public: ~VulkanExample() { vkDestroyPipeline(device, pipeline, nullptr); - + vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); models.quad.destroy(); - + uniformBuffers.vertexShader.destroy(); uniformBuffers.fragmentShader.destroy(); @@ -203,11 +203,11 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = { - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer + std::vector setLayoutBindings = { + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // Binding 1: Fragment shader color map image sampler - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), // Binding 2: Fragment combined normal and heightmap - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 3), // Binding 3: Fragment shader uniform buffer + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), // Binding 2: Fragment combined normal and heightmap + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 3), // Binding 3: Fragment shader uniform buffer }; VkDescriptorSetLayoutCreateInfo descriptorLayout = @@ -233,7 +233,7 @@ public: VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - std::vector writeDescriptorSets = { + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.vertexShader.descriptor), // Binding 0: Vertex shader uniform buffer vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.colorMap.descriptor), // Binding 1: Fragment shader image sampler vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 2, &textures.normalHeightMap.descriptor), // Binding 2: Combined normal and heightmap @@ -293,11 +293,11 @@ public: std::vector vertexInputBindings = { vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; - std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Location 1: Texture coordinates - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Normal - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Tangent + std::vector vertexInputAttributes = { + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Location 1: Texture coordinates + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Normal + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Tangent vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 11), // Location 4: Bitangent }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -309,8 +309,8 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Parallax mapping modes pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/parallaxmapping/parallax.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/parallaxmapping/parallax.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "parallaxmapping/parallax.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "parallaxmapping/parallax.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline)); } diff --git a/examples/particlefire/particlefire.cpp b/examples/particlefire/particlefire.cpp index 9eecdccd..4c4a3451 100644 --- a/examples/particlefire/particlefire.cpp +++ b/examples/particlefire/particlefire.cpp @@ -1,5 +1,5 @@ /* -* Vulkan Example - CPU based fire particle system +* Vulkan Example - CPU based fire particle system * * Copyright (C) 2016 by Sascha Willems - www.saschawillems.de * @@ -139,7 +139,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class textures.particles.smoke.destroy(); @@ -597,8 +597,8 @@ public: // Particle rendering pipeline { // Shaders - shaderStages[0] = loadShader(getAssetPath() + "shaders/particlefire/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/particlefire/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "particlefire/particle.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "particlefire/particle.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Vertex input state VkVertexInputBindingDescription vertexInputBinding = @@ -607,7 +607,7 @@ public: std::vector vertexInputAttributes = { vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32A32_SFLOAT, offsetof(Particle, pos)), // Location 0: Position vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32A32_SFLOAT, offsetof(Particle, color)), // Location 1: Color - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32_SFLOAT, offsetof(Particle, alpha)), // Location 2: Alpha + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32_SFLOAT, offsetof(Particle, alpha)), // Location 2: Alpha vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32_SFLOAT, offsetof(Particle, size)), // Location 3: Size vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 4, VK_FORMAT_R32_SFLOAT, offsetof(Particle, rotation)), // Location 4: Rotation vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 5, VK_FORMAT_R32_SINT, offsetof(Particle, type)), // Location 5: Particle type @@ -640,8 +640,8 @@ public: // Environment rendering pipeline (normal mapped) { // Shaders - shaderStages[0] = loadShader(getAssetPath() + "shaders/particlefire/normalmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/particlefire/normalmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "particlefire/normalmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "particlefire/normalmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Vertex input state VkVertexInputBindingDescription vertexInputBinding = @@ -650,7 +650,7 @@ public: std::vector vertexInputAttributes = { vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Location 1: UV - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Normal + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Normal vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Tangent vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 11), // Location 4: Bitangen }; diff --git a/examples/pbrbasic/pbrbasic.cpp b/examples/pbrbasic/pbrbasic.cpp index a2f28184..01bb7a04 100644 --- a/examples/pbrbasic/pbrbasic.cpp +++ b/examples/pbrbasic/pbrbasic.cpp @@ -126,7 +126,7 @@ public: } ~VulkanExample() - { + { vkDestroyPipeline(device, pipeline, nullptr); vkDestroyPipelineLayout(device, pipelineLayout, nullptr); @@ -182,7 +182,7 @@ public: Material mat = materials[materialIndex]; -//#define SINGLE_ROW 1 +//#define SINGLE_ROW 1 #ifdef SINGLE_ROW mat.params.metallic = 1.0; @@ -343,8 +343,8 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // PBR pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrbasic/pbr.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrbasic/pbr.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrbasic/pbr.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrbasic/pbr.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Enable depth test and write depthStencilState.depthWriteEnable = VK_TRUE; depthStencilState.depthTestEnable = VK_TRUE; diff --git a/examples/pbribl/pbribl.cpp b/examples/pbribl/pbribl.cpp index ac0cad83..11fb0147 100644 --- a/examples/pbribl/pbribl.cpp +++ b/examples/pbribl/pbribl.cpp @@ -166,7 +166,7 @@ public: uniformBuffers.object.destroy(); uniformBuffers.skybox.destroy(); uniformBuffers.params.destroy(); - + textures.environmentCube.destroy(); textures.irradianceCube.destroy(); textures.prefilteredCube.destroy(); @@ -232,7 +232,7 @@ public: Material mat = materials[materialIndex]; -#define SINGLE_ROW 1 +#define SINGLE_ROW 1 #ifdef SINGLE_ROW uint32_t objcount = 10; for (uint32_t x = 0; x < objcount; x++) { @@ -400,13 +400,13 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Skybox pipeline (background cube) - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbribl/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbribl/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbribl/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbribl/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skybox)); // PBR pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbribl/pbribl.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbribl/pbribl.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbribl/pbribl.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbribl/pbribl.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Enable depth test and write depthStencilState.depthWriteEnable = VK_TRUE; depthStencilState.depthTestEnable = VK_TRUE; @@ -523,7 +523,7 @@ public: framebufferCI.width = dim; framebufferCI.height = dim; framebufferCI.layers = 1; - + VkFramebuffer framebuffer; VK_CHECK_RESULT(vkCreateFramebuffer(device, &framebufferCI, nullptr, &framebuffer)); @@ -575,8 +575,8 @@ public: pipelineCI.pVertexInputState = &emptyInputState; // Look-up-table (from BRDF) pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbribl/genbrdflut.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbribl/genbrdflut.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbribl/genbrdflut.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbribl/genbrdflut.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -604,7 +604,7 @@ public: vulkanDevice->flushCommandBuffer(cmdBuf, queue); vkQueueWaitIdle(queue); - + // todo: cleanup vkDestroyPipeline(device, pipeline, nullptr); vkDestroyPipelineLayout(device, pipelinelayout, nullptr); @@ -861,8 +861,8 @@ public: pipelineCI.pVertexInputState = &vertexInputState; pipelineCI.renderPass = renderpass; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbribl/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbribl/irradiancecube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbribl/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbribl/irradiancecube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -977,7 +977,7 @@ public: 1, ©Region); - // Transform framebuffer color attachment back + // Transform framebuffer color attachment back vks::tools::setImageLayout( cmdBuf, offscreen.image, @@ -1255,8 +1255,8 @@ public: pipelineCI.pVertexInputState = &vertexInputState; pipelineCI.renderPass = renderpass; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbribl/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbribl/prefilterenvmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbribl/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbribl/prefilterenvmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -1293,7 +1293,7 @@ public: VkViewport viewport = vks::initializers::viewport((float)dim, (float)dim, 0.0f, 1.0f); VkRect2D scissor = vks::initializers::rect2D(dim, dim, 0, 0); - + vkCmdSetViewport(cmdBuf, 0, 1, &viewport); vkCmdSetScissor(cmdBuf, 0, 1, &scissor); @@ -1338,10 +1338,10 @@ public: vkCmdEndRenderPass(cmdBuf); vks::tools::setImageLayout( - cmdBuf, - offscreen.image, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + cmdBuf, + offscreen.image, + VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); // Copy region for transfer from framebuffer to cube face @@ -1372,7 +1372,7 @@ public: 1, ©Region); - // Transform framebuffer color attachment back + // Transform framebuffer color attachment back vks::tools::setImageLayout( cmdBuf, offscreen.image, diff --git a/examples/pbrtexture/main.cpp b/examples/pbrtexture/main.cpp index bb6b238c..cb7a7485 100644 --- a/examples/pbrtexture/main.cpp +++ b/examples/pbrtexture/main.cpp @@ -122,7 +122,7 @@ public: uniformBuffers.object.destroy(); uniformBuffers.skybox.destroy(); uniformBuffers.params.destroy(); - + textures.environmentCube.destroy(); textures.irradianceCube.destroy(); textures.prefilteredCube.destroy(); @@ -340,14 +340,14 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Skybox pipeline (background cube) - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrtexture/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrtexture/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrtexture/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrtexture/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skybox)); // PBR pipeline rasterizationState.cullMode = VK_CULL_MODE_FRONT_BIT; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrtexture/pbrtexture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrtexture/pbrtexture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrtexture/pbrtexture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrtexture/pbrtexture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Enable depth test and write depthStencilState.depthWriteEnable = VK_TRUE; depthStencilState.depthTestEnable = VK_TRUE; @@ -464,7 +464,7 @@ public: framebufferCI.width = dim; framebufferCI.height = dim; framebufferCI.layers = 1; - + VkFramebuffer framebuffer; VK_CHECK_RESULT(vkCreateFramebuffer(device, &framebufferCI, nullptr, &framebuffer)); @@ -516,8 +516,8 @@ public: pipelineCI.pVertexInputState = &emptyInputState; // Look-up-table (from BRDF) pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrtexture/genbrdflut.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrtexture/genbrdflut.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrtexture/genbrdflut.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrtexture/genbrdflut.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -545,7 +545,7 @@ public: vulkanDevice->flushCommandBuffer(cmdBuf, queue); vkQueueWaitIdle(queue); - + // todo: cleanup vkDestroyPipeline(device, pipeline, nullptr); vkDestroyPipelineLayout(device, pipelinelayout, nullptr); @@ -802,8 +802,8 @@ public: pipelineCI.pVertexInputState = &vertexInputState; pipelineCI.renderPass = renderpass; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrtexture/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrtexture/irradiancecube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrtexture/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrtexture/irradiancecube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -918,7 +918,7 @@ public: 1, ©Region); - // Transform framebuffer color attachment back + // Transform framebuffer color attachment back vks::tools::setImageLayout( cmdBuf, offscreen.image, @@ -1196,8 +1196,8 @@ public: pipelineCI.pVertexInputState = &vertexInputState; pipelineCI.renderPass = renderpass; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pbrtexture/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pbrtexture/prefilterenvmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pbrtexture/filtercube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pbrtexture/prefilterenvmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipeline pipeline; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipeline)); @@ -1234,7 +1234,7 @@ public: VkViewport viewport = vks::initializers::viewport((float)dim, (float)dim, 0.0f, 1.0f); VkRect2D scissor = vks::initializers::rect2D(dim, dim, 0, 0); - + vkCmdSetViewport(cmdBuf, 0, 1, &viewport); vkCmdSetScissor(cmdBuf, 0, 1, &scissor); @@ -1279,10 +1279,10 @@ public: vkCmdEndRenderPass(cmdBuf); vks::tools::setImageLayout( - cmdBuf, - offscreen.image, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + cmdBuf, + offscreen.image, + VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); // Copy region for transfer from framebuffer to cube face @@ -1313,7 +1313,7 @@ public: 1, ©Region); - // Transform framebuffer color attachment back + // Transform framebuffer color attachment back vks::tools::setImageLayout( cmdBuf, offscreen.image, diff --git a/examples/pipelines/pipelines.cpp b/examples/pipelines/pipelines.cpp index 8e3c2d43..73e8076f 100644 --- a/examples/pipelines/pipelines.cpp +++ b/examples/pipelines/pipelines.cpp @@ -25,7 +25,7 @@ #define VERTEX_BUFFER_BIND_ID 0 #define ENABLE_VALIDATION false -class VulkanExample: public VulkanExampleBase +class VulkanExample: public VulkanExampleBase { public: // Vertex layout for the models @@ -72,7 +72,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.phong, nullptr); if (deviceFeatures.fillModeNonSolid) @@ -80,7 +80,7 @@ public: vkDestroyPipeline(device, pipelines.wireframe, nullptr); } vkDestroyPipeline(device, pipelines.toon, nullptr); - + vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); @@ -88,7 +88,7 @@ public: uniformBuffer.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Fill mode non solid is required for wireframe display @@ -102,7 +102,7 @@ public: } void buildCommandBuffers() - { + { VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); VkClearValue clearValues[2]; @@ -139,11 +139,11 @@ public: vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &models.cube.vertices.buffer, offsets); vkCmdBindIndexBuffer(drawCmdBuffers[i], models.cube.indices.buffer, 0, VK_INDEX_TYPE_UINT32); - // Left : Solid colored + // Left : Solid colored viewport.width = (float)width / 3.0; vkCmdSetViewport(drawCmdBuffers[i], 0, 1, &viewport); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.phong); - + vkCmdDrawIndexed(drawCmdBuffers[i], models.cube.indexCount, 1, 0, 0, 0); // Center : Toon @@ -158,7 +158,7 @@ public: if (deviceFeatures.fillModeNonSolid) { - // Right : Wireframe + // Right : Wireframe viewport.x = (float)width / 3.0 + (float)width / 3.0; vkCmdSetViewport(drawCmdBuffers[i], 0, 1, &viewport); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.wireframe); @@ -312,9 +312,9 @@ public: // Attribute descriptions std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2 : Texture coordinates + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2 : Texture coordinates vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3 : Normal }; @@ -330,14 +330,14 @@ public: // We are using this pipeline as the base for the other pipelines (derivatives) // Pipeline derivatives can be used for pipelines that share most of their state - // Depending on the implementation this may result in better performance for pipeline + // Depending on the implementation this may result in better performance for pipeline // switchting and faster creation time pipelineCreateInfo.flags = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT; // Textured pipeline // Phong shading pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pipelines/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pipelines/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pipelines/phong.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pipelines/phong.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.phong)); // All pipelines created after the base pipeline will be derivatives @@ -349,8 +349,8 @@ public: pipelineCreateInfo.basePipelineIndex = -1; // Toon shading pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/pipelines/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pipelines/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pipelines/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pipelines/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.toon)); // Pipeline for wire frame rendering @@ -358,8 +358,8 @@ public: if (deviceFeatures.fillModeNonSolid) { rasterizationState.polygonMode = VK_POLYGON_MODE_LINE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pipelines/wireframe.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pipelines/wireframe.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pipelines/wireframe.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pipelines/wireframe.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.wireframe)); } } diff --git a/examples/pipelinestatistics/pipelinestatistics.cpp b/examples/pipelinestatistics/pipelinestatistics.cpp index a46c7688..9a9c183e 100644 --- a/examples/pipelinestatistics/pipelinestatistics.cpp +++ b/examples/pipelinestatistics/pipelinestatistics.cpp @@ -112,7 +112,7 @@ public: } } - // Setup a query pool for storing pipeline statistics + // Setup a query pool for storing pipeline statistics void setupQueryPool() { pipelineStatNames = { @@ -305,7 +305,7 @@ public: VkPipelineColorBlendAttachmentState blendAttachmentState = vks::initializers::pipelineColorBlendAttachmentState(0xf, VK_FALSE); - + VkPipelineColorBlendStateCreateInfo colorBlendState = vks::initializers::pipelineColorBlendStateCreateInfo(1, &blendAttachmentState); @@ -346,7 +346,7 @@ public: std::vector vertexInputAttributes = { vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0 : Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1 : Normal + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1 : Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6) // Location 3 : Color }; @@ -380,14 +380,14 @@ public: std::vector shaderStages; shaderStages.resize(tessellation ? 4 : 2); - shaderStages[0] = loadShader(getAssetPath() + "shaders/pipelinestatistics/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pipelinestatistics/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pipelinestatistics/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pipelinestatistics/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); if (tessellation) { inputAssemblyState.topology = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST; pipelineCreateInfo.pTessellationState = &tessellationState; - shaderStages[2] = loadShader(getAssetPath() + "shaders/pipelinestatistics/scene.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); - shaderStages[3] = loadShader(getAssetPath() + "shaders/pipelinestatistics/scene.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); + shaderStages[2] = loadShader(getShadersPath() + "pipelinestatistics/scene.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); + shaderStages[3] = loadShader(getShadersPath() + "pipelinestatistics/scene.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); } pipelineCreateInfo.stageCount = static_cast(shaderStages.size()); diff --git a/examples/pushconstants/pushconstants.cpp b/examples/pushconstants/pushconstants.cpp index 6b59bbeb..941fed01 100644 --- a/examples/pushconstants/pushconstants.cpp +++ b/examples/pushconstants/pushconstants.cpp @@ -47,7 +47,7 @@ public: } models; vks::Buffer uniformBuffer; - + struct UBOVS { glm::mat4 projection; glm::mat4 modelView; @@ -80,7 +80,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); @@ -223,7 +223,7 @@ public: void setupDescriptorPool() { - // Example uses one ubo + // Example uses one ubo std::vector poolSizes = { vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1), @@ -266,7 +266,7 @@ public: // 6 * 4 * 4 = 96 bytes // Spec requires a minimum of 128 bytes, bigger values // need to be checked against maxPushConstantsSize - // But even at only 128 bytes, lots of stuff can fit + // But even at only 128 bytes, lots of stuff can fit // inside push constants VkPushConstantRange pushConstantRange = vks::initializers::pushConstantRange( @@ -355,8 +355,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/pushconstants/lights.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/pushconstants/lights.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "pushconstants/lights.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "pushconstants/lights.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -419,7 +419,7 @@ public: VulkanExampleBase::prepare(); // Check requested push constant size against hardware limit - // Specs require 128 bytes, so if the device complies our push constant buffer should always fit into memory + // Specs require 128 bytes, so if the device complies our push constant buffer should always fit into memory assert(sizeof(pushConstants) <= vulkanDevice->properties.limits.maxPushConstantsSize); loadAssets(); diff --git a/examples/pushdescriptors/pushdescriptors.cpp b/examples/pushdescriptors/pushdescriptors.cpp index 6c55a7c0..79ae7696 100644 --- a/examples/pushdescriptors/pushdescriptors.cpp +++ b/examples/pushdescriptors/pushdescriptors.cpp @@ -3,9 +3,9 @@ * * Note: Requires a device that supports the VK_KHR_push_descriptor extension * -* Push descriptors apply the push constants concept to descriptor sets. So instead of creating -* per-model descriptor sets (along with a pool for each descriptor type) for rendering multiple objects, -* this example uses push descriptors to pass descriptor sets for per-model textures and matrices +* Push descriptors apply the push constants concept to descriptor sets. So instead of creating +* per-model descriptor sets (along with a pool for each descriptor type) for rendering multiple objects, +* this example uses push descriptors to pass descriptor sets for per-model textures and matrices * at command buffer creation time. * * Copyright (C) 2018 by Sascha Willems - www.saschawillems.de @@ -202,7 +202,7 @@ public: vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), }; - VkDescriptorSetLayoutCreateInfo descriptorLayoutCI{}; + VkDescriptorSetLayoutCreateInfo descriptorLayoutCI{}; descriptorLayoutCI.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; // Setting this flag tells the descriptor set layouts that no actual descriptor sets are allocated but instead pushed at command buffer creation time descriptorLayoutCI.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; @@ -232,7 +232,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: UV vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color @@ -254,8 +254,8 @@ public: pipelineCreateInfoCI.pDynamicState = &dynamicStateCI; const std::array shaderStages = { - loadShader(getAssetPath() + "shaders/pushdescriptors/cube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/pushdescriptors/cube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) + loadShader(getShadersPath() + "pushdescriptors/cube.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "pushdescriptors/cube.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT) }; pipelineCreateInfoCI.stageCount = static_cast(shaderStages.size()); @@ -334,7 +334,7 @@ public: Extension specific functions */ - // The push descriptor update function is part of an extension so it has to be manually loaded + // The push descriptor update function is part of an extension so it has to be manually loaded vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetKHR"); if (!vkCmdPushDescriptorSetKHR) { vks::tools::exitFatal("Could not get a valid function pointer for vkCmdPushDescriptorSetKHR", -1); diff --git a/examples/radialblur/radialblur.cpp b/examples/radialblur/radialblur.cpp index a15462ec..e901080b 100644 --- a/examples/radialblur/radialblur.cpp +++ b/examples/radialblur/radialblur.cpp @@ -118,7 +118,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class // Frame buffer @@ -319,7 +319,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &offscreenPass.frameBuffer)); - // Fill a descriptor for later use in a descriptor set + // Fill a descriptor for later use in a descriptor set offscreenPass.descriptor.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; offscreenPass.descriptor.imageView = offscreenPass.color.view; offscreenPass.descriptor.sampler = offscreenPass.sampler; @@ -397,7 +397,7 @@ public: scissor = vks::initializers::rect2D(width, height, 0, 0); vkCmdSetScissor(drawCmdBuffers[i], 0, 1, &scissor); - + // 3D scene vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayouts.scene, 0, 1, &descriptorSets.scene, 0, NULL); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.phongPass); @@ -536,8 +536,8 @@ public: pipelineCI.pStages = shaderStages.data(); // Radial blur pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/radialblur/radialblur.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/radialblur/radialblur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "radialblur/radialblur.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "radialblur/radialblur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCI.pVertexInputState = &emptyInputState; @@ -559,8 +559,8 @@ public: // Phong pass pipelineCI.layout = pipelineLayouts.scene; - shaderStages[0] = loadShader(getAssetPath() + "shaders/radialblur/phongpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/radialblur/phongpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "radialblur/phongpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "radialblur/phongpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); blendAttachmentState.blendEnable = VK_FALSE; depthStencilStateCI.depthWriteEnable = VK_TRUE; // Vertex bindings and attributes @@ -568,7 +568,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Normal @@ -582,8 +582,8 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.phongPass)); // Color only pass (offscreen blur base) - shaderStages[0] = loadShader(getAssetPath() + "shaders/radialblur/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/radialblur/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "radialblur/colorpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "radialblur/colorpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCI.renderPass = offscreenPass.renderPass; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.colorPass)); } diff --git a/examples/renderheadless/renderheadless.cpp b/examples/renderheadless/renderheadless.cpp index ee279e29..24003fa7 100644 --- a/examples/renderheadless/renderheadless.cpp +++ b/examples/renderheadless/renderheadless.cpp @@ -55,7 +55,7 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL debugMessageCallback( int32_t messageCode, const char* pLayerPrefix, const char* pMessage, - void* pUserData) + void* pUserData) { LOG("[VALIDATION]: %s - %s\n", pLayerPrefix, pMessage); return VK_FALSE; @@ -66,7 +66,7 @@ class VulkanExample public: VkInstance instance; VkPhysicalDevice physicalDevice; - VkDevice device; + VkDevice device; uint32_t queueFamilyIndex; VkPipelineCache pipelineCache; VkQueue queue; @@ -135,7 +135,7 @@ public: /* Submit command buffer to a queue and wait for fence until queue operations have been finished */ - void submitWork(VkCommandBuffer cmdBuffer, VkQueue queue) + void submitWork(VkCommandBuffer cmdBuffer, VkQueue queue) { VkSubmitInfo submitInfo = vks::initializers::submitInfo(); submitInfo.commandBufferCount = 1; @@ -504,7 +504,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &framebufferCreateInfo, nullptr, &framebuffer)); } - /* + /* Prepare graphics pipeline */ { @@ -527,7 +527,7 @@ public: pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; VK_CHECK_RESULT(vkCreatePipelineCache(device, &pipelineCacheCreateInfo, nullptr, &pipelineCache)); - // Create pipeline + // Create pipeline VkPipelineInputAssemblyStateCreateInfo inputAssemblyState = vks::initializers::pipelineInputAssemblyStateCreateInfo(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE); @@ -598,17 +598,17 @@ public: shaderStages[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT; shaderStages[1].pName = "main"; #if defined(VK_USE_PLATFORM_ANDROID_KHR) - shaderStages[0].module = vks::tools::loadShader(androidapp->activity->assetManager, (getAssetPath() + "shaders/renderheadless/triangle.vert.spv").c_str(), device); - shaderStages[1].module = vks::tools::loadShader(androidapp->activity->assetManager, (getAssetPath() + "shaders/renderheadless/triangle.frag.spv").c_str(), device); + shaderStages[0].module = vks::tools::loadShader(androidapp->activity->assetManager, (getShadersPath() + "renderheadless/triangle.vert.spv").c_str(), device); + shaderStages[1].module = vks::tools::loadShader(androidapp->activity->assetManager, (getShadersPath() + "renderheadless/triangle.frag.spv").c_str(), device); #else - shaderStages[0].module = vks::tools::loadShader((getAssetPath() + "shaders/renderheadless/triangle.vert.spv").c_str(), device); - shaderStages[1].module = vks::tools::loadShader((getAssetPath() + "shaders/renderheadless/triangle.frag.spv").c_str(), device); + shaderStages[0].module = vks::tools::loadShader((getShadersPath() + "renderheadless/triangle.vert.spv").c_str(), device); + shaderStages[1].module = vks::tools::loadShader((getShadersPath() + "renderheadless/triangle.frag.spv").c_str(), device); #endif shaderModules = { shaderStages[0].module, shaderStages[1].module }; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline)); } - /* + /* Command buffer creation */ { @@ -617,7 +617,7 @@ public: vks::initializers::commandBufferAllocateInfo(commandPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1); VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &commandBuffer)); - VkCommandBufferBeginInfo cmdBufInfo = + VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); VK_CHECK_RESULT(vkBeginCommandBuffer(commandBuffer, &cmdBufInfo)); diff --git a/examples/scenerendering/scenerendering.cpp b/examples/scenerendering/scenerendering.cpp index 53648655..ebc1c2ce 100644 --- a/examples/scenerendering/scenerendering.cpp +++ b/examples/scenerendering/scenerendering.cpp @@ -33,8 +33,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -235,8 +235,8 @@ private: // We will be using a push constant block to pass material properties to the fragment shaders VkPushConstantRange pushConstantRange = vks::initializers::pushConstantRange( - VK_SHADER_STAGE_FRAGMENT_BIT, - sizeof(SceneMaterialProperties), + VK_SHADER_STAGE_FRAGMENT_BIT, + sizeof(SceneMaterialProperties), 0); pipelineLayoutCreateInfo.pushConstantRangeCount = 1; pipelineLayoutCreateInfo.pPushConstantRanges = &pushConstantRange; @@ -343,7 +343,7 @@ private: // For better performance we only create one index and vertex buffer to keep number of memory allocations down size_t vertexDataSize = vertices.size() * sizeof(Vertex); size_t indexDataSize = indices.size() * sizeof(uint32_t); - + vks::Buffer vertexStaging, indexStaging; // Vertex buffer @@ -600,7 +600,7 @@ public: delete(scene); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Fill mode non solid is required for wireframe display @@ -751,8 +751,8 @@ public: std::array shaderStages; // Solid rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/scenerendering/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/scenerendering/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "scenerendering/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "scenerendering/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/screenshot/screenshot.cpp b/examples/screenshot/screenshot.cpp index 7f33cd3a..4c9d2171 100644 --- a/examples/screenshot/screenshot.cpp +++ b/examples/screenshot/screenshot.cpp @@ -135,7 +135,7 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = { + std::vector setLayoutBindings = { vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 0: Vertex shader uniform buffer }; VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings); @@ -149,7 +149,7 @@ public: { VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayout, 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - std::vector writeDescriptorSets = { + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor), // Binding 0: Vertex shader uniform buffer }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, nullptr); @@ -165,7 +165,7 @@ public: VkPipelineViewportStateCreateInfo viewportState = vks::initializers::pipelineViewportStateCreateInfo(1, 1, 0); VkPipelineMultisampleStateCreateInfo multisampleState = vks::initializers::pipelineMultisampleStateCreateInfo(VK_SAMPLE_COUNT_1_BIT, 0); std::vector dynamicStateEnables = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; - VkPipelineDynamicStateCreateInfo dynamicState = vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables); + VkPipelineDynamicStateCreateInfo dynamicState = vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables); // Vertex bindings and attributes // Binding description @@ -185,8 +185,8 @@ public: vertexInputState.pVertexAttributeDescriptions = vertexInputAttributes.data(); std::array shaderStages = { - loadShader(getAssetPath() + "shaders/screenshot/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), - loadShader(getAssetPath() + "shaders/screenshot/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT), + loadShader(getShadersPath() + "screenshot/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT), + loadShader(getShadersPath() + "screenshot/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT), }; VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); @@ -242,7 +242,7 @@ public: supportsBlit = false; } - // Check if the device supports blitting to linear images + // Check if the device supports blitting to linear images vkGetPhysicalDeviceFormatProperties(physicalDevice, VK_FORMAT_R8G8B8A8_UNORM, &formatProps); if (!(formatProps.linearTilingFeatures & VK_FORMAT_FEATURE_BLIT_DST_BIT)) { std::cerr << "Device does not support blitting to linear tiled images, using copy instead of blit!" << std::endl; @@ -251,7 +251,7 @@ public: // Source for the copy is the last rendered swapchain image VkImage srcImage = swapChain.images[currentBuffer]; - + // Create the linear tiled destination image to copy to and to read the memory from VkImageCreateInfo imageCreateCI(vks::initializers::imageCreateInfo()); imageCreateCI.imageType = VK_IMAGE_TYPE_2D; @@ -396,7 +396,7 @@ public: // If source is BGR (destination is always RGB) and we can't use blit (which does automatic conversion), we'll have to manually swizzle color components bool colorSwizzle = false; - // Check if source is BGR + // Check if source is BGR // Note: Not complete, only contains most common and basic BGR surface formats for demonstation purposes if (!supportsBlit) { @@ -405,13 +405,13 @@ public: } // ppm binary pixel data - for (uint32_t y = 0; y < height; y++) + for (uint32_t y = 0; y < height; y++) { unsigned int *row = (unsigned int*)data; - for (uint32_t x = 0; x < width; x++) + for (uint32_t x = 0; x < width; x++) { - if (colorSwizzle) - { + if (colorSwizzle) + { file.write((char*)row+2, 1); file.write((char*)row+1, 1); file.write((char*)row, 1); diff --git a/examples/shadowmapping/shadowmapping.cpp b/examples/shadowmapping/shadowmapping.cpp index bc35e202..ce15be5d 100644 --- a/examples/shadowmapping/shadowmapping.cpp +++ b/examples/shadowmapping/shadowmapping.cpp @@ -142,7 +142,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class // Frame buffer @@ -273,7 +273,7 @@ public: depthStencilView.image = offscreenPass.depth.image; VK_CHECK_RESULT(vkCreateImageView(device, &depthStencilView, nullptr, &offscreenPass.depth.view)); - // Create sampler to sample from to depth attachment + // Create sampler to sample from to depth attachment // Used to sample in the fragment shader for shadowed rendering VkSamplerCreateInfo sampler = vks::initializers::samplerCreateInfo(); sampler.magFilter = SHADOWMAP_FILTER; @@ -293,7 +293,7 @@ public: // Create frame buffer VkFramebufferCreateInfo fbufCreateInfo = vks::initializers::framebufferCreateInfo(); - fbufCreateInfo.renderPass = offscreenPass.renderPass; + fbufCreateInfo.renderPass = offscreenPass.renderPass; fbufCreateInfo.attachmentCount = 1; fbufCreateInfo.pAttachments = &offscreenPass.depth.view; fbufCreateInfo.width = offscreenPass.width; @@ -321,7 +321,7 @@ public: */ { clearValues[0].depthStencil = { 1.0f, 0 }; - + VkRenderPassBeginInfo renderPassBeginInfo = vks::initializers::renderPassBeginInfo(); renderPassBeginInfo.renderPass = offscreenPass.renderPass; renderPassBeginInfo.framebuffer = offscreenPass.frameBuffer; @@ -331,7 +331,7 @@ public: renderPassBeginInfo.pClearValues = clearValues; vkCmdBeginRenderPass(drawCmdBuffers[i], &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE); - + viewport = vks::initializers::viewport((float)offscreenPass.width, (float)offscreenPass.height, 0.0f, 1.0f); vkCmdSetViewport(drawCmdBuffers[i], 0, 1, &viewport); @@ -584,8 +584,8 @@ public: // Shadow mapping debug quad display rasterizationStateCI.cullMode = VK_CULL_MODE_NONE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapping/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmapping/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapping/quad.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmapping/quad.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCI.pVertexInputState = &emptyInputState; @@ -596,7 +596,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Normal @@ -610,8 +610,8 @@ public: // Scene rendering with shadows applied rasterizationStateCI.cullMode = VK_CULL_MODE_BACK_BIT; - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapping/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmapping/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapping/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmapping/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Use specialization constants to select between horizontal and vertical blur uint32_t enablePCF = 0; VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); @@ -624,7 +624,7 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCI, nullptr, &pipelines.sceneShadowPCF)); // Offscreen pipeline (vertex shader only) - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapping/offscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapping/offscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); pipelineCI.stageCount = 1; // No blend attachment states (no color attachments used) colorBlendStateCI.attachmentCount = 0; @@ -662,7 +662,7 @@ public: &uniformBuffers.offscreen, sizeof(uboOffscreenVS))); - // Scene vertex shader uniform buffer block + // Scene vertex shader uniform buffer block VK_CHECK_RESULT(vulkanDevice->createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, diff --git a/examples/shadowmappingcascade/shadowmappingcascade.cpp b/examples/shadowmappingcascade/shadowmappingcascade.cpp index 61970def..3255be78 100644 --- a/examples/shadowmappingcascade/shadowmappingcascade.cpp +++ b/examples/shadowmappingcascade/shadowmappingcascade.cpp @@ -207,7 +207,7 @@ public: { enabledFeatures.samplerAnisotropy = deviceFeatures.samplerAnisotropy; // Depth clamp to avoid near plane clipping - enabledFeatures.depthClamp = deviceFeatures.depthClamp; + enabledFeatures.depthClamp = deviceFeatures.depthClamp; } /* @@ -400,7 +400,7 @@ public: VkDeviceSize offsets[1] = { 0 }; for (int32_t i = 0; i < drawCmdBuffers.size(); i++) { - + VK_CHECK_RESULT(vkBeginCommandBuffer(drawCmdBuffers[i], &cmdBufInfo)); /* @@ -506,7 +506,7 @@ public: models[2].loadFromFile(getAssetPath() + "models/oak_leafs.dae", vertexLayout, 2.0f, vulkanDevice, queue); } - void setupLayoutsAndDescriptors() + void setupLayoutsAndDescriptors() { /* Descriptor pool @@ -618,7 +618,7 @@ public: std::vector dynamicStateEnables = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR }; VkPipelineDynamicStateCreateInfo dynamicState = vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables); std::array shaderStages; - + VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); pipelineCreateInfo.pInputAssemblyState = &inputAssemblyState; pipelineCreateInfo.pRasterizationState = &rasterizationState; @@ -632,8 +632,8 @@ public: // Shadow map cascade debug quad display rasterizationState.cullMode = VK_CULL_MODE_BACK_BIT; - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/debugshadowmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/debugshadowmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmappingcascade/debugshadowmap.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmappingcascade/debugshadowmap.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Empty vertex input state VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCreateInfo.pVertexInputState = &emptyInputState; @@ -663,8 +663,8 @@ public: Shadow mapped scene rendering */ rasterizationState.cullMode = VK_CULL_MODE_NONE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmappingcascade/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmappingcascade/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Use specialization constants to select between horizontal and vertical blur uint32_t enablePCF = 0; VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); @@ -677,8 +677,8 @@ public: /* Depth map generation */ - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/depthpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmappingcascade/depthpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmappingcascade/depthpass.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmappingcascade/depthpass.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // No blend attachment states (no color attachments used) colorBlendState.attachmentCount = 0; depthStencilState.depthCompareOp = VK_COMPARE_OP_LESS_OR_EQUAL; @@ -726,7 +726,7 @@ public: void updateCascades() { float cascadeSplits[SHADOW_MAP_CASCADE_COUNT]; - + float nearClip = camera.getNearClip(); float farClip = camera.getFarClip(); float clipRange = farClip - nearClip; diff --git a/examples/shadowmappingomni/shadowmappingomni.cpp b/examples/shadowmappingomni/shadowmappingomni.cpp index bd5cf1f9..35c5c0b2 100644 --- a/examples/shadowmappingomni/shadowmappingomni.cpp +++ b/examples/shadowmappingomni/shadowmappingomni.cpp @@ -31,7 +31,7 @@ // Offscreen frame buffer properties #define FB_DIM TEX_DIM -#define FB_COLOR_FORMAT VK_FORMAT_R32_SFLOAT +#define FB_COLOR_FORMAT VK_FORMAT_R32_SFLOAT class VulkanExample : public VulkanExampleBase { @@ -64,7 +64,7 @@ public: glm::mat4 model; } uboVSquad; - glm::vec4 lightPos = glm::vec4(0.0f, -25.0f, 0.0f, 1.0); + glm::vec4 lightPos = glm::vec4(0.0f, -25.0f, 0.0f, 1.0); struct UBO { glm::mat4 projection; @@ -82,7 +82,7 @@ public: } pipelines; struct { - VkPipelineLayout scene; + VkPipelineLayout scene; VkPipelineLayout offscreen; } pipelineLayouts; @@ -125,7 +125,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class // Cube map @@ -173,7 +173,7 @@ public: { shadowCubeMap.width = TEX_DIM; shadowCubeMap.height = TEX_DIM; - + // 32 bit float format for higher precision VkFormat format = VK_FORMAT_R32_SFLOAT; @@ -301,9 +301,9 @@ public: vks::tools::setImageLayout( layoutCmd, - offscreenPass.color.image, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_LAYOUT_UNDEFINED, + offscreenPass.color.image, + VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); colorImageView.image = offscreenPass.color.image; @@ -333,7 +333,7 @@ public: vks::tools::setImageLayout( layoutCmd, - offscreenPass.depth.image, + offscreenPass.depth.image, VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); @@ -477,7 +477,7 @@ public: 1, ©Region); - // Transform framebuffer color attachment back + // Transform framebuffer color attachment back vks::tools::setImageLayout( commandBuffer, offscreenPass.color.image, @@ -573,7 +573,7 @@ public: VK_CHECK_RESULT(vkEndCommandBuffer(drawCmdBuffers[i])); } - } + } void loadAssets() { @@ -624,7 +624,7 @@ public: // 3D scene VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSets.scene)); - // Image descriptor for the cube map + // Image descriptor for the cube map VkDescriptorImageInfo texDescriptor = vks::initializers::descriptorImageInfo( shadowCubeMap.sampler, @@ -718,8 +718,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapomni/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmapomni/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapomni/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmapomni/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayouts.scene, renderPass, 0); pipelineCreateInfo.pInputAssemblyState = &inputAssemblyState; @@ -737,7 +737,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Normal @@ -751,15 +751,15 @@ public: VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.scene)); // Cube map display pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapomni/cubemapdisplay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmapomni/cubemapdisplay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapomni/cubemapdisplay.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmapomni/cubemapdisplay.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkPipelineVertexInputStateCreateInfo emptyInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); pipelineCreateInfo.pVertexInputState = &emptyInputState; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.cubemapDisplay)); // Offscreen pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/shadowmapomni/offscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/shadowmapomni/offscreen.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "shadowmapomni/offscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "shadowmapomni/offscreen.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCreateInfo.layout = pipelineLayouts.offscreen; pipelineCreateInfo.renderPass = offscreenPass.renderPass; pipelineCreateInfo.pVertexInputState = &vertexInputState; @@ -769,7 +769,7 @@ public: // Prepare and initialize uniform buffer containing shader uniforms void prepareUniformBuffers() { - // Offscreen vertex shader uniform buffer + // Offscreen vertex shader uniform buffer VK_CHECK_RESULT(vulkanDevice->createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, diff --git a/examples/skeletalanimation/skeletalanimation.cpp b/examples/skeletalanimation/skeletalanimation.cpp index 58afe7fb..708cc14d 100644 --- a/examples/skeletalanimation/skeletalanimation.cpp +++ b/examples/skeletalanimation/skeletalanimation.cpp @@ -19,8 +19,8 @@ #include #include -#include -#include +#include +#include #include #include @@ -96,7 +96,7 @@ struct BoneInfo }; }; -class SkinnedMesh +class SkinnedMesh { public: // Bone related stuff @@ -113,7 +113,7 @@ public: // Bone transformations std::vector boneTransforms; - // Modifier for the animation + // Modifier for the animation float animationSpeed = 0.75f; // Currently active animation aiAnimation* pAnimation; @@ -416,7 +416,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.skinning, nullptr); vkDestroyPipeline(device, pipelines.texture, nullptr); @@ -434,14 +434,14 @@ public: delete(skinnedMesh); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable anisotropic filtering if supported if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -510,7 +510,7 @@ public: } } - // Load a mesh based on data read via assimp + // Load a mesh based on data read via assimp void loadMesh() { skinnedMesh = new SkinnedMesh(); @@ -541,12 +541,12 @@ public: // Setup bones // One vertex bone info structure per vertex - uint32_t vertexCount(0); + uint32_t vertexCount(0); for (uint32_t m = 0; m < skinnedMesh->scene->mNumMeshes; m++) { vertexCount += skinnedMesh->scene->mMeshes[m]->mNumVertices; }; skinnedMesh->bones.resize(vertexCount); - // Store global inverse transform matrix of root node + // Store global inverse transform matrix of root node skinnedMesh->globalInverseTransform = skinnedMesh->scene->mRootNode->mTransformation; skinnedMesh->globalInverseTransform.Inverse(); // Load bones (weights and IDs) @@ -750,7 +750,7 @@ public: 1); VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - + VkDescriptorImageInfo texDescriptor = vks::initializers::descriptorImageInfo( textures.colorMap.sampler, @@ -765,7 +765,7 @@ public: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.mesh.descriptor), - // Binding 1 : Color map + // Binding 1 : Color map vks::initializers::writeDescriptorSet( descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, @@ -790,7 +790,7 @@ public: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.floor.descriptor)); - // Binding 1 : Color map + // Binding 1 : Color map writeDescriptorSets.push_back( vks::initializers::writeDescriptorSet( descriptorSets.floor, @@ -878,11 +878,11 @@ public: // Attribute descriptions // Describes memory layout and shader positions std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32A32_SFLOAT, sizeof(float) * 11), // Location 4: Bone weights + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32A32_SFLOAT, sizeof(float) * 11), // Location 4: Bone weights vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 5, VK_FORMAT_R32G32B32A32_SINT, sizeof(float) * 15), // Location 5: Bone IDs }; @@ -895,13 +895,13 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Skinned mesh rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/skeletalanimation/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/skeletalanimation/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "skeletalanimation/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "skeletalanimation/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skinning)); // Environment rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/skeletalanimation/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/skeletalanimation/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "skeletalanimation/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "skeletalanimation/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.texture)); } diff --git a/examples/specializationconstants/specializationconstants.cpp b/examples/specializationconstants/specializationconstants.cpp index 23924f12..6fd93b4e 100644 --- a/examples/specializationconstants/specializationconstants.cpp +++ b/examples/specializationconstants/specializationconstants.cpp @@ -28,7 +28,7 @@ #define VERTEX_BUFFER_BIND_ID 0 #define ENABLE_VALIDATION false -class VulkanExample: public VulkanExampleBase +class VulkanExample: public VulkanExampleBase { public: struct { @@ -87,7 +87,7 @@ public: vkDestroyPipeline(device, pipelines.phong, nullptr); vkDestroyPipeline(device, pipelines.textured, nullptr); vkDestroyPipeline(device, pipelines.toon, nullptr); - + vkDestroyPipelineLayout(device, pipelineLayout, nullptr); vkDestroyDescriptorSetLayout(device, descriptorSetLayout, nullptr); @@ -97,7 +97,7 @@ public: } void buildCommandBuffers() - { + { VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); VkClearValue clearValues[2]; @@ -138,7 +138,7 @@ public: viewport.width = (float)width / 3.0f; vkCmdSetViewport(drawCmdBuffers[i], 0, 1, &viewport); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.phong); - + vkCmdDrawIndexed(drawCmdBuffers[i], models.cube.indexCount, 1, 0, 0, 0); // Center @@ -229,7 +229,7 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings ={ + std::vector setLayoutBindings ={ vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0), vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), }; @@ -259,7 +259,7 @@ public: VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - std::vector writeDescriptorSets = { + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffer.descriptor), vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &textures.colormap.descriptor), }; @@ -371,8 +371,8 @@ public: // Create pipelines // All pipelines will use the same "uber" shader and specialization constants to change branching and parameters of that shader - shaderStages[0] = loadShader(getAssetPath() + "shaders/specializationconstants/uber.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/specializationconstants/uber.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "specializationconstants/uber.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "specializationconstants/uber.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Specialization info is assigned is part of the shader stage (modul) and must be set after creating the module and before creating the pipeline shaderStages[1].pSpecializationInfo = &specializationInfo; @@ -451,7 +451,7 @@ public: } } - virtual void windowResized() + virtual void windowResized() { updateUniformBuffers(); } diff --git a/examples/sphericalenvmapping/sphericalenvmapping.cpp b/examples/sphericalenvmapping/sphericalenvmapping.cpp index 8b239ff3..d0a6a154 100644 --- a/examples/sphericalenvmapping/sphericalenvmapping.cpp +++ b/examples/sphericalenvmapping/sphericalenvmapping.cpp @@ -84,7 +84,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipeline, nullptr); @@ -332,8 +332,8 @@ public: // Spherical environment rendering pipeline // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/sphericalenvmapping/sem.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/sphericalenvmapping/sem.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "sphericalenvmapping/sem.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "sphericalenvmapping/sem.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/ssao/ssao.cpp b/examples/ssao/ssao.cpp index dc7c468a..48c18b93 100644 --- a/examples/ssao/ssao.cpp +++ b/examples/ssao/ssao.cpp @@ -117,7 +117,7 @@ public: }; struct FrameBuffer { int32_t width, height; - VkFramebuffer frameBuffer; + VkFramebuffer frameBuffer; VkRenderPass renderPass; void setSize(int32_t w, int32_t h) { @@ -202,7 +202,7 @@ public: // Create a frame buffer attachment void createAttachment( - VkFormat format, + VkFormat format, VkImageUsageFlagBits usage, FrameBufferAttachment *attachment, uint32_t width, @@ -247,7 +247,7 @@ public: memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &attachment->mem)); VK_CHECK_RESULT(vkBindImageMemory(device, attachment->image, attachment->mem, 0)); - + VkImageViewCreateInfo imageView = vks::initializers::imageViewCreateInfo(); imageView.viewType = VK_IMAGE_VIEW_TYPE_2D; imageView.format = format; @@ -281,7 +281,7 @@ public: VkBool32 validDepthFormat = vks::tools::getSupportedDepthFormat(physicalDevice, &attDepthFormat); assert(validDepthFormat); - // G-Buffer + // G-Buffer createAttachment(VK_FORMAT_R32G32B32A32_SFLOAT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &frameBuffers.offscreen.position, width, height); // Position + Depth createAttachment(VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &frameBuffers.offscreen.normal, width, height); // Normals createAttachment(VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &frameBuffers.offscreen.albedo, width, height); // Albedo (color) @@ -376,7 +376,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &frameBuffers.offscreen.frameBuffer)); } - // SSAO + // SSAO { VkAttachmentDescription attachmentDescription{}; attachmentDescription.format = frameBuffers.ssao.color.format; @@ -433,7 +433,7 @@ public: VK_CHECK_RESULT(vkCreateFramebuffer(device, &fbufCreateInfo, nullptr, &frameBuffers.ssao.frameBuffer)); } - // SSAO Blur + // SSAO Blur { VkAttachmentDescription attachmentDescription{}; attachmentDescription.format = frameBuffers.ssaoBlur.color.format; @@ -699,7 +699,7 @@ public: vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 1), // FS Normals vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), // FS SSAO Noise vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 3), // FS SSAO Kernel UBO - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 4), // FS Params UBO + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 4), // FS Params UBO }; setLayoutCreateInfo = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings.data(), static_cast(setLayoutBindings.size())); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &setLayoutCreateInfo, nullptr, &descriptorSetLayouts.ssao)); @@ -745,7 +745,7 @@ public: vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 2), // FS Albedo vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 3), // FS SSAO vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 4), // FS SSAO blurred - vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 5), // FS Lights UBO + vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT, 5), // FS Lights UBO }; setLayoutCreateInfo = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings.data(), static_cast(setLayoutBindings.size())); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &setLayoutCreateInfo, nullptr, &descriptorSetLayouts.composition)); @@ -757,14 +757,14 @@ public: vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.offscreen.position.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.offscreen.normal.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.offscreen.albedo.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), - vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.ssao.color.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), - vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.ssaoBlur.color.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), + vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.ssao.color.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), + vks::initializers::descriptorImageInfo(colorSampler, frameBuffers.ssaoBlur.color.view, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), }; writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &imageDescriptors[0]), // FS Sampler Position+Depth vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, &imageDescriptors[1]), // FS Sampler Normals vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 2, &imageDescriptors[2]), // FS Sampler Albedo - vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 3, &imageDescriptors[3]), // FS Sampler SSAO + vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 3, &imageDescriptors[3]), // FS Sampler SSAO vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 4, &imageDescriptors[4]), // FS Sampler SSAO blurred vks::initializers::writeDescriptorSet(descriptorSets.composition, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 5, &uniformBuffers.ssaoParams.descriptor), // FS SSAO Params UBO }; @@ -789,7 +789,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; const std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 3), // Location 1: UV vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 5), // Location 2: Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Normal @@ -815,13 +815,13 @@ public: pipelineCreateInfo.stageCount = static_cast(shaderStages.size()); pipelineCreateInfo.pStages = shaderStages.data(); - shaderStages[0] = loadShader(getAssetPath() + "shaders/ssao/fullscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/ssao/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "ssao/fullscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "ssao/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.composition)); // SSAO Pass { - shaderStages[1] = loadShader(getAssetPath() + "shaders/ssao/ssao.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[1] = loadShader(getShadersPath() + "ssao/ssao.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Set constant parameters via specialization constants std::array specializationMapEntries; specializationMapEntries[0] = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); // SSAO Kernel size @@ -839,7 +839,7 @@ public: // SSAO blur pass { - shaderStages[1] = loadShader(getAssetPath() + "shaders/ssao/blur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[1] = loadShader(getShadersPath() + "ssao/blur.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCreateInfo.renderPass = frameBuffers.ssaoBlur.renderPass; pipelineCreateInfo.layout = pipelineLayouts.ssaoBlur; VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.ssaoBlur)); @@ -847,8 +847,8 @@ public: // Fill G-Buffer { - shaderStages[0] = loadShader(getAssetPath() + "shaders/ssao/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/ssao/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "ssao/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "ssao/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); pipelineCreateInfo.pVertexInputState = &vertexInputState; pipelineCreateInfo.renderPass = frameBuffers.offscreen.renderPass; pipelineCreateInfo.layout = pipelineLayouts.gBuffer; @@ -881,7 +881,7 @@ public: &uniformBuffers.sceneMatrices, sizeof(uboSceneMatrices)); - // SSAO parameters + // SSAO parameters vulkanDevice->createBuffer( VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, diff --git a/examples/stencilbuffer/stencilbuffer.cpp b/examples/stencilbuffer/stencilbuffer.cpp index e46f9579..1a7990c5 100644 --- a/examples/stencilbuffer/stencilbuffer.cpp +++ b/examples/stencilbuffer/stencilbuffer.cpp @@ -149,16 +149,16 @@ public: } void setupDescriptorSetLayout() - { + { std::vector setLayoutBindings = { vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0) }; - VkDescriptorSetLayoutCreateInfo descriptorLayoutInfo = + VkDescriptorSetLayoutCreateInfo descriptorLayoutInfo = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBindings.data(), 1); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorLayoutInfo, nullptr, &descriptorSetLayout)); - VkPipelineLayoutCreateInfo pipelineLayoutInfo = + VkPipelineLayoutCreateInfo pipelineLayoutInfo = vks::initializers::pipelineLayoutCreateInfo(&descriptorSetLayout, 1); VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pipelineLayoutInfo, nullptr, &pipelineLayout)); } @@ -215,7 +215,7 @@ public: }; std::vector vertexInputAttributes = { vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Color vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6) // Location 2: Normal }; @@ -237,8 +237,8 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); // Toon render and stencil fill pass - shaderStages[0] = loadShader(getAssetPath() + "shaders/stencilbuffer/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/stencilbuffer/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "stencilbuffer/toon.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "stencilbuffer/toon.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); rasterizationState.cullMode = VK_CULL_MODE_NONE; @@ -263,8 +263,8 @@ public: depthStencilState.front = depthStencilState.back; depthStencilState.depthTestEnable = VK_FALSE; - shaderStages[0] = loadShader(getAssetPath() + "shaders/stencilbuffer/outline.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/stencilbuffer/outline.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "stencilbuffer/outline.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "stencilbuffer/outline.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.outline)); } diff --git a/examples/subpasses/subpasses.cpp b/examples/subpasses/subpasses.cpp index da1efd76..0b2908af 100644 --- a/examples/subpasses/subpasses.cpp +++ b/examples/subpasses/subpasses.cpp @@ -8,10 +8,10 @@ * Summary: * Implements a deferred rendering setup with a forward transparency pass using sub passes * -* Sub passes allow reading from the previous framebuffer (in the same render pass) at +* Sub passes allow reading from the previous framebuffer (in the same render pass) at * the same pixel position. -* -* This is a feature that was especially designed for tile-based-renderers +* +* This is a feature that was especially designed for tile-based-renderers * (mostly mobile GPUs) and is a new optomization feature in Vulkan for those GPU types. * */ @@ -129,7 +129,7 @@ public: camera.movementSpeed = 5.0f; #ifndef __ANDROID__ camera.rotationSpeed = 0.25f; -#endif +#endif camera.setPosition(glm::vec3(-3.2f, 1.0f, 5.9f)); camera.setRotation(glm::vec3(0.5f, 210.05f, 0.0f)); camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f); @@ -139,7 +139,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.offscreen, nullptr); vkDestroyPipeline(device, pipelines.composition, nullptr); @@ -164,14 +164,14 @@ public: uniformBuffers.lights.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Enable anisotropic filtering if supported if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -226,7 +226,7 @@ public: image.samples = VK_SAMPLE_COUNT_1_BIT; image.tiling = VK_IMAGE_TILING_OPTIMAL; // VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT flag is required for input attachments - image.usage = usage | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + image.usage = usage | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; image.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; VkMemoryAllocateInfo memAlloc = vks::initializers::memoryAllocateInfo(); @@ -255,8 +255,8 @@ public: // Create color attachments for the G-Buffer components void createGBufferAttachments() { - createAttachment(VK_FORMAT_R16G16B16A16_SFLOAT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &attachments.position); // (World space) Positions - createAttachment(VK_FORMAT_R16G16B16A16_SFLOAT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &attachments.normal); // (World space) Normals + createAttachment(VK_FORMAT_R16G16B16A16_SFLOAT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &attachments.position); // (World space) Positions + createAttachment(VK_FORMAT_R16G16B16A16_SFLOAT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &attachments.normal); // (World space) Normals createAttachment(VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, &attachments.albedo); // Albedo (color) } @@ -317,7 +317,7 @@ public: attachments.width = width; attachments.height = height; - createGBufferAttachments(); + createGBufferAttachments(); std::array attachments{}; // Color attachment @@ -701,7 +701,7 @@ public: VkPipelineDepthStencilStateCreateInfo depthStencilState = vks::initializers::pipelineDepthStencilStateCreateInfo( - VK_TRUE, + VK_TRUE, VK_TRUE, VK_COMPARE_OP_LESS_OR_EQUAL); @@ -755,9 +755,9 @@ public: colorBlendState.pAttachments = blendAttachmentStates.data(); // Offscreen scene rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/subpasses/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/subpasses/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - + shaderStages[0] = loadShader(getShadersPath() + "subpasses/gbuffer.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "subpasses/gbuffer.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.offscreen)); } @@ -767,17 +767,17 @@ public: // Descriptor set layout std::vector setLayoutBindings = { - // Binding 0: Position input attachment + // Binding 0: Position input attachment vks::initializers::descriptorSetLayoutBinding( VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, 0), - // Binding 1: Normal input attachment + // Binding 1: Normal input attachment vks::initializers::descriptorSetLayoutBinding( VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, 1), - // Binding 2: Albedo input attachment + // Binding 2: Albedo input attachment vks::initializers::descriptorSetLayoutBinding( VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, @@ -797,7 +797,7 @@ public: VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorLayout, nullptr, &descriptorSetLayouts.composition)); // Pipeline layout - VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = + VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = vks::initializers::pipelineLayoutCreateInfo(&descriptorSetLayouts.composition, 1); VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pPipelineLayoutCreateInfo, nullptr, &pipelineLayouts.composition)); @@ -853,9 +853,9 @@ public: vks::initializers::pipelineDynamicStateCreateInfo(dynamicStateEnables.data(), static_cast(dynamicStateEnables.size()), 0); std::array shaderStages; - - shaderStages[0] = loadShader(getAssetPath() + "shaders/subpasses/composition.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/subpasses/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + + shaderStages[0] = loadShader(getShadersPath() + "subpasses/composition.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "subpasses/composition.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Use specialization constants to pass number of lights to the shader VkSpecializationMapEntry specializationEntry{}; @@ -937,8 +937,8 @@ public: pipelineCreateInfo.layout = pipelineLayouts.transparent; pipelineCreateInfo.subpass = 2; - shaderStages[0] = loadShader(getAssetPath() + "shaders/subpasses/transparent.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/subpasses/transparent.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "subpasses/transparent.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "subpasses/transparent.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.transparent)); } @@ -995,7 +995,7 @@ public: { light.position = glm::vec4(rndDist(rndGen) * 6.0f, 0.25f + std::abs(rndDist(rndGen)) * 4.0f, rndDist(rndGen) * 6.0f, 1.0f); light.color = colors[rndCol(rndGen)]; - light.radius = 1.0f + std::abs(rndDist(rndGen)); + light.radius = 1.0f + std::abs(rndDist(rndGen)); } } diff --git a/examples/terraintessellation/terraintessellation.cpp b/examples/terraintessellation/terraintessellation.cpp index cc72b704..03e266dd 100644 --- a/examples/terraintessellation/terraintessellation.cpp +++ b/examples/terraintessellation/terraintessellation.cpp @@ -122,7 +122,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.terrain, nullptr); if (pipelines.wireframe != VK_NULL_HANDLE) { @@ -153,7 +153,7 @@ public: } } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Tessellation shader support is required for this example @@ -175,7 +175,7 @@ public: if (deviceFeatures.samplerAnisotropy) { enabledFeatures.samplerAnisotropy = VK_TRUE; } - // Enable texture compression + // Enable texture compression if (deviceFeatures.textureCompressionBC) { enabledFeatures.textureCompressionBC = VK_TRUE; } @@ -353,7 +353,7 @@ public: // Terrain if (deviceFeatures.pipelineStatisticsQuery) { - // Begin pipeline statistics query + // Begin pipeline statistics query vkCmdBeginQuery(drawCmdBuffers[i], queryPool, 0, 0); } // Render @@ -387,7 +387,7 @@ public: HeightMap(std::string filename, uint32_t patchsize, AAssetManager* assetManager) #else HeightMap(std::string filename, uint32_t patchsize) -#endif +#endif { ktxResult result; ktxTexture* ktxTexture; @@ -416,7 +416,7 @@ public: }; ~HeightMap() - { + { delete[] heightdata; } @@ -431,7 +431,7 @@ public: }; // Generate a terrain quad patch for feeding to the tessellation control shader - void generateTerrain() + void generateTerrain() { struct Vertex { glm::vec3 pos; @@ -444,7 +444,7 @@ public: const uint32_t vertexCount = PATCH_SIZE * PATCH_SIZE; Vertex *vertices = new Vertex[vertexCount]; - + const float wx = 2.0f; const float wy = 2.0f; @@ -469,7 +469,7 @@ public: for (auto x = 0; x < PATCH_SIZE; x++) { for (auto y = 0; y < PATCH_SIZE; y++) - { + { // Get height samples centered around current position float heights[3][3]; for (auto hx = -1; hx <= 1; hx++) @@ -613,7 +613,7 @@ public: { // Binding 0 : Shared Tessellation shader ubo vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, 0), // Binding 1 : Height map @@ -667,9 +667,9 @@ public: { // Binding 0 : Shared tessellation shader ubo vks::initializers::writeDescriptorSet( - descriptorSets.terrain, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - 0, + descriptorSets.terrain, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 0, &uniformBuffers.terrainTessellation.descriptor), // Binding 1 : Displacement map vks::initializers::writeDescriptorSet( @@ -785,10 +785,10 @@ public: std::array shaderStages; // Terrain tessellation pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/terraintessellation/terrain.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/terraintessellation/terrain.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - shaderStages[2] = loadShader(getAssetPath() + "shaders/terraintessellation/terrain.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); - shaderStages[3] = loadShader(getAssetPath() + "shaders/terraintessellation/terrain.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); + shaderStages[0] = loadShader(getShadersPath() + "terraintessellation/terrain.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "terraintessellation/terrain.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[2] = loadShader(getShadersPath() + "terraintessellation/terrain.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); + shaderStages[3] = loadShader(getShadersPath() + "terraintessellation/terrain.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayouts.terrain, renderPass, 0); @@ -824,8 +824,8 @@ public: depthStencilState.depthWriteEnable = VK_FALSE; pipelineCreateInfo.stageCount = 2; pipelineCreateInfo.layout = pipelineLayouts.skysphere; - shaderStages[0] = loadShader(getAssetPath() + "shaders/terraintessellation/skysphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/terraintessellation/skysphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "terraintessellation/skysphere.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "terraintessellation/skysphere.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skysphere)); } diff --git a/examples/tessellation/tessellation.cpp b/examples/tessellation/tessellation.cpp index 6da021c8..45346d6c 100644 --- a/examples/tessellation/tessellation.cpp +++ b/examples/tessellation/tessellation.cpp @@ -59,7 +59,7 @@ public: struct { vks::Buffer tessControl, tessEval; } uniformBuffers; - + struct UBOTessControl { float tessLevel = 3.0f; } uboTessControl; @@ -76,7 +76,7 @@ public: VkPipeline solidPassThrough; VkPipeline wirePassThrough = VK_NULL_HANDLE; } pipelines; - + VkPipelineLayout pipelineLayout; VkDescriptorSet descriptorSet; VkDescriptorSetLayout descriptorSetLayout; @@ -93,7 +93,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.solid, nullptr); if (pipelines.wire != VK_NULL_HANDLE) { @@ -113,7 +113,7 @@ public: textures.colorMap.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Example uses tessellation shaders @@ -317,7 +317,7 @@ public: vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBuffers.tessControl.descriptor), // Binding 1 : Tessellation evaluation shader ubo vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, &uniformBuffers.tessEval.descriptor), - // Binding 2 : Color map + // Binding 2 : Color map vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 2, &textures.colorMap.descriptor) }; vkUpdateDescriptorSets(device, writeDescriptorSets.size(), writeDescriptorSets.data(), 0, NULL); @@ -380,10 +380,10 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/tessellation/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/tessellation/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); - shaderStages[2] = loadShader(getAssetPath() + "shaders/tessellation/pntriangles.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); - shaderStages[3] = loadShader(getAssetPath() + "shaders/tessellation/pntriangles.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); + shaderStages[0] = loadShader(getShadersPath() + "tessellation/base.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "tessellation/base.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[2] = loadShader(getShadersPath() + "tessellation/pntriangles.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); + shaderStages[3] = loadShader(getShadersPath() + "tessellation/pntriangles.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( @@ -415,8 +415,8 @@ public: // Pass through pipelines // Load pass through tessellation shaders (Vert and frag are reused) - shaderStages[2] = loadShader(getAssetPath() + "shaders/tessellation/passthrough.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); - shaderStages[3] = loadShader(getAssetPath() + "shaders/tessellation/passthrough.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); + shaderStages[2] = loadShader(getShadersPath() + "tessellation/passthrough.tesc.spv", VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT); + shaderStages[3] = loadShader(getShadersPath() + "tessellation/passthrough.tese.spv", VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT); // Solid rasterizationState.polygonMode = VK_POLYGON_MODE_FILL; @@ -483,7 +483,7 @@ public: preparePipelines(); setupDescriptorPool(); setupDescriptorSet(); - buildCommandBuffers(); + buildCommandBuffers(); prepared = true; } diff --git a/examples/textoverlay/textoverlay.cpp b/examples/textoverlay/textoverlay.cpp index b716daec..e8a386fc 100644 --- a/examples/textoverlay/textoverlay.cpp +++ b/examples/textoverlay/textoverlay.cpp @@ -232,7 +232,7 @@ public: VkCommandBuffer copyCmd; cmdBufAllocateInfo.commandBufferCount = 1; VK_CHECK_RESULT(vkAllocateCommandBuffers(vulkanDevice->logicalDevice, &cmdBufAllocateInfo, ©Cmd)); - + VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo(); VK_CHECK_RESULT(vkBeginCommandBuffer(copyCmd, &cmdBufInfo)); @@ -391,7 +391,7 @@ public: vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(1, 1, VK_FORMAT_R32G32_SFLOAT, sizeof(glm::vec2)), // Location 1: UV }; - + VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); vertexInputState.vertexBindingDescriptionCount = static_cast(vertexInputBindings.size()); vertexInputState.pVertexBindingDescriptions = vertexInputBindings.data(); @@ -493,7 +493,7 @@ public: VK_CHECK_RESULT(vkCreateRenderPass(vulkanDevice->logicalDevice, &renderPassInfo, nullptr, &renderPass)); } - // Map buffer + // Map buffer void beginTextUpdate() { VK_CHECK_RESULT(vkMapMemory(vulkanDevice->logicalDevice, memory, 0, VK_WHOLE_SIZE, 0, (void **)&mapped)); @@ -655,7 +655,7 @@ public: VkPipelineLayout pipelineLayout; VkPipeline pipeline; - + VkDescriptorSetLayout descriptorSetLayout; VkDescriptorSet descriptorSet; @@ -739,7 +739,7 @@ public: textOverlay->addText(ss.str(), 5.0f, 25.0f, TextOverlay::alignLeft); textOverlay->addText(deviceProperties.deviceName, 5.0f, 45.0f, TextOverlay::alignLeft); - + // Display projected cube vertices for (int32_t x = -1; x <= 1; x += 2) { @@ -838,7 +838,7 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color @@ -851,8 +851,8 @@ public: // Shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/textoverlay/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/textoverlay/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "textoverlay/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "textoverlay/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); pipelineCreateInfo.pVertexInputState = &vertexInputState; @@ -896,8 +896,8 @@ public: { // Load the text rendering shaders std::vector shaderStages; - shaderStages.push_back(loadShader(getAssetPath() + "shaders/textoverlay/text.vert.spv", VK_SHADER_STAGE_VERTEX_BIT)); - shaderStages.push_back(loadShader(getAssetPath() + "shaders/textoverlay/text.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT)); + shaderStages.push_back(loadShader(getShadersPath() + "textoverlay/text.vert.spv", VK_SHADER_STAGE_VERTEX_BIT)); + shaderStages.push_back(loadShader(getShadersPath() + "textoverlay/text.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT)); textOverlay = new TextOverlay( vulkanDevice, diff --git a/examples/texture/texture.cpp b/examples/texture/texture.cpp index d99f4f69..75c76a03 100644 --- a/examples/texture/texture.cpp +++ b/examples/texture/texture.cpp @@ -741,8 +741,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/texture/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texture/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texture/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texture/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/texture3d/texture3d.cpp b/examples/texture3d/texture3d.cpp index 374bbf23..ceff37e3 100644 --- a/examples/texture3d/texture3d.cpp +++ b/examples/texture3d/texture3d.cpp @@ -42,18 +42,18 @@ class PerlinNoise { private: uint32_t permutations[512]; - T fade(T t) - { - return t * t * t * (t * (t * (T)6 - (T)15) + (T)10); + T fade(T t) + { + return t * t * t * (t * (t * (T)6 - (T)15) + (T)10); } - T lerp(T t, T a, T b) - { - return a + t * (b - a); + T lerp(T t, T a, T b) + { + return a + t * (b - a); } - T grad(int hash, T x, T y, T z) + T grad(int hash, T x, T y, T z) { // Convert LO 4 bits of hash code into 12 gradient directions - int h = hash & 15; + int h = hash & 15; T u = h < 8 ? x : y; T v = h < 4 ? y : h == 12 || h == 14 ? x : z; return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v); @@ -71,7 +71,7 @@ public: for (uint32_t i = 0; i < 256; i++) { permutations[i] = permutations[256 + i] = plookup[i]; - } + } } T noise(T x, T y, T z) { @@ -98,7 +98,7 @@ public: uint32_t BB = permutations[B + 1] + Z; // And add blended results for 8 corners of the cube; - T res = lerp(w, lerp(v, + T res = lerp(w, lerp(v, lerp(u, grad(permutations[AA], x, y, z), grad(permutations[BA], x - 1, y, z)), lerp(u, grad(permutations[AB], x, y - 1, z), grad(permutations[BB], x - 1, y - 1, z))), lerp(v, lerp(u, grad(permutations[AA + 1], x, y, z - 1), grad(permutations[BA + 1], x - 1, y, z - 1)), lerp(u, grad(permutations[AB + 1], x, y - 1, z - 1), grad(permutations[BB + 1], x - 1, y - 1, z - 1)))); return res; @@ -111,13 +111,13 @@ class FractalNoise { private: PerlinNoise perlinNoise; - uint32_t octaves; + uint32_t octaves; T frequency; T amplitude; T persistence; public: - FractalNoise(const PerlinNoise &perlinNoise) + FractalNoise(const PerlinNoise &perlinNoise) { this->perlinNoise = perlinNoise; octaves = 6; @@ -129,7 +129,7 @@ public: T sum = 0; T frequency = (T)1; T amplitude = (T)1; - T max = (T)0; + T max = (T)0; for (uint32_t i = 0; i < octaves; i++) { sum += perlinNoise.noise(x * frequency, y * frequency, z * frequency) * amplitude; @@ -203,7 +203,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class destroyTextureImage(texture); @@ -365,7 +365,7 @@ public: VkBufferCreateInfo bufferCreateInfo = vks::initializers::bufferCreateInfo(); bufferCreateInfo.size = texMemSize; bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; - bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VK_CHECK_RESULT(vkCreateBuffer(device, &bufferCreateInfo, nullptr, &stagingBuffer)); // Allocate host visible memory for data upload @@ -418,7 +418,7 @@ public: stagingBuffer, texture.image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, + 1, &bufferCopyRegion); // Change texture image layout to shader read after all mip levels have been copied @@ -552,8 +552,8 @@ public: vertices.inputBinding.resize(1); vertices.inputBinding[0] = vks::initializers::vertexInputBindingDescription( - VERTEX_BUFFER_BIND_ID, - sizeof(Vertex), + VERTEX_BUFFER_BIND_ID, + sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX); // Attribute descriptions @@ -565,7 +565,7 @@ public: VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, - offsetof(Vertex, pos)); + offsetof(Vertex, pos)); // Location 1 : Texture coordinates vertices.inputAttributes[1] = vks::initializers::vertexInputAttributeDescription( @@ -597,7 +597,7 @@ public: vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1) }; - VkDescriptorPoolCreateInfo descriptorPoolInfo = + VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo( static_cast(poolSizes.size()), poolSizes.data(), @@ -608,21 +608,21 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = + std::vector setLayoutBindings = { // Binding 0 : Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - VK_SHADER_STAGE_VERTEX_BIT, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 1 : Fragment shader image sampler vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - VK_SHADER_STAGE_FRAGMENT_BIT, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_SHADER_STAGE_FRAGMENT_BIT, 1) }; - VkDescriptorSetLayoutCreateInfo descriptorLayout = + VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo( setLayoutBindings.data(), static_cast(setLayoutBindings.size())); @@ -639,7 +639,7 @@ public: void setupDescriptorSet() { - VkDescriptorSetAllocateInfo allocInfo = + VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo( descriptorPool, &descriptorSetLayout, @@ -651,15 +651,15 @@ public: { // Binding 0 : Vertex shader uniform buffer vks::initializers::writeDescriptorSet( - descriptorSet, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - 0, + descriptorSet, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 0, &uniformBufferVS.descriptor), // Binding 1 : Fragment shader texture sampler vks::initializers::writeDescriptorSet( - descriptorSet, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - 1, + descriptorSet, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + 1, &texture.descriptor) }; @@ -688,7 +688,7 @@ public: VkPipelineColorBlendStateCreateInfo colorBlendState = vks::initializers::pipelineColorBlendStateCreateInfo( - 1, + 1, &blendAttachmentState); VkPipelineDepthStencilStateCreateInfo depthStencilState = @@ -718,8 +718,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/texture3d/texture3d.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texture3d/texture3d.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texture3d/texture3d.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texture3d/texture3d.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/texturearray/texturearray.cpp b/examples/texturearray/texturearray.cpp index c672d2d8..c77f56f4 100644 --- a/examples/texturearray/texturearray.cpp +++ b/examples/texturearray/texturearray.cpp @@ -488,8 +488,8 @@ public: // Instacing pipeline std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/texturearray/instancing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texturearray/instancing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texturearray/instancing.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texturearray/instancing.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0); pipelineCI.pVertexInputState = &vertexInputStateCI; diff --git a/examples/texturecubemap/texturecubemap.cpp b/examples/texturecubemap/texturecubemap.cpp index 6ae3eb24..e32cc283 100644 --- a/examples/texturecubemap/texturecubemap.cpp +++ b/examples/texturecubemap/texturecubemap.cpp @@ -603,13 +603,13 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Skybox pipeline (background cube) - shaderStages[0] = loadShader(getAssetPath() + "shaders/texturecubemap/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texturecubemap/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texturecubemap/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texturecubemap/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skybox)); // Cube map reflect pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/texturecubemap/reflect.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texturecubemap/reflect.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texturecubemap/reflect.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texturecubemap/reflect.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // Enable depth test and write depthStencilState.depthWriteEnable = VK_TRUE; depthStencilState.depthTestEnable = VK_TRUE; diff --git a/examples/texturemipmapgen/texturemipmapgen.cpp b/examples/texturemipmapgen/texturemipmapgen.cpp index e0e12140..bac70fc2 100644 --- a/examples/texturemipmapgen/texturemipmapgen.cpp +++ b/examples/texturemipmapgen/texturemipmapgen.cpp @@ -140,7 +140,7 @@ public: vks::tools::exitFatal("Could not load texture from " + filename + "\n\nThe file may be part of the additional asset pack.\n\nRun \"download_assets.py\" in the repository root to download the latest version.", -1); } result = ktxTexture_CreateFromNamedFile(filename.c_str(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &ktxTexture); -#endif +#endif assert(result == KTX_SUCCESS); texture.width = ktxTexture->baseWidth; @@ -171,7 +171,7 @@ public: bufferCreateInfo.size = ktxTextureSize; // This buffer is used as a transfer source for the buffer copy bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; - bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VK_CHECK_RESULT(vkCreateBuffer(device, &bufferCreateInfo, nullptr, &stagingBuffer)); vkGetBufferMemoryRequirements(device, stagingBuffer, &memReqs); memAllocInfo.allocationSize = memReqs.size; @@ -263,7 +263,7 @@ public: // Copy down mips from n-1 to n for (int32_t i = 1; i < texture.mipLevels; i++) { - VkImageBlit imageBlit{}; + VkImageBlit imageBlit{}; // Source imageBlit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; @@ -468,7 +468,7 @@ public: vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions[0] = vks::initializers::vertexInputBindingDescription( - VERTEX_BUFFER_BIND_ID, + VERTEX_BUFFER_BIND_ID, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX); @@ -481,7 +481,7 @@ public: VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, - 0); + 0); // Location 1 : Texture coordinates vertices.attributeDescriptions[1] = vks::initializers::vertexInputAttributeDescription( @@ -513,7 +513,7 @@ public: vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_SAMPLER, 3), // 3 samplers (array) }; - VkDescriptorPoolCreateInfo descriptorPoolInfo = + VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo( static_cast(poolSizes.size()), poolSizes.data(), @@ -545,7 +545,7 @@ public: 2, 3)); - VkDescriptorSetLayoutCreateInfo descriptorLayout = + VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo( setLayoutBindings.data(), static_cast(setLayoutBindings.size())); @@ -614,7 +614,7 @@ public: VkPipelineColorBlendStateCreateInfo colorBlendState = vks::initializers::pipelineColorBlendStateCreateInfo( - 1, + 1, &blendAttachmentState); VkPipelineDepthStencilStateCreateInfo depthStencilState = @@ -644,8 +644,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/texturemipmapgen/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texturemipmapgen/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texturemipmapgen/texture.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texturemipmapgen/texture.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/texturesparseresidency/texturesparseresidency.cpp b/examples/texturesparseresidency/texturesparseresidency.cpp index a1bcb26c..7958176a 100644 --- a/examples/texturesparseresidency/texturesparseresidency.cpp +++ b/examples/texturesparseresidency/texturesparseresidency.cpp @@ -7,7 +7,7 @@ */ /* -todos: +todos: - check sparse binding support on queue - residencyNonResidentStrict - meta data @@ -48,14 +48,14 @@ struct Vertex { // Virtual texture page as a part of the partially resident texture // Contains memory bindings, offsets and status information struct VirtualTexturePage -{ +{ VkOffset3D offset; VkExtent3D extent; VkSparseImageMemoryBind imageMemoryBind; // Sparse image memory bind for this page VkDeviceSize size; // Page (memory) size in bytes uint32_t mipLevel; // Mip level that this page belongs to uint32_t layer; // Array layer that this page belongs to - uint32_t index; + uint32_t index; VirtualTexturePage() { @@ -101,7 +101,7 @@ struct VirtualTexturePage } }; -// Virtual texture object containing all pages +// Virtual texture object containing all pages struct VirtualTexture { VkDevice device; @@ -110,10 +110,10 @@ struct VirtualTexture std::vector pages; // Contains all virtual pages of the texture std::vector sparseImageMemoryBinds; // Sparse image memory bindings of all memory-backed virtual tables std::vector opaqueMemoryBinds; // Sparse ópaque memory bindings for the mip tail (if present) - VkSparseImageMemoryBindInfo imageMemoryBindInfo; // Sparse image memory bind info + VkSparseImageMemoryBindInfo imageMemoryBindInfo; // Sparse image memory bind info VkSparseImageOpaqueMemoryBindInfo opaqueMemoryBindInfo; // Sparse image opaque memory bind info (mip tail) uint32_t mipTailStart; // First mip level in mip tail - + VirtualTexturePage* addPage(VkOffset3D offset, VkExtent3D extent, const VkDeviceSize size, const uint32_t mipLevel, uint32_t layer) { VirtualTexturePage newPage; @@ -240,14 +240,14 @@ public: camera.setRotation(glm::vec3(-8.5f, -200.0f, 0.0f)); camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 1024.0f); settings.overlay = true; - // Device features to be enabled for this example + // Device features to be enabled for this example enabledFeatures.shaderResourceResidency = VK_TRUE; enabledFeatures.shaderResourceMinLod = VK_TRUE; } ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class if (heightMap) @@ -290,7 +290,7 @@ public: texture.device = vulkanDevice->logicalDevice; texture.width = width; texture.height = height; - texture.mipLevels = floor(log2(std::max(width, height))) + 1; + texture.mipLevels = floor(log2(std::max(width, height))) + 1; texture.layerCount = layerCount; texture.format = format; @@ -394,7 +394,7 @@ public: //todo:multiple reqs texture.mipTailStart = reqs.imageMipTailFirstLod; } - + lastFilledMip = texture.mipTailStart - 1; // Get sparse image requirements for the color aspect @@ -421,7 +421,7 @@ public: memoryTypeIndex = vulkanDevice->getMemoryType(sparseImageMemoryReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); // Get sparse bindings - uint32_t sparseBindsCount = static_cast(sparseImageMemoryReqs.size / sparseImageMemoryReqs.alignment); + uint32_t sparseBindsCount = static_cast(sparseImageMemoryReqs.size / sparseImageMemoryReqs.alignment); std::vector sparseMemoryBinds(sparseBindsCount); // Check if the format has a single mip tail for all layers or one mip tail for each layer @@ -460,7 +460,7 @@ public: { for (uint32_t x = 0; x < sparseBindCounts.x; x++) { - // Offset + // Offset VkOffset3D offset; offset.x = x * imageGranularity.width; offset.y = y * imageGranularity.height; @@ -683,8 +683,8 @@ public: vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions[0] = vks::initializers::vertexInputBindingDescription( - VERTEX_BUFFER_BIND_ID, - sizeof(Vertex), + VERTEX_BUFFER_BIND_ID, + sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX); // Attribute descriptions @@ -696,7 +696,7 @@ public: VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, - offsetof(Vertex, pos)); + offsetof(Vertex, pos)); // Location 1 : Vertex normal vertices.attributeDescriptions[1] = vks::initializers::vertexInputAttributeDescription( @@ -728,7 +728,7 @@ public: vks::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1) }; - VkDescriptorPoolCreateInfo descriptorPoolInfo = + VkDescriptorPoolCreateInfo descriptorPoolInfo = vks::initializers::descriptorPoolCreateInfo( static_cast(poolSizes.size()), poolSizes.data(), @@ -739,21 +739,21 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = + std::vector setLayoutBindings = { // Binding 0 : Vertex shader uniform buffer vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - VK_SHADER_STAGE_VERTEX_BIT, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + VK_SHADER_STAGE_VERTEX_BIT, 0), // Binding 1 : Fragment shader image sampler vks::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - VK_SHADER_STAGE_FRAGMENT_BIT, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_SHADER_STAGE_FRAGMENT_BIT, 1) }; - VkDescriptorSetLayoutCreateInfo descriptorLayout = + VkDescriptorSetLayoutCreateInfo descriptorLayout = vks::initializers::descriptorSetLayoutCreateInfo( setLayoutBindings.data(), static_cast(setLayoutBindings.size())); @@ -770,7 +770,7 @@ public: void setupDescriptorSet() { - VkDescriptorSetAllocateInfo allocInfo = + VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo( descriptorPool, &descriptorSetLayout, @@ -782,15 +782,15 @@ public: { // Binding 0 : Vertex shader uniform buffer vks::initializers::writeDescriptorSet( - descriptorSet, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - 0, + descriptorSet, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + 0, &uniformBufferVS.descriptor), // Binding 1 : Fragment shader texture sampler vks::initializers::writeDescriptorSet( - descriptorSet, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - 1, + descriptorSet, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + 1, &texture.descriptor) }; @@ -819,7 +819,7 @@ public: VkPipelineColorBlendStateCreateInfo colorBlendState = vks::initializers::pipelineColorBlendStateCreateInfo( - 1, + 1, &blendAttachmentState); VkPipelineDepthStencilStateCreateInfo depthStencilState = @@ -849,8 +849,8 @@ public: // Load shaders std::array shaderStages; - shaderStages[0] = loadShader(getAssetPath() + "shaders/texturesparseresidency/sparseresidency.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/texturesparseresidency/sparseresidency.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "texturesparseresidency/sparseresidency.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "texturesparseresidency/sparseresidency.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VkGraphicsPipelineCreateInfo pipelineCreateInfo = vks::initializers::pipelineCreateInfo( diff --git a/examples/triangle/triangle.cpp b/examples/triangle/triangle.cpp index 924eba74..2c42cb70 100644 --- a/examples/triangle/triangle.cpp +++ b/examples/triangle/triangle.cpp @@ -79,7 +79,7 @@ public: glm::mat4 viewMatrix; } uboVS; - // The pipeline layout is used by a pipline to access the descriptor sets + // The pipeline layout is used by a pipline to access the descriptor sets // It defines interface (without binding any actual data) between the shader stages used by the pipeline and the shader resources // A pipeline layout can be shared among multiple pipelines as long as their interfaces match VkPipelineLayout pipelineLayout; @@ -124,7 +124,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note: Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipeline, nullptr); @@ -152,7 +152,7 @@ public: // This function is used to request a device memory type that supports all the property flags we request (e.g. device local, host visibile) // Upon success it will return the index of the memory type that fits our requestes memory properties // This is necessary as implementations can offer an arbitrary number of memory types with different - // memory properties. + // memory properties. // You can check http://vulkan.gpuinfo.org/ for details on different memory configurations uint32_t getMemoryTypeIndex(uint32_t typeBits, VkMemoryPropertyFlags properties) { @@ -209,7 +209,7 @@ public: cmdBufAllocateInfo.commandPool = cmdPool; cmdBufAllocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; cmdBufAllocateInfo.commandBufferCount = 1; - + VK_CHECK_RESULT(vkAllocateCommandBuffers(device, &cmdBufAllocateInfo, &cmdBuffer)); // If requested, also start the new command buffer @@ -276,7 +276,7 @@ public: renderPassBeginInfo.renderArea.extent.height = height; renderPassBeginInfo.clearValueCount = 2; renderPassBeginInfo.pClearValues = clearValues; - + for (int32_t i = 0; i < drawCmdBuffers.size(); ++i) { // Set target frame buffer @@ -323,7 +323,7 @@ public: vkCmdEndRenderPass(drawCmdBuffers[i]); - // Ending the render pass will add an implicit barrier transitioning the frame buffer color attachment to + // Ending the render pass will add an implicit barrier transitioning the frame buffer color attachment to // VK_IMAGE_LAYOUT_PRESENT_SRC_KHR for presenting it to the windowing system VK_CHECK_RESULT(vkEndCommandBuffer(drawCmdBuffers[i])); @@ -374,7 +374,7 @@ public: // what should be done a real-world application, where you should allocate large chunkgs of memory at once isntead. // Setup vertices - std::vector vertexBuffer = + std::vector vertexBuffer = { { { 1.0f, 1.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } }, { { -1.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } }, @@ -395,7 +395,7 @@ public: if (useStagingBuffers) { - // Static data like vertex and index buffer should be stored on the device memory + // Static data like vertex and index buffer should be stored on the device memory // for optimal (and fastest) access by the GPU // // To achieve this we use so-called "staging buffers" : @@ -695,7 +695,7 @@ public: } // Render pass setup - // Render passes are a new concept in Vulkan. They describe the attachments used during rendering and may contain multiple subpasses with attachment dependencies + // Render passes are a new concept in Vulkan. They describe the attachments used during rendering and may contain multiple subpasses with attachment dependencies // This allows the driver to know up-front what the rendering will look like and is a good opportunity to optimize especially on tile-based renderers (with multiple subpasses) // Using sub pass dependencies also adds implicit layout transitions for the attachment used, so we don't need to add explicit image memory barriers to transform them // Note: Override of virtual function in the base class and called from within VulkanExampleBase::prepare @@ -715,7 +715,7 @@ public: attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; // Same for store attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; // Layout at render pass start. Initial doesn't matter, so we use undefined attachments[0].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; // Layout to which the attachment is transitioned when the render pass is finished - // As we want to present the color buffer to the swapchain, we transition to PRESENT_KHR + // As we want to present the color buffer to the swapchain, we transition to PRESENT_KHR // Depth attachment attachments[1].format = depthFormat; // A proper depth format is selected in the example base attachments[1].samples = VK_SAMPLE_COUNT_1_BIT; @@ -926,7 +926,7 @@ public: multisampleState.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; multisampleState.pSampleMask = nullptr; - // Vertex input descriptions + // Vertex input descriptions // Specifies the vertex input parameters for a pipeline // Vertex input binding @@ -970,7 +970,7 @@ public: // Set pipeline stage for this shader shaderStages[0].stage = VK_SHADER_STAGE_VERTEX_BIT; // Load binary SPIR-V shader - shaderStages[0].module = loadSPIRVShader(getAssetPath() + "shaders/triangle/triangle.vert.spv"); + shaderStages[0].module = loadSPIRVShader(getShadersPath() + "triangle/triangle.vert.spv"); // Main entry point for the shader shaderStages[0].pName = "main"; assert(shaderStages[0].module != VK_NULL_HANDLE); @@ -980,7 +980,7 @@ public: // Set pipeline stage for this shader shaderStages[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT; // Load binary SPIR-V shader - shaderStages[1].module = loadSPIRVShader(getAssetPath() + "shaders/triangle/triangle.frag.spv"); + shaderStages[1].module = loadSPIRVShader(getShadersPath() + "triangle/triangle.frag.spv"); // Main entry point for the shader shaderStages[1].pName = "main"; assert(shaderStages[1].module != VK_NULL_HANDLE); @@ -1029,7 +1029,7 @@ public: // Create a new buffer VK_CHECK_RESULT(vkCreateBuffer(device, &bufferInfo, nullptr, &uniformBufferVS.buffer)); - // Get memory requirements including size, alignment and memory type + // Get memory requirements including size, alignment and memory type vkGetBufferMemoryRequirements(device, uniformBufferVS.buffer, &memReqs); allocInfo.allocationSize = memReqs.size; // Get the memory type index that supports host visibile memory access @@ -1041,7 +1041,7 @@ public: VK_CHECK_RESULT(vkAllocateMemory(device, &allocInfo, nullptr, &(uniformBufferVS.memory))); // Bind memory to buffer VK_CHECK_RESULT(vkBindBufferMemory(device, uniformBufferVS.buffer, uniformBufferVS.memory, 0)); - + // Store information in the uniform's descriptor that is used by the descriptor set uniformBufferVS.descriptor.buffer = uniformBufferVS.buffer; uniformBufferVS.descriptor.offset = 0; @@ -1052,7 +1052,7 @@ public: void updateUniformBuffers() { - // Pass matrices to the shaders + // Pass matrices to the shaders uboVS.projectionMatrix = camera.matrices.perspective; uboVS.viewMatrix = camera.matrices.view; uboVS.modelMatrix = glm::mat4(1.0f); diff --git a/examples/viewportarray/viewportarray.cpp b/examples/viewportarray/viewportarray.cpp index 5435e8c4..378d5427 100644 --- a/examples/viewportarray/viewportarray.cpp +++ b/examples/viewportarray/viewportarray.cpp @@ -77,7 +77,7 @@ public: uniformBufferGS.destroy(); } - // Enable physical device features required for this example + // Enable physical device features required for this example virtual void getEnabledFeatures() { // Geometry shader support is required for this example @@ -156,7 +156,7 @@ public: void loadAssets() { - scene.loadFromFile(getAssetPath() + "models/sampleroom.dae", vertexLayout, 0.25f, vulkanDevice, queue); + scene.loadFromFile(getAssetPath() + "models/sampleroom.dae", vertexLayout, 0.25f, vulkanDevice, queue); } void setupDescriptorPool() @@ -174,7 +174,7 @@ public: void setupDescriptorSetLayout() { - std::vector setLayoutBindings = { + std::vector setLayoutBindings = { vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_GEOMETRY_BIT, 0) // Binding 1: Geometry shader ubo }; @@ -199,7 +199,7 @@ public: VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet)); - std::vector writeDescriptorSets = { + std::vector writeDescriptorSets = { vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 0, &uniformBufferGS.descriptor), // Binding 0 :Geometry shader ubo }; @@ -251,8 +251,8 @@ public: vks::initializers::vertexInputBindingDescription(0, vertexLayout.stride(), VK_VERTEX_INPUT_RATE_VERTEX), }; std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normals + vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normals vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 6), // Location 2: Color }; @@ -274,11 +274,11 @@ public: pipelineCreateInfo.pStages = shaderStages.data(); pipelineCreateInfo.renderPass = renderPass; - shaderStages[0] = loadShader(getAssetPath() + "shaders/viewportarray/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/viewportarray/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "viewportarray/scene.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "viewportarray/scene.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); // A geometry shader is used to output geometry to multiple viewports in one single pass // See the "invoctations" decorator of the layout input in the shader - shaderStages[2] = loadShader(getAssetPath() + "shaders/viewportarray/multiview.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); + shaderStages[2] = loadShader(getShadersPath() + "viewportarray/multiview.geom.spv", VK_SHADER_STAGE_GEOMETRY_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipeline)); } @@ -324,7 +324,7 @@ public: rotM = glm::rotate(rotM, glm::radians(camera.rotation.x), glm::vec3(1.0f, 0.0f, 0.0f)); rotM = glm::rotate(rotM, glm::radians(camera.rotation.y), glm::vec3(0.0f, 1.0f, 0.0f)); rotM = glm::rotate(rotM, glm::radians(camera.rotation.z), glm::vec3(0.0f, 0.0f, 1.0f)); - + // Left eye left = -aspectRatio * wd2 + 0.5f * eyeSeparation * ndfl; right = aspectRatio * wd2 + 0.5f * eyeSeparation * ndfl; diff --git a/examples/vulkanscene/vulkanscene.cpp b/examples/vulkanscene/vulkanscene.cpp index 33013bd2..540b2e84 100644 --- a/examples/vulkanscene/vulkanscene.cpp +++ b/examples/vulkanscene/vulkanscene.cpp @@ -1,5 +1,5 @@ /* -* Vulkan Demo Scene +* Vulkan Demo Scene * * Don't take this a an example, it's more of a personal playground * @@ -101,7 +101,7 @@ public: ~VulkanExample() { - // Clean up used Vulkan resources + // Clean up used Vulkan resources // Note : Inherited destructor cleans up resources stored in base class vkDestroyPipeline(device, pipelines.logos, nullptr); vkDestroyPipeline(device, pipelines.models, nullptr); @@ -343,10 +343,10 @@ public: // Attribute descriptions // Describes memory layout and shader positions std::vector vertexInputAttributes = { - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 5), // Location 2: Texture coordinates - vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 5), // Location 2: Texture coordinates + vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color }; VkPipelineVertexInputStateCreateInfo vertexInputState = vks::initializers::pipelineVertexInputStateCreateInfo(); @@ -358,20 +358,20 @@ public: pipelineCreateInfo.pVertexInputState = &vertexInputState; // Default mesh rendering pipeline - shaderStages[0] = loadShader(getAssetPath() + "shaders/vulkanscene/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/vulkanscene/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "vulkanscene/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "vulkanscene/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.models)); // Pipeline for the logos - shaderStages[0] = loadShader(getAssetPath() + "shaders/vulkanscene/logo.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/vulkanscene/logo.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "vulkanscene/logo.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "vulkanscene/logo.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.logos)); // Pipeline for the sky sphere rasterizationState.cullMode = VK_CULL_MODE_FRONT_BIT; // Inverted culling depthStencilState.depthWriteEnable = VK_FALSE; // No depth writes - shaderStages[0] = loadShader(getAssetPath() + "shaders/vulkanscene/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); - shaderStages[1] = loadShader(getAssetPath() + "shaders/vulkanscene/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + shaderStages[0] = loadShader(getShadersPath() + "vulkanscene/skybox.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shaderStages[1] = loadShader(getShadersPath() + "vulkanscene/skybox.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); VK_CHECK_RESULT(vkCreateGraphicsPipelines(device, pipelineCache, 1, &pipelineCreateInfo, nullptr, &pipelines.skybox)); }