зеркало из https://github.com/AvaloniaUI/angle.git
Always scalarize mat and vec constructor arguments.
This workaround is always enabled in Chrome, do the same in ANGLE. BUG=882580 Change-Id: I2c01f34a589b07bd0035d7408be884f7a51b1706 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666699 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
This commit is contained in:
Родитель
762f180aa3
Коммит
bce4b9f857
|
@ -44,6 +44,11 @@ struct FrontendFeatures : angle::FeatureSetBase
|
||||||
"On Windows Intel OpenGL drivers TexImage sometimes seems to interact "
|
"On Windows Intel OpenGL drivers TexImage sometimes seems to interact "
|
||||||
"with the Framebuffer",
|
"with the Framebuffer",
|
||||||
&members};
|
&members};
|
||||||
|
|
||||||
|
angle::Feature scalarizeVecAndMatConstructorArgs = {
|
||||||
|
"scalarize_vec_and_mat_constructor_args", angle::FeatureCategory::FrontendWorkarounds,
|
||||||
|
"Always rewrite vec/mat constructors to be consistent", &members,
|
||||||
|
"http://crbug.com/398694"};
|
||||||
};
|
};
|
||||||
|
|
||||||
inline FrontendFeatures::FrontendFeatures() = default;
|
inline FrontendFeatures::FrontendFeatures() = default;
|
||||||
|
|
|
@ -1350,6 +1350,7 @@ void Display::initializeFrontendFeatures()
|
||||||
{
|
{
|
||||||
// Enable on all Impls
|
// Enable on all Impls
|
||||||
mFrontendFeatures.loseContextOnOutOfMemory.enabled = true;
|
mFrontendFeatures.loseContextOnOutOfMemory.enabled = true;
|
||||||
|
mFrontendFeatures.scalarizeVecAndMatConstructorArgs.enabled = true;
|
||||||
|
|
||||||
mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
|
mImplementation->initializeFrontendFeatures(&mFrontendFeatures);
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "libANGLE/ResourceManager.h"
|
#include "libANGLE/ResourceManager.h"
|
||||||
#include "libANGLE/renderer/GLImplFactory.h"
|
#include "libANGLE/renderer/GLImplFactory.h"
|
||||||
#include "libANGLE/renderer/ShaderImpl.h"
|
#include "libANGLE/renderer/ShaderImpl.h"
|
||||||
|
#include "platform/FrontendFeatures.h"
|
||||||
|
|
||||||
namespace gl
|
namespace gl
|
||||||
{
|
{
|
||||||
|
@ -342,6 +343,11 @@ void Shader::compile(const Context *context)
|
||||||
options |= SH_VALIDATE_LOOP_INDEXING;
|
options |= SH_VALIDATE_LOOP_INDEXING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (context->getFrontendFeatures().scalarizeVecAndMatConstructorArgs.enabled)
|
||||||
|
{
|
||||||
|
options |= SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS;
|
||||||
|
}
|
||||||
|
|
||||||
mCurrentMaxComputeWorkGroupInvocations = context->getCaps().maxComputeWorkGroupInvocations;
|
mCurrentMaxComputeWorkGroupInvocations = context->getCaps().maxComputeWorkGroupInvocations;
|
||||||
|
|
||||||
ASSERT(mBoundCompiler.get());
|
ASSERT(mBoundCompiler.get());
|
||||||
|
|
Загрузка…
Ссылка в новой задаче