- 05 Feb, 2019 1 commit
-
-
Shahbaz Youssefi authored
Each image was tracking its current layout, but not the pipeline stage it was used. Additionally, the barrier access masks were inferred from the layout. This incurred two inefficiencies: - The src pipeline stage mask often included all stages, causing unnecessarily heavy barriers. - The access masks included all possible accesses by a layout, which in some cases was overkill, like VK_ACCESS_MEMORY_WRITE_BIT for VK_IMAGE_LAYOUT_GENERAL (which will eventually used for compute shader output). This change instead creates an enum where each element represents the layout, the stage and access masks when transitioning into the layout and the stage and access masks when transitioning out of that layout. The image will instead track a value of this enum (instead of VkImageLayout), which allows it to create the layout transition barriers as tight as possible, since it includes all the necessary information. Bug: angleproject:2999 Change-Id: I91535ce06d10530a6fc217ad3b94b7e288521e25 Reviewed-on: https://chromium-review.googlesource.com/c/1440074 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 04 Feb, 2019 5 commits
-
-
Geoff Lang authored
Storing ImageHelper as a pointer allows the storage to be swapped or shared with other objects. BUG=angleproject:2668 Change-Id: I2e51f24737be59ffe9f472e9b0b592774a792cd1 Reviewed-on: https://chromium-review.googlesource.com/c/1409404 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Ian Elliott authored
The initial implementation called eglInitialize() and eglTerminate() and didn't call ANGLETest::TearDown(). BUG=angleproject:2511 Change-Id: I563a84a72fe9bd20739519301023062f85446557 Reviewed-on: https://chromium-review.googlesource.com/c/1452529Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
-
Geoff Lang authored
To support EGL images efficiently, the pixel buffer needs to be tightly coupled with the image it will upload data to allowing textures to upload data to EGL images sourced from renderbuffers. The data will be uploaded to the image in the correct order if it comes from multiple sources and the check for pending uploads does not need to traverse EGL image siblings. BUG=angleproject:2668 Change-Id: Iebf59ed1e358ddc76843b8bcfac39b0363f66a3f Reviewed-on: https://chromium-review.googlesource.com/c/1405710 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
Bug: angleproject:3125 Change-Id: I70d295d7ec1dbafc74add068165c5fbcadb48560 Reviewed-on: https://chromium-review.googlesource.com/c/1450222 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
glmark2 uses the visual id, which is discarded in angle. This change retrieves these ids from X11 and stores them in the egl::Config. Bug: angleproject:3125 Change-Id: I2b524ecb71d675efa01cc9100a3dfe6fd57913f0 Reviewed-on: https://chromium-review.googlesource.com/c/1450221Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
- 02 Feb, 2019 2 commits
-
-
Shahbaz Youssefi authored
Due to bot build failures. Partially reverts: c09ae15c: Enable -Wextra-semi and -Wextra-semi-stmt. TBR=jmadill@chromium.org Bug: angleproject:3128 Change-Id: Ia3725e57d28cd899db59e1d8e760ad8ca3d5f70c Reviewed-on: https://chromium-review.googlesource.com/c/1450659Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Ian Elliott authored
This initial implementation provides the extension, and always answers that the ANativeWindow is not recordable. BUG=angleproject:2511 Change-Id: Id3c57351dd1029bff7adf7166f9c82eee6e634b3 Reviewed-on: https://chromium-review.googlesource.com/c/1412507 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 01 Feb, 2019 9 commits
-
-
Jonah Ryan-Davis authored
Bug: angleproject:3075 Change-Id: I34dd5d4ecded6def5a2b46369277312af0de7c8c Reviewed-on: https://chromium-review.googlesource.com/c/1443572Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
-
Shahbaz Youssefi authored
This is useful for situations where angle is substituted for the system library underneath an application oblivious to this change. The ANGLE_DEFAULT_PLATFORM variable is used when the display type is default to control the default back-end. Possible values are vulkan, gl and d3d11. If the value of this variable is not valid, or not supported by the current platform, the usual defaults are applied. Bug: angleproject:3125 Change-Id: I304b006e0a4149f78561038d01cede143640dafb Reviewed-on: https://chromium-review.googlesource.com/c/1450211Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
This will prevent users from accidentally making semicolon errors in the future. Bug: chromium:926235 Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9 Reviewed-on: https://chromium-review.googlesource.com/c/1446493 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Nico Weber <thakis@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
This is to be able to catch issues introduced through AST manipulation earlier than shader compilation time, improving debuggability. Bug: angleproject:2733 Change-Id: Ic57bc72f2ab438e60f32553d602074f3d72cc4f5 Reviewed-on: https://chromium-review.googlesource.com/c/1199922Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Jamie Madill authored
Includes a fix for the Fuchsia build and for -Wextra-semi. Bug: 926235 Bug: angleproject:2475 Change-Id: If3ef575c09656989274c91dec7657465b99978b2 Reviewed-on: https://chromium-review.googlesource.com/c/1449972Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Cezary Kulakowski authored
Bug: chromium:927650 Change-Id: Ib944dee7e537820af53eb12538c33e7d0c4fbd68 Reviewed-on: https://chromium-review.googlesource.com/c/1449631Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Tiny speed improvement in the perf test. Bug: angleproject:3117 Change-Id: Ie2892772da4808615b2a810ff523602894440b64 Reviewed-on: https://chromium-review.googlesource.com/c/1350490Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Reduces the buffer nullptr checks to a single location. Also optimizes how the transform feedback binding counter is changed. Improves the score of the draw call vertex array change test. Bug: angleproject:3014 Change-Id: I08ff341e08194a407c24143965a3d568e92b97b7 Reviewed-on: https://chromium-review.googlesource.com/c/1406891 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Qin Jiajia authored
When we use replaceChildNode function, the first argument must be the original child node instead of the deepCopy. Otherwise, replaceChildNode will do nothing since it will think deepCopy is a different node. In that case, RewriteExpressionsWithShaderStorageBlockTraverser::visitAggregate will enter an endless loop since ssbo argument is never really replaced. Test: dEQP-GLES31.functional.ssbo.* Bug: angleproject:1951 Change-Id: Ieb17a16ab2b3e0270328fafd7ba0944ca05f842f Reviewed-on: https://chromium-review.googlesource.com/c/1446686Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
-
- 31 Jan, 2019 3 commits
-
-
Geoff Lang authored
RenderTarget11 knows how to render to a specific mip of a texture but if TextureStorage11 attempts to read or write to the backing resource directly it does not select the correct subresource index. This manifested in calls to glTexSubImage going to the wrong mip of the resource. Fix TextureStorage11::getSubresourceIndex to look up the correct subresource in TextureStorage11_EGLImage. Add a test to cover this case in ImageTest.MipLevels. BUG=angleproject:2668 Change-Id: Id9270ab3bf9f37c7c671639bb8b7ce9578daaed6 Reviewed-on: https://chromium-review.googlesource.com/c/1422058Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Michael Spang authored
This can be null and this will causes a crash in strstr(). Check for null before dereferencing this field. BUG=angleproject:2475 TEST=angle_end2end_tests on Fuchsia and angle_enable_vulkan_validation_layers=true Change-Id: I76a2738365838cb2f9cb54af7637417735762b69 Reviewed-on: https://chromium-review.googlesource.com/c/1446506Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Xinghua Cao authored
Add test cases that image accesses a mipmap level of texture, meanwhile exposes two driver bugs. Bug: angleproject:1987 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: I4c43cdb97de8223d5e9af3757f41eb01eac81d0a Reviewed-on: https://chromium-review.googlesource.com/c/1415727 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 30 Jan, 2019 4 commits
-
-
Jamie Madill authored
The spirv_tools_external_revision_generate action should no longer depend on ANGLE's DEPS file exclusively. We're using the version of SPIRV-Tools provided by Chromium or ANGLE depending on the client. Depending on DEPS directly should give the correct behaviour. Bug: chromium:926354 Change-Id: I87ac59f1e3f0d3a0b13df51fb6477940ff534dc7 Reviewed-on: https://chromium-review.googlesource.com/c/1446495Reviewed-by:
Nico Weber <thakis@chromium.org>
-
Jamie Madill authored
This moves the wrapper classes into their own file. It also inlines all the various methods for performance. The inline methods are kept out-of-class to avoid problems with circular dependencies. Also adds a few missing valid() checks to the inline methods. Improves the score of the VBO state change test by 1-2%. Bug: angleproject:3014 Change-Id: Ia760c3a6905a9a5aacfd05db443b72f34947385e Reviewed-on: https://chromium-review.googlesource.com/c/1436167 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Nico Weber authored
No behavior change. Bug: chromium:926235 Change-Id: I9215b4799a3c68887b8403be057180796ab5777a Reviewed-on: https://chromium-review.googlesource.com/c/1446311Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
-
Jamie Madill authored
This requires enabling a workaround in the ANGLE shader translator to clamp the point size. Bug: angleproject:2599 Change-Id: I3171bdca5dd2e5af965e94ee2a955f46f8d706da Reviewed-on: https://chromium-review.googlesource.com/c/1412235Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 29 Jan, 2019 4 commits
-
-
Jamie Madill authored
Includes some new GLES tests added by kainino@. Bug: angleproject:3112 Change-Id: I0d81c8263eab3473dec49bb0cf3bca73cd38c6fb Reviewed-on: https://chromium-review.googlesource.com/c/1441051 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
That is required in GLES 3 for GLsync and EGL_KHR_fence_sync and EGL_KHR_wait_sync (or EGL 1.5) for EGLSync. The two constructs (GLsync and EGLSync) have similar semantics and share the implementation on the Vulkan backend. The implementation of a fence sync object is achieved through the combined use of a vkEvent and the implicit vkFence inserted at the end of every submission. Imagine the following command buffer: glDraw : Draw glCreateSync: Set Event <-- insertion of fence sync glDraw : Draw : Signal Fence <-- implicit fence at the end of submission glFlush : Submit Assume the serial S is associated to this submission. The following hold: - If event is set, the fence sync is signaled - If S is already finished, the fence sync is signaled - If client is waiting on the sync and S is not yet flushed, there will be a deadlock (unless multi-threaded and another thread performs the flush). The event is used to implement server waits (glWaitSync), as vkEvent is the only entity the GPU can signal and wait on within the command buffer. The wait is inserted in the command graph without incurring a flush, i.e. the wait can be within the same command buffer as event set. The event however does not support CPU waits (glClientWaitSync). vkFence is the only entity the CPU can wait on. For client wait therefore, the following algorithm is used: - If the event is already set, there's no wait -> already signaled - If timeout is zero, there's no wait -> timeout expired - If S is not flushed, flush it to ensure forward progress. - Wait until S is finished -> condition satisfied / timeout expired. Bug: angleproject:2466 Change-Id: I678995a6139dd9533fa8ad361a3d292b202c52a4 Reviewed-on: https://chromium-review.googlesource.com/c/1422552 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Seems to fail on the Pixel XL. Bug: angleproject:2861 Change-Id: Ic1690abccd867251e83c0ae5e38c2bbd1c41615b Reviewed-on: https://chromium-review.googlesource.com/c/1441774Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This retires the ANGLE BUILD.gn file for glslang. Also makes a few more repos sync from Chromium's copy using build overrides. This should speed up Chrome checkouts slightly. Bug: angleproject:3088 Change-Id: I530f28d9b13469bbe6471a4c61e7353d599d81ec Reviewed-on: https://chromium-review.googlesource.com/c/1422545Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 28 Jan, 2019 4 commits
-
-
Enrico Galli authored
This patch enables binding a subset of a buffer with glBindBufferRange on the D3D renderer. Bug: angleproject:2990 Test: angle_end2end_tests Change-Id: Ib15b6257891191e28801f52c539b8b2daa80fa68 Reviewed-on: https://chromium-review.googlesource.com/c/1409880Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This migrates from the old Chromium wiki. Bug: angleproject:3097 Change-Id: Id1987f364e37bda319a4a6091b1a34c21b240706 Reviewed-on: https://chromium-review.googlesource.com/c/1430972Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Shahbaz Youssefi authored
This paves the way for perf tests that measure GPU performance. Bug: angleproject:2999 Change-Id: I9d49d3e1256d8d18514885ae63264a5fbc5c29d1 Reviewed-on: https://chromium-review.googlesource.com/c/1436839 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:3109 Change-Id: Ib8565e7a99dea90bb5fc966ffe0606a8ebc62fcc Reviewed-on: https://chromium-review.googlesource.com/c/1436052Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
- 26 Jan, 2019 2 commits
-
-
Andrii Shyshkalov authored
Autogenerated from ref-scoped cq.cfg located at: https://chromium.googlesource.com/angle/angle/+/refs/heads/master/infra/config/branch/cq.cfg (pinned https://chromium.googlesource.com/angle/angle/+/988d9a068976cd893eb1cd1093299b166b58594a/infra/config/branch/cq.cfg) The new config is functionally equivalent to the old one. Upon landing, the new config will take effect once LUCI config service picks it up. If you see 'commit-queue.cfg' in https://luci-config.appspot.com/#/projects/angle , then it has been picked up. New commit-queue.cfg takes precedence over old cq.cfg, and once picked up makes it safe to remove old cq.cfg. See also internal PSA go/psa-migrate-to-commit-queue-cfg. Generated-by: https://crrev.com/i/815809 Bug: chromium:916292 Change-Id: I34579199a3aa1bf3ef4725b5d504f224cf2ee1e0 Reviewed-on: https://chromium-review.googlesource.com/c/1437794Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
We only need to perform vertex array buffer validation if the WebGL compatiblity extension is enabled and robust access is not available. Although sometimes the range checks are useful for determining undefined behaviour they are not required by the OpenGL spec. They also slow down state updates significantly. This migrates the OOR tests into specific WebGL tests. It also requires a change to a Chromium test on the passthrough decoder. Improves perf by about 10% in the Vulkan VBO state change test. Also fixes some robust resource access cases for D3D11. Bug: angleproject:3000 Change-Id: Ice37f38f01c2f27bf32ed55657a30e69d8508335 Reviewed-on: https://chromium-review.googlesource.com/c/1390362Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 25 Jan, 2019 2 commits
-
-
Shahbaz Youssefi authored
Vulkan returns timestamps in cycles, which needs to be converted to nanoseconds (by multiplying by limits.timestampPeriod) for GLES. On NVidia, this multiplier seems to be 1 for a majority of their hardware, while the timer has less and more varying granularity on AMD, Intel and others. Bug: angleproject:2885 Change-Id: I34e08ad386e06619170975039385ce35cab025a5 Reviewed-on: https://chromium-review.googlesource.com/c/1436835Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Geoff Lang authored
BUG=angleproject:3081 Change-Id: Ib6b17dbabdcb2a5ad5cf34b306bf5d3bd683ba0a Reviewed-on: https://chromium-review.googlesource.com/c/1415913 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
- 24 Jan, 2019 1 commit
-
-
Shahbaz Youssefi authored
This file was generated on the trybots dry-running a change that rolls the vulkan repos [1]. This is causing a build failure on other CLs. [1] https://chromium-review.googlesource.com/c/angle/angle/+/1405714 Bug: 925077 Change-Id: I3101a4a3fdeb7c38ac5cfe6a1d621e03a9f49071 Reviewed-on: https://chromium-review.googlesource.com/c/1435154 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
- 23 Jan, 2019 3 commits
-
-
Tobin Ehlis authored
This reverts commit 05459e06. Reason for revert: Clusterfuzz bugs flagged this commit Original change's description: > Vulkan: Adding custom pool allocator > > Copied pool allocator used by compiler to common and hooking it up as > custom allocator for CommandPools. Modified it to support reallocation. > > RendererVk now has a private poolAllocator and VkAllocationCallbacks > struct. The allocation callbacks are initialized to static functions > in RendererVk::initializeDevice() and then passed to CommandPool init() > and destroy() functions. > > Using the pool allocator saves Command Pool/Buffer clean-up time which > was showing us as a bottleneck is some cases. > > Bug: angleproject:2951 > Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4 > Reviewed-on: https://chromium-review.googlesource.com/c/1409867 > Commit-Queue: Tobin Ehlis <tobine@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=jmadill@chromium.org,tobine@google.com,ianelliott@google.com,syoussefi@chromium.org Change-Id: I363a351667c4dddef79833061790da90de477e70 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2951 Reviewed-on: https://chromium-review.googlesource.com/c/1430679Reviewed-by:
Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
-
Shahbaz Youssefi authored
Mostly mentioning other platforms where older documentation mentioned only Windows. Bug: angleproject:1944 Change-Id: Ib020892fbdee22d3dc60aa71ac6b3c5f504728c4 Reviewed-on: https://chromium-review.googlesource.com/c/1430559Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
EGL_KHR_fence_sync introduces the EGLSync object and associated create/destroy/clientWait functions. EGL_KHR_wait_sync adds the serverWait function on top of that. Bug: angleproject:2466 Change-Id: Iebb239a85c4471ea18b3c3a8a83b793af555e31d Reviewed-on: https://chromium-review.googlesource.com/c/1412261 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-