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
This commit is contained in:
John Kessenich 2013-12-07 00:28:07 +00:00
parent 5f15d4224a
commit e1b2e39a56
6 changed files with 18 additions and 14 deletions

View file

@ -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);
}
}
}