commit 27cef491162bfa5d5d69cf65758bd9b85033d339 Author: Dzmitry Malyshau Date: Fri Mar 9 16:37:22 2018 -0500 Update driver constants on program change. Comes with a new SamplerMetadataUpdateOnSetProgram test. This is a fix for a graphics problem we've been seeing for a while with WebRender+Angle on Nvidia/Windows. The sampler metadata doesn't get updated properly for some of the draw calls, since it's not invalidated on program change (this is what the CL is fixing). Extra entries get filled with garbage data because the constant buffer is updated with `MAP_WRITE_DISCARD`, and only those samplers are updated that the current program has. This may generally occur undetected, if not for our `textureSize` calls that appear to go the NV-specific Angle workaround path that ignores our `baseLevel = 0` and instead picks the one from the driver constants (which contains garbage), leading to either zeroes returned or even crashing the driver sometimes... BUG=angleproject:2399 Change-Id: Ie2bef32184e2305c7255299933b899eb3fffb7ab Reviewed-on: https://chromium-review.googlesource.com/949412 Reviewed-by: Jamie Madill Reviewed-by: Geoff Lang Commit-Queue: Geoff Lang commit 7edc21933ef15d10e5790e6bfb7f9fd62f13be58 Author: Frank Henigman Date: Wed Feb 28 15:47:13 2018 -0500 Add missing #include. Would not compile locally on Linux without adding #include . BUG=none Change-Id: I2f817faf681234c0e7eeeda0ad837e8285d9071a Reviewed-on: https://chromium-review.googlesource.com/941613 Commit-Queue: Frank Henigman Reviewed-by: Jamie Madill Reviewed-by: Yuly Novikov Reviewed-by: Luc Ferron commit 1f7cc32a8d49ff3880660f32e3a4aca7bbc1f4e8 Author: Jeff Gilbert Date: Thu Mar 1 17:08:35 2018 -0800 Fix R11F_G11F_B10F/RGB/FLOAT SKIP_PIXELS=1 uploads. Bug: angleproject:2385 Change-Id: I555000f23314441084895e275824d2eb48ba7041 commit bdc28a041ea0090438790756ff63d8944f57d4cc Author: Jeff Gilbert Date: Wed Feb 28 17:46:39 2018 -0800 Support c++11 non-relaxed-constexpr with constexpr14. BUG=angleproject:2384 Change-Id: I0448aef7184c9060db016dee512b5fec29960f46 commit 7d510ab511cd502220f81507189a2861958e22fd Author: Jeff Gilbert Date: Mon Feb 26 16:30:06 2018 -0800 Move constructors may not be marked explicit. BUG=angleproject:2383 Change-Id: If22c7f7c15b7bbe89b859281b28c2b9695e34a1d commit d8e2f9ea469900a51e78b63f06fab52b69e42193 Author: Jeff Gilbert Date: Thu Feb 22 18:20:37 2018 -0800 Support EGLStream from B8G8R8A8_UNORM D3D11Texture. Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415754 BUG=angleproject:2368 Change-Id: Ic2c71b36e7b08560e158fd3dbf10b2fe225f1364 Cherries picked ================================================================================ Merge base commit d444255a779bba544cf95516b1efc1b0e6cb0a65 Author: Jamie Madill Date: Tue Feb 27 22:03:47 2018 -0500 Refactor signal utils into Observer pattern. These types were over-generalized. All use cases featured arrays of resources attached to single parent resources. The channel ID is sufficient to identify the child resource in the parent, and having variadic template arguments wasn't necessary. Futhermore we can rename these types to use the common Observer pattern. This should make them more readable to new developers. Also update some classes to inherit from Subject instead of having a member Subject. This cleans up the code in a few places. This should lead to a simpler refactor to allow dependent dirty bits notifications in the Vulkan back-end. In the following patch the signal_utils files will be renamed. They are not renamed in this patch to ensure git history is preserved. Bug: angleproject:2372 Change-Id: I17a3f2c8d92afd4bb3cba2d378c3a2e8a6d7fb11 Reviewed-on: https://chromium-review.googlesource.com/936690 Reviewed-by: Luc Ferron Reviewed-by: Jamie Madill Commit-Queue: Jamie Madill