Hello,
I have HLSL shaders in .txt files and I want to use a common function (computeLight()) in multiple shader files. If I write the shader in a file common.psh and include it (with #include "common.psh") in files A.psh and B.psh : Will common.psh be compiled two times (for both A.psh and B.psh) or just one time?
Thanks!
2 replies to this topic
Sponsor:
#2 Members - Reputation: 791
Posted 18 February 2012 - 12:45 PM
Hi!
It will be compiled twice. I haven’t seen an option to let fxc dump object files for each included file (and also no way to link against such) so fxc will compile them again. (This is better for optimizations, too). You always have to recompile shaders when an included file changed.
Cheers!
It will be compiled twice. I haven’t seen an option to let fxc dump object files for each included file (and also no way to link against such) so fxc will compile them again. (This is better for optimizations, too). You always have to recompile shaders when an included file changed.
Cheers!
Acagamics e.V. – IGDA Student Game Development Club (University of Magdeburg, Germany)
#3 Moderators - Reputation: 5487
Posted 19 February 2012 - 12:31 AM
The HLSL compiler will just compile everything. It's very simple in that regard...typically it will just inline everything when generating the assembly (which can be a really good thing, since it will tightly optimize everything along the way). The only real exception is if you use dynamic shader linkage in D3D11.






