src


Log

Author Commit Date CI Message
Jamie Madill af6a51e0 2019-05-15T15:08:00 dEQP: Make deqp_path GN variable public. This allows us to reuse it in our other BUILD.gn files. Bug: angleproject:3353 Change-Id: Ic88f7781010d7319dfe3bb8f2f942fa08d37e4dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614097 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 36f47169 2019-05-15T15:36:06 Suppress flaky OpenGL ES3 test. Texture2DIntegerTestES3.IntegerTextureNonZeroBaseLevel/ES3_OpenGL Bug: chromium:963595 Change-Id: I6cdd845a5b7bc1a4b5a16029eaf170db40f1787c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613894 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 32a1b0f7 2019-05-15T15:00:20 Update dEQP build config to use GN templates. Templates make it easier to override parts of test configs. Instead of if statements we can use forwarded variables to override specific settings. This refactor makes it easier to integrate the "KHR" tests. Bug: angleproject:3353 Change-Id: Ia6e9c6d01864e5253db5d28dc087bf954aee226c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612297 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang e77f63a2 2019-05-09T10:37:42 Use clamp cast for stencil mask in all versions. dEQP only covers this behaviour in ES2.0 tests and they fail when running with an ES3.1 context. BUG=angleproject:3425 Change-Id: I339b83901434da92ae6dd6273460b0725644cdf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1602177 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Courtney Goeltzenleuchter eaf2d928 2019-04-18T16:31:25 Add support for OES_depth_texture Note: Includes workaround for http://anglebug.com/3452 - some Android devices do not indicate filtering support on VK_FORMAT_D16_UNORM. Bug: angleproject:3103 Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTexture/* angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.PackedDepthStencil/* angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTextureRender/ES2_VULKAN Change-Id: Ic325fb94ab0e619a17c2e149e0e0865fa4142f3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575426 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bff32703 2019-05-14T18:08:50 D3D11: Disable B5G6R5 on AMD drivers. Texture data corruption has been seen with this format, specifically on AMD Radeon R7 240 cards with the 15.201.1301.0 driver. BUG=941620 Change-Id: I42d0d86a8319afdfaf17b44e142c6414092c647d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610681 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi b783fbc7 2019-05-10T23:16:17 Vulkan: Fix matrix uniforms A piece of code shared with d3d was used to implement this feature. However, we store the uniform data transposed and row-major in d3d to accomodate the fact that matrix indexing in HLSL is the opposite of GLSL (mat[row][col] in HLSL as opposed to mat[col][row] in GLSL). There were two functions that copied the source matrix fields either as column-major or source-major (corresponding to `transpose` false or true respectively in glUniformMatrix*) into a row-major destination. These functions are refactored into one, which copies from any-major source to any-major destination. The HLSL backend uses the "to row-major" variant and the Vulkan backend uses the "to column-major" variant. Bug: angleproject:3198 Change-Id: I7254da4fbe6916af78c5906abcb82ca01674ab9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1607541 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott f7033c55 2019-05-13T09:48:06 Vulkan: Request at least 3 images for MAILBOX. The glmark2 benchmark score went down (on Android with Pixel devices) when ANGLE changed VkSwapchainCreateInfoKHR::minImageCount from 3 down to 2, when using VK_PRESENT_MODE_MAILBOX_KHR. In experimenting, this was confirmed. This CL changes minImageCount back to 3. Vulkan spec issue #1671 was filed in order to understand whether this is a good/bad approach for other drivers/platforms. Test: glmark2 on Pixel2. Bug: angleproject: 3400 Change-Id: Ia4a72733eb648e4f53feeb8833b174d653fa5766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610242 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
shrekshao 7d798558 2019-05-13T13:40:09 Skip validating draw buffers when RASTERIZER_DISCARD is enabled. Bug: 962555, 962636 Change-Id: I4a22f83689252b7b7e51bbb3fc80e8f0d601a43f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610701 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Jamie Madill 0a1eeb80 2019-05-13T13:53:18 Call robust resource init before object sync. This should let the Vulkan back-end only need to sync the Image data once before we use them. Bug: angleproject:3427 Change-Id: I8c6e8794e861f855bddbf651997351e8415e3479 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1602912 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill cc5199af 2019-05-13T09:44:40 Roll dEQP (May 2019) Removes the EGL 1.5 overrides now that they are upstreamed. Bug: angleproject:3446 Change-Id: I4b17354518534ea821bba83a4b1e00f83f80ac37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1605786 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9d519ab1 2019-05-09T23:09:46 Vulkan: Rework layout block storage conversion Previously, a pass over the shader was made, converting shared and packed interface blocks with block storage to std140. This resulted in link success between interface blocks with different storage as they were all translated to std140. With this change, this pass is removed. The link step proceeds with the block storage specifiers as seen by GLES, and only upon Vulkan GLSL shader generation "shared" and "packed" are converted to std140. Bug: angleproject:3199 Change-Id: I069415ab9c9b4e1034bc00f64cd2d9e2d73f5956 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1605262 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 0ae59f2a 2019-05-10T15:45:27 Add test to verify uniform matrix upload Bug: angleproject:3198 Change-Id: Icb63d036a756b849c44d36342c7ba2fc2db0f910 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1604069 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Geoff Lang e1de1ab3 2019-05-13T10:53:47 D3D: Store error message by std::string instead of const char*. These error strings are stored for recording later we can't depend on them still being alive so make a copy. BUG=962439 Change-Id: Ie9156c99b9ce79df4a11087bdcab92d980e959a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610078 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
shrekshao 3dbe480b 2019-05-06T15:59:07 Validating draw buffers now also considers color mask settings It will always return true if all 4 channels of color mask are set to false. This should only apply to WebGL. Will fix this in a later patch. Bug: chromium:958374 Change-Id: I46befaf3ae1b63027dfbb309ac32724c616025d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1594629 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e4faae21 2019-05-10T08:27:00 Rename state change notification messages. This makes the style use CamelCase instead of ALL_CAPS. It also cleans up some of the naming. It also changes some uses of the messages in some of the objects to hopefully be more consistent. See the comments added to the enum SubjectMessage in Observer.h for more details. Bug: angleproject:3427 Change-Id: I6dff4f6d335ecf1a27e48df65743b1490bd3025a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600411 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi fdbece20 2019-05-09T18:06:34 Vulkan: Support unsigned int uniform types Bug: angleproject:3198 Change-Id: Iac5d1389f4f466b7886246d8ca529e8f26a6a5bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1603629 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7b08d381 2019-05-09T00:52:04 Vulkan: Enable EXT_frag_depth Natively supported with GLES3 dEQP tests already enabled and passing. Bug: angleproject:3218 Change-Id: I5ff94e3b16d2025a58d5a448383049f9330dd46f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600864 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7ef73a52 2019-05-08T10:48:15 Vulkan: Support flat and centroid qualifiers Bug: angleproject:3219 Change-Id: I2e0b60bda9c3af2b9eadf2efd3899250925897f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600335 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 5517ce95 2019-05-07T00:27:06 Vulkan: fix qualifier erase for unused vertex attributes Bug: angleproject:3219 Change-Id: I8f8f5572eed5126ab03702953883b313f022a264 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1598548 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9fa248e1 2019-05-06T14:55:18 Vulkan: Implement EXT_draw_buffers In GLES, color attachments are referenced by their indices. These indices match between the API and GLSL. For example, if a shader has: layout(location=0) out color; layout(location=3) out roughness; Then GLES would bind and enable GL_COLOR_ATTACHMENT0 and GL_COLOR_ATTACHMENT3. In Vulkan, the framebuffer object and the corresponding renderpass define the color attachments, and they don't allow gaps in color attachments as GLES does. A render subpass creates the mapping between the color attachments as defined in the framebuffer and the attachments used by the shader (with possible gaps). This change packs the enabled GL color attachments for the sake of the framebuffer, and sets the subpass up in such a way that the shaders continue to use the same color output indices as GLES. In the example above, we have the attachment indices as follows: Status | GLES | GLSL | RenderPass | Subpass enabled 0 0 0 0 disabled 1 - VK_ATTACHMENT_UNUSED disabled 2 - VK_ATTACHMENT_UNUSED enabled 3 3 1 1 That is, the array of color attachments in the Vulkan framebuffer/renderpass is: [0] = GL color attachment 0 [1] = GL color attachment 3 And the array of color attachment references in the Vulkan render subpass is: [0] = 0 (index 0 of the renderpass attachment array) [1] = VK_ATTACHMENT_UNUSED [2] = VK_ATTACHMENT_UNUSED [3] = 1 (index 1 of the renderpass attachment array) Bug: angleproject:2394 Change-Id: Ib6cd2b60882643ea152986eee453270d09cd4aed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595442 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 776694cd 2019-05-08T10:28:55 Change all ANGLE workarounds to use struct definition with info. Change each workaround from a simple bool to a struct with info including name, workaround set, description, and bug IDs. This will help with future workaround integration with Chrome. Bug: angleproject:1621 Change-Id: Ia27c180abaf845e280060c803e5994cc3152a057 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593917 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten cd078c33 2019-05-01T10:36:11 Allow mis-matched Android Context versions Remove the EGL validation related to context version numbers since a backwards compatible context could be created and shared, causing a version mis-match. Test: angle_deqp_egl_tests Bug: angleproject:3243 Change-Id: Iae818433fea1b230b50aa47c14f084e9079c3583 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592133 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 85da00fd 2019-05-09T09:02:34 Remove dontRemoveInvariantForFragmentInput WA Previously removed supporting code for the workaround "dontRemoveInvariantForFragmentInput" but missed this declaration. Bug: angleproject:3285 Change-Id: Ia23b424f2ccbdfe98b7cec79e4290b3621e44238 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601945 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jamie Madill cf4c6b70 2019-05-09T11:33:39 Print current file in ASSERT macro failures. Bug: angleproject:3436 Change-Id: If912ae75c96c34b27967f592910c2ee3403b24cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1602178 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mingyu Hu ebab670c 2019-04-19T14:36:45 Adding new extension GL_OVR_multiview GL_OVR_multiview functions exactly the same as GL_OVR_multiview2. All GL_OVR_multiview2 tests now also repeat the same test using GL_OVR_multiview Bug: angleproject:3341 Change-Id: I7e5294fb6bbf7692535174a15da6a42e1b5fc4e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575904 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 52e0e65a 2019-05-08T12:54:41 Vulkan:Exclude pragma_vertex test on MAC With recent pragma invariant(all) fix the pragma_vertex test is failing on MAC so excluding it from testing. Bug: angleproject:3285 Bug: angleproject:3433 Bug: angleproject:3434 Change-Id: I59079afdbef2d23a593fe0fe061997624fea5cde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601364 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5cbaa3f8 2019-05-07T15:49:22 Don't inherit ANGLETest SetUp and TearDown. Instead of inheriting from testing::Test's SetUp and TearDown we add new methods 'testSetUp' and 'testTearDown'. This helps prevent a common error of forgetting to call the base class method. Also add a check in the ANGLETest destructor that SetUp and TearDown have been called. Bug: angleproject:3393 Change-Id: Iab211305cc06ffea9ca649e864ddc9b180f2cba0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593960 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Nick Shaforostov 8fb00484 2019-05-08T12:24:41 fix a freeze when returning from fullscreen to maximized (nvidia only) freeze happens after repetitive enter & exit full screen mode Bug: angleproject:3431 Change-Id: Iea4cd75dc30cd17e53c0a7f1174e39b24d878d4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1599617 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 0412d9e1 2019-05-01T12:56:40 Remove SystemInfo::primaryGPUIndex primaryGPUIndex is being deprecated in favor of activeGPUIndex, which represends the expected index of the GPU used for graphics. Bug: angleproject:3383 Change-Id: I37f992adaf3716fc11e7f34b897c51c0148719cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592055 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Courtney Goeltzenleuchter b76bf1b9 2019-04-18T16:00:22 Refactor in preparation of adding OES_depth_texture Rename existing depthTexture extension flag to depthTextureANGLE to distinguish it from OES depth texture extension to be added. Bug: angleproject:3103 Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTexture Change-Id: I44c69a69b925a84f931518e0374e662893813061 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575425 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten f5115ed4 2019-05-07T14:50:50 Vulkan: Enable standard derivatives extension Enable standard derivatives by default for Vulkan. Bug: angleproject:2903 Test: Validate Skia doesn't generate errors. Test: CQ Runs Change-Id: I7f180d4ca03c154db3e9562213127eca1ce65562 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1599857 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 19905aea 2019-04-26T01:48:31 Vulkan: Set the Vulkan scissor to the GLES viewport Some Vulkan drivers are not clipping rendering that is outside of the viewport, and the Vulkan spec has some language that indicates that ANGLE should set the scissor: The application must ensure (using scissor if necessary) that all rendering is contained within the render area. In this case, ANGLE is "the application". Bug: angleproject:3253 Bug: angleproject:3254 Change-Id: I6885a3aa6daed57f6ae1c3d974663d763cad10c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1553973 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tobin Ehlis e9421b2c 2019-04-08T15:16:56 Vulkan:Only apply invariant pragma to output vars The "#pragma STDGL invariant(all)" directive should only be applied to shader output vars. This change also removes the workaround SH_DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT which is no longer needed. This change fixes two tests that were incorrectly assuming that the pragma would be applied to inputs: GLSLTest.InvariantAll[Both|In]. Bug: angleproject:1293 Bug: angleproject:3285 Change-Id: I4eb03fa89fbc7c560150ee0cc32382024b0cb3e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558678 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Staphany Park e4e3b322 2019-05-06T15:34:38 Add using-declaration to support Googletest roll. Without this change, rolling Googletest results in compilation errors: https://crrev.com/c/1594628/2. Change-Id: I85e122ad449a3d8fb155b07f64d69022294ab6cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1598309 Reviewed-by: Victor Costan <pwnall@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org>
Shahbaz Youssefi 216f73d0 2019-04-12T13:32:30 Vulkan: add uniform buffer object support Support for layout qualifiers in interface blocks are added. All interface blocks are adjusted to either be in std140 or std430. In the Vulkan backend, a new descriptor set is added for UBOs. A dirty bit is added for UBO updating and pipeline layouts and descriptor bindings are updated. Bug: angleproject:3199, angleproject:3220 Change-Id: I271fc34ac2e1e8b76dee75e54a7cff0fe15fe4ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565061 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten e76c5c3c 2019-05-03T15:51:30 Vulkan: Enable drawRangeElements() Enable drawRangeElements() for the Vulkan backend and the associated tests. Test: angle_deqp_gles3_tests Bug: angleproject:3420 Change-Id: I98770631ce1387131bb45e2c1e9df24e911bc692 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595101 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Anders Leino f6cbe44a 2019-04-18T15:32:07 Use D3D11 GetDimensions driver workaround for 2D integer textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. A test is added which reads from non-zero base level integer texture. When the workaround is not being used, reads outside the first quadrant return black. Bug: chromium:679639 Change-Id: I5282a1ba207b2d553d1836f9460ec09cb5590ea6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591594 Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Geoff Lang 0f4d72e6 2019-05-06T10:27:34 Add makeCurrent and unMakeCurrent to SurfaceImpl. SurfaceGL had these methods already so they are just moving up the inheritance hierarchy. This ends up simplifying some state tracking we had in our surface implementations. BUG=angleproject:2464 Change-Id: I480588ca8470d9ef507f95e0c0297fe126b3abfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595434 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang e755a537 2019-04-10T09:58:21 Vulkan: Add a new garbage type gated by fences. This allows Vulkan EGL objects such as EGL Syncs and EGL Images to give their garbage to the renderer before destroying. BUG=angleproject:2464 Change-Id: I59b8e1080e4292bd0856e59a928750c7e77a372e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1562522 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d7d42395 2019-05-06T13:15:35 Format all of ANGLE's python code. BUG=angleproject:3421 Change-Id: I1d7282ac513c046de5d8ed87f7789290780d30a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595440 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Lee Salzman 8ba78da0 2019-04-30T23:42:31 add support for EXT_blend_func_extended to D3D11 Change-Id: Id66868851a490d0a68a7e76280720825c4844a45 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591192 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3e62561c 2019-05-06T11:48:52 Suppress test hitting Nvidia shield driver bug The same test was hitting a bug with the Nvidia driver on windows+gles. Bug: angleproject:3413, angleproject:3417 Change-Id: I39426291eac731bcda068829686e09cf406ff661 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595438 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 66e4850d 2019-04-25T10:49:05 Use EnumAdapters to properly detect primary GPU on Win EnumDisplayDevicesA returns the card that's connected to the display, but EnumAdapters return the adapter which the desktop primary is displayed at index 0. We can use this to determine the device used for graphics. Also cleans up the discrepancy between platforms on finding "primary" vs "active" GPU. Asserts that the GPU expected to run ANGLE commands is the active GPU, and deprecates the primary GPU to be equal to the active GPU. Bug: angleproject:3383 Change-Id: I422fba1bbe47d85b7c09e378d559eaebf89e2625 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584360 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c22ef61f 2019-04-09T09:55:14 Vulkan: Store fences instead of serials in SurfaceVK::SwapHistory Previous swaps may not have been submitted by the same context as the current swap and we can't safely wait on serials submitted by other contexts. BUG=angleproject:2464 Change-Id: Ibcb23171feae038fd45abdefb80c4e8a373744e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1562521 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6f0c5b8d 2019-05-04T10:00:02 D3D11: Fix potential invalid VAO access in dispatch. In some instances running a dispatch call could lead to accessing an invalid VAO pointer. This seemed to be tied to switching Contexts. Fix the bug by invalidating the cache pointers on Context switch. Note that it seems this bug can only affect ES 3.1+ Contexts. Bug: angleproject:3349 Change-Id: Ib712bcc29215b3fd1c8b7eb0cbd70dea649b3cfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1594289 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 62742f9e 2019-05-01T16:14:50 Vulkan: Optimize shader source macro replacement @@ LAYOUT-xx @@ and @@ QUALIFIER-xx @@ macros are generated by the compiler when emitting Vulkan GLSL. These macros are replaced at link time in the Vulkan backend. Previously, this replacement was done through calls to angle::ReplaceSubstring, reiterating over the whole source on every replacement. This CL does a prepass on the input source and chunks it up in blocks. Search is optimized as only blocks of a certain type are string-compared (skipping large chunks of shader text). Replace is optimized as the whole shader is not shifted left or right on every replacement. Additionally, this CL modifies the layout macro to the following format: @@ LAYOUT-xx(extra, args) @@ This is used in a follow up CL to have the compiler provide additional layout qualifiers. Bug: angleproject:3220 Change-Id: I6367e781c3304d5f2e0a406e4fb4e6feb4c45f1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592070 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang be394bad 2019-05-02T13:41:19 Vulkan: Reset swap chain image dependency information when aquiring. If an image was used by a different context previously, it's stored serial is not relevent. We always know that any work involving the swap chain image has been completed by the time we aquire a new one. BUG=angleproject:2464 Change-Id: I0b12b9ff4b9a68593d661344d2d1e2c9d94e4755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592043 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi e25ff9d8 2019-05-01T00:02:05 Vulkan: Fix qualifiers for varyings `out` variables in the vertex shader and `in` variables in the fragment shader were not decorated with `layout(location=?)` as they should according to the Vulkan GLSL spec. This change makes sure these decorations are present regardless of whether the compiler sees these variables as EvqVaryingIn/Out or EvqVertexOut/FragmentIn. Bug: angleproject:3412 Change-Id: I66473e876cb989a60b0c6d6a5850a8b2c763d8e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590694 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 58957f3d 2019-05-03T12:52:22 Add option to run each test config in a separate process. This CL adds a command line option to angle_end2end_tests that will iterate over all test configs. For each config it'll fork a new child process that will run only a single config. This will allow us to isolate each config to a specific child process. Hopefully this will reduce test flakiness due to driver issues with multiple configs. The command line option is "--separate-process-per-config". Note that there are about 25 configs right now. Bug: angleproject:3393 Change-Id: Ia117b371bbe159c1b0d28d82befffeb0f40467a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591428 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yi Xu 80147d11 2019-04-30T16:21:24 Add support for dynamically allocate initial stack for Angle By updating YYLTYPE_IS_TRIVIAL to true, YYSTACK_RELOCATE can be enabled, so we can dynamically allocate stack size based on needs. BUG=angleproject:3028 Change-Id: I1b9cc0768cd0c6955589695e703595c56d43f24a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593954 Commit-Queue: Yi Xu <yiyix@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 467f174f 2019-05-03T12:52:21 Remove EGLTest. Consolidate these tests into ANGLETest. Add a new parameter to PlatformParameters that lets us skip normal test setup. This removes the last 'configless' tests from angle_end2end_tests. Bug: angleproject:3393 Change-Id: I87186698ade90f95577534eb8ed1dfd4245f740e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590467 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 97f0affb 2019-05-03T12:52:21 Add command line option to filter by test config. This allows us to run angle_end2end_tests with a single config without using gtest_filter. It will also allow us to run each test config in a separate process. Bug: angleproject:3393 Change-Id: I09aaf9cfe55a117b0af8d79ecfd129f3d0f1d7c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591427 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 051b0896 2019-04-15T15:39:39 Vulkan: Fix layout substitution for struct varyings If the shader contains code such as the following: struct S { vec4 field; }; out S varStruct; The layout qualifier macro is defined as @@ LAYOUT-varStruct @@. However, the Vulkan backend was replacing @@ LAYOUT-field @@. Bug: angleproject:3220 Change-Id: Iae15003867e0bed2cc939159a6653429c7a431e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571389 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 989bc9a3 2019-05-02T13:31:24 Move ANGLE Platform Methods init to GetDisplay. Moving the Platform Methods init to GetDisplay allows us to override the platform methods as soon as possible. This lets Chromium override the methods via ANGLEGetDisplayPlatform. It also lets us reset the platform methods when making a new display. Note that because the methods pointer is global it's a bit tricky to manage between swapping configs in ANGLE tests. Using a separate test process for each config should help. Bug: angleproject:3393 Change-Id: I351f86422e53075563f6d8fce32efbd40023cd23 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592045 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 3e251337 2019-05-02T16:12:54 Removed SizedFloat helper class from upload tests. This helper was redundant with the image utils library. Switch the test to use the existing methods. Doesn't affect test correctness. This removes more 'configless' tests from angle_end2end_tests. Bug: angleproject:3393 Change-Id: I49cfbd95c3713b2b4b25c4716a7a279d84ddf994 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591426 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yi Xu 926f1caa 2019-05-01T14:03:05 Add support for GCC Compilers Add support for GCC Compilers, so it can be build on Ubuntu. BUG=angleproject:3392 Change-Id: I2f5ac7355a40f52123bd465f86b1e966c59c943d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592062 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yi Xu <yiyix@chromium.org>
Jamie Madill 69f72b41 2019-05-02T16:12:54 Simplify ANGLE test config names. We don't need to use upper case. Lower case can be more readable. Skip a test on Linux/NV/Vulkan that became flaky after changing the test order. Bug: angleproject:3393 Change-Id: Ie027e08ddc9d47b9484cf5b1aaca72a05dd60517 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574676 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ddc4d33a 2019-05-01T15:11:46 Remove several underused platform configs. * Removes D3D11 Warp and Reference configs from tests. * Removes several permutations of OpenGL back-end specific configs. * Removes FL 9_3 since it is no longer supported. * Removes present path "Copy" since it's redundant with normal D3D11. Reduces number of configs from over 60 to 25. Bug: angleproject:3393 Change-Id: Ia5a23de3c4865b17ee50673a4066757b901a4b5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574675 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3089f92e 2019-05-01T15:11:46 Move EGL Display config into EGLPlatformParameters. This CL moves all of the EGLDisplay configuration into an EGL platform struct. Consolidating display configuration in the struct allows us to move configuration out of the test constructor. Then when we filter test configs we don't need to wait for the individual test setup. Bug: angleproject:3393 Change-Id: I5bd06dcdc9f2867ebc43c1d4984077ada35cafc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574674 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang ca49e6dc 2019-05-01T14:20:36 Reset the default framebuffer if ContextImpl::onMakeCurrent fails. Context has the invariant that if it is not current anywhere, mCurrentSuface is null. If makeCurrent fails in ContextImpl::onMakeCurrent, the surface is not reset, breaking this invariant. BUG=angleproject:3414 Change-Id: Icb13c8e2d1edd98d87a8af091a3fbacebadb395c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592064 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi fc0be049 2019-04-18T09:44:06 Fix GL_MAX_COMBINED_UNIFORM_BLOCKS query This was previously returning maxCombinedTextureImageUnits instead of maxCombinedUniformBlocks. Fixing that exposed a bug in the GL backend where the combined values were sometimes capped to vertex+fragment values and sometimes not capped at all. The reasoning for such capping was that the combined limits as queried from GL contains stages not available in GLES (such as tessellation). However, the capping failed to take geometry shader limits into account. This change adjusts such capping to vertex+fragment+geometry. It also applies the cappping to all combined limits, rather than a select few. Bug: angleproject:2099 Change-Id: I7231058b5d7f80b1b2452d9f87d4b0ab6e1cdb17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572487 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill b8149075 2019-04-30T16:14:44 Clean up ANGLE test extension functions. None of these functions needed to be member functions. Also make the naming more consistent. Bug: angleproject:3393 Change-Id: I7aafe2269a48af703a87bd9a8cf4cfab9e177dd3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574673 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0659c991 2019-04-30T16:14:43 Set swap interval explicitly. The swap interval can be changed independent of the Surface config. Thus it makes more sense to set it explicitly in test setup. This simplifies the test config. Also updates some of the API for GLWindowBase. Return an explicit error from makeCurrent. Bug: angleproject:3393 Change-Id: Ic62b33018e872bc0e38f2848e2427ed898b60749 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574672 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8f39cd83 2019-04-10T13:58:08 Roll Chromium DEPS (April 30, 2019). Required a few build tweaks because GN check does not understand #ifdef includes. Bug: angleproject:3411 Change-Id: I1aa7b97626767e3dc973bfa55f5b2a511c806ec9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1589148 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 0f861bd8 2019-04-26T16:00:23 Vulkan: Don't present on surface destruction. The the user hasn't called SwapBuffers explicitly, we should not write to the window surface. This is especially a problem when the native window has already been destroyed. BUG=angleproject:2464 Change-Id: Ib4289de471ba2ad10e5cc21a8c2af946642f138c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1586355 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
shrekshao 15ce8227 2019-03-18T19:25:21 Fix error report when active color buffer has no fs output Also modify or remove some tests to sync up with the expected behavior stated in spec. Related to https://github.com/KhronosGroup/WebGL/pull/2780 If any draw buffer with an attachment does not have a defined fragment shader output, draws generate INVALID_OPERATION. Also remove Framebuffer masking for inactive outputs. This workaround is no longer necessary as the WebGL spec has changed. It also was never fully working and had bugs with certain orders of calls. Bug: angleproject:2872 Bug: chromium:927908 Bug: chromium:943538 Change-Id: I73715a6ab851ae3db7096f49ea0a9fdd6f576703 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1530018 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang 28383fb2 2019-04-26T16:00:06 Vulkan: Wrap aquire semaphore in a vk::Scoped If vkAcquireNextImageKHR fails, the aquireImageSemaphore would be leaked, wrap it in a vk::Scoped so it is always cleaned up. BUG=angleproject:2464 Change-Id: Ic4a0e16c89ea7c35cf060e5601760422e673c080 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1585318 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 82133763 2019-04-02T16:58:37 Vulkan: Add an unMakeCurrent for contexts. This allows contexts to flush and update state when they are no longer going to be current. BUG=angleproject:2464 Change-Id: Ie577475a94090631a0208542b32a12a239bdeb75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1553824 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 1ad7a072 2019-04-26T14:05:25 Clean up unexpected passed/failed test behavior for generate_stats The lists of tests can't be added to the sheets if more than 50,000 lines. Since the goal is to get rid of all unexpected passes/failures, it's reasonable to clip the lists by length. Other formatting changes too. Bug: angleproject:3398 Change-Id: Ice461862fb4266e0ad1280f20de85224fc6d7e97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1585612 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang 6f691fbb 2019-04-25T11:01:52 Port the WebGL2 framebuffer-texture-changing-base-level test to native A nearly direct port of the https://www.khronos.org/registry/webgl/sdk/tests/conformance2/rendering/framebuffer-texture-changing-base-level.html test for easier debugging. BUG=angleproject:2291 Change-Id: Ibc8a7e77629f1ea3f15e92ea93f1210fa850c524 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584361 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shrek Shao <shrekshao@google.com>
Jonah Ryan-Davis 51ac37ee 2019-04-25T13:32:16 Print unexpected passed/failed tests with formatting for generate_stats The stats generation should pick up a list of unexpected failed/passed tests, so the tests should be printed with the format used by this script. Bug: angleproject:3398 Change-Id: I96a8eba6c2e294f64ca59ec60042cc688d1133c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584363 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang fb6fbdbc 2019-04-12T15:16:30 Return that polling queries have completed after context loss. KHR_robustness says that certain queries that poll such as GetSynciv with SYNC_STATUS should still generate errors after context loss but also return that the result is available. BUG=angleproject:3379 Change-Id: Ibf61f8481bc7c3d1b4fa8979dc404d0ca3952fcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566142 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5a0f64b6 2019-04-23T16:06:47 D3D: Require cube completeness to create render targets TextureD3D_Cube::isFaceLevelComplete skips checks for the base level because it assumes that isCubeComplete has already been called to verify the base level. This assumption is not correct for some cases like glCopyTextureCHROMIUM which attempts to create a render target from cube maps that may not be complete. This caused us to create render targets from incomplete cube maps and then fail to upload data to the cube faces because the sizes or formats did not match between the images and render target. TEST=conformance/more/conformance/quickCheckAPI-S_V.html BUG=angleproject:3384 Change-Id: Iceb9415debfa07436fea1eb4bc23d0ec05679839 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1578957 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Xinghua Cao 1b0acbb5 2019-04-23T15:17:56 Add cases with multiple draws and dispatches D3D11 cannot allow the same (sub)-resource bound as both a SRV and an UAV at the same time. If render pipline and compute pipeline access the same texture, must unset conflicting SRVs and UAVs before drawing and dispatching on D3D backend. Currently, these cases could not pass on D3D11 backend. Bug: angleproject:3152 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: I3ed19d7586625aac7fe9f46f86341d136d148019 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1578131 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Tobin Ehlis 47b5b1c2 2019-04-22T13:32:31 Vulkan:Improve white box test documentation Add target for angle_white_box_perftests to DevSetup.md Android build instructions. Generously comment the test source to clarify various tests and how to run them. Bug: angleproject:3136 Change-Id: Ie4f0ec6951d354ebac861f727c9d550a93ad48c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1577740 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Geoff Lang 1f6eb0cd 2019-04-24T16:32:00 D3D: Re-mark StreamDraw buffers as dynamic. The StreamDraw usage flag was changed to a static type in http://crrev.com/50eb1e6f77b3b0ad89d2cd00efc0d1d673365296 but it appears to have regressed performance in several Chrome benchmarks because Skia uses it as a usage flag for buffers that change data frequently. BUG=angleproject:3366 BUG=953788 BUG=954028 Change-Id: Ib6805d94714bcd1679f3c9c49f1b70574f0b658a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1582786 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 8cbd321c 2019-04-23T13:25:20 Android: Clean up the ANGLE APK * Rename the APK package name to reflect that it is from Chromium build. * Rename the application to reflect it is no longer used on Android system image. * Remove code supporting multiple APKs, since we only have one now. * Remove the placeholder icon, which is no longer needed. * Remove the ANGLE_FOR_ANDROID intent, since this APK is not built in. * Remove the java code since since it was only in support of the intent. * Remove most apps from the rules file. Bug: angleproject:3396 Change-Id: Ic6a2fd03e5686026ab4650fc0c25adb298af03c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579389 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jan Beich c9a9cfcc 2019-04-23T16:25:18 `environ` needs to be declared for (at least) FreeBSD. Declaring it unconditionally seems to build fine on all other platforms. Change-Id: I4c587d6ec47989f0d22588aca8883c4ef68f91c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579917 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 83740f97 2019-04-22T11:56:56 Android: Add ANGLE version to logcat We need addtional info in logcat to diagnose ANGLE issues. Before this, only Vulkan version and hardware details are reported: ANGLE : Vulkan 1.1.87(Adreno (TM) 540 (0x05040001)) After this, we also get the ANGLE version: ANGLE : Version (2.1.0.bc20af89d498), Renderer (Vulkan 1.1.87(Adreno (TM) 540 (0x05040001))) Bug: angleproject:3395 Change-Id: I4b67fe5ce389d3d2d641a4cc8b2e0b67649dc70d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579044 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Michael Spang c467f7b5 2019-04-17T20:20:30 Compute usage from format properties cache in glTexStorageMem2DEXT Per issue 13 in the EXT_external_objects spec, we should request all of the usage flags that are supported for the format. Bug: angleproject:3289, angleproject:3389 Change-Id: I5ef9906061af0fd619f580a9f603dd43be162932 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1573218 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Kenneth Russell 51386f4a 2019-04-11T21:55:20 Reland "Define and expose EGL_ANGLE_power_preference extension." This is a reland of ac58e63295f093b7518535bdd060ff832025b0c5 The original CL was reverted in a rush because I thought there was an uninitialized variable bug, but upon later re-review this turned out to not be the case. Original change's description: > Define and expose EGL_ANGLE_power_preference extension. > > Allows application to select the integrated or discrete GPU on > dual-GPU macOS systems. > > Tested by modifying the example program at: > https://github.com/grorg/ANGLEIOSurfaceTest > > and verifying that both integrated and discrete GPUs can be selected. > (The changes to that program will be upstreamed once some build issues > are resolved.) > > Bug: 2813 > Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081 > Commit-Queue: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: 2813 Tbr: geofflang@chromium.org Tbr: cwallez@chromium.org Change-Id: Iea000dd718f4f4b4f57237adb1dc44381b10106b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575419 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kai Ninomiya 145ec7fa 2019-04-19T01:50:34 Revert "Define and expose EGL_ANGLE_power_preference extension." This reverts commit ac58e63295f093b7518535bdd060ff832025b0c5. Reason for revert: Revert on kbr's request: "has an uninitialized variable bug" Original change's description: > Define and expose EGL_ANGLE_power_preference extension. > > Allows application to select the integrated or discrete GPU on > dual-GPU macOS systems. > > Tested by modifying the example program at: > https://github.com/grorg/ANGLEIOSurfaceTest > > and verifying that both integrated and discrete GPUs can be selected. > (The changes to that program will be upstreamed once some build issues > are resolved.) > > Bug: 2813 > Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081 > Commit-Queue: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,kbr@chromium.org,cwallez@chromium.org Change-Id: Icb936d91eec70deb825585da3ff8835ca2794736 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 2813 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575134 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Kenneth Russell ac58e632 2019-04-11T21:55:20 Define and expose EGL_ANGLE_power_preference extension. Allows application to select the integrated or discrete GPU on dual-GPU macOS systems. Tested by modifying the example program at: https://github.com/grorg/ANGLEIOSurfaceTest and verifying that both integrated and discrete GPUs can be selected. (The changes to that program will be upstreamed once some build issues are resolved.) Bug: 2813 Change-Id: Ibeb17778512896456d220e9bc4cf8f222aa57057 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570081 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 85a239d0 2019-04-18T15:47:52 Vulkan: Write docs on format tables. Bug: angleproject:3372 Change-Id: Ib6cae7975484f4789f3d244adcb158e49892a246 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574619 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0631e19b 2019-04-18T16:09:12 Vulkan: Rename Vulkan "Texture" format to "Image" Also adds some comments to vk_format_utils.h. Bug: angleproject:3372 Change-Id: I529b9b189e4cdfd400c3c981a47139727d9954ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565062 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 3b775865 2019-04-18T15:59:15 Skipped tests not accumulated in dEQP stats output. The sSkippedTests is not incremented in the kGpuTestSkip check in runTest, when it should be. Bug: angleproject:3390 Change-Id: I4aca73ba1bbe3060fc3c0cd27679c2276a30a741 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574620 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Yuly Novikov d18c048a 2019-04-04T19:56:43 Remove Nexus 5X Vulkan test suppressions. SimpleStateChangeTest.DrawArraysThenDrawElements TextureUploadFormatTest.All VertexAttributeTest.UnsignedByteNormalized VertexAttributeTest.ByteNormalized EXTMultisampleCompatibilityTest.DrawAlphaOneAndResolve was skipped on all Android for unspecified reason in https://chromium-review.googlesource.com/c/angle/angle/+/451877 seems to be passing now. Make some suppressions OpenGL ES specific: MultisampleCompatibilityTest.DrawCoverageAndResolve RobustResourceInitTest.TexImageThenSubImage RobustResourceInitTest.ReadingPartiallyInitializedTexture RobustResourceInitTestES3.MultisampledDepthInitializedCorrectly RobustResourceInitTest.MaskedDepthClear RobustResourceInitTestES3.MaskedDepthClearBuffer RobustResourceInitTest.MaskedStencilClear RobustResourceInitTestES3.MaskedStencilClearBuffer TransformFeedbackTest.OffsetResetOnBeginTransformFeedback Bug: angleproject:3262 Bug: angleproject:3124, angleproject:2657, angleproject:2797 Change-Id: I3ed7a3f0ebbb4598bff75e2b3bd8b3b0630779f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572484 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Michael Spang f02a767d 2019-04-09T18:45:23 Vulkan: Implement glTexStorageMem2DEXT This implements support for creating textures that alias vulkan images allocated inside external memory. Bug: angleproject:3289 Change-Id: Iad071f353a217793102ae737647c7cd572f7b0ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Shahbaz Youssefi 422c94bd 2019-04-12T13:37:19 Vulkan: Enable ES3 fragment output attribute locations GLSLTest_ES3 end2end tests are enabled for Vulkan, though with suppressions for other features that are missing. Bug: angleproject:3199 Change-Id: Ie744e160eab2df9a5a4f2c67ea5acf4b865ea5bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565058 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
jchen10 82bcffa7 2019-04-17T10:45:25 Disable parallel compile for d3d11 compute To observe whether the flaky issues still show up with the feature disabled. Bug: angleproject:3349 Change-Id: I0eae861ad76212fb4a65b57c1e1b5e8c583d6a3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571027 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Jonah Ryan-Davis 0f7a2330 2019-04-17T11:13:41 Modify test result output from dEQP tests for visualization script. Test results will now be prepended with [TESTSTATS], and there are two new outputs added for unexpected passes and unexpected failures. Bug: angleproject:3369 Change-Id: Iec4dafe695531dcf56d496083036ccf1e286ead7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571388 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 057b76e1 2019-04-12T14:48:59 Implement GL_CHROMIUM_lose_context. This is useful for testing context lost behaviour. BUG=angleproject:3379 Change-Id: If0e1538553b1761e313fc36ccde5138cd495200f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566141 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 95c0fae6 2019-04-16T22:46:08 Vulkan: Clear surface images if emulated format This was done for renderbuffers but was missing for surfaces. Bug: angleproject:2722 Change-Id: I019805d6ca43eef86d2d46e7c72c1013803f2139 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1570149 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang 3b2c6bfd 2019-04-16T17:19:50 Vulkan: Implement glImportMemoryFdEXT Allow importing opaque file descriptors into memory objects on linux. Currently this just holds onto the file descriptor rather than calling vkAllocateMemory immediately. The latter will be easier once we have support for suballocation (anglebug.com/2162). Bug: angleproject:3289 Change-Id: Ia80ce07b2a9ec95b9063feb9bfeb24ffe77fa40e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552028 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis c832cdd7 2019-04-15T14:53:01 dEQP test_expectations parser should output an error on unused lines. dEQP test_expectations parser should allow nested overrides. When an expectation line is not used for any test, it's likely duplicated or misspelled, or the test was removed. The parser should output these errors to make it easier to keep the expectations up to date. Also necessary to allow longer/more specific expectations to override shorter ones, so the scenario where you FAIL one set of tests across platforms, and SKIP a subset of that group on one platform will still be allowed. Bug: angleproject:3368 Change-Id: If0470cb6fb12f8d3daa97df0c701185fa086668c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1564725 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sunny Sachanandani b8a8ffd3 2019-04-11T21:09:37 Add support for RGB10A2 in eglCreatePbufferFromClientBuffer Bug: chromium:937108 Change-Id: I689562ebff9f9f85ecb8af918bbb788b16b0f91b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565420 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Michael Spang e0da9cef 2019-04-16T14:34:51 Pack handle type enum for glImportMemoryFd & glImportSemaphoreFd Bug: angleproject:3289 Change-Id: Ic20b1d55641494b46622e1e28d93e2ca30655ea6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566143 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sascha Kolodzey 50eb1e6f 2019-04-16T12:18:35 D3D: Update dynamic BufferUsage flags. Changed the mapping between gl::BufferUsage flags and D3DBufferUsage flags. Only gl::BufferUsage::DynamicDraw gets mapped to D3DBufferUsage::DYNAMIC now. This reflects a better mapping between GL and D3D. BUG=angleproject:3366 Change-Id: I5062f91fdb3664339e2c259b399d5f47401675d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1569465 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mingyu Hu 7d64c486 2019-03-12T14:27:40 GL_ANGLE_multiview has been renamed to GL_OVR_multiview2. changes include: 1) GL_OVR_multiview to GL_OVR_multiview2 extension directive change 2) Removal of all references to side by side. We no longer support multiple views in a single 2DTexture. Only 2DTextureArray's are supported 3) WebGL 2 (ES3) is required for multiview Bug: angleproject:3341 Change-Id: Ie0c1d21d7610f8feebdb2e4d01c6947f57e69328 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552023 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>