X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=framework%2Fopengl%2FgluShaderLibrary.cpp;h=892c88ba305cf616f1197a0f851a572b31735e53;hb=db0f40414e62da810ee561d5f51bc34902d57f60;hp=f4eb4dcaf1083e01c31a10731b21e5fe885d01b8;hpb=fdd37578e709ea65535aab80038a6ea4704384fa;p=platform%2Fupstream%2FVK-GL-CTS.git diff --git a/framework/opengl/gluShaderLibrary.cpp b/framework/opengl/gluShaderLibrary.cpp index f4eb4dc..892c88b 100644 --- a/framework/opengl/gluShaderLibrary.cpp +++ b/framework/opengl/gluShaderLibrary.cpp @@ -335,6 +335,8 @@ private: TOKEN_GROUP, TOKEN_CASE, TOKEN_END, + TOKEN_OUTPUT_COLOR, + TOKEN_FORMAT, TOKEN_VALUES, TOKEN_BOTH, TOKEN_VERTEX, @@ -414,6 +416,7 @@ private: deUint32 parseShaderStageList (void); void parseRequirement (CaseRequirement& valueBlock); void parseExpectResult (ExpectResult& expectResult); + void parseFormat (DataType& format); void parseGLSLVersion (glu::GLSLVersion& version); void parsePipelineProgram (ProgramSpecification& program); void parseShaderCase (vector& shaderNodeList); @@ -612,6 +615,8 @@ void ShaderParser::advanceToken (void) { "group", TOKEN_GROUP }, { "case", TOKEN_CASE }, { "end", TOKEN_END }, + { "output_color", TOKEN_OUTPUT_COLOR }, + { "format", TOKEN_FORMAT }, { "values", TOKEN_VALUES }, { "both", TOKEN_BOTH }, { "vertex", TOKEN_VERTEX }, @@ -1245,6 +1250,12 @@ void ShaderParser::parseExpectResult (ExpectResult& expectResult) advanceToken(); } +void ShaderParser::parseFormat (DataType& format) +{ + format = mapDataTypeToken(m_curToken); + advanceToken(); +} + void ShaderParser::parseGLSLVersion (glu::GLSLVersion& version) { int versionNum = 0; @@ -1260,7 +1271,7 @@ void ShaderParser::parseGLSLVersion (glu::GLSLVersion& version) advanceToken(); } - DE_STATIC_ASSERT(glu::GLSL_VERSION_LAST == 14); + DE_STATIC_ASSERT(glu::GLSL_VERSION_LAST == 15); if (versionNum == 100 && postfix == "es") version = glu::GLSL_VERSION_100_ES; else if (versionNum == 300 && postfix == "es") version = glu::GLSL_VERSION_300_ES; @@ -1276,6 +1287,7 @@ void ShaderParser::parseGLSLVersion (glu::GLSLVersion& version) else if (versionNum == 430) version = glu::GLSL_VERSION_430; else if (versionNum == 440) version = glu::GLSL_VERSION_440; else if (versionNum == 450) version = glu::GLSL_VERSION_450; + else if (versionNum == 460) version = glu::GLSL_VERSION_460; else parseError("Unknown GLSL version"); } @@ -1352,6 +1364,8 @@ void ShaderParser::parseShaderCase (vector& shaderNodeList) // Setup case. GLSLVersion version = DEFAULT_GLSL_VERSION; ExpectResult expectResult = EXPECT_PASS; + OutputType outputType = OUTPUT_RESULT; + DataType format = TYPE_LAST; string description; string bothSource; vector vertexSources; @@ -1380,6 +1394,12 @@ void ShaderParser::parseShaderCase (vector& shaderNodeList) advanceToken(); parseExpectResult(expectResult); } + else if (m_curToken == TOKEN_OUTPUT_COLOR) + { + outputType = OUTPUT_COLOR; + advanceToken(); + parseFormat(format); + } else if (m_curToken == TOKEN_VALUES) { if (valueBlockSeen) @@ -1515,6 +1535,8 @@ void ShaderParser::parseShaderCase (vector& shaderNodeList) ShaderCaseSpecification spec; spec.caseType = CASETYPE_COMPLETE; spec.expectResult = expectResult; + spec.outputType = outputType; + spec.outputFormat = format; spec.targetVersion = version; spec.fullGLSLES100Required = fullGLSLES100Required; spec.requiredCaps = requiredCaps;