kc3-lang/angle/src

Branch :


Log

Author Commit Date CI Message
240befe5 2019-11-15 14:40:31 Add support for gl_HelperInvocation Added HelperInvocation to builtin_variables.json, regenerate the codegen portions of compiler, and plumb support for HelperInvocation through the rest of the compiler. Skipping some fails on Android and Swiftshader for this initial change and will debug/fix those issues in a follow-on. Bug: angleproject:4110 Change-Id: I781a2782ace84200bc615a2cc26b908a62e2aa26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922061 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
377b8caf 2019-11-19 08:57:01 Add suppressions for failures on Intel/Linux The refactor to angle_end2end_tests added tests to OpenGL ES and some of these tests are failing on Intel/Linux. Skip those tests for now. Bug: angleproject:4121 Change-Id: I7a56099faac558a4e18d98eb5f0b25522d656e61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924061 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
d22b8be4 2019-11-15 12:26:39 GN: Make X11 optional, based on a user-defined variable. Not all Linux platforms will have X11 available (Wayland, GGP), so we have to declare a variable that checks use_x11 separately. Bug: angleproject:4116 Change-Id: I7e33956da6344b8db4d4e32dbbd1b42f58f7019c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919632 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
53e45360 2019-11-09 17:26:58 Metal: support texture's incomplete image definitions. glTexImage*, glCopyImage* will copy data to the image at the respective index, then during draw call, the image data will be transferred to real Metal texture. Test done: MipmapTest.DefineValidExtraLevelAndUseItLater For implementation notes, see src/libANGLE/renderer/metal/doc/TextureDataCompleteness.md Bug: angleproject:2634 Change-Id: I0ca24c8beff2e109a794260c436985e9f4650d83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906609 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
e4b31369 2019-11-18 14:44:29 Update front-end image test failures' bug number Bug: angleproject:3563 Bug: angleproject:4124 Change-Id: I105c3ddecb5a558fd4fcbaa824c1374bd01234ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1921631 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
db3e5183 2019-11-14 13:47:55 Vulkan: Fix col-major transformation of unsized arrays If the row-major expression that was being transformed was in the form: arr.length() where `arr` is an SSBO unsized array, the translator transformation was attempting to transpose the `arr` expression, which is both wrong and impossible. Note that length() is removed through a prior transformation except for this particular case. This change recognizes this usage and supports it by keeping the expression as is (as the length() would be identical pre or post transformation). Bug: angleproject:3443 Change-Id: I8efacb7b12d5e53047eb56ab5d86830d81952d86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917422 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
51b5a322 2019-11-15 13:17:35 Update dEQP 3.1 expectations Set bug 4110 for dEQP-GLES31.functional.shaders.helper_invocation.* Bug: angleproject:4110 Bug: angleproject:1442 Change-Id: Ic1b62e5f1a1a47fd92420fb1aeab7f97dd9f75dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919549 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
a829c0b9 2019-11-14 16:49:02 Expose EGL_CHROMIUM_sync_control via GLX_OML_sync_control On GLX, we can expose the EGL_CHROMIUM_sync_control extension by forwarding to GLX_OML_sync_control when it's available. This will help with accurate vsync times for Chrome Bug: 1020252 Change-Id: I9b1e8cf0f8b1a548cc7cc7202fac2d0cdb01d74d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1918104 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
e4aa7235 2019-11-13 14:09:35 Vulkan: Update Expectations with GLES 3.1 Conformance Failures Update the following expectations files with GLES 3.1 conformance failures to help tracking: deqp_gles31_test_expectations.txt deqp_khr_gles31_test_expectations.txt Bug: angleproject:4098 Bug: angleproject:4099 Bug: angleproject:4100 Bug: angleproject:4101 Bug: angleproject:4102 Bug: angleproject:4103 Bug: angleproject:4104 Bug: angleproject:4105 Bug: angleproject:3443 Bug: angleproject:4107 Bug: angleproject:4106 Bug: angleproject:4108 Test: None (test failures were collect with Khronos conformance run) Change-Id: I9ea818f99c6b74602ea5321f393f0066bc115905 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914131 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
deae1fce 2019-11-09 17:22:40 Enable Metal backend. Metal will be secondary default backend after OpenGL for now. The tests will be enabled for metal in CL http://crrev.com/c/1906607. Bug: angleproject:2634 Change-Id: I109c641d749c2a207bbb7d500bc281ffb0b13848 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906612 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
20f11f58 2019-11-14 15:08:53 Update GLES31 Expectations The following tests need to have their bugs corrected in deqp_gles31_test_expectations.txt: dEQP-GLES31.functional.separate_shader.* dEQP-GLES31.functional.program_interface_query.program_input.resource_list.compute.empty dEQP-GLES31.functional.program_interface_query.shader_storage_block.buffer_data_size.* Bug: angleproject:3570 Bug: angleproject:3596 Test: None Change-Id: I09807d86a2cec153fcb7d6b22407bdd0d84c44ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1918045 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
1c795d9e 2019-11-12 11:03:14 Add a test to capture bug with LUMA blit workaround This test captures a bug with state tracking in the BlitGL LUMA texture workaround. Bug: 1022080 Change-Id: I22d2eb0d653778be300ab4a1f6b27e67f8cf1cbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1912140 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
5f4db6a7 2019-11-11 14:52:37 Fix performance issue with EXT_multisampled_render_to_texture Adding a dirty flag to the mMSTexInfo struct so that the multisampled texture does not get unnecessarily resolved on each call. Bug: chromium:1019199 Change-Id: Ia9b24cd0a7f2d82f83f20f7e60f9f2b23383ec6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1910531 Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
11c487a8 2019-10-25 16:50:01 Manually copy dEQP data files to output directory dEQP has data files that live in several directories within dEQP's source tree. For example, GLES3 has data files that live within: data/gles3/data/ external/graphicsfuzz/data/gles3/ However, we can only tell dEQP about a single data directory during initialization of dEQP. To get around this, we are manually copying all of the necessary data files to the output generated files directory and pointing dEQP to this single directory. This also helps us solve a second problem related to the paths that dEQP uses when accessing graphicsfuzz data files. For the graphicsfuzz tests, dEQP will attempt to open the necessary shaders by accessing them with the path: data/gles3/graphicsfuzz/ However, those files would normally live at the path that matches their location within the source tree: external/graphicsfuzz/data/gles3/graphicsfuzz/ As part of the manual copy of these data files, we are also able to strip the extra 'external/graphicsfuzz/' portion of the path. Bug: angleproject:2322 Test: dEQP Change-Id: Ibc96442c221485e2f246890fa8fe51f090c5e222 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881759 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
1a01b4b3 2019-11-11 16:41:07 Refactor end2end test macros This is a foundational CL to enabling the end2end tests on swiftshader. Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES* macros that will run tests over all various combinations of all platforms for different ES versions. Just skipping failing tests initially to get the refactor landed. Bug: angleproject:4081 Bug: angleproject:4092 Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
968df09e 2019-11-11 16:48:14 Treat VK_TIMEOUT as an error The fence wait time was increased to 120 seconds, so we don't expect VK_TIMEOUT to be returned by a healty GPU. This change makes it so that when VK_TIMEOUT is returned, we will treat this as an error and propagate it to the GLES application as a GL_INVALID_OPERATION. It is expected that the GL application will re-initialize ANGLE which will also reinitialize the Vulkan device (and hopefully clean up the error). This is not our final design for ANGLE's VK_TIMEOUT handling, since we expect to expand our Vulkan device lost error handling when implementing the GLES 3.2 robustness requirements. This will likely improve ANGLE's VK_TIMEOUT handling as well. Bug: angleproject:4043 Test: Manually force VK_TIMEOUT (lower kMaxFenceWaitTimeNs) Change-Id: I2449ad214ada176014a1702a9b3417d4498d070f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1910722 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
0e5d019e 2019-11-08 08:43:21 Vulkan: Enable 3.0 as default context version Now that 3.0 support is passing dEQP, always return that as the context version to use (unless app asks for 1.0). Test: angle_end2end --gtest_filter=EGLBackwardsCompatibleContextTest.BackwardsCompatibleEnabledES3/* Bug: angleproject:3750 Change-Id: I0402ac015acfc22e84a985fe75346999bcc47188 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906202 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
edc560fe 2019-10-31 17:18:29 Vulkan: Add 565 and validate pixel formats: Windows Add support for 565 to Windows. Also includes code that verifies generated configs can actually be supported by Vulkan. Test: --use-angle=swiftshader --deqp-gl-config-name=rgb565d0s0ms0 --gtest_filter=dEQP.GLES3/functional_fragment_ops_interaction_basic_shader_80 Bug: angleproject:4016 Change-Id: Idcfd4dd368c4a30ef177aa89e1035d2f00570c99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1885378 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
6e687af2 2019-10-17 14:36:41 Support standalone Android builds in ANGLE. By disabling apk generation, we can build all of our targets in a standalone ANGLE checkout on Linux. This allows tools like gn desc to give us useful information about Android builds. BUG=angleproject:4026,angleproject:2344 Change-Id: Ic46348fd06c5174ce5e5a4d89ceb391246c6ac6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866080 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
1b52f058 2019-11-13 16:04:53 Vulkan: Update bug numbers for GLES 3.1 "debug" expected failures I triaged these failures and put cross-backend failures in 2324, and Vulkan-specific failures in 3590. Bug: angleproject:2324 Bug: angleproject:3590 Change-Id: Iac806334f410d660c9af42a5c9101b26364911bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914928 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
f533355b 2019-11-13 20:04:24 Roll third_party/vulkan-headers/src d287523f48db..d42d0747ee1b (6 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/d287523f48db..d42d0747ee1b git log d287523f48db..d42d0747ee1b --date=short --no-merges --format='%ad %ae %s' 2019-11-06 jmadill@chromium.org GN: Add support for Google Games Platform. 2019-11-06 8729214+jonahryandavis@users.noreply.github.com build: BUILD.gn missing defines for MacOS 2019-11-04 oddhack@sonic.net Update for Vulkan-Docs 1.1.127 2019-10-28 shannon@lunarg.com vulkan: Fix typo for `operator==` in `vulkan.hpp` 2019-10-25 shannon@lunarg.com vulkan: Update `vulkan.hpp` for VS2015 VT fix 2019-10-21 oddhack@sonic.net Update for Vulkan-Docs 1.1.126 Created with: gclient setdep -r third_party/vulkan-headers/src@d42d0747ee1b If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-headers-angle-autoroll Please CC cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Change-Id: I36b0e8d3141bf621fdee054cd45d0e98cd3b70c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914130 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
b3c4dffd 2019-11-12 14:42:23 Vulkan: Fix glMemoryBarrier* implementation The indirect bit handling is no longer necessary, as setup*Indirect functions already add the barriers if necessary. The framebuffer bit is unnecessary as the image layout transition from storage image to framebuffer attachment would already add the necessary barrier. Image access bit was indeed necessary, but so is shader storage bit which is added. Bug: angleproject:3574 Bug: angleproject:3879 Bug: angleproject:3934 Change-Id: I9da722e7a34941932731335af2313783295031ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1913080 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
feb3fb1a 2019-11-12 07:32:24 ES31: Update Vulkan skip list for SSBO This test is passing on multiple implementations locally, including SwiftShader on Android. Suspect a driver bug, will follow up with vendor. dEQP-GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite Bug: angleproject:3602 Bug: angleproject:4097 Change-Id: I363ca6fe150419f4338988cf88c7926c689914b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1911293 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
4f023f56 2019-11-11 15:46:02 Enable passing end2end test Bug: angleproject:3361 Change-Id: Ie488f77a7baa0ce66d192c651e826c2fee597af2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1912139 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
3f647b1b 2019-11-09 16:24:50 Vulkan: Improve Bresenham line emulation. Clamps the vertex position to the subpixel grid before interpolation. This will give more correct results on systems that have less than 8 bits of subpixel accuracy. Also uses a more accurate formulation for the emulation filter in the fragment shader using dfdx and dfdy. Fixes line raster CTS tests on SwiftShader. Still does not produce spec conformant lines. Updates the public docs to indicate this. Bug: angleproject:2830 Change-Id: Ib9a268df3e7d986bd2b1348be664389fe8fc0ef2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1826598 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
e33c1582 2019-11-06 16:55:29 Fix EXT_texture_norm16 * Add norm16 format info for OpenGL backend * Add validation for newly introduced norm16 formats * Fix some logic of texture tests Bug: chromium:1000354, angleproject:1365 Change-Id: Ie6d6e5e276da4df4b7c667be28d324d4976b35ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902720 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shrek Shao <shrekshao@google.com> Commit-Queue: Shrek Shao <shrekshao@google.com>
012d1519 2019-10-31 16:50:23 Stop using __has_include<Cocoa/Cocoa.h> __has_include seems to cause problems with goma builds. Instead, detect iOS vs MacOS using TargetConditionals.h. Also use plain C++ instead of Objective-C++ when possible. Bug: angleproject:3439 Bug: 1015591 Change-Id: I816624e0cdc54ad3a18d3891b4efecf6fe640574 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894243 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
5c0e6e52 2019-11-08 17:05:38 Capture/Replay: Implement more state for mid-execution replay. Includes much more state serialization. Notably Vertex Arrays were missing as well as multiple GL render states. Also fixes many serialization bugs. For example, we would not be using the correct client array and pack/unpack state in the mid-execution capture. Also depth/stencil attachments were missing from the capture. Also fixes the replay sample to work with non-zero starting frames. With these fixes we can run mid-execution replay of the T-Rex demo. Bug: angleproject:3611 Change-Id: I6945eb9b30a5137be996956b43f074a0a750b333 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1895112 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
405d4cf3 2019-11-09 02:28:49 Metal: multiple bug fixes - ContextMtl: triangle fan draws should call setupDraw() with original parameters. Not the modified parameters. - SurfaceMtl: should initialize metal layer's drawableSize after layer's creation. - TextureMtl & FrameBufferMtl: Fix texture copySubImage CPU path incorrectly copied unflipped area. - mtl_render_utils: Fix wrong variable name used for trifan compute pipeline cache table. - mtl_resources: Fix texture & buffer memory leaks due to missing ANGLE_MTL_AUTORELEASE. - mtl_utils: Fix viewport flipping error due to arithmetic between unsigned & signed values. These bugs were discovered during dEQP tests running. Bug: angleproject:2634 Change-Id: Ie01380910ab68a2b876718d9dac0b5b4c41b607c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906608 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
c2f1f618 2019-10-28 13:06:42 Always use MTLPixelFormatBGRA8Unorm for SurfaceMtl. Apple Features Table says BGRA8 is not always available but it turned out not the case based on response from Apple dev. Bug: angleproject:2634 Change-Id: I9e3465420f45fcd362cbdd385bb78169463a759d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
60a396a8 2019-11-07 16:36:45 Reset texture swizzle state to default after LUMA workaround The copySubImage LUMA workaround sets special TEXTURE_SWIZZLE_RGBA values to work. However, it must reset this parameter back to the default state after the workaround completes. Bug: 1022080 Change-Id: I84870f1264311c106ebece1e6a37d5f92a1da28c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904627 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
50919254 2019-11-07 10:52:21 Only enable addAndTrueToLoopCondition feature on Mac Intel The issue which reported the need for this workaround only found a problem on Mac. The failure doesn't happen on other the Linux OpenGL Intel driver, so it shouldn't be enabled there. Bug: chromium:1021900, chromium:644669 Change-Id: I65e7462828419aeb9182898f73977ee1c5e72ff3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904291 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Eng <enga@chromium.org>
652dbfc6 2019-11-06 16:56:28 Init Blend State color mask defaults. This is an unrelated code cleanup. Previously we would only init these member variables in the gl::State initialization code. Bug: angleproject:3611 Change-Id: I3aa34958ce5b00542d45ef63e0b32010b2eb3220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902188 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
a5a04ac0 2019-10-29 22:57:55 Metal backend pt3: shader translator Implementation of GLSL to MSL translator Bug: angleproject:2634 Change-Id: I66e2374b461548fac46163ea79790a488515e6b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1887251 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
653ee5f1 2019-11-07 09:14:22 Capture/Replay: Introduce capture index file. This index file lets us very easily write a generic capture sample. Previously the dev had to maintain a list of multiple sources files. Potentially hundreds. By writing the source file list to an index file we can load this easily in GN as a variable and plug that into the sources. Also updates docs. Bug: angleproject:3611 Change-Id: I69ba961e271d6d13d06ae01c89a0605a6fd725ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902189 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
e167f76b 2019-11-06 16:51:55 Capture/Replay: Pass gl::State to capture functions. This replaces passing gl::Context. Using a gl::State directly will more easily let the mid-execution replay code pass a mocked gl::State instead of having to modify the real underlying Context state. For example when capturing pixel pack and unpack parameters the states could not be overridden without changing the gl::Context itself. Similarly when capturing client side data. Also moves a query parameter info function into queryutils so it can be accessible to the State-based capture. Refactoring change only. Bug: angleproject:3611 Change-Id: I3c064001cfa83ebbb67a2b8fc8b6180491edd215 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1899728 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
cc0919dc 2019-11-06 16:51:53 Capture/Replay: Fix VertexAttribType BYTE output. Was mistakenly outputting UNSIGNED_BYTE. Caused incorrect rendering in the T-Rex replay. Bug: angleproject:3611 Change-Id: I91c91cb8b35f5f56cb4cce5b6893cef0fdbf71d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902187 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
16da9515 2019-11-04 11:19:14 Vulkan:ImageHelper read combined DS textures Update ImageHelper to be able to copy both the depth and stencil aspects of a DS image to a buffer. The aspects are copied separately with the depth data preceding the stencil data. This allows dEQP-GLES31.functional.stencil_texturing.misc.base_level test to pass. Added exception for ANDROID VULKAN where test still fails and new tracking bug (4080) for this case. Bug: angleproject:3949 Bug: angleproject:4080 Change-Id: Ib6104d7fa9f516154131f3e82161078ba216cfe1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1897649 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
322220a0 2019-11-05 09:51:43 Vulkan: Ignore VK_INCOMPLETE from vkGetPipelineCacheData When getting the data store from a pipeline cache, we do the following sequence: 1.) Query the amount of data to get. 2.) Create a buffer to hold that data. 3.) Request that amount of pipeline cache data. This typically works without errors, but we have seen cases where the amount of pipeline cache data changes between steps (1) and (3). This leads to the driver returning VK_INCOMPLETE because we requested a different amount of data than the driver currently has (either too much or too little). However, getting at least the pipeline cache header is all that's required, so this isn't necessarily an error: From the Vulkan spec: > If pDataSize is less than the maximum size that can be retrieved by the pipeline cache, at most pDataSize bytes will be written to pData, and vkGetPipelineCacheData will return VK_INCOMPLETE. Any data written to pData is valid and can be provided as the pInitialData member of the VkPipelineCacheCreateInfo structure passed to vkCreatePipelineCache. This change will update ANGLE to ignore VK_INCOMPLETE, rather than treating it as an error. Bug: angleproject:3988 Test: Android dEQP-GLES2.* Change-Id: I6518d7cb00c26ae403b58aafa86a600fa7a8504a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1900009 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
6072d056 2019-11-05 10:26:12 Vulkan:Ignore layer warnings about provoking vtx ext We're temporarily using a pre-release version of the provoking vertex vulkan extension that's causing the layers to complain about unknown structs. I already skipped two warnings, but missed this one so adding it. This will temporarily disable the warning until the extension lands in the header. Bug: angleproject:4063 Change-Id: Ide7b0b068fca6ea4b3cd60bce35fb56f431e4739 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1900014 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
f7b3a2ac 2019-11-04 15:51:51 Fix d3d9 intel gpu fail to create image surface issue Set allowClearForRobustResourceInit to true on D3D9 backend, which fixes clients report issues where unity web app throws `Fail to create image surface` error on integrated-intel gpu Bug: chromium:1011627, chromium:1017076 Change-Id: I733434123a8c34671b1a33b87017367baec5623c TBR=geofflang@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1898701 Reviewed-by: Shrek Shao <shrekshao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
19dd51b0 2019-11-04 11:28:19 GL: Expose PBO extensions Ensure WebGLCompatibilityTest.EnablePixelBufferObjectExtensions functions in surfaceless mode by creating a framebuffer to do the test glReadPixels from. BUG=angleproject:4079 Change-Id: I109b3cdeb85625a6a97832ecf8130d53a4074af9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1893058 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
1d09b983 2019-11-05 16:22:04 Vulkan: Fix memory corruption crash When VK_EXT_LINE_RASTERIZATION or VK_EXT_PROVOKING_VERTEX is present, createInfo's pNext pointer is set, which caused pEnabledFeatures to not be set, which ended up causing memory corruption issues. This change was made to comply with the Vulkan spec, specifically: "If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL" Since the VkPhysicalDeviceFeatures2 structure is only added to the pNext member of the createInfo structure in the if statement above, restoring the else statement solves this issue. Bug: angleproject:4060 Change-Id: I0688c4297f167fa28e110cd6ee11a11b95282493 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1899731 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
df415528 2019-10-24 09:22:39 Vulkan: Enable VK_IMAGE_USAGE_STORAGE_BIT when it is needed VK_IMAGE_USAGE_STORAGE_BIT is always enabled for vkImage, this increases memory bandwidth in some platforms. This CL changes the behavior to enable VK_IMAGE_USAGE_STORAGE_BIT when necessary. Bug: angleproject:3904 Test: angle_end2end_tests Test: angle_deqp_gles2_tests Change-Id: I8ffd37efa8d99d04328fa6232de0755be3273d9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1857799 Commit-Queue: Sunny Sun <sunny.sun@arm.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
67527cb4 2019-10-25 13:47:55 Fix compilation on UWP targets. Bug: angleproject:4053 Change-Id: Iaa358c8ce61d0ebaae11672bfb6dac2d3e847be1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881343 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
c898ec1a 2019-11-04 15:20:18 Add EGL GGP extensions. This CL adds two new extensions: * EGL_ANGLE_ggp_stream_descriptor: Introduces a new attribute to CreateWindowSurface. Allows the app to pass in a stream descriptor to VkCreateSurfaceKHR. Mirrors VK_GGP_stream_descriptor_surface. * EGL_ANGLE_swap_with_frame_token: Introduces a new function 'eglSwapBuffersWithFrameTokenANGLE'. This allows the app to pass a GGP frame token down to vkQueuePresentKHR. Mirrors VK_GGP_frame_token. Bug: angleproject:4078 Change-Id: I4313ac4c264e68999905049f661bc64b44f72fab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1897315 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
71b0f0b5 2019-10-25 09:53:06 EGL: Implement EGL_KHR_surfaceless_context Add extension string to registry Add extension flag to EGL and Vulkan Displays Bug: angleproject:3960 Test: dEQP-EGL.functional.surfaceless_context.* angle_end2end_tests --gtest_filter=EGLSurfacelessContextTest* Change-Id: Id17916f1f636454af395b7bc92892dcf8fc93e54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1885075 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
5cbb7773 2019-11-04 11:05:14 Vulkan: Increase Fence Wait Time Our current fence wait time is triggering timeouts while running with SwiftShader. However, it's possible for a 'real' application to hit a timeout also with a large enough workload. This change increases the timeout to something large enough for us to avoid most timeouts and instead rely on the OS's detection and recovery mechanism (e.g., Windows TDR). We will continue to investigate improving ANGLE's command timeout handling mechanism. Bug: angleproject:4043 Test: CQ Change-Id: I3a32174d1d794806fef1971806797683b6b3f0b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1897648 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
28b0c453 2019-10-11 15:22:02 New end2end test to print EGL information Print out EGL vendor, version, clients, clent extensions, display extensions Print GL vendor, version, renderer, shader, extensions Prints each EGL config ID and its attributes Just Vulkan based information. D3D and GL can be enabled. Bug: angleproject:4039 Test: angle_end2end_tests --gtest_filter=EGLPrintEGLinfoTest* Change-Id: I103a22eacb2eb14547d7908f93eeeca5434c5e66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879492 Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
5883a44b 2019-11-02 19:34:47 Vulkan: Don't pass width/height to Surface constructors. These values are accessible already from the Surface state. Sometimes they don't apply (e.g. GGP). Remove them to keep the code clearer. Updates the offscreen surface constructor to pull width and height from the attributes map instead of using parameters. Otherwise they weren't used. Refactoring change only. Bug: angleproject:4078 Change-Id: I9e49eadc7116562f62bd8d11342d6b8835376719 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1895762 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
2f6a9afd 2019-11-01 15:06:58 Vulkan:Ignore layer warnings about provoking vtx ext We're temporarily using a pre-release version of the provoking vertex vulkan extension that's causing the layers to complain about unknown structs. Temporarily disable these warnings until the extension lands in the header. Bug: angleproject:4063 Change-Id: Ia441ddef21bfcca9bb1b46f25a009eb469e8f1fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1895326 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
6c7208f9 2019-10-31 14:33:27 Capture/Replay: Implement mid-execution replay. Mid-execution replay starts the replay from a specific start frame instead of frame 0. Integration tests will then run between the start and end frames. This lets us make much smaller reproduction cases from large benchmarks or applications. We implement mid-execution replay via a cpp "Setup" function. The replay test will run the setup function before the starting frame. Test execution proceeds normally after setup. Currently we do not implement mid-execution capture. We run capture on all frames. Including frames before the start frame. We do this to intercept compiled shaders and programs for easier caching. This could be changed in the future to also start capture mid-execution. Mid- execution capture might require using ProgramBinary calls to capture shader and program data. Many captures are unimplemented. Several comments indicate missing functionality. There's a lot we can add as we explore replaying more complex applications and higher GL versions. We will also need some kind of state reset functionality so we can run the replay in a loop. Bug: angleproject:3611 Change-Id: I51841fc1a64e3622c34e49c85ed8919a9a7c0b20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689329 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
b68a279c 2019-10-31 17:47:59 Capture/Replay: Capture GetFloatv params. Was used in the mip map ANGLE sample. Add a new helper function that we can use for multiple captures. Bug: angleproject:3611 Change-Id: I430ce0089df4ce81ba2ca2ad64c0c206b59397b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894144 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
a576e0d4 2019-11-02 17:23:34 Capture/Replay: Only convert GLES 2 GLenums to string. Previously the enum conversion script would convert all enums in gl.xml including those for desktop GL. When replaying from a CPP file we would sometimes try to use enum values that only are exposed in desktop GL. One example is GL_TEXTURE_MAX_ANISOTROPY/GL_TEXTURE_MAX_ANISOTROPY_EXT. GLES only has the "EXT" version. Desktop uses the core version. This was breaking a replay sample that used the EXT enum. Fix this by a) including the anisotropy extension in registry_xml and b) updating the enum script to only parse GLES 2 entries. In the future we could improve the situation by auto-generating a header that defines exactly the enums we need for ANGLE. Also updates the enum helper to use uppercase enum values. Bug: angleproject:3611 Change-Id: I1e01608bc8af282dc078d5a19ac4eba659c96b57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894143 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
95f5806e 2019-11-02 17:19:43 Delete stale unused proc table functions. These were orphaned and unused after we shifted the proc table generator to split between WGL and EGL. Bug: angleproject:3533 Change-Id: I0bf6df438ba431a0cac0a1f89eabc13c67a0f676 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1895760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
422ebad2 2019-10-31 16:02:48 Fix ANGLE_get_image cube map handling. Was missing a layer parameter. Also includes a regression test. Also updates incomplete texture handling in Vulkan. Will try to sync the texture storage if the texture has never been used. Bug: angleproject:3944 Change-Id: I5fcd6931f9cb9e008faaeaecb1f6df275a2af73f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894142 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
35f74cd6 2019-10-31 16:47:10 Reorder BaseVertexBaseInstance draw calls parameters To match the parameter order of MultiDraw* calls. And potentially expose in chromium directly with ANGLE_ prefix. Bug: angleproject:3402, chromium:891861 Change-Id: I19548f4c3c7faa422e43905850b218039de43015 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894241 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
fe26bae4 2019-10-29 18:38:53 Metal backend implementation pt 2 This is without Metal specific shader translator implemented yet. Bug: angleproject:2634 Change-Id: I95d589442251c9ba111bd05a2dc379a36739046c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855069 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
e9603921 2019-10-31 14:33:26 Capture/Replay: Correct a few GLenum replay issues. This change refactors the GLenum utils into a non-autogenerated and an autogenerated portion. That makes it easier to modify the non-auto- generated bits to properly output GLenums even when the gl.xml data isn't totally correct. For instance, the "GetPName" group was missing a bunch of queries. Instead of trying to fix the GL we can simply fall back to querying the "Default" group when we return invalid enum. Also corrects a missing "0x" on hex output. Also allows the capture/replay sample to specify the correct binary data directory when testing a replay. Bug: angleproject:3611 Change-Id: I8e4c690b2850bb157a8cde8b057b20603e4b177d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1891008 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
ba65c156 2019-10-31 10:52:24 Capture/Replay: Implement GetFramebufferParameter capture. This is necessary for the T-Rex benchmark. Bug: angleproject:3611 Change-Id: I4573f8e86356272364baaccc678494707d2eebc0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1893571 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
3ff097ff 2019-10-31 10:42:00 Win: Add ANGLE_WAIT_FOR_DEBUGGER option. Setting this environment variable will make ANGLE pop up a dialog. The dev can then attach a debugger to this dialog. Only implemented on Windows currently. This option is only available when ASSERTs are enabled in libGLESv2. The code is based on SwiftShader's implementation of WaitForDebugger: https://cs.chromium.org/chromium/src/third_party/swiftshader/src/Vulkan/main.cpp Bug: angleproject:4072 Change-Id: I160cb91a423a6d4517f067f2a6f3a2d953b26505 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1892173 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
5e6be1d6 2019-10-11 11:29:22 Provoking vertex feature support enabled Added support in ANGLE for the provoking vertex feature, which allows to choose the provoking vertex convention (first or last) for flat shading. Just copying the vk_ext_provoking_vertex.h file into ANGLE src tree for now. When the extension lands in the vulkan header we'll migrate to that and remove this file from ANGLE. With this, all these tests pass with SwANGLE: dEQP-GLES3.functional.fragment_out.* (fixes 526 failures) dEQP-GLES3.functional.rasterization.flatshading.* (fixes 6 failures) dEQP-GLES3.functional.shaders.linkage.varying.* (already passing before, still passing) Bug: angleproject:3430 Bug: angleproject:3677 Bug: angleproject:4063 Change-Id: Icc361f567072c12472398e37a94a61d7f95007ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855681 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Alexis Hétu <sugoi@chromium.org>
841b0167 2019-10-30 18:08:53 Suppress flaky dEQP-GLES3 test on Win7 NVIDIA D3D11 dEQP-GLES3.functional.rasterization.flatshading.triangles Bug: angleproject:4070 Change-Id: I8bdba9d1b9d3c04df42a6c90fa106cf7e8b1a018 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890729 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
5da6f444 2019-10-30 12:54:49 Fix error string commas. For example: 1, 2, 3, 4 became 1 = 2 = 3 = 4. These were acidentally changed to equals signs way back in this CL: 610640fabee9 "Don't use gl::Error in validation." Bug: angleproject:4067 Change-Id: I05d1c5ecc5f6fb7636f81ca59d05928dd940bf8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890631 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
bb35bb4e 2019-10-29 17:17:04 Vulkan: Implement simple case ANGLE_get_image. A couple cases are left unimplemented: Incomplete/unused Textures. This leads to a slightly more tricky implementation. Since we need to read back from the staging buffer we will need to flush the Image contents to a temporary buffer. Depth/stencil readback. Requires a more complex pixel packing step. 3D/Cube/2D Array readback. Also requires a more complex packing step. Bug: angleproject:3944 Change-Id: Ic5d9a606177ba7e3e5ab945feb5f555afa11741f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879964 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
ec5c3d5f 2019-10-28 13:46:37 Fix Renderbuffer support for unsized DS formats This extends a previous fix for TextureAttachment support to also apply to Renderbuffer. Unsized DS formats should not pick up support from ES3 automatically. Also unsized DEPTH COMPONENT textures should not be allowed as renderbuffer without also having support for GL_ANGLE_depth_texture or GL_OES_depth_texture extensions. The DS sections of format tables were also refactored so that the columns align again. Bug: angleproject:3952 Change-Id: I034b6bc95091f345b7e543d7454e04554ad8eb79 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1884421 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
2c703b1a 2019-10-24 17:53:24 Print the testConfig in dEQP tests. This will help debug failures on the bots that could be caused by the wrong test config being used. As a side effect this changes the condition array of GPUTestConfig to use an angle::BitSetT BUG=chromium:997351 Change-Id: If742cd3d416694d5df6c3e6c1d722a24f487a960 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879585 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
88a74e59 2019-10-29 09:48:18 Vulkan Android: Remove support for EGLConfig's with GL_RGB10_A2 & GL_RGBA16F These were recently reverted from the Android Vulkan loader, and must also be reverted from ANGLE. When the Android Vulkan loader adds back support, it will be conditional based on whether the device supports those formats. Therefore, at that time, ANGLE will need to do the same. Bug: http://anglebug.com/4019 Bug: http://anglebug.com/4061 Bug: http://anglebug.com/4062 Change-Id: I0b749dc8be0439e6f3b8eeeb51716d4185e9b021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1887393 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
febdcf51 2019-10-28 10:54:03 Roll dEQP to VK-GL-CTS Switch from Android dEQP to Khronos GL CTS. We now mirror from the public Khronos Github github.com/KhronosGroup/VK-GL-CTS This includes a number of text fixes for GLES 2.0 conformance. Bug: angleproject:3914 Bug: angleproject:1656 Change-Id: I4cccd33e47752742cb989127c5883c0afd075b9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879579 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
287b0a67 2019-10-24 17:21:40 Vulkan: Enable forceOldRewriteStructSamplers for all Android ICDs Both Qualcomm and SwS require forceOldRewriteStructSamplers to be enabled, so this change will enable that feature for all of Android. We aren't sure yet why this is required for SwS also, but that will be chased as part of issue 2703. Bug: angleproject:4045 Change-Id: I83b2ac18e0111ed35438ffd457bfe120911a7767 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879711 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
e7852798 2019-10-28 13:51:43 Vulkan: Clean up redundant vk:: prefixes. Were in a lot of places in vk_helpers. Bug: angleproject:3944 Change-Id: I8635400d6debb7ed92e3cf84993773ca9ed74285 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879963 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
96ba0f12 2019-10-28 13:51:42 Vulkan: Move readPixels logic to ImageHelper. This logic will be shared with ANGLE_get_image. Cleans up some of the graph access logic so it can work easily with TextureVk/RenderbufferVk. Bug: angleproject:3944 Change-Id: If069528f27b2c291d52de892c707562875b95227 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879962 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
6f23b4b7 2019-09-03 20:04:28 Fix MinGW include: s/VersionHelpers.h/versionhelpers.h/ Bug: angleproject:4050 Change-Id: I7d6ac948479b499df4fb4f734fc0d9abd40bb455 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880451 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
dfc20daf 2019-10-28 13:51:42 Plumb more logic for ANGLE_get_image. Also implements and tests validation / negative API. Bug: angleproject:3944 Change-Id: I3385a4255f4fab6a12eee2abfa5ffcce2107359a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879961 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
0964988b 2019-10-26 19:47:41 Fixups to ANGLE_get_image boilerplate. - Remove level parameter from GetRenderbufferImage. - Add packed enum handling to GetTexImage. - Fix ext spec reference to table 8.4. Bug: angleproject:3944 Change-Id: I8f67608396217aaddb789dd95d0f3e2378ce918d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879960 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
95a736bd 2019-10-09 10:26:25 Reland "Add more test_utils functions." This is a reland of 5fcfcea4a9379633a83a67fc1d94938cb31f2a9c Re-land uses static linking with angle_util. The root cause of the CFI error wasn't solved. Static linking works around the problem by not using any export rules. Second re-land fixes missing imports for libEGL and libGLESv2 static varieties. Original change's description: > Add more test_utils functions. > > Includes methods for creating temporary files, deleting files, and > reading files into a string. Also renames GetPathSeparator to mention > it's only used for environment variables. Includes a new virtual type > angle::Process that will be used to implement cross-platform async > Process launching for tests. Also includes a way to specify a custom > crash handler callback. > > Also adds a few unit tests for the new functionality. They are disabled > on Android because the functions are not needed by the new test runner. > > Bug: angleproject:3162 > Change-Id: I3e2c2e9837608884c98379fa0f78c9ffbe158d73 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821940 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1015810 Bug: angleproject:3162 Change-Id: I2a18b819b0f91df610ad12ffedea2b38349fe7cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879859 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
76763cb9 2019-10-25 11:09:27 SwiftShader: Update the expectations file according to latest testing Some tests fixed. Others only fail on Android. Bug: angleproject:4016 Bug: angleproject:4019 Bug: angleproject:4045 Change-Id: If3b915fdd1c54cefa17589f025ea8a93935377c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880165 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
04ee27ef 2019-10-24 18:29:15 Capture/Replay: Add ANGLE_get_image extension. Will be used for mid-execution capture. Only has a stubbed-out implementation right now. Bug: angleproject:3944 Change-Id: I6ddae07907ecbdbd3be9a5d2d3fcafeb425445e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1878888 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
02c89327 2019-10-25 12:04:36 Capture/Replay: Fix capture build on Android. A compile error slipped in due to lack of test coverage. Bug: angleproject:3611 Change-Id: Id34ce239f3913efb0ed1abab77321981419cab44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1880160 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
8ab0bf1f 2019-10-24 12:55:12 Fix warnings in xxhash. Again these were showing up in Skia. Bug: angleproject:4046 Change-Id: Ia295ac02b1e1d7bd4186243fc2bf38dffce43c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
155947fc 2019-10-24 12:55:11 Enable "-Wconditional-uninitialized". This is a final warning used by Skia. Bug: angleproject:4046 Change-Id: I3970e30e4bd2aef07cddadd7322ef120ac857493 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877481 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
16370a65 2019-10-24 12:55:11 Enable "-Winconsistent-missing-destructor-override". This is purely a code style and consistency warning. Enabled to support building in Skia. Bug: angleproject:4046 Change-Id: Ibdcd06ded0195123e52c693851c43d0864e54ad1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
c017cee9 2019-10-24 12:55:10 Enable "-Wundefined-reinterpret-cast". A couple cases popped up where we were using an undefined cast. Fix them by rearranging assignment macros to use decltype. Another warning that is enabled in Skia. Bug: angleproject:4046 Change-Id: Ibdbae0b2a96909b101a259ff805b8b2d43a5174b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877479 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
77fba58c 2019-10-24 19:29:24 Fix improper vertex array assignment in ANGLE test. Test: StateChangeTestES3.VertexArrayObjectAndDisabledAttributes Bug: angleproject:4049 Change-Id: Ibda86585e9117686283081a76df213b2b2db0b6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879582 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
4db96149 2019-10-24 16:38:45 GL: Temporarily disable emulatePrimitiveRestartFixedIndex. This workaround appears to cause problems on Mac ASAN builds. Disabling it while investigating the root cause. BUG=1017337 BUG=angleproject:3997 Change-Id: I16a2f07f8fc69ec4d5ab40a5bf521c43f6854a49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879873 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
68945f1c 2019-10-24 12:55:09 Enable "-Wredundant-parens". This one is also required by Skia. It's purely for consistency and code readability. Bug: angleproject:4046 Change-Id: I9ed418a0bf6c7661f0970fef6da7088ca6ae6204 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877478 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
a6206854 2019-10-24 12:55:09 Enable "-Wmissing-field-initializers". This is another warning required by Skia. This one didn't find anything that surprising. Enabling the warning does help enforce code consistency and avoids a bit of possible undefined behaviour. Bug: angleproject:4046 Change-Id: Ifec7f4afad49cd820bf3c0a79df3f46559473ee2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877477 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
859ca039 2019-10-24 12:55:08 Enable "-Wshadow-field". This warning verifies we don't give variables names that shadow fields. This is another good warning to enable that Skia requires. This CL also fixes a small number of points in code that used this bad pattern. We have to disable the warning for Glslang for now. Bug: angleproject:4046 Change-Id: I072a686e3023b60cfafa778525fe712ce1fb5a50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877476 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
fd58d22c 2019-10-24 12:55:07 Enable "-Wtautological-type-limit-compare". This is used by Skia. It seems like a good this to enable in any case. It verifies that we don't do pointless comparisons like "int < INTMAX". Fix the one instance by using the base checked numeric helpers. Bug: angleproject:4046 Change-Id: Ie14a9cb2754df52929591281062d92ef70df8f97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877474 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
f251995d 2019-10-24 12:42:36 Capture/Replay: Write capture index file. This file will be used with multi-frame captures to share common code. Common code is global state, resource maps, and a list of frame replay functions. This should make converting a CPP replay into a functional test quite a bit simpler. The replay files will now be something like: angle_capture_context1.cpp angle_capture_context1.h angle_capture_context1_frame000.cpp angle_capture_context1_frame001.cpp ... etc Also adds a template for adding a capture/replay sample. Instructions are located in samples/BUILD.gn and docs in doc/CaptureAndReplay.md. Bug: angleproject:3611 Change-Id: I437b338fd84689d670a7d9e3e219d9334de25fd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869543 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
7af2676b 2019-10-23 16:18:57 Fix TextureAttachment support for unsized DS formats Unsized DS formats should not pick up support from ES3 automatically. Also unsized DEPTH COMPONENT textures should not be allowed as texture attachments without also having support for GL_ANGLE_depth_texture or GL_OES_depth_texture extensions. This change modifies some unsized formats to require extension support for TextureAttachment use. There are a couple of tests bugs that were exposed by this change so updated those tests as well. This CL only changes TextureAttachment support, but it's quite possible that renderbuffer (and texture) support may also need to be updated. Will attempt that in a follow-on. Bug: angleproject:3952 Change-Id: I75d15330dc418c421cd2855135e1e8100a89b2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877135 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
a2e66a5e 2019-10-24 12:42:36 Capture/Replay: Introduce environment options and docs. Introduces a few ways of controlling capture via: * `ANGLE_CAPTURE_ENABLED`: Can be set to "0" to disable capture entirely. * `ANGLE_CAPTURE_OUT_DIR`: Can specify an alternate directory than the CWD. * `ANGLE_CAPTURE_FRAME_END`: This variable can override the default of 10 frame to capture. Also adds a simple usage guide document. Bug: angleproject:3611 Change-Id: I49d32d5bae2c490dcbeb0f1ce3c6038e433adfaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869542 Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
6b652b33 2019-10-24 10:03:37 Vulkan: Update expectations for SwiftShader sRGB fix Issue 4011 had 2 root causes, one of which was fixed and the other split out into 4037. Bug: angleproject:4011 Bug: angleproject:4037 Change-Id: I460588d7667429751416c1904863a5117a8a4b1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1878889 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
c139250c 2019-10-13 15:05:23 Vulkan: Enable multithreading tests. These now pass with all the prior work. One test case is left disabled on Linux due to timeouts. Bug: angleproject:2464 Change-Id: If41f59f44f78160cf1b26dc05f560afd286996bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832526 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
3a8b8908 2019-10-23 13:26:13 GL: Follow-up primitive restart emulation fixes. - Use the existing utility function for computing the primitive restart index. - Fix bad merge that removed the unfoldShortCircuits feature. BUG=1017337 BUG=angleproject:3997 Change-Id: I4ba5ada9816731bdd29a0e518ce225bdd69a762e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876453 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
b2885bc4 2019-10-23 13:33:48 Vulkan:Enable UpdateBufferInUse test on AMD Re-tested this and it's now passing so turning it on. Bug: angleproject:3255 Change-Id: Iccf63cfaa4386dfda5628e189362631e655953f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876081 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
052167bc 2019-08-13 14:09:04 Vulkan: Mipmap is unconditionally enabled in ANGLE ANGLE always enables the Mipmap. The fix does redefining the image with mipmaps and replace the origin one only when it is necessary. Bug: angleproject:3737 Change-Id: Ia33a16fd7feae303fb114988059c4eec58c4232d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750627 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
710040a3 2019-10-22 10:32:27 OES_depth32 is for render buffer capability Our format caps table was incorrectly reporting GL_DEPTH_COMPONENT32_OES supported as a texture or texture attachment if OES_depth32 extension is supported. However, the OES_depth32 extension spec says: This extension enables 32-bit depth components as a valid render buffer storage format. So texture and texture attachment should not be reported as supported if OES_depth32 is available but neither GL_ANGLE_depth_texture or GL_OES_depth_texture are supported, which is currently the case for swiftshader. Bug: angleproject:3952 Change-Id: Ia29853229de9ff0918d6752631edfccf5f2ba3f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1874007 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
08af1c80 2019-10-22 08:58:52 Vulkan:Store full 64bit handle in GarbageObject On 32bit builds we were only storing 32bit handles for non- dispatchable objects. This resulted in the handles getting shrunk from 64-bits which then led to false validation errors. Fixed this by using VK_DEFINE_NON_DISPATCHABLE_HANDLE() macro in GarbageObject instead of VK_DEFINE_HANDLE(). Also MSVC on Win32 didn't like reinterpret_cast<> with the updated 64bit handles so migrated a number of GarbageHandle casts to be c-style which is contrary to style guide, but is preferable to conditional code. Bug: angleproject:3924 Bug: angleproject:3946 Change-Id: Icb4139e34989179e46ac1f0c76269ff49ab1e897 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1873244 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
a9f11bf1 2019-10-21 08:39:14 GN: Separate out constructor/destructor warnings. This will allow for the capture/replay sample to disable the warnings. We'd like to keep them enabled for most of ANGLE code. Bug: angleproject:3611 Change-Id: I3cc7af26fa54c03cc5b79727e7b403a1b218a903 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869544 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>