Turn on non-uniform blocks (in/out/buffer), and prevent new stages from working with "no profile" (before 150) shaders.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23470 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-10-11 19:46:10 +00:00
parent 9d30218fb6
commit a4ea1313c3
9 changed files with 60 additions and 39 deletions

View file

@ -340,31 +340,28 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
// Correct for stage type...
switch (stage) {
case EShLangGeometry:
if (version < 150 || profile == EEsProfile) {
if (version < 150 || (profile != ECoreProfile && profile != ECompatibilityProfile)) {
correct = false;
infoSink.info.message(EPrefixError, "#version: geometry shaders require non-es profile and version 150 or above");
version = 150;
if (profile == EEsProfile)
profile = ECoreProfile;
profile = ECoreProfile;
}
break;
case EShLangTessControl:
case EShLangTessEvaluation:
if (version < 400 || profile == EEsProfile) {
if (version < 400 || (profile != ECoreProfile && profile != ECompatibilityProfile)) {
correct = false;
infoSink.info.message(EPrefixError, "#version: tessellation shaders require non-es profile and version 400 or above");
version = 400;
if (profile == EEsProfile)
profile = ECoreProfile;
profile = ECoreProfile;
}
break;
case EShLangCompute:
if (version < 430 || profile == EEsProfile) {
if (version < 430 || (profile != ECoreProfile && profile != ECompatibilityProfile)) {
correct = false;
infoSink.info.message(EPrefixError, "#version: compute shaders require non-es profile and version 430 or above");
version = 430;
if (profile == EEsProfile)
profile = ECoreProfile;
profile = ECoreProfile;
}
break;
default: