mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 22:29:39 -06:00
Externals: Update glslang to upstream commit 32d3ec3
This commit is contained in:
32
Externals/glslang/gtests/TestFixture.cpp
vendored
32
Externals/glslang/gtests/TestFixture.cpp
vendored
@ -74,7 +74,7 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target)
|
||||
case Source::GLSL:
|
||||
break;
|
||||
case Source::HLSL:
|
||||
result = EShMsgReadHlsl;
|
||||
result = static_cast<EShMessages>(result | EShMsgReadHlsl);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -84,9 +84,11 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target)
|
||||
break;
|
||||
case Target::Spv:
|
||||
result = static_cast<EShMessages>(result | EShMsgSpvRules);
|
||||
result = static_cast<EShMessages>(result | EShMsgKeepUncalled);
|
||||
break;
|
||||
case Target::BothASTAndSpv:
|
||||
result = static_cast<EShMessages>(result | EShMsgSpvRules | EShMsgAST);
|
||||
result = static_cast<EShMessages>(result | EShMsgKeepUncalled);
|
||||
break;
|
||||
};
|
||||
|
||||
@ -98,6 +100,8 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target)
|
||||
break;
|
||||
}
|
||||
|
||||
result = static_cast<EShMessages>(result | EShMsgHlslLegalization);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -116,6 +120,32 @@ std::pair<bool, std::string> ReadFile(const std::string& path)
|
||||
return std::make_pair(false, "");
|
||||
}
|
||||
|
||||
std::pair<bool, std::vector<std::uint32_t> > ReadSpvBinaryFile(const std::string& path)
|
||||
{
|
||||
std::ifstream fstream(path, std::fstream::in | std::fstream::binary);
|
||||
|
||||
if (!fstream)
|
||||
return std::make_pair(false, std::vector<std::uint32_t>());
|
||||
|
||||
std::vector<std::uint32_t> contents;
|
||||
|
||||
// Reserve space (for efficiency, not for correctness)
|
||||
fstream.seekg(0, fstream.end);
|
||||
contents.reserve(size_t(fstream.tellg()) / sizeof(std::uint32_t));
|
||||
fstream.seekg(0, fstream.beg);
|
||||
|
||||
// There is no istream iterator traversing by uint32_t, so we must loop.
|
||||
while (!fstream.eof()) {
|
||||
std::uint32_t inWord;
|
||||
fstream.read((char *)&inWord, sizeof(inWord));
|
||||
|
||||
if (!fstream.eof())
|
||||
contents.push_back(inWord);
|
||||
}
|
||||
|
||||
return std::make_pair(true, contents); // hopefully, c++11 move semantics optimizes the copy away.
|
||||
}
|
||||
|
||||
bool WriteFile(const std::string& path, const std::string& contents)
|
||||
{
|
||||
std::ofstream fstream(path, std::ios::out);
|
||||
|
Reference in New Issue
Block a user