mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Backed out changeset 472a419a8d65 (bug 1371190) for build bustage, at least on Windows Static. r=backout on a CLOSED TREE
This commit is contained in:
parent
4204ccc788
commit
b4bb2df7c7
@ -691,7 +691,7 @@ WebGLContext::InitAndValidateGL(FailureReason* const out_failReason)
|
||||
mBypassShaderValidation = gfxPrefs::WebGLBypassShaderValidator();
|
||||
|
||||
// initialize shader translator
|
||||
if (!sh::Initialize()) {
|
||||
if (!ShInitialize()) {
|
||||
*out_failReason = { "FEATURE_FAILURE_WEBGL_GLSL",
|
||||
"GLSL translator initialization failed!" };
|
||||
return false;
|
||||
|
@ -137,7 +137,7 @@ WebGLContext::CreateShaderValidator(GLenum shaderType) const
|
||||
|
||||
ShBuiltInResources resources;
|
||||
memset(&resources, 0, sizeof(resources));
|
||||
sh::InitBuiltInResources(&resources);
|
||||
ShInitBuiltInResources(&resources);
|
||||
|
||||
resources.HashFunction = webgl::IdentifierHashFunc;
|
||||
|
||||
@ -193,7 +193,7 @@ ShaderValidator::Create(GLenum shaderType, ShShaderSpec spec,
|
||||
const ShBuiltInResources& resources,
|
||||
ShCompileOptions compileOptions)
|
||||
{
|
||||
ShHandle handle = sh::ConstructCompiler(shaderType, spec, outputLanguage, &resources);
|
||||
ShHandle handle = ShConstructCompiler(shaderType, spec, outputLanguage, &resources);
|
||||
if (!handle)
|
||||
return nullptr;
|
||||
|
||||
@ -202,7 +202,7 @@ ShaderValidator::Create(GLenum shaderType, ShShaderSpec spec,
|
||||
|
||||
ShaderValidator::~ShaderValidator()
|
||||
{
|
||||
sh::Destruct(mHandle);
|
||||
ShDestruct(mHandle);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -214,7 +214,7 @@ ShaderValidator::ValidateAndTranslate(const char* source)
|
||||
const char* const parts[] = {
|
||||
source
|
||||
};
|
||||
return sh::Compile(mHandle, parts, ArrayLength(parts), mCompileOptions);
|
||||
return ShCompile(mHandle, parts, ArrayLength(parts), mCompileOptions);
|
||||
}
|
||||
|
||||
void
|
||||
@ -222,7 +222,7 @@ ShaderValidator::GetInfoLog(nsACString* out) const
|
||||
{
|
||||
MOZ_ASSERT(mHasRun);
|
||||
|
||||
const std::string &log = sh::GetInfoLog(mHandle);
|
||||
const std::string &log = ShGetInfoLog(mHandle);
|
||||
out->Assign(log.data(), log.length());
|
||||
}
|
||||
|
||||
@ -231,7 +231,7 @@ ShaderValidator::GetOutput(nsACString* out) const
|
||||
{
|
||||
MOZ_ASSERT(mHasRun);
|
||||
|
||||
const std::string &output = sh::GetObjectCode(mHandle);
|
||||
const std::string &output = ShGetObjectCode(mHandle);
|
||||
out->Assign(output.data(), output.length());
|
||||
}
|
||||
|
||||
@ -251,19 +251,19 @@ ShaderValidator::CanLinkTo(const ShaderValidator* prev, nsCString* const out_log
|
||||
return false;
|
||||
}
|
||||
|
||||
const auto shaderVersion = sh::GetShaderVersion(mHandle);
|
||||
if (sh::GetShaderVersion(prev->mHandle) != shaderVersion) {
|
||||
const auto shaderVersion = ShGetShaderVersion(mHandle);
|
||||
if (ShGetShaderVersion(prev->mHandle) != shaderVersion) {
|
||||
nsPrintfCString error("Vertex shader version %d does not match"
|
||||
" fragment shader version %d.",
|
||||
sh::GetShaderVersion(prev->mHandle),
|
||||
sh::GetShaderVersion(mHandle));
|
||||
ShGetShaderVersion(prev->mHandle),
|
||||
ShGetShaderVersion(mHandle));
|
||||
*out_log = error;
|
||||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
const std::vector<sh::Uniform>* vertPtr = sh::GetUniforms(prev->mHandle);
|
||||
const std::vector<sh::Uniform>* fragPtr = sh::GetUniforms(mHandle);
|
||||
const std::vector<sh::Uniform>* vertPtr = ShGetUniforms(prev->mHandle);
|
||||
const std::vector<sh::Uniform>* fragPtr = ShGetUniforms(mHandle);
|
||||
if (!vertPtr || !fragPtr) {
|
||||
nsPrintfCString error("Could not create uniform list.");
|
||||
*out_log = error;
|
||||
@ -314,8 +314,8 @@ ShaderValidator::CanLinkTo(const ShaderValidator* prev, nsCString* const out_log
|
||||
}
|
||||
}
|
||||
|
||||
const auto& vertVaryings = sh::GetVaryings(prev->mHandle);
|
||||
const auto& fragVaryings = sh::GetVaryings(mHandle);
|
||||
const auto& vertVaryings = ShGetVaryings(prev->mHandle);
|
||||
const auto& fragVaryings = ShGetVaryings(mHandle);
|
||||
if (!vertVaryings || !fragVaryings) {
|
||||
nsPrintfCString error("Could not create varying list.");
|
||||
*out_log = error;
|
||||
@ -367,7 +367,7 @@ ShaderValidator::CanLinkTo(const ShaderValidator* prev, nsCString* const out_log
|
||||
}
|
||||
}
|
||||
|
||||
if (!sh::CheckVariablesWithinPackingLimits(mMaxVaryingVectors,
|
||||
if (!ShCheckVariablesWithinPackingLimits(mMaxVaryingVectors,
|
||||
staticUseVaryingList))
|
||||
{
|
||||
*out_log = "Statically used varyings do not fit within packing limits. (see"
|
||||
@ -429,7 +429,7 @@ ShaderValidator::CalcNumSamplerUniforms() const
|
||||
{
|
||||
size_t accum = 0;
|
||||
|
||||
const std::vector<sh::Uniform>& uniforms = *sh::GetUniforms(mHandle);
|
||||
const std::vector<sh::Uniform>& uniforms = *ShGetUniforms(mHandle);
|
||||
|
||||
for (auto itr = uniforms.begin(); itr != uniforms.end(); ++itr) {
|
||||
GLenum type = itr->type;
|
||||
@ -446,7 +446,7 @@ ShaderValidator::CalcNumSamplerUniforms() const
|
||||
size_t
|
||||
ShaderValidator::NumAttributes() const
|
||||
{
|
||||
return sh::GetAttributes(mHandle)->size();
|
||||
return ShGetAttributes(mHandle)->size();
|
||||
}
|
||||
|
||||
// Attribs cannot be structs or arrays, and neither can vertex inputs in ES3.
|
||||
@ -455,7 +455,7 @@ bool
|
||||
ShaderValidator::FindAttribUserNameByMappedName(const std::string& mappedName,
|
||||
const std::string** const out_userName) const
|
||||
{
|
||||
const std::vector<sh::Attribute>& attribs = *sh::GetAttributes(mHandle);
|
||||
const std::vector<sh::Attribute>& attribs = *ShGetAttributes(mHandle);
|
||||
for (auto itr = attribs.begin(); itr != attribs.end(); ++itr) {
|
||||
if (itr->mappedName == mappedName) {
|
||||
*out_userName = &(itr->name);
|
||||
@ -470,7 +470,7 @@ bool
|
||||
ShaderValidator::FindAttribMappedNameByUserName(const std::string& userName,
|
||||
const std::string** const out_mappedName) const
|
||||
{
|
||||
const std::vector<sh::Attribute>& attribs = *sh::GetAttributes(mHandle);
|
||||
const std::vector<sh::Attribute>& attribs = *ShGetAttributes(mHandle);
|
||||
for (auto itr = attribs.begin(); itr != attribs.end(); ++itr) {
|
||||
if (itr->name == userName) {
|
||||
*out_mappedName = &(itr->mappedName);
|
||||
@ -486,7 +486,7 @@ ShaderValidator::FindVaryingByMappedName(const std::string& mappedName,
|
||||
std::string* const out_userName,
|
||||
bool* const out_isArray) const
|
||||
{
|
||||
const std::vector<sh::Varying>& varyings = *sh::GetVaryings(mHandle);
|
||||
const std::vector<sh::Varying>& varyings = *ShGetVaryings(mHandle);
|
||||
for (auto itr = varyings.begin(); itr != varyings.end(); ++itr) {
|
||||
const sh::ShaderVariable* found;
|
||||
if (!itr->findInfoByMappedName(mappedName, &found, out_userName))
|
||||
@ -503,7 +503,7 @@ bool
|
||||
ShaderValidator::FindVaryingMappedNameByUserName(const std::string& userName,
|
||||
const std::string** const out_mappedName) const
|
||||
{
|
||||
const std::vector<sh::Varying>& attribs = *sh::GetVaryings(mHandle);
|
||||
const std::vector<sh::Varying>& attribs = *ShGetVaryings(mHandle);
|
||||
for (auto itr = attribs.begin(); itr != attribs.end(); ++itr) {
|
||||
if (itr->name == userName) {
|
||||
*out_mappedName = &(itr->mappedName);
|
||||
@ -519,7 +519,7 @@ ShaderValidator::FindUniformByMappedName(const std::string& mappedName,
|
||||
std::string* const out_userName,
|
||||
bool* const out_isArray) const
|
||||
{
|
||||
const std::vector<sh::Uniform>& uniforms = *sh::GetUniforms(mHandle);
|
||||
const std::vector<sh::Uniform>& uniforms = *ShGetUniforms(mHandle);
|
||||
for (auto itr = uniforms.begin(); itr != uniforms.end(); ++itr) {
|
||||
const sh::ShaderVariable* found;
|
||||
if (!itr->findInfoByMappedName(mappedName, &found, out_userName))
|
||||
@ -531,7 +531,7 @@ ShaderValidator::FindUniformByMappedName(const std::string& mappedName,
|
||||
|
||||
const size_t dotPos = mappedName.find(".");
|
||||
|
||||
const std::vector<sh::InterfaceBlock>& interfaces = *sh::GetInterfaceBlocks(mHandle);
|
||||
const std::vector<sh::InterfaceBlock>& interfaces = *ShGetInterfaceBlocks(mHandle);
|
||||
for (const auto& interface : interfaces) {
|
||||
|
||||
std::string mappedFieldName;
|
||||
@ -579,7 +579,7 @@ bool
|
||||
ShaderValidator::UnmapUniformBlockName(const nsACString& baseMappedName,
|
||||
nsCString* const out_baseUserName) const
|
||||
{
|
||||
const std::vector<sh::InterfaceBlock>& interfaces = *sh::GetInterfaceBlocks(mHandle);
|
||||
const std::vector<sh::InterfaceBlock>& interfaces = *ShGetInterfaceBlocks(mHandle);
|
||||
for (const auto& interface : interfaces) {
|
||||
const nsDependentCString interfaceMappedName(interface.mappedName.data(),
|
||||
interface.mappedName.size());
|
||||
@ -595,7 +595,7 @@ ShaderValidator::UnmapUniformBlockName(const nsACString& baseMappedName,
|
||||
void
|
||||
ShaderValidator::EnumerateFragOutputs(std::map<nsCString, const nsCString> &out_FragOutputs) const
|
||||
{
|
||||
const auto* fragOutputs = sh::GetOutputVariables(mHandle);
|
||||
const auto* fragOutputs = ShGetOutputVariables(mHandle);
|
||||
|
||||
if (fragOutputs) {
|
||||
for (const auto& fragOutput : *fragOutputs) {
|
||||
|
@ -188,7 +188,7 @@ GetAndInitDisplay(GLLibraryEGL& egl, void* displayType)
|
||||
return display;
|
||||
}
|
||||
|
||||
class AngleErrorReporting {
|
||||
class AngleErrorReporting: public angle::Platform {
|
||||
public:
|
||||
AngleErrorReporting()
|
||||
{
|
||||
@ -200,7 +200,7 @@ public:
|
||||
mFailureId = aFailureId;
|
||||
}
|
||||
|
||||
void logError(const char *errorMessage)
|
||||
void logError(const char *errorMessage) override
|
||||
{
|
||||
if (!mFailureId) {
|
||||
return;
|
||||
@ -254,6 +254,7 @@ GetAndInitDisplayForAccelANGLE(GLLibraryEGL& egl, nsACString* const out_failureI
|
||||
d3d11ANGLE.UserForceEnable("User force-enabled D3D11 ANGLE on disabled hardware");
|
||||
|
||||
gAngleErrorReporter.SetFailureId(out_failureId);
|
||||
egl.fANGLEPlatformInitialize(&gAngleErrorReporter);
|
||||
|
||||
auto guardShutdown = mozilla::MakeScopeExit([&] {
|
||||
gAngleErrorReporter.SetFailureId(nullptr);
|
||||
@ -455,6 +456,8 @@ GLLibraryEGL::EnsureInitialized(bool forceAccel, nsACString* const out_failureId
|
||||
if (mIsANGLE) {
|
||||
MOZ_ASSERT(IsExtensionSupported(ANGLE_platform_angle_d3d));
|
||||
const GLLibraryLoader::SymLoadStruct angleSymbols[] = {
|
||||
{ (PRFuncPtr*)&mSymbols.fANGLEPlatformInitialize, { "ANGLEPlatformInitialize", nullptr } },
|
||||
{ (PRFuncPtr*)&mSymbols.fANGLEPlatformShutdown, { "ANGLEPlatformShutdown", nullptr } },
|
||||
SYMBOL(GetPlatformDisplayEXT),
|
||||
END_OF_SYMBOLS
|
||||
};
|
||||
|
@ -334,6 +334,12 @@ public:
|
||||
EGLBoolean fReleaseDeviceANGLE(EGLDeviceEXT device)
|
||||
WRAP( fReleaseDeviceANGLE(device) )
|
||||
|
||||
void fANGLEPlatformInitialize(angle::Platform* platform) const
|
||||
VOID_WRAP( fANGLEPlatformInitialize(platform) )
|
||||
|
||||
void fANGLEPlatformShutdown() const
|
||||
VOID_WRAP( fANGLEPlatformShutdown() )
|
||||
|
||||
#undef WRAP
|
||||
#undef VOID_WRAP
|
||||
#undef PROFILE_CALL
|
||||
@ -495,6 +501,8 @@ private:
|
||||
const EGLAttrib* attrib_list);
|
||||
EGLBoolean (GLAPIENTRY * fReleaseDeviceANGLE) (EGLDeviceEXT device);
|
||||
|
||||
void (GLAPIENTRY * fANGLEPlatformInitialize)(angle::Platform* platform);
|
||||
void (GLAPIENTRY * fANGLEPlatformShutdown)();
|
||||
} mSymbols;
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user