Skip to content

Commit 11e6944

Browse files
jonahryandavisCommit Bot
authored andcommitted
Linux AMD crash when src blit region outside framebuffer
Linux AMD has a crash on an assert in the mesa driver that the source rectangle for blitFramebuffer be inside the framebuffer. Add Linux AMD to the existing workaround for this case. Note: this will duplicate some work on Linux AMD if the blit call is outside the framebuffer and also very large (the adjustSrcDstRegionBlitFramebuffer workaround) Bug: 1014370 Change-Id: I1afd1c92ab07dba6814d6b87ff7c3c19a19bdc0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953487 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 parent 4576f1d commit 11e6944

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/libANGLE/renderer/gl/renderergl_utils.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ void GenerateCaps(const FunctionsGL *functions,
11131113
functions->hasGLExtension("GL_ARB_pixel_buffer_object") ||
11141114
functions->hasGLExtension("GL_EXT_pixel_buffer_object") ||
11151115
functions->hasGLESExtension("GL_NV_pixel_buffer_object");
1116-
extensions->glSync = nativegl::SupportsFenceSync(functions);
1116+
extensions->glSync = nativegl::SupportsFenceSync(functions);
11171117
extensions->mapBuffer = functions->isAtLeastGL(gl::Version(1, 5)) ||
11181118
functions->isAtLeastGLES(gl::Version(3, 0)) ||
11191119
functions->hasGLESExtension("GL_OES_mapbuffer");
@@ -1596,7 +1596,8 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature
15961596
ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer,
15971597
IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia));
15981598

1599-
ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer, IsApple());
1599+
ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer,
1600+
IsApple() || (IsLinux() && isAMD));
16001601

16011602
ANGLE_FEATURE_CONDITION(features, resettingTexturesGeneratesErrors,
16021603
IsApple() || (IsWindows() && isAMD));

0 commit comments

Comments
 (0)