mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
Issue #1354 - Cherry-pick ANGLE update for broken drivers that support
required indexing but not the extensions.
This commit is contained in:
parent
0466317716
commit
5b8610f989
2 changed files with 12 additions and 23 deletions
|
|
@ -240,20 +240,14 @@ void TranslatorGLSL::writeExtensionBehavior(TIntermNode *root)
|
|||
}
|
||||
|
||||
// Need to enable gpu_shader5 to have index constant sampler array indexing
|
||||
if (getOutputType() != SH_ESSL_OUTPUT && getOutputType() < SH_GLSL_400_CORE_OUTPUT)
|
||||
if (getOutputType() != SH_ESSL_OUTPUT && getOutputType() < SH_GLSL_400_CORE_OUTPUT &&
|
||||
getShaderVersion() == 100)
|
||||
{
|
||||
sink << "#extension GL_ARB_gpu_shader5 : ";
|
||||
|
||||
// Don't use "require" on WebGL 1 to avoid breaking WebGL on drivers that silently
|
||||
// support index constant sampler array indexing, but don't have the extension.
|
||||
if (getShaderVersion() >= 300)
|
||||
{
|
||||
sink << "require\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
sink << "enable\n";
|
||||
}
|
||||
// Don't use "require" to avoid breaking WebGL 1 on drivers that silently
|
||||
// support index constant sampler array indexing, but don't have the extension or
|
||||
// on drivers that don't have the extension at all as it would break WebGL 1 for
|
||||
// some users.
|
||||
sink << "#extension GL_ARB_gpu_shader5 : enable\n";
|
||||
}
|
||||
|
||||
TExtensionGLSL extensionGLSL(getOutputType());
|
||||
|
|
|
|||
|
|
@ -543,16 +543,11 @@ void GenerateCaps(const FunctionsGL *functions, gl::Caps *caps, gl::TextureCapsM
|
|||
LimitVersion(maxSupportedESVersion, gl::Version(2, 0));
|
||||
}
|
||||
|
||||
// Check if index constant sampler array indexing is supported
|
||||
if (!functions->isAtLeastGL(gl::Version(4, 0)) &&
|
||||
!functions->isAtLeastGLES(gl::Version(2, 0)) &&
|
||||
!functions->hasExtension("GL_ARB_gpu_shader5"))
|
||||
{
|
||||
// This should also be required for ES2 but there are some driver support index constant
|
||||
// sampler array indexing without meeting the requirements above. Don't limit their ES
|
||||
// version as it would break WebGL for some users.
|
||||
LimitVersion(maxSupportedESVersion, gl::Version(2, 0));
|
||||
}
|
||||
// Non-constant sampler array indexing is required for OpenGL ES 2 and OpenGL ES after 3.2.
|
||||
// However having it available on OpenGL ES 2 is a specification bug, and using this
|
||||
// indexing in WebGL is undefined. Requiring this feature would break WebGL 1 for some users
|
||||
// so we don't check for it. (it is present with ESSL 100, ESSL >= 320, GLSL >= 400 and
|
||||
// GL_ARB_gpu_shader5)
|
||||
|
||||
// Check if sampler objects are supported
|
||||
if (!functions->isAtLeastGL(gl::Version(3, 3)) &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue