Log

Author Commit Date CI Message
Jiacheng Lu e4780c51 2019-06-19T17:25:43 Fix dEQp test results path on Android Bug: angleproject:3547 Change-Id: I83e491fb0121f0a8473630ead6e48b062ae06da5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1668234 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi c5c937e1 2019-06-19T16:20:57 Vulkan: Support R11G11B10_FLOAT and R9G9B9E5_SHAREDEXP The keys in vk_format_map.json were incorrect. The format table generation script is enhanced to give an error in such a case. This revealed a number of entries with no corresponding angle format, which are also removed. Bug: angleproject:2898 Bug: angleproject:3190 Change-Id: I32caf2d2a8abb6f76b25436725670a8e84d576fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666700 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8af6c6f5 2019-06-18T15:43:44 Vulkan: Minor cleanup of Transform Feedback validation By using the helper isTransformFeedbackActive* functions. Bug: angleproject:3205 Change-Id: I50b3e9db427da9f65c3e2b50d7847464e8c28202 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665353 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang 8b227a3b 2019-06-19T14:22:26 Documentation: Update support matrix. BUG=angleproject:1944 Change-Id: I123bb4f97f947272364c765b18d11dba476eee01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666696 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
James Dong c6601ec8 2019-06-14T11:07:23 Vulkan: fix texture swizzle Corrects texture swizzle in Vulkan backend. Previously user-supplied swizzle was applied before internal swizzle; this change applies the internal swizzle first, causing the correct behavior. Also recreates image views when swizzle is dirty. Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.texture.swizzle.*' Test: ./angle_end2end_tests --gtest_filter='SwizzleTest.*/ES3_Vulkan' Bug: angleproject:3212 Change-Id: Ie2c44b479da5c19ba744ace7562a73c944f97a49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660909 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll f157aba5 2019-06-19T07:01:52 Roll ./third_party/glslang/src 11805e41d992..f9d08a25fbe1 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/11805e41d992..f9d08a25fbe1 Created with: gclient setdep -r ./third_party/glslang/src@f9d08a25fbe1 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jonahr@google.com Change-Id: Iaa82e2e9fadbbd02b8dae865d61c7f1217746a8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666931 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Stephen Martinis 88e03221 2019-05-31T12:06:28 Unset conflicting SRVs and UAVs D3D11 cannot allow the same (sub)-resource bound as both a SRV and an UAV at the same time. Unset conflicting SRVs and UVAs between render pipeline and compute pipeline. Bug: angleproject:3152 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: I9cb8b902edbf987166a57af314af6b21a6874998 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1576504 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Michael Spang 6c824a1b 2019-06-18T15:43:33 Vulkan: Add missing layout for VK_IMAGE_LAYOUT_UNDEFINED This this was missed because it doesn't add its own enum value and instead reuses GL_NONE. Bug: chromium:976374 Test: chrome --enable-features=UseSkiaRenderer,UiGpuRasterization \ --enable-gpu-rasterization \ --enable-oop-rasterization \ --use-vulkan=native \ --use-gl=angle \ --use-angle=vulkan Change-Id: I73437211fef3253801e899cb6e50a8e18865cc65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665329 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jiawei Shao 9a4bd48d 2019-03-14T14:40:57 Allow overwriting angle_root in non-Chromium GN configurations This patch adds the support of overwriting angle_root to the one defined outside ANGLE, which is useful for other projects which intend to configure ANGLE in their GN builds. Bug: angleproject:3263 Change-Id: I70a56a3d0afdca2eb66fb9619f0dd4d3efc58dee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1522912 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 71ad2a73 2019-06-18T21:10:28 Revert "Vulkan: Add missing command pool reset." This reverts commit 9aa865a6f9885fce602e9b637a18fb124ce9d372. Reason for revert: Seems to be causing crashes on Android in glmark2. Might also be responsible for a perf regression. Bug: angleproject:3542 Original change's description: > Vulkan: Add missing command pool reset. > > We were still calling destroy in checkCompletedCommands. We can > instead call reset. > > May not significantly impact performance. > > Bug: angleproject:3489 > Change-Id: I61a2cb154faac56dc78a49678dd822d81ce16ad2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1647029 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tobin Ehlis <tobine@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=tobine@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3489 Change-Id: Icb0e99f18ecab09798654605973958bd2b263002 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665748 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 11b9dc59 2019-06-18T15:28:44 Switch ANGLE Win and Linux CI bots to builderless. Also update doc. Bug: chromium:973992 Change-Id: I59a27935d2bcd438df025945b885384b1d5b0792 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665328 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 857880e5 2019-05-27T13:39:15 GL: Add extensions to enable hardware video decode on Android. The Android SurfaceTexture API has to be initialized with a texture id which Chrome has to query from an ANGLE external texture. It also rebinds and sets the texture dimensions on calls to SurfaceTexture.updateTexImage so ANGLE must be notified about these changes so that state tracking and validation continue to function. BUG=967410 Change-Id: I92e9077f75835b088da3a8caffb3ff40e9ad0361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630293 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 32d718f3 2019-06-18T11:25:23 NVIDIA Shield workaround for IsNVIDIA() detection NVIDIA Shield do not implement Vulkan, which is used to populate vendor IDs in SystemInfo. The vendorIDs are used to check IsNVIDIA(). This CL adds a workaround so IsNVIDIA() returns true for NVIDIA Shield. Bug: angleproject:3541 Change-Id: Ib36dd376207163acfc8d3a0e341f07a7d6aa3122 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663080 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sunny Sachanandani f9686af0 2019-06-04T17:49:43 Add support for D3D11 texture backed EGLImages Implement EGL_ANGLE_image_d3d11_texture extension. Images created with this extension might not be renderable based on bind flags and resource usage of the client provided texture in which case attaching them to a framebuffer won't succeed. The intended use case is to bind the front and back buffers of a swap chain to GL textures that can be used for rendering in the case of the back buffer and as a shader input for the front buffer. Bug: chromium:939655 Change-Id: Ic3328e831880292217b88be84740740df6031fa6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646732 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis eee67c6e 2019-06-18T13:00:43 Fix Platform.h integration with ANGLE A function was renamed which broke the platformMethods table strings. This CL reverts the rename (originally from crrev/c/1660952) Bug: angleproject:1621 Change-Id: I8121a4956ba1d3e3c5036f72f6f1fdf5509dc491 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664792 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 124f78c2 2019-06-18T11:48:24 Remove gl::Context parameter from Observer functions. It was only used in exactly one instance in VertexArray. Instead we can cache a bool and avoid needing to pass it around. Will make signaling dirty easier in the Vulkan back-end. Bug: angleproject:3539 Change-Id: Ia570aec051a24a5280df49edc4345c54022b46ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663838 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 81b6acfb 2019-06-18T10:10:42 Roll SPIRV Tools and Headers into ANGLE SPIRV-Tools roller did not roll the correct headers version. Change-Id: Ifa1c9e2ee92e11a5e84ba78249e422884f5b6582 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663840 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Kimmo Kinnunen b8252fdb 2019-06-18T12:13:49 Remove unused WidenString function The removed function had incorrect Windows implementation, the return value was checked incorrectly. Last use was removed in commit 573f76b3eebf38cefb144781bfd90418e2c7df37 https://chromium-review.googlesource.com/c/1042785 Bug: angleproject:2532 Change-Id: I66907fcb33041b097062208d53ca88752c05f9cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664153 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Mohan Maiya 141a23f6 2019-06-17T17:56:59 Add support for OES_depth24 Allow 24-bit depth as a valid Renderbuffer format. Bug: angleproject:3229 Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthBuffer/* Change-Id: I166639ec0e000595dc55848e4b8b7bef627b6471 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661050 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen a4c639c4 2019-06-03T14:04:01 D3D: Add a wrapper to Image11 that enables ASAN/MSAN to catch the errors on map operations The wrapper should be a no-op on builds with assertions disabled. The wrapper should be useful on ASAN and MSAN builds. gn args out/release-asan --args="is_debug=false is_asan=true" ninja -C out/release-asan angle_end2end_tests ^ out\release-asan\angle_end2end_tests ^ --gtest_filter=Texture2DArrayCopy.SnormFormats* --gtest_catch_exceptions=0 ^ --gtest_repeat=-1 Output when the fix payload of angleproject:2865 is removed: ... Repeating all tests (iteration 1) . . . Note: Google Test filter = Texture2DArrayCopy.SnormFormats* [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from Texture2DArrayCopy [ RUN ] Texture2DArrayCopy.SnormFormats/ES3_D3D11 ================================================================= ==500==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x12b2c4777040 at pc 0x7fff9602216b bp 0x00c0eaafd090 sp 0x00c0eaafd0d8 READ of size 1 at 0x12b2c4777040 thread T0 #0 0x7fff9602216a in angle::R8G8B8A8::readColor c:\Users\kkinnunen\angle\src\image_util\imageformats.cpp:333 #1 0x7fff9618dbf0 in rx::CopyImageCHROMIUM c:\Users\kkinnunen\angle\src\libANGLE\renderer\renderer_utils.cpp:377 #2 0x7fff96186bb2 in rx::Image11::CopyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:113 #3 0x7fff95e90410 in rx::Renderer11::copyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Renderer11.cpp:3009 #4 0x7fff9617b447 in rx::TextureD3D_2DArray::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\TextureD3D.cpp:3293 #5 0x7fff95afd7e1 in gl::Texture::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\Texture.cpp:1196 #6 0x7fff95977f19 in gl::Context::copyTexture3D c:\Users\kkinnunen\angle\src\libANGLE\Context.cpp:4347 #7 0x7fff9568b04a in gl::CopyTexture3DANGLE c:\Users\kkinnunen\angle\src\libGLESv2\entry_points_gles_ext_autogen.cpp:57 #8 0x7ff7d1d8fc97 in angle::CopyTexture3DTest::testCopy c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:90 #9 0x7ff7d1dadd10 in angle::Texture2DArrayCopy_SnormFormats_Test::TestBody c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:1272 #10 0x7ff7d2c22891 in testing::Test::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2522 #11 0x7ff7d2c243c0 in testing::TestInfo::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2698 #12 0x7ff7d2c253e8 in testing::TestSuite::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2828 #13 0x7ff7d2c3f33e in testing::internal::UnitTestImpl::RunAllTests c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:5285 #14 0x7ff7d2c3e72d in testing::UnitTest::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:4873 #15 0x7ff7d2bf10a2 in main c:\Users\kkinnunen\angle\src\tests\angle_end2end_tests_main.cpp:15 #16 0x7ff7d2d27897 in __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283 #17 0x7ff801ec7973 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017973) #18 0x7ff804cea270 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x18006a270) 0x12b2c4777040 is located 0 bytes to the right of 256-byte region [0x12b2c4776f40,0x12b2c4777040) allocated by thread T0 here: #0 0x7ff7d2c6d574 in malloc C:\b\s\w\ir\k\src\third_party\llvm\projects\compiler-rt\lib\asan\asan_malloc_win.cc:68 #1 0x7fff95af47b2 in angle::MemoryBuffer::resize c:\Users\kkinnunen\angle\src\common\MemoryBuffer.cpp:40 #2 0x7fff9648c9a6 in rx::MappedSubresourceVerifier11::wrap c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\MappedSubresourceVerifier11.cpp:51 #3 0x7fff961864b5 in rx::Image11::map c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:648 #4 0x7fff9618676c in rx::Image11::CopyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Image11.cpp:93 #5 0x7fff95e90410 in rx::Renderer11::copyImage c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\d3d11\Renderer11.cpp:3009 #6 0x7fff9617b447 in rx::TextureD3D_2DArray::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\renderer\d3d\TextureD3D.cpp:3293 #7 0x7fff95afd7e1 in gl::Texture::copyTexture c:\Users\kkinnunen\angle\src\libANGLE\Texture.cpp:1196 #8 0x7fff95977f19 in gl::Context::copyTexture3D c:\Users\kkinnunen\angle\src\libANGLE\Context.cpp:4347 #9 0x7fff9568b04a in gl::CopyTexture3DANGLE c:\Users\kkinnunen\angle\src\libGLESv2\entry_points_gles_ext_autogen.cpp:57 #10 0x7ff7d1d8fc97 in angle::CopyTexture3DTest::testCopy c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:90 #11 0x7ff7d1dadd10 in angle::Texture2DArrayCopy_SnormFormats_Test::TestBody c:\Users\kkinnunen\angle\src\tests\gl_tests\CopyTexture3DTest.cpp:1272 #12 0x7ff7d2c22891 in testing::Test::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2522 #13 0x7ff7d2c243c0 in testing::TestInfo::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2698 #14 0x7ff7d2c253e8 in testing::TestSuite::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:2828 #15 0x7ff7d2c3f33e in testing::internal::UnitTestImpl::RunAllTests c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:5285 #16 0x7ff7d2c3e72d in testing::UnitTest::Run c:\Users\kkinnunen\angle\third_party\googletest\src\googletest\src\gtest.cc:4873 #17 0x7ff7d2bf10a2 in main c:\Users\kkinnunen\angle\src\tests\angle_end2end_tests_main.cpp:15 #18 0x7ff7d2d27897 in __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283 #19 0x7ff801ec7973 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017973) #20 0x7ff804cea270 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x18006a270) Bug: angleproject:2865 Change-Id: I6c8fc203d075014ba8ce31c728982eed73812d04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640212 Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 2d223552 2019-06-18T07:01:52 Roll ./third_party/glslang/src def9662348b0..11805e41d992 (5 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/def9662348b0..11805e41d992 Created with: gclient setdep -r ./third_party/glslang/src@11805e41d992 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jonahr@google.com Change-Id: Idf29d79ea4e9f65e239604225af391de7640f313 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1662959 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi b1c8dbf3 2019-06-14T23:57:26 Vulkan: Correct synchronization for buffer readback When mapping buffer memory, a flush is performed if the buffer has pending operations followed by a finishToSerial to make sure the buffer is no longer in use by the GPU. This also implements GLES 3.0 buffer mapping flags: GL_MAP_INVALIDATE_RANGE_BIT: No-op. Vulkan's vkMapMemory doesn't have such a feature. GL_MAP_INVALIDATE_BUFFER_BIT: Same GL_MAP_FLUSH_EXPLICIT_BIT: Vulkan automatically flushes host memory writes on vkQueueSubmit, so this is no-op as well. GL_MAP_UNSYNCHRONIZED_BIT: The flush+finishToSerial call is skipped in this case. Bug: angleproject:3213 Change-Id: I6bdb460dffbb57170649f4c9678afbfae331926c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661252 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Clemen Deng c211c2f5 2019-06-14T16:02:17 Make proc table autogen use gl.xml data Instead having the proc table be generated from proc_table_data.json which needed to be manually updated with changes, the proc table is now generated from data in gl.xml and egl.xml Bug: angleproject:3533 Change-Id: I773ea7615cc4ec1c9901def629b089d8d17328eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660645 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
James Dong 3f8975e1 2019-06-12T13:11:57 Debug: suppress INFO log level in tests Disables INFO level log messages in tests, including GL errors. Bug: angleproject:3525 Change-Id: Ib16871b9faaff54964dd2770e1791372b1b79361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656293 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Jamie Madill 875509e9 2019-06-17T13:44:21 Vulkan: Minor cleanup to ContextVk::setupIndexedDraw. This removes VertexArrayVk::updateIndexTranslation. Turns out this helper function wasn't that helpful. Bug: angleproject:3539 Change-Id: Ia4573219073261767e9d215ed4227233c23cbfaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660639 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis beb0eb2d 2019-06-14T15:10:33 Clean up workarounds/features to single location. Rename all workarounds structs to features, and move the lists to a shared location in include/platform (to help with documentation, see: https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69) Bug: angleproject:1621 Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis d7013c03 2019-06-17T09:27:18 Merge ESSL pre-processsor token errors In both the ESSL 1.00 & 3.00 specifications having an extension directive after a pre-processor token is an error. Merging those two enum cases to be a single case. WebGL is handled as a separate warning case for any shader version before 3.00. Also this change now correctly marks 1.00 shaders that break this rule to be invalid so the ExtensionAfterNonPreProcessorTokenESSL1 test no longer expects handleExtension() to be called. BUG=chromium:971660 Change-Id: I37b10cc0fb3a0efd6200a478171e005a96478255 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661395 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Shahbaz Youssefi e962b6a6 2019-06-17T10:12:26 Vulkan: Enable previously failing clear tests These tests crashed in FramebufferVk::clearWithAttachment, which no longer exists. Bug: angleproject:3081 Change-Id: I6b01c311c4caed21a920e5d5db1195c2dbfb905a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661554 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
James Dong 08b56293 2019-06-10T12:55:36 Vulkan: add LINE_LOOP with primitive restart Adds support for GL_LINE_LOOP with primitive restart. Bug: angleproject:3215 Change-Id: Ief1bdf15ef9b108dba025eaf4ce580bba54af623 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1649351 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2c49d0b0 2019-06-14T15:17:37 Suppress Bindings perf test on Win/Intel/GL. BindingsBenchmark.Run/gl_100_objects_allocated_every_iteration This test was timing out on the bots. Conservatively skip the benchmark on Intel/GL/Windows. Bug: chromium:974083 Change-Id: I4a254bff8b43e5a47b5905ee6b9bc1a659129684 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660951 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill e1849ee1 2019-06-16T23:06:28 Remove obsolete WinRT files. These were no longer used in the build. Bug: angleproject:3162 Change-Id: I715bb3e6f14ed8c97523dec5b0b58bf9a89be0f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660716 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 67d8b6f6 2019-06-17T07:02:00 Roll ./third_party/spirv-tools/src 42830e5a68c3..59983a601091 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/42830e5a68c3..59983a601091 Created with: gclient setdep -r ./third_party/spirv-tools/src@59983a601091 The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jmadill@google.com Change-Id: Iaa7e68def85004ca1ec5275d048d26495825faeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661577 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 5262bc70 2019-06-17T07:02:00 Roll ./third_party/glslang/src 96ee92f09b7c..def9662348b0 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/96ee92f09b7c..def9662348b0 Created with: gclient setdep -r ./third_party/glslang/src@def9662348b0 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jmadill@google.com Change-Id: Ibe9c223bc7043607929ed1164b56ecdb9b0ec2d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661576 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Clemen Deng 95ac7b7c 2019-06-13T11:29:06 Autogen gles2+ declarations Added autogeneration of method declarations for GLES2+ and extensions Bug: angleproject:3526 Change-Id: I9c7263452146098512d9584deae8ea3f15f62c46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660949 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi bf826481 2019-06-13T13:20:06 Update glslang_validator binary for Windows. This binary was updated using update_glslang_binary.py. Please see instructions in tools/glslang/README.md. Bug: angleproject:3432 Change-Id: Iefed7d2ab1a0a7f7118b83037329fe608c85ba1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658848 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a7271d35 2019-06-13T11:26:26 Update glslang_validator binary for Linux. This binary was updated using update_glslang_binary.py. Please see instructions in tools/glslang/README.md. Bug: angleproject:3432 Change-Id: Idc02086cf0e1985efd7bf194adf311c85b21e33e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657712 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8118265a 2019-06-14T11:03:14 Add more DrawCallPerf offscreen configs. I thought these might have different performance characteristics when compared to the main configs. It's possible they would also need to forego using SwapBuffers to get different profiles. Right now perf is pretty similar to with the default FBO. Bug: angleproject:3117 Change-Id: Ic03b4ebd8c606af5121854565525e37e66f91435 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650785 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 12f38c49 2019-06-13T11:38:59 Vulkan: Use dynamic buffer for driver uniform updates. This should reduce the number of descriptor sets we need to allocate. We only allocate a new descriptor set when the underlying buffer is reallocated. We pass in the buffer offset via the dynamic offsets parameter. Bug: angleproject:3504 Change-Id: I40d031cd7295a8d002caff4f331f4a311f07505c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646757 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
angle-autoroll 9520a246 2019-06-14T07:01:52 Roll ./third_party/glslang/src 9866ad9195ce..96ee92f09b7c (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/9866ad9195ce..96ee92f09b7c Created with: gclient setdep -r ./third_party/glslang/src@96ee92f09b7c The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jmadill@google.com Change-Id: I6d4817a07bb789d4973baf13b60c80bff4c18a0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660056 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov 853ebacf 2019-06-13T18:35:25 Suppress Mac 10.13.6 Intel OpenGL dEQP failures Bug: angleproject:3531 Change-Id: I246144beb9c12b2df74612831262c7d263698db4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658718 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
James Dong 2806a898 2019-06-07T12:10:46 Vulkan: implement primitive restart Implements ES 3.0 feature GL_PRIMITIVE_RESTART_FIXED_INDEX, which allows the application to use a fixed "restart" index to restart the primitive during a single draw call. This change does't handle GL_LINE_LOOP primitives, which requires a bit of special handling. Bug: angleproject:3215 Change-Id: I2388852683fd17328a6a76c48d70a24d67ce8b67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650301 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi 4316e064 2019-06-13T00:32:09 Vulkan: Output render pass loadOp in graph dump Bug: angleproject:3205 Change-Id: I7ad99bd2f8ddeb899c5fa86fd39296e5fc96d2c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657708 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 88596bea 2019-06-13T14:17:48 Vulkan: Implement a texture descriptor cache. We noticed a significant hotspot in vkAllocateDesctiptorSets. The app was repeatedly cycling through a few combinations of active textures. For each state change in ANGLE we were allocating a new desctiptor set. This in turn would trigger internal driver memory allocation and cause jank. Using a cache avoids allocations entirely since the application is rotating through a stable set of textures. The descriptor cache is stored in each program. It is indexed by a set of 32-bit serials. Each texture generates a unique serial for every combination of VkImage and VkSampler that the texture owns. The texture descriptor is refreshed every time a texture changes or is rebound. The descriptor cache is accessed via an unoredered map with the texture serial sets as the hash key. We also store the maximum active texture index in the cache key so we don't need to hash and memcmp on all 64 active textures. This will currently fail if more than MAX_UINT serials are generated. But that number is high enough that it shouldn't be possible to hit in practice in a practical amount of time. Requires shifting the texture sync to ContextVk so we can get the new serial after the textures are updated. And to make sure to update the image layouts even if the descriptors are not dirty. Improves performance of the T-Rex demo. Also improves the score of the texture state change microbenchmark by about 40%. Bug: angleproject:3117 Change-Id: Ieb9bec1e8c1a7619814afab767a1980b959a8241 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642226 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
shrekshao 95428331 2019-06-10T18:03:03 Enable floatBlend for D3D9 Although according to https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/format-support-for-direct3d-feature-level-9-1-hardware D3D9 doesn't have full blending capability for RGBA32F. But turns out it could provide correct blending result in reality. As a result of some regression reports by client app, we decided to turn floatBlend on for D3D9. I tried to make a native D3D9 program to detect float blending capability. But turns out it needs quite some effort on Win10 for a D3D newbie. Considering the fact that D3D9 backend is not fully passing conformance test anyway. I don't think it worth the effort. Seems to be okay to just turn it on. Bug: chromium:970532 Change-Id: I66bec120be6eaaa62a5472b8521a97b4d23e924a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652731 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
James Dong 0d3cf708 2019-06-12T10:07:02 Vulkan: fix array size for internal shaders Previously array sizes were calculated as the OR of all flag and enum masks, equal to 2^(number of bits used for flags and enums) - 1, which could be less than the actual needed array size. This fix moves array size calculation to the autogen script and changes the size to one more than the maximum potential value. Bug: angleproject:3524 Change-Id: Ia4eb2a83fc7deea84e18958efcda8b57632035f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655954 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 05ba83a0 2019-06-13T13:26:58 Refactor DrawCallPerfParams. Makes it a bit easier to work with. In prep for adding offscreen configs. Bug: angleproject:3117 Change-Id: Ie2497574b2687592b7b3df2f7b933a19e83b6d16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650784 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Michael Spang b08d53d3 2019-06-13T16:01:20 Reland "Vulkan: Build validation layers with asserts only" This reverts commit d187d45ede29369025595c53c7fe3ffed0688870. Reason for revert: The correct thing to revert was https://chromium-review.googlesource.com/c/chromium/src/+/1657512 Original change's description: > Revert "Vulkan: Build validation layers with asserts only" > > This reverts commit 85fef1bc62f851a4de91408cfafa570dbacf544f. > > Reason for revert: This actually seems to break the fucshia_x64 bot: > > Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so > > See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM > > Original change's description: > > Vulkan: Build validation layers with asserts only > > > > Adding ANGLE to the build includes the validation layers, which are only > > for development. We don't want any development or debugging code to be > > included by default in release builds, so tie building the validation > > layers to enablement of asserts. > > > > Bug: angleproject:2475 > > Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true' > > gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps > > > > Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306 > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Michael Spang <spang@chromium.org> > > TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org > > Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:2475 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org Change-Id: Iab669210c23823b403e3fff7f5199a7aadd032bb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2475 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1658411 Reviewed-by: Michael Spang <spang@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Jonah Ryan-Davis 78a51911 2019-06-12T14:28:14 Clean up and expose frontend features to egl. gl::Workarounds was used to hold frontend features. Change ownership of this struct from Context to Display, so it can be exposed to egl. Also rename to features and clean up for consistency. Bug: angleproject:1621 Change-Id: I82e98e53873abb7a402c93e60f8a662a7263e0d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655772 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 94eb189b 2019-06-13T13:36:22 Roll ./third_party/spirv-tools/src 9c0830133b07..42830e5a68c3 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9c0830133b07..42830e5a68c3 Also rolling transitive DEPS: ./third_party/spirv-headers/src de99d4d834ae..8b911bd2ba37 Created with: gclient setdep -r ./third_party/spirv-tools/src@42830e5a68c3 The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jmadill@google.com Change-Id: I2d968186e25d6b28b3c4105b2e50799e585eb85a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657458 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jamie Madill 444aa0fe 2019-06-08T13:53:17 Vulkan: Prefer immediate present mode for benchmarking. This should give the highest possible scores. Note that immediate is not always available. Bug: angleproject:3163 Change-Id: Ifedabd39819625b57feda71ed83a7bee8fa0a42b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638904 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d187d45e 2019-06-13T11:56:15 Revert "Vulkan: Build validation layers with asserts only" This reverts commit 85fef1bc62f851a4de91408cfafa570dbacf544f. Reason for revert: This actually seems to break the fucshia_x64 bot: Exception: Some files were excluded with --exclude-file, but not found in the deps list: lib/libVkLayer_parameter_validation.so, lib/libVkLayer_core_validation.so See https://analysis.chromium.org/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzk0ODYyNWNjNDE2NmE3NjRkYWM2NTRlNjlmZDA3MGFjMDE3MzNkNTMM Original change's description: > Vulkan: Build validation layers with asserts only > > Adding ANGLE to the build includes the validation layers, which are only > for development. We don't want any development or debugging code to be > included by default in release builds, so tie building the validation > layers to enablement of asserts. > > Bug: angleproject:2475 > Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true' > gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps > > Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Michael Spang <spang@chromium.org> TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org Change-Id: Ia74efcce2b3dda02dc0c0d292bdeb5ea7c5c3530 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2475 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657711 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 3a42286a 2019-06-13T07:02:01 Roll ./third_party/spirv-headers/src 9cf7c3a7d2d2..de99d4d834ae (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/9cf7c3a7d2d2..de99d4d834ae Created with: gclient setdep -r ./third_party/spirv-headers/src@de99d4d834ae The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-headers-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=jmadill@google.com Change-Id: I9c323b572ede8944ba6429dcc724916f68200558 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1657731 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Qin Jiajia 3f2b4e7f 2019-06-11T14:47:59 Fix the crash in angle_deqp_gles31_tests This crash only happened on a compute test which following a render test. This root case was that after the render test, mVertexArray11 became an invalid pointer. However, compute test still went to the common path to use mVertexArray11. mVertexArray11 is never updated since compute shader doesn't need to triger DIRTY_BIT_VERTEX_ARRAY_BINDING. This patch adds checking to avoid compute test to use mVertexArray11. Besides, more ASSERT checking are added to convenient debugging. Bug: angleproject:3518, angleproject:1663, angleproject:2619 Change-Id: I446214110d762fc259899cef7635f369fa1f59a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652866 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Michael Spang 85fef1bc 2019-06-12T15:55:55 Vulkan: Build validation layers with asserts only Adding ANGLE to the build includes the validation layers, which are only for development. We don't want any development or debugging code to be included by default in release builds, so tie building the validation layers to enablement of asserts. Bug: angleproject:2475 Test: gn gen out/fuchsia_rel --args='target_os="fuchsia" is_debug=false use_goma=true' gn desc out/fuchsia_rel //fuchsia/engine:web_engine runtime_deps Change-Id: I6d195c680255dcbc81e95f8e6f80e1e8ace169a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1656306 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Clemen Deng ebddd1a2 2019-06-11T16:32:46 implement core egl image entry points Bug: angleproject:2467 Change-Id: Ica943a3972333e90a516aa6960f333cc9c378be2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1653714 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 169ef353 2019-06-12T14:42:13 Vulkan: Fix build with custom secondaries disabled. We should also add a compile-only target that verifies the build works as expected. Bug: angleproject:3117 Change-Id: Ib55969cdd0e670c123cdbe98bd0decf2204e7267 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650789 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 9728643b 2019-06-12T15:27:34 Roll SPIR-V headers and Tools. A dependency was breaking the auto-roller. Bug: angleproject:3527 Change-Id: Iec3980a1d51c000b7a902e1d61d4d84e5f885000 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1655773 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
James Dong 13ac9422 2019-06-10T17:53:09 Vulkan: add support for shadow samplers. Adds support for ES 3.0 shadow samplers. Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.texture.shadow.2d.*' Bug: angleproject:3211 Change-Id: Ic82ecfe19290fb952fcb0ba423691b5bac87c4a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652021 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis fce1e2d1 2019-06-04T15:02:08 Extend eglGetPlatformDisplay to allow feature overrides. Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming the features that should be overridden (either enabled or disabled) on display creation. Bug: angleproject:1621 Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Clemen Deng 2589cdcc 2019-06-11T11:38:41 GLSLTest stack overflow bug fix Bug: angleproject:3514 Change-Id: Id02bdb230dce0435b0b33db101d196596d6e8c93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652435 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Clemen Deng a029ce47 2019-06-10T16:56:37 removed msvs_projects from devsetup Bug: angleproject:3516 Change-Id: I127f702112d68e24bdc9810e5a7ee117190efad5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9aa865a6 2019-06-06T17:10:51 Vulkan: Add missing command pool reset. We were still calling destroy in checkCompletedCommands. We can instead call reset. May not significantly impact performance. Bug: angleproject:3489 Change-Id: I61a2cb154faac56dc78a49678dd822d81ce16ad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1647029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
James Dong c75d6dc8 2019-06-05T16:12:01 Vulkan: Add support for gl_VertexID/gl_InstanceID Adds support for GLES 3.0 feature which adds gl_VertexID and gl_InstanceID built-in variables to vertex shader. Bug: angleproject:3221 Change-Id: I372d7ac34bed376b506e327725f0eca2513852fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646735 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell 6064e6ab 2019-06-11T04:01:12 Reland "Temporarily disable creating D3D debug device." This reverts commit 28394c2295335929c17bbfe0ab74f923cd234ff2. Reason for revert: may be the cause of flakiness on Win10 Debug (NVIDIA) per http://crbug.com/972914 . Original change's description: > Revert "Temporarily disable creating D3D debug device." > > This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21. > > Reason for revert: Seems like flakiness is not related. > > Suppress D3D11 test failures uncovered by re-enabling D3D debug device: > ComputeShaderTest.DispatchCompute > Texture2DTestES3.TextureImplPropogatesDirtyBits > D3DTextureTestMS.* > > Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages > to clear reported messages, otherwise the failures are also reported > for tests following the one with the actual failure. > > Original change's description: > > Temporarily disable creating D3D debug device. > > > > To diagnose whether Windows Intel end2end tests flakiness > > is related to creating debug device and new version of Windows SDK. > > > > Bug: angleproject:3153 > > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737 > > Reviewed-on: https://chromium-review.googlesource.com/c/1476954 > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > Bug: angleproject:3153, angleproject:3493 > Bug: angleproject:3501, angleproject:3512, angleproject:3513 > > Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org Change-Id: I38a5cc9bb6ebcd50e97e40cc972a82679e73732a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3512, angleproject:3513 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652784 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Nico Weber 1b5ad312 2019-06-10T18:41:08 Omit "de_DE.ISO-8859-15@euro" from ShCompileTest.DecimalSepLocale on Windows. A new SDK version started throwing on locales that have a code page section (the part after the dot) that's >= 16 characters long. That's a system library bug, but for now we need to work around it. Bug: chromium:972372 Change-Id: I64cee1051e854dac84e8c3c728ce65606b0dc89b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652016 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 28394c22 2019-02-21T03:24:58 Revert "Temporarily disable creating D3D debug device." This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21. Reason for revert: Seems like flakiness is not related. Suppress D3D11 test failures uncovered by re-enabling D3D debug device: ComputeShaderTest.DispatchCompute Texture2DTestES3.TextureImplPropogatesDirtyBits D3DTextureTestMS.* Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages to clear reported messages, otherwise the failures are also reported for tests following the one with the actual failure. Original change's description: > Temporarily disable creating D3D debug device. > > To diagnose whether Windows Intel end2end tests flakiness > is related to creating debug device and new version of Windows SDK. > > Bug: angleproject:3153 > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737 > Reviewed-on: https://chromium-review.googlesource.com/c/1476954 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:3153, angleproject:3493 Bug: angleproject:3501, angleproject:3512, angleproject:3513 Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll f1a40a84 2019-06-10T07:01:52 Roll ./third_party/glslang/src d3692c701b12..9866ad9195ce (4 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/d3692c701b12..9866ad9195ce Created with: gclient setdep -r ./third_party/glslang/src@9866ad9195ce The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=geofflang@google.com Change-Id: Iae19d3e8f16004de66cf434bb2ea8f87f89a4e71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1651403 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Tom Tan 2d0a9acb 2019-06-07T16:22:01 Initialize STACKFRAME64 for ARM64 Bug: chromium:972228,893460 Change-Id: I0c77d19e70c337d70bc55f65f6893d5bbe18407b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648670 Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
James Dong c74c3d81 2019-06-05T10:55:40 DEBUG: Log all debug messages to console Logs all debug messages produced by GL and EGL. This is helpful for debugging when the application does not register a debug callback. Validation errors produce log messages with level INFO, and internal errors produce log messages with level WARN. Bug: angleproject:3505 Change-Id: I269055aec49e1d77edeedb482fa6873c8f79f853 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1645817 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 70642e42 2019-06-05T14:55:49 Vulkan: Implement ES 3.0 rasterizer discard Rasterizer discard is a feature that allows the graphics pipeline to skip the fragment shader stage. Implementing rasterizer discard in Vulkan is as easy as not binding a fragment shader binary. Tests for rasterizer discard live in dEQP-GLES3.functional.rasterizer_discard.*. Bug: angleproject:3214 Test: dEQP-GLES3.functional.rasterizer_discard.* Change-Id: I0815df3b70f6f9cdc6c8c87ec4813bb629d8bd5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646692 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 35b25fc6 2019-06-07T11:54:36 For WebGL warn on late extension directive A previous change based on ESSL 1.00 spec had made it an error in all cases when an extension directive appeared in a shader after the first non-preprocessor token. However, this is incorrect for WebGL 1.0 so adding warning case for WebGL. BUG=chromium:971660 Change-Id: I026fe60e8b1876de65b001b676f7a0552739a20c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648661 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Shahbaz Youssefi e7e808af 2019-06-07T12:53:28 Disable Linux stack traces on CFI builds Bug: 971977 Change-Id: I2a872bd814e9a356baa3d304e1c352b6a619583e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1649300 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ed65dc43 2019-06-03T11:21:00 Vulkan: implement glSampleCoverage Emulated by applying a mask on top of the mask from glSampleMask. Bug: angleproject:3204 Change-Id: I4c80ab0a3261cbf1b8a43c270fe13c2a247ea663 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639749 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b407e1a0 2019-06-03T17:15:51 Vulkan: implement ES3 blit Augment the resolve shaders to be able to stretch and blit too. The UtilsVk resolve function is accordingly expanded to include blit. Bug: angleproject:3200 Change-Id: I30b172a5e388089735ab494f55cbfdc2781a8bf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635753 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
James Dong ea49f6f5 2019-06-06T12:58:27 Debug: Add LOG_INFO logging level Will be used for logging GL/EGL debug messages. Bug: angleproject:3505 Change-Id: I10ff32dd4f9227cabac2f3d9425b0428e7af1398 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648714 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 148ecd89 2019-05-28T14:14:42 Vulkan: Handle VK_ERROR_OUT_OF_DATE returned by vkAcquireNextImageKHR() There is some new Android HWUI/SkiaGL code, that (in certain cases) looks up the underlying Vulkan swapchain that ANGLE created, and adds an image to it. This causes the next call to vkAcquireNextImageKHR() to return VK_ERROR_OUT_OF_DATE and requires the swapchain to be recreated. Bug: angleproject:3480 Test: Use ANGLE on Android and verify apps load correctly. Change-Id: I21c86035664878e75d6a9dc769546747aa4c8256 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632424 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jeff Gilbert 55ca3a51 2019-06-05T17:32:32 Use execv instead of execve w/ environ. Some platforms don't want us messing with environ, and these seem to be equivalent. Bug: angleproject:3506 Change-Id: I66804e8accc30421c1cd32c0eda750500e3ecb60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646887 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang ec57a240 2019-06-06T13:57:27 Don't remove the symbol_visibility_hidden config in asan builds. We remove symbol_visibility_hidden to get better stack traces in debug builds but it causes ASAN issues with multiply instantiated globals. BUG=angleproject:3507 Change-Id: I8ec664bf7d9506cc45afb6f864de7b7ba7cbe99b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648275 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Courtney Goeltzenleuchter 3f17f929 2019-06-05T13:13:12 Avoid recreating swapchain for preRotation Android will return VK_SUBOPTIMAL_KHR if the orientation of the screen is not optimial for the orientation of the device. We were re-creating the swapchain when this happens but we weren't changing the orientation and would get this return code every time we call vkQueuePresent and re-create the swapchain each time. Apparently recreating the swapchain causes visual artifacts on some devices. Just ignoring VK_SUBOPTIMAL_KHR allows things to work. Bug: angleproject:3497 Need to implement proper preRotation support for longterm fix. Bug: angleproject:3502 Change-Id: I0904eb60b742d24618d502c111510117758a8502 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641206 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
James Dong a4a24af3 2019-06-06T10:50:21 Vulkan: fix uint indices causing incomplete buffer Fixes buffer size calculation when uploading element buffer to account for 4-byte (uint) indices. Bug: angleproject:2902 Change-Id: Id70fc0fdffecd0b27995820bd0ad88e4cb61e013 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648325 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 266a9e8d 2019-06-05T15:15:10 Vulkan: Move descriptor pools into ProgramVk. Previously ContextVk owned the descriptor pools. We were trying to maximize descriptor reuse to conserve memory. However the default uniforms would have no possible sharing. And because uniform buffers are usually unique to a program it's likely there would be less reuse. Image descriptors could be shared. But with the advent of a descriptor cache in the Program it becomes difficult to manage the cache through descriptor pool recycling. Moving the pools into the Program simplifies the cache management. We could look at adding back more reuse in the future. Also shifts driver uniforms back into the end of the descriptor sets to make indexing into the Program's descriptor pools simpler. Bug: angleproject:3117 Change-Id: I52bb49cf322d944ad7cf08791efdf24b7fe573ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644775 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll ef52c367 2019-06-06T07:01:52 Roll ./third_party/glslang/src 2f4a8dfd3a59..d3692c701b12 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/2f4a8dfd3a59..d3692c701b12 Created with: gclient setdep -r ./third_party/glslang/src@d3692c701b12 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=geofflang@google.com Change-Id: I14c202a990d59c5f4949e04dd5cfd68b92a2f743 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1647775 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
James Dong b91f87b6 2019-06-05T11:38:39 Vulkan: enable OES_element_index_uint for Vulkan We already handle 32-bit indices, so this change enables the corresponding extension for ES 2.0. Bug: angleproject:2902 Change-Id: Iccde1d4aac383a9c11edf851778ff315de8d4ad1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646032 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Jamie Madill 03bc3db8 2019-06-05T13:48:43 Vulkan: Minor cleanup to UtilsVk. Renames "ContextVk *context" to "ContextVk *contextVk" for consistency. Also adds an "allocateDescriptorSet" helper function. Bug: angleproject:3117 Change-Id: Id03e30432d8e5e35b682350a8e98fd2e62cdf89a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644776 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang eef34e17 2019-06-04T15:16:24 Don't request backend version in the sample application. The major and minor versions in EGLPlatformParameters are for the backend version (eg D3D 10 vs 10.1 vs 11.0), not the GLES version exposed. BUG=angleproject:3499 Change-Id: I4bf89769b4eab397cdc2e3c51ed94c1e57c4d54b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643421 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5643afc0 2019-06-04T15:37:58 Vulkan: add GLSL placeholder for transform feedback output Bug: angleproject:3205 Change-Id: Id3941b6953e03e7b2183acc57b2c6db4a6439352 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643424 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ac8bafc0 2019-06-03T14:59:39 Remove unused bindGenericBuffer from TransformFeedback* Bug: angleproject:3205 Change-Id: I6dc29b48155cd3c0ef98248076cf02e70c9310d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643423 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 453dfc44 2019-06-05T07:01:52 Roll ./third_party/glslang/src a549bb817523..2f4a8dfd3a59 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/a549bb817523..2f4a8dfd3a59 Created with: gclient setdep -r ./third_party/glslang/src@2f4a8dfd3a59 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=geofflang@google.com Change-Id: Ifa1490b9cf68e30bb4d103d8865fd5ec05c6f825 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644757 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Michael Spang 3c219171 2019-05-31T16:23:23 Add ARM vendor id This fixes a crash when run with asserts on ARM GPU: [2089630:1566159375:0531/202059.262200:ERROR:angle_platform_impl.cc(47)] GetVendorString(133): ! Assert failed in GetVendorString (../../third_party/angle/src/libANGLE/renderer/driver_utils.cpp:133): vendorId == 0xba5eba11 Bug: angleproject:3492 Change-Id: I786edc459b1567a3eee0034a0d8ae7050ac31952 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642331 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 44063c80 2019-06-04T15:20:30 Vulkan: Store array buffer conversions in BufferVk. The intent of this CL is to call convertVertexBuffer*PU only when we have new data to convert. If the app unbinds and rebinds a vertex buffer without changing the data we can now retrieve the cached vertex buffer info from the BufferVk class. Previously we would always reconvert the data on a rebind. This was slowing down applications and benchmarks. To achieve this we add a conversion cache to BufferVk. Each cache entry stores a key based on the vertex info. Also we store a ring buffer for each cache entry and a flag to indicate if the entry is dirty. The cache is dirtied on a bufffer data update or a map call. Improves performance in the T-Rex benchmark. Bug: angleproject:3495 Change-Id: Ia999c9187510748ba95bc98362eb332e1990d270 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638903 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jonah Ryan-Davis e431aaa1 2019-06-04T11:36:43 Rename EGL_ANGLE_workaround_control to EGL_ANGLE_feature_control. For consistency, call these ANGLE "features", a subset of which may be workarounds. Also, whether the feature is enabled/disabled should be publically visible as "status". Bug: angleproject:1621 Change-Id: I0de90a932fbfe1fc9b59138153d616d29fa7268b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643410 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 071d2a44 2019-06-03T11:49:13 Vulkan: Process dirty framebuffers first The currently bound framebuffer affects some dirty bits. This means that processing those dirty bits temporarily use data from a framebuffer that's about to be changed. At best, that creates unnecessary dirty bits in the Vulkan pipeline description. Bug: angleproject:3204 Change-Id: Ie001d6c8fcc61af2e78cf2cb58a1691d8b735ff3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639750 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi de70a713 2019-06-03T17:05:16 Vulkan: Rename Resolve* shaders to BlitResolve In preparation for adding blit functionality. Bug: angleproject:3200 Change-Id: I77b6b6cbe90b26ee23c25edebaa2b130f3c2987a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641626 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 2dd40a44 2019-05-30T16:40:13 Add eglQueryDisplayAttribANGLE to query workarounds count. Add eglQueryDisplayAttribANGLE based on eglQueryDisplayAttribEXT to add behavior for quering the count of all workarounds available. Used externally to build a list of workarounds. Bug: angleproject:1621 Change-Id: I793acedc76111fd018600169d58bf5d8cf4a63ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1637817 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 20d380fa 2019-06-03T15:21:47 Print stack backtrace on critical failure. We reuse code from Skia to walk the stack on Posix platforms. See: https://github.com/google/skia/blob/master/tools/CrashHandler.cpp On Windows we use a BSD-licensed tool called StackWalker. See: https://github.com/JochenKalmbach/StackWalker This allows us to get high quality stack traces on Win/Linux/Mac. Bug: angleproject:3162 Change-Id: I9c50ede2c6a41ed0ee85a0507372df42a487bcef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632950 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 5993d899 2019-06-03T13:05:38 Vulkan: Use storage buffers for index conversion shader. This allows us to use the shader regardless of driver support for texel buffer views. It also allows us to convert indices on the GPU unconditionally. We add a new internal compute shader that converts pairs of indices into a packed single uint value that stores two 16-bit values. In the future we could add support for converting primitive restart indices. Should speed up benchmarks on systems which didn't have R8_UINT support for compute shader buffers. Bug: angleproject:3490 Change-Id: I56ca0cabb094e97f36ab4edc779e6c8ad2d2601e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639058 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Kimmo Kinnunen 4a757416 2019-06-03T14:04:01 D3D: Fix heap corruption when copying texture arrays Do not use depth dimension when copying normal 2D textures of a 2d texture array. It copies past the end of the buffer obtained via ID3D11DeviceContext::Map(). Fixes a case which can be reproed with the payload disabled: gn args out\debug --args="is_debug=true" ninja -C out\debug angle_end2end_tests out\debug\angle_end2end_tests ^ --gtest_filter=Texture2DArrayCopy.SnormFormats* --gtest_catch_exceptions=0 ^ --gtest_repeat=-1 Bug: angleproject:2865 Change-Id: Id9bc5489fa41749d1b1d2e87992166b1a0af76fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641247 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Anders Leino 12a52423 2019-06-03T10:39:54 Sharpen GL test skip condition for NVIDIA The skip condition for GLSLTest_ES3.VaryingStructNotInitializedInVertexShader is modified to not skip NVIDIA on windows. Bug: angleproject:3413 Change-Id: I126d9fa9e36c3b6c07abfd24bdaf6feb76ac4f6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640208 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 2c9e47a8 2019-06-03T07:01:52 Roll ./third_party/glslang/src 6d88284607d2..a549bb817523 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/6d88284607d2..a549bb817523 Created with: gclient setdep -r ./third_party/glslang/src@a549bb817523 The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=cwallez@google.com Change-Id: I9eb385899560332a48da791ab2add2c737c44848 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640254 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll fa37aef8 2019-06-03T07:01:45 Roll ./third_party/spirv-tools/src 209ff0ce90ce..699e167d78ee (3 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/209ff0ce90ce..699e167d78ee Created with: gclient setdep -r ./third_party/spirv-tools/src@699e167d78ee The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. TBR=cwallez@google.com Change-Id: I078d9f2857080e7675808b583658ab974a468936 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640253 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>