Lines Matching refs:xe
53 static const char* getShaderTypeSuffix (const xe::ri::Shader::ShaderType shaderType)
57 case xe::ri::Shader::SHADERTYPE_VERTEX: return "vert";
58 case xe::ri::Shader::SHADERTYPE_FRAGMENT: return "frag";
59 case xe::ri::Shader::SHADERTYPE_GEOMETRY: return "geom";
60 case xe::ri::Shader::SHADERTYPE_TESS_CONTROL: return "tesc";
61 case xe::ri::Shader::SHADERTYPE_TESS_EVALUATION: return "tese";
62 case xe::ri::Shader::SHADERTYPE_COMPUTE: return "comp";
63 case xe::ri::Shader::SHADERTYPE_RAYGEN: return "rgen";
64 case xe::ri::Shader::SHADERTYPE_ANY_HIT: return "ahit";
65 case xe::ri::Shader::SHADERTYPE_CLOSEST_HIT: return "chit";
66 case xe::ri::Shader::SHADERTYPE_MISS: return "miss";
67 case xe::ri::Shader::SHADERTYPE_INTERSECTION: return "sect";
68 case xe::ri::Shader::SHADERTYPE_CALLABLE: return "call";
69 case xe::ri::Shader::SHADERTYPE_TASK: return "task";
70 case xe::ri::Shader::SHADERTYPE_MESH: return "mesh";
73 throw xe::Error("Invalid shader type");
77 static void writeShaderProgram (const CommandLine& cmdLine, const std::string& casePath, const xe::ri::ShaderProgram& shaderProgram, int programNdx)
83 const xe::ri::Shader& shader = dynamic_cast<const xe::ri::Shader&>(shaderProgram.shaders.getItem(shaderNdx));
87 throw xe::Error("File '" + shaderPath + "' exists already");
93 throw xe::Error("Failed to open '" + shaderPath + "'");
102 const xe::ri::List* list;
105 explicit StackEntry (const xe::ri::List* list_) : list(list_), curNdx(0) {}
108 static void extractShaderPrograms (const CommandLine& cmdLine, const std::string& casePath, const xe::TestCaseResult& result)
121 const xe::ri::Item& curItem = curEntry.list->getItem(curEntry.curNdx);
124 if (curItem.getType() == xe::ri::TYPE_SHADERPROGRAM)
126 writeShaderProgram(cmdLine, casePath, static_cast<const xe::ri::ShaderProgram&>(curItem), programNdx);
129 else if (curItem.getType() == xe::ri::TYPE_SECTION)
130 itemListStack.push_back(StackEntry(&static_cast<const xe::ri::Section&>(curItem).items));
140 class ShaderProgramExtractHandler : public xe::TestLogHandler
148 void setSessionInfo (const xe::SessionInfo&)
153 xe::TestCaseResultPtr startTestCaseResult (const char* casePath)
155 return xe::TestCaseResultPtr(new xe::TestCaseResultData(casePath));
158 void testCaseResultUpdated (const xe::TestCaseResultPtr&)
163 void testCaseResultComplete (const xe::TestCaseResultPtr& caseData)
167 xe::TestCaseResult fullResult;
168 xe::TestResultParser::ParseResult parseResult;
180 xe::TestResultParser m_testResultParser;
187 xe::TestLogParser parser (&resultHandler);