New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Access TIntermediate
with public headers
#3533
Comments
Maybe it would be helpful to describe the compile & link approach I've been using. Pseudocode:
It should be noted that hlsl source might not contain entrypoints of all shader stages. So I cannot just do
|
Right after writing previous comment, I thought of a different approach. Now I tried to create separate TProgram for each TShader. So that I can compile and link each stage individually. But it seems that now I encountered another problem where Domain shader stage ( #version 460
void main()
{
} This glsl then fails to link for real in OpenGL when being used as a tesselation evaluation shader with error message:
Since I have never used this stage I don't really know what is and isn't considered valid. As a temporary workaround I added if (currentShaderStage == EShLangTessEvaluation && spirv.size() < 512)
continue; after |
Main issue
After calling
TShader::parse()
I have been using:when converting HLSL to SPIRV because
TShader::parse()
sometimes still succeeded in some undesirable cases. For example when entry points don't exist. So I usedgetIntermediate()
to do extra checking. But that's no longer possible since the removal of some public header files.Is there another way to do this?
Extra question
Another thing that I wasn't yet using, but was planning to in the future is
glslang::TIntermTraverser
to do some extra application-specific code checks.So I would also like to know if this is something that will not be possible or if this was removed by mistake.
The text was updated successfully, but these errors were encountered: