diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-07-20 15:20:25 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-20 15:20:25 -0700 |
| commit | 85f60e07507f347ef4cb613b6d87521ff10e6c81 (patch) | |
| tree | 03983d2d8c66efa5df1957f5dbc7f5b736960c37 /source | |
| parent | b8478a457b7d26d497109d9a0a992dbc198eb47a (diff) | |
| parent | 0cf9bcfc4fd68b9f4bb2ba55565af33e680177b0 (diff) | |
Merge pull request #130 from tfoleyNV/vs-write-gllayer
Require extension when using `gl_Layer` in VS
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/lower.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/slang/lower.cpp b/source/slang/lower.cpp index 54afc283c..174c93c1d 100644 --- a/source/slang/lower.cpp +++ b/source/slang/lower.cpp @@ -3458,10 +3458,22 @@ struct LoweringVisitor } else if (ns == "sv_rendertargetarrayindex") { - if (info.direction == VaryingParameterDirection::Input) + switch (shared->entryPointRequest->profile.GetStage()) { + case Stage::Geometry: + requireGLSLVersion(ProfileVersion::GLSL_150); + break; + + case Stage::Fragment: requireGLSLVersion(ProfileVersion::GLSL_430); + break; + + default: + requireGLSLVersion(ProfileVersion::GLSL_450); + requireGLSLExtension(shared->extensionUsageTracker, "GL_ARB_shader_viewport_layer_array"); + break; } + globalVarExpr = createGLSLBuiltinRef("gl_Layer", getIntType()); } else if (ns == "sv_sampleindex") |
