1. 18 Jun, 2019 10 commits
    • NVIDIA Shield workaround for IsNVIDIA() detection · 32d718f3
      Jonah Ryan-Davis authored
      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: 's avatarGeoff Lang <geofflang@chromium.org>
    • Add support for D3D11 texture backed EGLImages · f9686af0
      Sunny Sachanandani authored
      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: 's avatarGeoff Lang <geofflang@chromium.org>
    • Fix Platform.h integration with ANGLE · eee67c6e
      Jonah Ryan-Davis authored
      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/+/1664792Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
    • Remove gl::Context parameter from Observer functions. · 124f78c2
      Jamie Madill authored
      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/+/1663838Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Roll SPIRV Tools and Headers into ANGLE · 81b6acfb
      Jonah Ryan-Davis authored
      SPIRV-Tools roller did not roll the correct headers version.
      
      Change-Id: Ifa1c9e2ee92e11a5e84ba78249e422884f5b6582
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663840Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
    • Remove unused WidenString function · b8252fdb
      Kimmo Kinnunen authored
      The removed function had incorrect Windows implementation,
      the return value was checked incorrectly.
      
      Last use was removed in commit 573f76b3
      https://chromium-review.googlesource.com/c/1042785
      
      Bug: angleproject:2532
      Change-Id: I66907fcb33041b097062208d53ca88752c05f9cb
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664153Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
    • Add support for OES_depth24 · 141a23f6
      Mohan Maiya authored
      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: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    • D3D: Add a wrapper to Image11 that enables ASAN/MSAN to catch the errors on map operations · a4c639c4
      Kimmo Kinnunen authored
      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: 's avatarGeoff Lang <geofflang@chromium.org>
    • Roll ./third_party/glslang/src def9662348b0..11805e41d992 (5 commits) · 2d223552
      angle-autoroll authored
      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/+/1662959Reviewed-by: 's avatarangle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
      Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
    • Vulkan: Correct synchronization for buffer readback · b1c8dbf3
      Shahbaz Youssefi authored
      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: 's avatarTim Van Patten <timvp@google.com>
  2. 17 Jun, 2019 11 commits
  3. 14 Jun, 2019 7 commits
  4. 13 Jun, 2019 12 commits