Merge pull request #1375 from Igalia/nroberts/aml-arrayio
Skip outermost array when assigning locations to auto-array interfaces
This commit is contained in:
		
						commit
						2fb966aad2
					
				@ -478,7 +478,16 @@ struct TDefaultIoResolverBase : public glslang::TIoMapResolver
 | 
			
		||||
        // Placeholder. This does not do proper cross-stage lining up, nor
 | 
			
		||||
        // work with mixed location/no-location declarations.
 | 
			
		||||
        int location = nextLocation;
 | 
			
		||||
        nextLocation += TIntermediate::computeTypeLocationSize(type, stage);
 | 
			
		||||
        int typeLocationSize;
 | 
			
		||||
        // Don’t take into account the outer-most array if the stage’s
 | 
			
		||||
        // interface is automatically an array.
 | 
			
		||||
        if (type.getQualifier().isArrayedIo(stage)) {
 | 
			
		||||
                TType elementType(type, 0);
 | 
			
		||||
                typeLocationSize = TIntermediate::computeTypeLocationSize(elementType, stage);
 | 
			
		||||
        } else {
 | 
			
		||||
                typeLocationSize = TIntermediate::computeTypeLocationSize(type, stage);
 | 
			
		||||
        }
 | 
			
		||||
        nextLocation += typeLocationSize;
 | 
			
		||||
 | 
			
		||||
        return location;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user