# HG changeset patch # User Jeff Gilbert # Date 1564710977 0 # Fri Aug 02 01:56:17 2019 +0000 # Node ID d7f116f6262fbe9b6ba7e7e47a362e668daccb12 # Parent fe1d262c0542180339b6b9ac343e175bfa8a8f47 Bug 1562462 - ANGLE Cherry-pick: Fix occasional corruption of vertex textures in HD4600 GPUs for WebRender. r=gw Differential Revision: https://phabricator.services.mozilla.com/D40354 diff --git a/gfx/angle/checkout/out/gen/angle/id/commit.h b/gfx/angle/checkout/out/gen/angle/id/commit.h --- a/gfx/angle/checkout/out/gen/angle/id/commit.h +++ b/gfx/angle/checkout/out/gen/angle/id/commit.h @@ -1,3 +1,3 @@ -#define ANGLE_COMMIT_HASH "b0a9c45400d2" +#define ANGLE_COMMIT_HASH "21dccd386996" #define ANGLE_COMMIT_HASH_SIZE 12 -#define ANGLE_COMMIT_DATE "2019-06-26 14:30:37 -0700" +#define ANGLE_COMMIT_DATE "2019-08-01 14:11:16 -0700" diff --git a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp --- a/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp +++ b/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp @@ -2409,16 +2409,19 @@ angle::WorkaroundsD3D GenerateWorkaround if (IsSkylake(adapterDesc.DeviceId)) { workarounds.callClearTwice = capsVersion < IntelDriverVersion(4771); workarounds.emulateIsnanFloat = capsVersion < IntelDriverVersion(4542); } else if (IsBroadwell(adapterDesc.DeviceId) || IsHaswell(adapterDesc.DeviceId)) { workarounds.rewriteUnaryMinusOperator = capsVersion < IntelDriverVersion(4624); + + // Haswell drivers occasionally corrupt (small?) (vertex?) texture data uploads. + workarounds.setDataFasterThanImageUpload = false; } } // TODO(jmadill): Disable when we have a fixed driver version. workarounds.emulateTinyStencilTextures = IsAMD(adapterDesc.VendorId); // The tiny stencil texture workaround involves using CopySubresource or UpdateSubresource on a // depth stencil texture. This is not allowed until feature level 10.1 but since it is not diff --git a/gfx/angle/cherry_picks.txt b/gfx/angle/cherry_picks.txt --- a/gfx/angle/cherry_picks.txt +++ b/gfx/angle/cherry_picks.txt @@ -1,8 +1,22 @@ +commit 21dccd386996a40e5e52a1d1c4f1eb9abc66adf0 +Author: Glenn Watson <39062770+gw3583@users.noreply.github.com> +Date: Fri Aug 2 07:11:16 2019 +1000 + + Fix occasional corruption of vertex textures in HD4600 GPUs. (#19) + + This appears to be caused by the UpdateSubResource call, + which is worked around by enabling the other image upload + path that ANGLE supports. + + The workaround doesn't include a driver version, since the + bug is occurring in the most recent driver that is currently + available (15.40.42.5063, released 19th Mar 2019). + commit b0a9c45400d23281c67059980f7a39cc4285e5f9 Author: Jamie Madill Date: Mon Apr 8 16:26:50 2019 -0400 Fix glCopyTexSubImage3D. Two bugs were present in our implementation. We were using the y offset for z in ensureSubImageInitialized. And for our D3D back-end we were