aboutsummaryrefslogtreecommitdiff
path: root/glslang/MachineIndependent/linkValidate.cpp
diff options
context:
space:
mode:
authorJohn Kessenich <cepheus@frii.com>2013-12-07 00:28:07 +0000
committerJohn Kessenich <cepheus@frii.com>2013-12-07 00:28:07 +0000
commite1b2e39a56c6ffd62636437dd9e20daa92e4ebfa (patch)
tree64e66842eadcda0f0e8b39b7c57e00331d02d17d /glslang/MachineIndependent/linkValidate.cpp
parent5f15d4224a2352a053838f70e1a8bd3ef530b010 (diff)
downloadglslang-e1b2e39a56c6ffd62636437dd9e20daa92e4ebfa.tar.gz
Allow layout aliasing for desktop vertex inputs.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24400 e7fa87d3-cd2b-0410-9028-fcbf551c1848
Diffstat (limited to 'glslang/MachineIndependent/linkValidate.cpp')
-rw-r--r--glslang/MachineIndependent/linkValidate.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index b4f32d9d..f0057284 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -476,12 +476,14 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ
TRange range = { qualifier.layoutSlotLocation, qualifier.layoutSlotLocation + size - 1 };
- // check for collisions
- for (size_t r = 0; r < usedLocations[set].size(); ++r) {
- if (range.last >= usedLocations[set][r].start &&
- range.start <= usedLocations[set][r].last) {
- // there is a collision; pick one
- return std::max(range.start, usedLocations[set][r].start);
+ // check for collisions, except for vertex inputs on desktop
+ if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput())) {
+ for (size_t r = 0; r < usedLocations[set].size(); ++r) {
+ if (range.last >= usedLocations[set][r].start &&
+ range.start <= usedLocations[set][r].last) {
+ // there is a collision; pick one
+ return std::max(range.start, usedLocations[set][r].start);
+ }
}
}