1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2013 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker // ValidateOutputs validates fragment shader outputs. It checks for conflicting locations, 7*8975f5c5SAndroid Build Coastguard Worker // out-of-range locations, that locations are specified when using multiple outputs, and YUV output 8*8975f5c5SAndroid Build Coastguard Worker // validity. 9*8975f5c5SAndroid Build Coastguard Worker // 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Worker #ifndef COMPILER_TRANSLATOR_VALIDATEOUTPUTS_H_ 12*8975f5c5SAndroid Build Coastguard Worker #define COMPILER_TRANSLATOR_VALIDATEOUTPUTS_H_ 13*8975f5c5SAndroid Build Coastguard Worker 14*8975f5c5SAndroid Build Coastguard Worker #include <GLSLANG/ShaderLang.h> 15*8975f5c5SAndroid Build Coastguard Worker 16*8975f5c5SAndroid Build Coastguard Worker #include "compiler/translator/ExtensionBehavior.h" 17*8975f5c5SAndroid Build Coastguard Worker 18*8975f5c5SAndroid Build Coastguard Worker namespace sh 19*8975f5c5SAndroid Build Coastguard Worker { 20*8975f5c5SAndroid Build Coastguard Worker 21*8975f5c5SAndroid Build Coastguard Worker class TCompiler; 22*8975f5c5SAndroid Build Coastguard Worker class TIntermBlock; 23*8975f5c5SAndroid Build Coastguard Worker class TDiagnostics; 24*8975f5c5SAndroid Build Coastguard Worker 25*8975f5c5SAndroid Build Coastguard Worker // Returns true if the shader has no conflicting or otherwise erroneous fragment outputs. 26*8975f5c5SAndroid Build Coastguard Worker bool ValidateOutputs(TIntermBlock *root, 27*8975f5c5SAndroid Build Coastguard Worker const TExtensionBehavior &extBehavior, 28*8975f5c5SAndroid Build Coastguard Worker const ShBuiltInResources &resources, 29*8975f5c5SAndroid Build Coastguard Worker bool usesPixelLocalStorage, 30*8975f5c5SAndroid Build Coastguard Worker bool isWebGL, 31*8975f5c5SAndroid Build Coastguard Worker TDiagnostics *diagnostics); 32*8975f5c5SAndroid Build Coastguard Worker 33*8975f5c5SAndroid Build Coastguard Worker } // namespace sh 34*8975f5c5SAndroid Build Coastguard Worker 35*8975f5c5SAndroid Build Coastguard Worker #endif // COMPILER_TRANSLATOR_VALIDATEOUTPUTS_H_ 36