Commit 7061af26 by James Darpinian Committed by Commit Bot

Fix BlitFramebuffer issues with large rects on iOS

Enable adjustSrcDstRegionBlitFramebuffer workaround on iOS and fix a conflict when it is enabled in combination with clipSrcRegionBlitFramebuffer. Bug: angleproject:5417 Change-Id: I1de0f9f392643fbcf6900bad86d83084cb6d4009 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601106Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
parent 88fec1e8
...@@ -806,8 +806,8 @@ angle::Result FramebufferGL::blit(const gl::Context *context, ...@@ -806,8 +806,8 @@ angle::Result FramebufferGL::blit(const gl::Context *context,
if (features.adjustSrcDstRegionBlitFramebuffer.enabled) if (features.adjustSrcDstRegionBlitFramebuffer.enabled)
{ {
angle::Result result = angle::Result result = adjustSrcDstRegion(context, finalSourceArea, finalDestArea,
adjustSrcDstRegion(context, sourceArea, destArea, &finalSourceArea, &finalDestArea); &finalSourceArea, &finalDestArea);
if (result != angle::Result::Continue) if (result != angle::Result::Continue)
{ {
return result; return result;
...@@ -815,8 +815,8 @@ angle::Result FramebufferGL::blit(const gl::Context *context, ...@@ -815,8 +815,8 @@ angle::Result FramebufferGL::blit(const gl::Context *context,
} }
if (features.clipSrcRegionBlitFramebuffer.enabled) if (features.clipSrcRegionBlitFramebuffer.enabled)
{ {
angle::Result result = angle::Result result = clipSrcRegion(context, finalSourceArea, finalDestArea,
clipSrcRegion(context, sourceArea, destArea, &finalSourceArea, &finalDestArea); &finalSourceArea, &finalDestArea);
if (result != angle::Result::Continue) if (result != angle::Result::Continue)
{ {
return result; return result;
......
...@@ -1765,7 +1765,8 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature ...@@ -1765,7 +1765,8 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature
IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6)); IsApple() && isIntel && GetMacOSVersion() < OSVersion(10, 12, 6));
ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer, ANGLE_FEATURE_CONDITION(features, adjustSrcDstRegionBlitFramebuffer,
IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia)); IsLinux() || (IsAndroid() && isNvidia) || (IsWindows() && isNvidia) ||
(IsApple() && functions->standard == STANDARD_GL_ES));
ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer, ANGLE_FEATURE_CONDITION(features, clipSrcRegionBlitFramebuffer,
IsApple() || (IsLinux() && isAMD)); IsApple() || (IsLinux() && isAMD));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment