From c37305b5b7d59aaacf6f92a46def246343fab6c1 Mon Sep 17 00:00:00 2001
From: Alexander Gauggel <agauggel@uni-koblenz.de>
Date: Sat, 26 Jun 2021 19:19:08 +0200
Subject: [PATCH] [#69] Use runtime shader compile

---
 projects/particle_simulation/shaders/comp1.spv   | Bin 4296 -> 0 bytes
 .../particle_simulation/shaders/comp_space.spv   | Bin 4612 -> 0 bytes
 .../particle_simulation/shaders/comp_water.spv   | Bin 4296 -> 0 bytes
 projects/particle_simulation/shaders/compile.bat |   6 ------
 projects/particle_simulation/shaders/frag.spv    | Bin 2168 -> 0 bytes
 .../particle_simulation/shaders/frag_space.spv   | Bin 2700 -> 0 bytes
 .../particle_simulation/shaders/frag_water.spv   | Bin 2760 -> 0 bytes
 projects/particle_simulation/shaders/vert.spv    | Bin 2956 -> 0 bytes
 projects/particle_simulation/src/main.cpp        |  14 ++++++++++----
 9 files changed, 10 insertions(+), 10 deletions(-)
 delete mode 100644 projects/particle_simulation/shaders/comp1.spv
 delete mode 100644 projects/particle_simulation/shaders/comp_space.spv
 delete mode 100644 projects/particle_simulation/shaders/comp_water.spv
 delete mode 100644 projects/particle_simulation/shaders/compile.bat
 delete mode 100644 projects/particle_simulation/shaders/frag.spv
 delete mode 100644 projects/particle_simulation/shaders/frag_space.spv
 delete mode 100644 projects/particle_simulation/shaders/frag_water.spv
 delete mode 100644 projects/particle_simulation/shaders/vert.spv

diff --git a/projects/particle_simulation/shaders/comp1.spv b/projects/particle_simulation/shaders/comp1.spv
deleted file mode 100644
index b07868be1fc5595cda5ebc37604ba185c6ac29a3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4296
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
If`O3%08QUufB*mh

diff --git a/projects/particle_simulation/shaders/comp_space.spv b/projects/particle_simulation/shaders/comp_space.spv
deleted file mode 100644
index 1064be63178218c2bae7ccb62ade34a281518a83..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4612
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
Lfsw(2fsp|KaTBZN

diff --git a/projects/particle_simulation/shaders/comp_water.spv b/projects/particle_simulation/shaders/comp_water.spv
deleted file mode 100644
index b07868be1fc5595cda5ebc37604ba185c6ac29a3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4296
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
If`O3%08QUufB*mh

diff --git a/projects/particle_simulation/shaders/compile.bat b/projects/particle_simulation/shaders/compile.bat
deleted file mode 100644
index db5496e2..00000000
--- a/projects/particle_simulation/shaders/compile.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-%VULKAN_SDK%\Bin32\glslc.exe shader.vert -o vert.spv
-%VULKAN_SDK%\Bin32\glslc.exe shader_water.frag -o frag_water.spv
-%VULKAN_SDK%\Bin32\glslc.exe shader_water.comp -o comp_water.spv
-%VULKAN_SDK%\Bin32\glslc.exe shader_space.frag -o frag_space.spv
-%VULKAN_SDK%\Bin32\glslc.exe shader_space.comp -o comp_space.spv
-pause
\ No newline at end of file
diff --git a/projects/particle_simulation/shaders/frag.spv b/projects/particle_simulation/shaders/frag.spv
deleted file mode 100644
index 0ce71df61bc127c7d057d290b78871593ee4f78e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2168
zcmZQ(Qf6mhU}WH8;AIGAfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N<T1qQG+e
z3>*wB3=CkLo0ypglHg`wU{GRUVDM*PU=Uzn2FtNCFfcGPFf%YQFfbfq1gYm_aQBIK
z404JuPAy0*N-Rl@FV09zNiB-cPs&P7E-417;R2~~_xE@Aag9$dD2OjEsmw`@&&kY7
zjZeueN=+`wEK3Ec<3LiEnU|bXnu4r=m4OB92AKOmd=3T%hP?cu+?)~y237_(29TQz
z5{rv-GSgB+GILWw{s5^HWME*(%`Ytm39vG-G6*p+Fq8)57iX4a=7T)T#=r&^1F0`S
z2s41xiZC!RASnflfx;!fw8S|-C%*`!2V^%WoIrMmrRL-(XO>h##90^uKz2b@vN5oN
z`5?JusAiD+f*2SWph_6r8CbynkYiu~hqDLNy&yfxAcBE`!JUB_>|RhjfYgKB2yzoh
z8pc;-0Hp|!S{86Tg3N=-gWL+@gVG1ce2^PKa>(X`#9-!w+=pyFhz~L!q(_*63G7Zq
zaLRzVS&V_1fsKKIK>>_e7(nR;gh6833@l(dPLO7X273ht76vY;TS4;HP(COwLGBZ0
zU}4~AU;yg@xd)_PfPn#QCP-Wk8WtcnNKP0UZlE{@nFZp5!Uv>Rl!1jo6znEQ*nr#u
z;){XZ!oUEM7l+D&gh28jz66K^7H46Qgqja>D@<Mn>VA-0L4F3wf$|f`J)m#`<us5u
z$UPuFC@eu@A`DCnDhvz^Aag)^)S&jj_!<lh3}?^y*unUk5P5qY26k}RYB4Y{fYgA*
zLE#C~4^yiPQR@KXn=&vk%$hk9Zk8DX1B0=#G2AS31_lO@8jv`;S@vMF8sKI*GcYiu
zrKQ33x-c*>fZPBQhv|j6(F>He85kHq;vfuiBPg7Fp>YZd2T(ZqLBkLv4hkm_ACyi(
zX#f<*p!5g|Ly+1)XdHmVKx#pJP?`kAu^9s^I6Z>GALMM1`9Bz#7+4t?7(i-4=@3+I
zfM^gOl$Jo{1Bh=6O`AO6a+869hXGVFFfi~!-R8;w5@TR!2A4Jr417?3f#mHNm>EFk
zg2Wsd*ud#Tih+Rvl=eXB3zUXn=1Vg$Fo5J>>SU4BfzlF89Vm~2<N_F2!FfQQfq?;}
z7bFg{59Dr;7)(7V|AO+(4hB|mx>99eU;v4M!hI#wFX{{o3?Olk7$`3K7+Aq+Nt=Oz
z0hFFV@-Xvspy2>BPmh6t0VD=WTi+R&8Nd|@0|Ub^1{Ma8oIV2sSPT^2AU4b#L#R2s
zpzbnaU|;}=f!y$ufeEe$WZqW>cCg!x85qE3g5nLN9%LTO4<?|r3k`c@KUgp@Fo4oA
zNWKy3FH3O#VqgHt!Q5j7b<aMid#o847(ik$f7yZ(4%A;DIU5EB29OxYUl2B=46}op
z0}CGq1_lO@7%0Dh`~}kkqGA4W1gAqtIDyoI%!B#MiGhIuBo7J~WPgFu9Vm~1<YE4D
zV_;wa`3)oo^Orl+JurWHfa?kd29SGTc6c%{Fo49-?eJz`U;yP+kUY!|9|i^nkUbzd
TP<jKETOhH&42%pG42%o_9#^OA

diff --git a/projects/particle_simulation/shaders/frag_space.spv b/projects/particle_simulation/shaders/frag_space.spv
deleted file mode 100644
index 8acf8a4295ba661f1b7a893d3c8dd508a4b168b6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2700
zcmZQ(Qf6mhU}WH8;AO~UfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N<T1qQG+e
z44e!s3=CkLo0ypglF(sbV9;Y=V2Ea5U`S<PU=Uzn2FtTEFfcGPFf%YQFfbfq1nJ>q
zaQBIK404JuPAy0*N-Rl@FV09zNiB-cPs&P7E-417;R2~~_xE@Aag9$dD2OjEsmw`@
z&&kY7jZeueN=+`wEK3Ec<3LiEnU|bXnu4r=m4OB92ACUJ8Q2-P85kInGmDaQQr!}h
zOY(~}%F>Li85kHqa$F1y3?)UGiFxTcsm}TNMJbtii6yDU46F>y415d>3<Y3yEDX{N
z3=FyXrNtnBvNEtT$S^Q4lm_G%XO?8<g93w%fekDM3YP+eFat=f90LObl2Wi3DD3h}
zOPup_@{2%vSQ*&BVOfw^T%41cmKu_o3$luVm4O2sz98`stnOrChyl4Xu_!SY>{d2#
zT!7SvrRL-(XO>h#%x7Up1GyP$BO3!Nm=BUmhB^Wib{Px|3{WKu9#DUR)F^`p1_lOq
z24=87L2>KOz`_9Xn-W|O!dGMfr8JOQ76y<%L25usK<Yv11;mHx2c;blA0`j-G>8vM
zmmvE=ZU)IA+Yb_h=?A$N*?tfoWIsrcFar}f4Jv|DBLkQ%#=y+L#=yX!z`(#D&cMO|
zN~<6~$UFrG76uLm2Cx`NT#<o=fs=s&tR5r|lIMlWgY;-Kuz=<G85kJOo;hO&<BNbS
zXJBA}@kPP>275VZ*n!LjnI+2raT6#lSu?OOfcPN4gWMv@z``I8btfn+KxV=CAmc#t
zAb*1V0pf$?L3~(PfXoMl8OSV{TS4+_(6|BlT?^_rP`(DK*9PZX1_qEg$UPuFDE>gD
z07zaJsuyG)NFKxo#V5#pA`DCnph823fgP;hn1O)-<ZloLg$D?O+z8TZ268Y1g9D6j
z58>Ox_?}?Cf&<K~aHv@zGhi6xo+zk$K;a2;4~P#+PayYz{Fe;%AI$wJQ1u{jka`dw
zl-@w<L2(00S0KNG%ua{K4M+^67Q_doEl_xxF|dNu5-8k2P6e6&gMo>Gm4Sf)q!yG`
zK;;F@T_8RvkAnD)3~UUbcu`?s0OuW0{DI=k7Mhk+85kHqaxiu3Na{dw2UDlPz`y{K
z3jmj53=EnK3=AN>AaOeeW^j205`(GNhnCel7+AsaWXQn401^Ym&q@YR>BYcc#K6D+
z5(kNa!nu!u6&#l)3=9mQ_yozr%riwZ&zymQ0VD>B+wTm_43?mPVPIhR#lXS<lCxl7
z0E>ab3B-n(V+A#57t~##av3BBa>GvsCb%Aud0!dW!EU!<U;vv532z1lka;ja*fKCM
zfaF2?L4JVQV+XaTl>t=JGB7wWFff3`Kxr=knr0oL=?o+X(hI_{FmPgEU;xR3%x{E-
zi!%cQ11M}jaxi;bp!V#8`p1=lfdM223m12!Z~@7=fy-0|22i+w*f4WEpyt5h%Zq`5
z0VD>>8=!CjnFG=TqG93U&A`9_G7}V5AoU>gVBzA!z`y{KM-LZYs6DW7@nc|M0EvOZ
z1?CoiG&KPX3=AMKkQ!Ln1u`%&fb@doK;Z_$u&@haU|;~rgWLcMyI@c~!@$4*l7rb3
z0<{MgcA*Rm3?MO(pJDz8V_;waiNpK>vm=6mfdN!bfaGCzL^3cifb0Ruf${{XECY#w
z>;vV+SZLb?BnQf$AigCueZ+y=MGWA&6{H?iF2pl1fa^1uoe2yK3?MO(T96qa^Fd-T
z^@(WelNcBnKw_Y9gQ*9J{bgWeuwY<h0F^7C@)6Wt0VNYq-DA$c46c(v?G#Xa^FYfO
zP(1`{pMd-UvJXTHFfcHH)bT*`vmms*1Eo)pTr<>fLJSNHpgIdA-vJd9W?*1|iSsaU
zfa^6esD4mA0FnpADJa}QZU@;7k_Xuha<e!C1Gv2evs(hH7gT3~<o+=*F@VHC{saKM
CM%|bI

diff --git a/projects/particle_simulation/shaders/frag_water.spv b/projects/particle_simulation/shaders/frag_water.spv
deleted file mode 100644
index 406e44df35757621d0688d37bd93cb83f5f04c24..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2760
zcmZQ(Qf6mhU}WH8;AO~WfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N<T1qQG+e
z44e!s3=CkLo0ypgl8|L!U@&4}V2EX4U`S_RU=Uzn2FtTEFfcGPFf%YQFfbfq1nJ>q
zaQBIK404JuPAy0*N-Rl@FV09zNiB-cPs&P7E-417;R2~~_xE@Aag9$dD2OjEsmw`@
z&&kY7jZeueN=+`wEK3Ec<3LiEnU|bXnu4r=m4OB92ACUJ8Q2-P85kInGmDaQQr!}h
zOY(~}%F>Li85kHqa$F1y3?)UGiFxTcsm}TNMJbtii6yDU46F>y415d>3<Y3yEDX{N
z3=DbsMY%a8Abo5MAiozR78mDarlp2t=B9$e17x=%0|P^DerYjCfR%xjL5YEZp)?@B
zII|=(9~5Y83~XRAkop3IFat=f3IhWJl2Wi3D17rvOPup_@{2%vSQ$9L;SI7o1gpDQ
z7~(+gPAp2y1-qRM95*2KVW~O!$(bdU5OY`<GC*#Fn#{()3g(04lA)G?{FBANzyMXk
z;LgAT_O~1Z12}Fyp#B5tQ3eqV3=HlJ%wYe4;vS?P<R?%VfTUr3P#A&I9f%L|AILnI
zJSZ(8^Fiqf#0RMd*#~knNG-B`ATgMIAon8M2jYY51L+ZFU;?{a5u7?9eh_0|W?*Ar
zU{GLSU=U|uVF0CF5Fcco0s{*J2Ll6G3?#0|z{0@EzyMYc5(mliLghhvv>8~ya{LSo
z3}?@rv4inNK$bHwFu?etV19!=NWTmNC|5$vv}Ryo0P#U-3*=upXjp>m2B`)48RRaI
z|3GR%d{Fp;#6%fb7*wJD0O<wU1>&oL?P6d6$*V)<K|&yT5MKkt0gJORXhP!^<`<B>
z4%B_1umKecAURMu0CJBZIG-~xfW$%W0r5fc2`V*27?>DLko;^84ig`Em{>sUwbx-_
z2kW<FU|;~L0f~dc2NY%?H-hZ5fv9zW@m&}g7-r3!2{+4?fq}u;*cfh>8v_FaNDW9F
z-7G(_Sq*Trf*2SW($do4dV?7l7(i|SiNo~5+!)EgzyK46$$`Ql1{y}7cmjn3h!0A~
zpm+d<8>lP*`2!R#AoXcb^&oMOdJrF!&Oz!yaSlq)pfClg&4k7YNDQPF#0RBmP@J1F
zu!7SwC_X^m0-67Vfr){Yfq?;}7L+zY<rd6cpfn503&?y>SpnkPLenlNuYuAZ4+E&A
zVqlPmx)l_bAh~7+R&W{z<rh#GfaL8Mn8D>ENX(Ie4V;d&7#J8pX%m$GKxqtSzBU5`
z14s_0P8UfXD6PTN=`k=cfaC(er8EPBJ~%BgFo48C_JRBX5`(EXW?%r9O*<G^!RgKv
zlqMKJ>7IdMCDbow3=9k)age(~>8p={6`c007#J8p=?^3iGY?chfWiT0o-H^`85lrm
z@jC-EgFPs~85kITF|aUz<m?z2z+#~A2eD!1I6&RC3+gUM1_lO@7|0Dj8JOUDK<0gA
zU<bS1iGcxZCMX_3>Otng{NT*MzyOj5=|}d1I|Bm)DBXkP8=?O4U|?VX`3)oobB`y~
zJ^P^U@nT?L0Exl;<%8rekeoLI0|Q75<S!5#W{xk^99a1HGcYiK#6bBA<S&>W5DoKJ
z00RR9$V`x5LFz%~!Tc2ns{5evh3u~o1_lODo&?Fm{1wW;zyR_aNDk(nFsOTA{t9Pc
zU;v4M+yk>Cf`NenB#s_-Q49<Wpu7!|huIO$z`y{q2P6kdZ=iAwBnGk%lwabZ?H-UE
zC=Y@7me9PB0B%z;fa_t9dQe_YgtnDnX)cL@fdM22QVTKzWIjj?ral=>eF~@z11+0i
z>Oo?E85kKX7#JBqWdW#+0kw5NQ3$H1%o&)$^%tm(1ByQ$a2jS|0F?`%whhQ1Ap1bH
z00RR9NF6NS3qtcfD6N6yVEJB%fq?;3zk%dCp#BwRU|@iW^DuCL%Lg&2eo%e~$%En)
p6z(9mgX{*$gX{*mS)73Z+}48GEdkXFDqBEu{}`AUKw=<&0su+{=)V8}

diff --git a/projects/particle_simulation/shaders/vert.spv b/projects/particle_simulation/shaders/vert.spv
deleted file mode 100644
index e5a23d663612f70bbbafca156f9a49215dc2fd72..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2956
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

diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp
index 73e112da..91385c49 100644
--- a/projects/particle_simulation/src/main.cpp
+++ b/projects/particle_simulation/src/main.cpp
@@ -60,8 +60,11 @@ int main(int argc, const char **argv) {
     // use space or use water
     bool useSpace = true;
 
+    vkcv::shader::GLSLCompiler compiler;
     vkcv::ShaderProgram computeShaderProgram{};
-    computeShaderProgram.addShader(vkcv::ShaderStage::COMPUTE, std::filesystem::path(useSpace? "shaders/comp_space.spv" : "shaders/comp_water.spv"));
+    compiler.compile(vkcv::ShaderStage::COMPUTE, useSpace ? "shaders/shader_space.comp" : "shaders/shader_water.comp", [&](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
+        computeShaderProgram.addShader(shaderStage, path);
+    });
 
     vkcv::DescriptorSetHandle computeDescriptorSet = core.createDescriptorSet(computeShaderProgram.getReflectedDescriptors()[0]);
 
@@ -74,8 +77,12 @@ int main(int argc, const char **argv) {
     const vkcv::VertexLayout computeLayout(computeBindings);
 
     vkcv::ShaderProgram particleShaderProgram{};
-    particleShaderProgram.addShader(vkcv::ShaderStage::VERTEX, std::filesystem::path("shaders/vert.spv"));
-    particleShaderProgram.addShader(vkcv::ShaderStage::FRAGMENT, std::filesystem::path( useSpace? "shaders/frag_space.spv" : "shaders/frag_water.spv"));
+    compiler.compile(vkcv::ShaderStage::VERTEX, "shaders/shader.vert", [&](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
+        particleShaderProgram.addShader(shaderStage, path);
+    });
+    compiler.compile(vkcv::ShaderStage::FRAGMENT, useSpace ? "shaders/shader_space.frag" : "shaders/shader_water.frag", [&](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
+        particleShaderProgram.addShader(shaderStage, path);
+    });
 
     vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(
             particleShaderProgram.getReflectedDescriptors()[0]);
@@ -210,7 +217,6 @@ int main(int argc, const char **argv) {
     vkcv::Image colorBuffer = core.createImage(colorFormat, windowWidth, windowHeight, 1, false, true, true);
 
     vkcv::ShaderProgram tonemappingShader;
-    vkcv::shader::GLSLCompiler compiler;
     compiler.compile(vkcv::ShaderStage::COMPUTE, "shaders/tonemapping.comp", [&](vkcv::ShaderStage shaderStage, const std::filesystem::path& path) {
         tonemappingShader.addShader(shaderStage, path);
     });
-- 
GitLab