Log

Author Commit Date CI Message
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>
Qin Jiajia 0730e630 2019-05-31T14:25:37 Fix needStructMapping In previous logic, we didn't check the structure field member type. So when passing the non-struct member of a structure to a function, it would think that struct mapping was needed. In this patch, we add more checking so that struct mapping only happens when there are structure copy or passing a structure to a function. BUG=angleproject:2967 Change-Id: Ic98e884c8f8540e180cdf40a0e036ffef18c1689 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638227 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 98f21671 2019-05-31T15:34:39 Vulkan: Refactor index buffer convert functions. This is a prepratory refactor for converting index buffers on the GPU using a more generic compute shader. No functional change. Bug: angleproject:3490 Change-Id: Iadf4b1429314db6850320aee33c4113f38577378 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639057 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c104b2d2 2019-05-31T16:25:02 Re-enable WGL perf test configs. These were accidentally dropped in https://crrev.com/c/1574674 . Re-enable so we can gather better perf stats on Windows machines. Bug: angleproject:3494 Change-Id: I92e9ba7e7783fddde1a47c0ffe056da7750d2c3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639063 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop f7106d16 2019-05-30T17:34:42 Revert "Revert "Vulkan: Use atomics in SerialFactory."" This reverts commit 35fa85ba2fafa583bd706b64d181f3f95094325d. Reason for revert: This commit was an innocent bystander. The bugs are intermittent, requiring multiple runs to verify. Bug: angleproject:3492 Change-Id: Idc9dcb1631cfca5fea342266c732732c6f2bd2d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636263 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang cc9bc655 2019-05-31T12:00:25 Vulkan: Fix synchronization with current surface Since a6242e4d4 ("Vulkan: Support submitting multiple semaphores"), semaphores are not generated because the function generating checks for non-empty command graph right after flushing. Bug: angleproject:3492 Change-Id: I03db4a77fe24fdfdf39ba535b235451ae0275a0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638579 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Jamie Madill bc30e72c 2019-05-30T13:30:33 Vulkan: Recycle command pools with vkResetCommandPool. vkDestroyCommandPool has worse performance than reset. Instead of destroying and creating new command pools for every batch of work we can instead recycle unused command pools. This seems to improve performance on most systems. Bug: angleproject:3489 Change-Id: I7f8fe7f9385ca481e04f226a26426c3e92da19ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636410 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
angle-autoroll 94d5e051 2019-05-31T09:48:52 Roll ./third_party/glslang/src 625eb25d6e80..6d88284607d2 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/625eb25d6e80..6d88284607d2 Created with: gclient setdep -r ./third_party/glslang/src@6d88284607d2 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: I473e72ad545d8a44bb98f316073f56de907d34f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638344 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll c4d89869 2019-05-31T09:27:58 Roll ./third_party/spirv-headers/src 7ac42f80c0e8..903d447d96eb (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/7ac42f80c0e8..903d447d96eb Created with: gclient setdep -r ./third_party/spirv-headers/src@903d447d96eb 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=cwallez@google.com Change-Id: I73c2aca43f3c6d2f2ba1dfab4f22b0f27d273dee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638341 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 3051121c 2019-05-31T09:05:45 Roll ./third_party/spirv-tools/src e7866de4b1dc..209ff0ce90ce (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/e7866de4b1dc..209ff0ce90ce Created with: gclient setdep -r ./third_party/spirv-tools/src@209ff0ce90ce 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: Ib8e46d85d321611522294e7d517662ab3ea24983 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638338 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Tim Van Patten 0a56f0e3 2019-05-14T17:07:27 Vulkan: Update front face mode during syncState() When handling DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING in syncState(), the call to update the front face was missing, so culling could be enabled for the wrong front faces. Bug: angleproject:3237 Test: Verify 3D apps render (more) correctly Test: New SimpleStateChangeTest end2end tests Change-Id: I1d94a977bea9e48d90b5346861e5565d2371cadd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1611753 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 35fa85ba 2019-05-29T15:59:13 Revert "Vulkan: Use atomics in SerialFactory." This reverts commit 1b0f79ee92b51122634fca6342876db196b85e3c. Reason for revert: Breaks a number of applications on Android Original change's description: > Vulkan: Use atomics in SerialFactory. > > This allows serials to be generated from multiple threads without locking for > very little/no cost. > > BUG=angleproject:2464 > > Change-Id: Id61d170e7a985c3100da0057156859ffcb083dad > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516514 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org Change-Id: I52011f294d68490998869fa898e929fd41eaa51c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636272 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6d9b8908 2019-05-29T13:18:31 Vulkan: Merge Color and Depth/Stencil resolve shaders There is a good deal of overlap in the way these shaders calculate offsets, flip etc. This change merges the two shaders together, as well as the UtilsVk functions that invoke them. This is in preparation for adding blit functionality to the same shader. Bug: angleproject:3200 Change-Id: Id7c2cf12e05db1802ae497766fb361fe4bef6479 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635750 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll a2ad3619 2019-05-30T07:01:31 Roll ./third_party/spirv-headers/src 7f4277e21b52..7ac42f80c0e8 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/7f4277e21b52..7ac42f80c0e8 Created with: gclient setdep -r ./third_party/spirv-headers/src@7ac42f80c0e8 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=cwallez@google.com Change-Id: Ic053c4d3b3d32cad16ee01558f65f10041eee62a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636781 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll addc81ce 2019-05-30T07:01:34 Roll ./third_party/glslang/src 66e46037d74f..625eb25d6e80 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/66e46037d74f..625eb25d6e80 Created with: gclient setdep -r ./third_party/glslang/src@625eb25d6e80 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: Ic462453728a05f72f41f7cacd2598fb23a257fc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636782 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll b2021956 2019-05-30T07:01:16 Roll ./third_party/spirv-tools/src f051812343eb..e7866de4b1dc (4 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f051812343eb..e7866de4b1dc Created with: gclient setdep -r ./third_party/spirv-tools/src@e7866de4b1dc 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: I93a446c4a2671de71781c2b757db872b26a5aed6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1636780 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 172e5d37 2019-05-29T10:00:50 Vulkan: Implement universal stencil resolve This is done by resolving stencil into a temporary buffer and copying that into the stencil aspect of the resolved image. Bug: angleproject:3200 Change-Id: I29111b44db2cb093acc4544034fbe61178f055a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635709 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Michael Spang ab6a59b2 2019-05-21T21:26:26 Vulkan: Submit semaphores from glWaitSemaphoreEXT & glSignalSemaphoreEXT Implement submission of client semaphores passed to glWaitSemaphoreEXT & glSignalSemaphoreEXT. This also relaxes the expectation that we will not flush() if there are no commands. Signaling semaphores in particular requires queue submission irrespective of whether there are any command buffers to submit. If there are neither commands nor semaphores, we can still skip queue submission. WebGL runs in Chrome with ANGLE & Vulkan interop as of this patch, albeit with incorrect synchronization due to texture barriers not being implemented yet. Quite a few flags are needed to try this: GN args: angle_vulkan_conformant_configs_only=true chrome \ --enable-features=UseSkiaRenderer,UiGpuRasterization \ --enable-gpu-rasterization \ --enable-oop-rasterization \ --enable-vulkan \ --use-gl=angle \ --use-angle=vulkan Bug: angleproject:3289 Change-Id: I3d49c230a2fbf0cd2a2b943b05ded0e4604cc313 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623815 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi d3e7a41b 2019-05-29T14:40:52 Vulkan: fix buffer copy barriers Bug: angleproject:3362 Change-Id: Ibf6520fb73bb1a9b76714cddd786569789c70430 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635752 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis f52f2637 2019-05-23T13:52:52 Add EGL_ANGLE_workaround_control extension. This extension is used to query strings from an array based on index, which will be used to query all the information about workarounds in ANGLE. Bug: angleproject:1621 Change-Id: I27157f278f7f17c92c8b4fd7753e2a5ecd0528f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1627723 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 06055b5e 2019-05-29T14:31:42 Update Windows AMD suppression. Should have been specified for OpenGL instead of D3D11. Bug: chromium:967796 Change-Id: I099ab51709f69e7abb7fe698e6010241bdccb4bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635751 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang a6242e4d 2019-05-22T15:15:09 Vulkan: Support submitting multiple semaphores With GL_EXT_semaphore, the client can create and submit semaphores to synchronize with an external vulkan instance. We need to be able to submit semaphores from both the current surface as well as the client. In order to support glWaitSemaphoreEXT, make ContextVk hold a vector of semaphores that will be submitted with the next batch. In order to support glSignalSemaphoreEXT, make ContextVk::flush() build a vector of semaphores to submit, rather than just one. Submissions that result from a client signal operation will need to signal both the client semaphore as well as a semaphore from the surface's semaphore chain. Bug: angleproject:3289 Change-Id: I52b07c4c2a7bf52300d3107f028aa64585c6c4db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623814 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Michael Spang 2008c8ff 2019-05-21T20:38:59 Vulkan: Reuse flushImpl() from finishImpl() Reuse flushing logic in finish() as there's an increasing amount of logic needed to submit work in order that would otherwise be duplicated. Bug: angleproject:3289 Change-Id: Ia489e285615ebaa48b01d8a202871bebf7de0ac2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623813 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Shahbaz Youssefi f2a1c384 2019-05-21T16:32:49 Vulkan: Implement multisampled framebuffers Simultaneously implements ANGLE_framebuffer_multisample and ES3 multisampled framebuffers. Additionally, implements ES3 framebuffer blitting where multisampled framebuffers are involved. Bug: angleproject:3203 Bug: angleproject:3204 Bug: angleproject:3200 Change-Id: I5694a30f71168e807688a9568e3742b81d907918 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622667 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang e0956a16 2019-05-06T10:34:27 Vulkan: Rename getSubmitFence to getNextSubmitFence. Now that getLastSubmittedFence exists, the new name is more specific. BUG=angleproject:2464 Change-Id: I0bce1387b95b7b7b739e311d37e35e7d162d8f2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595435 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Anders Leino 262e2824 2019-05-20T14:24:40 Use D3D11 GetDimensions driver workaround for 3D textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects all integer format textures, because the dimensions are used for sample position calculations with integer format textures, which leads to sampling outside texture when the base level is non-zero. Bug: angleproject:3441 Change-Id: Ic54328e3d712e28a40efb4e63b8fce0baeb4ef42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1619785 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 1ad4771e 2019-05-29T07:01:16 Roll ./third_party/spirv-tools/src 6c7db9c63098..f051812343eb (3 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/6c7db9c63098..f051812343eb Created with: gclient setdep -r ./third_party/spirv-tools/src@f051812343eb 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: Iece64f0eeb92f9b1446f6cbf4a54a7e0b3acc093 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1634370 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Geoff Lang ded5f903 2019-05-01T13:58:27 Vulkan: Make the Vulkan renderer thread safe. Gate all access to the queue and caches with mutexes. Does not handle sharing of resources in share groups across threads yet. BUG=angleproject:2464 Change-Id: I297f8f1a535b99efca663cf72bac3d90df8b5d97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592253 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 1b0f79ee 2019-02-28T11:08:21 Vulkan: Use atomics in SerialFactory. This allows serials to be generated from multiple threads without locking for very little/no cost. BUG=angleproject:2464 Change-Id: Id61d170e7a985c3100da0057156859ffcb083dad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516514 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 29ac274f 2019-05-28T15:53:00 D3D11: Suppress failing Texture test on AMD. Bug: chromium:967796 Change-Id: I48280909db9c927c12d3c0d97f1ad451dffb849e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632949 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang ee244c77 2019-05-06T10:30:18 Vulkan: Move command graph and garbage to ContextVk. To support multithreading, contexts should manage their own command graphs and garbage. This allows safe access to vulkan resources such as command pools without thread synchronization. BUG=angleproject:2464 Change-Id: I930149bc9f0793028761ee05ab50b8c0a4dec98a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516515 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis dfe141f0 2019-05-28T11:06:40 Addition of dEQP "KHR" test variants to generate_stats Generate_stats should handle new step names and put them on new sheets. Also update the docs to show the KHR tests. Bug: angleproject:3486 Change-Id: I4fef774d98b0e622182686506376f788a7568376 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632529 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang 5a808b86 2019-05-27T13:22:32 GL: Allow BlitGL to copy from external textures. BUG=967410 Change-Id: I503dda6f2493b56123a8bd369e2f1305971abb4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1364110 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 44462cd6 2019-05-27T17:12:21 D3D: Use the ProgramD3D::GetExecutableTask context for loading program binaries ProgramD3D::GetExecutableTask is a d3d::Context type itself so that errors can be recorded in a thread-safe maner. Use the task context when loading program binaries in ProgramD3D. Fix up incorrect casts in RendererD3D::loadExecutable in both D3D9 and D3D11 backends to stop incorrectly assuming the context type. BUG=962439 Change-Id: I5b29372a7254f709e1bbb67ee322ef4109f73e48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi ce9be8c7 2019-05-24T09:35:06 Vulkan: Have a cubemap as 2D-array view handy Previously, only texture copies used a shader that performed texelFetch(). To support cubemaps, a hack was used to temporarily create a 2D array view. With upcoming support for multisample resolve, more shaders will be using texelFetch() all requiring this workaround. This change instead makes sure that a separate view is created for cubemaps for the purpose of being used with these shaders. As a result, we have three logical views on textures and render targets: - Draw: a view that can be used as a color/depth/stencil attachment - Read: a view that can be used to sample from - Fetch: a view that can be used to fetch from The fetch view is generally the same as the read view, except for cube maps. Bug: angleproject:3200 Change-Id: I21547f728c16f0aa8f0fcae152c400b5cc1565da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1628585 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 46fe0e4b 2019-05-22T13:13:50 Cleanup Features headers. Cleanup redundant angle:: prefix in Features headers. Cleanup workaround descriptions. Bug: angleproject:1621 Change-Id: I4325d3603877efee9c6a035cd5b5bbbbc4f5c169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1625609 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Anders Leino 69d04939 2019-05-20T14:04:13 Use D3D11 GetDimensions driver workaround for 2D array textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects all integer format textures, because the dimensions are used for sample position calculations with integer format textures, which leads to sampling outside texture when the base level is non-zero. Bug: angleproject:3441 Change-Id: Ic012cac94ce0a627221087ecb2ee6aa3665900d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617780 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Anders Leino 1b6aded6 2019-05-20T12:56:34 Test D3D11 GetDimensions driver workaround for textureProjOffset Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects all integer texture formats because the dimensions are used for sample position calculations on integer format textures, which leads to sampling outside the texture when the base level is non-zero. Bug: angleproject:3441 Change-Id: I9d2f8fa8e66caca704cbc46d4933d3f97aaf93ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617779 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 18c0f889 2019-05-28T07:01:16 Roll ./third_party/spirv-tools/src 42abaa099aab..6c7db9c63098 (3 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/42abaa099aab..6c7db9c63098 Created with: gclient setdep -r ./third_party/spirv-tools/src@6c7db9c63098 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: Id41b71a92ad4e5f4a9bf601170e38947792c739f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632010 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Geoff Lang 3fe06eb3 2019-05-21T17:37:25 D3D: Make sure Lod0 functions are never referenced in non-fragment shaders. The lod0 functions would not be declared but could still be referenced by vertex shaders. BUG=angleproject:3471 Change-Id: I635a8465ce68dc22a6f7387b30bf7e93b14dd67d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622741 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Jamie Madill 6722009e 2019-05-20T11:12:53 Vulkan: Handle dirty RTs with state messages. Prior to this CL we were handling dirty state change notifications by flushing the RT Images just prior to use or just after they were changed. This could lead to a few redundant checks in several places. It also meant we needed an owner pointer from the RT to the parent Image. This pointer would be null for Surfaces and Renderbuffers. This cleans up the image flushing logic to be handled by dirty bit notifications. When an app updates an attached Texture with TexSubImage or related calls it will send a notification to the Framebuffer. The Framebuffer then sets a dirty contents bit that is handled in the implementation. In Vulkan this means flushing the dirty bits. Requires adding a flag to the FramebufferImpl class to determine if we need to syncState before we checkStatus. Adding the option allows us to only call syncState for the GL back-end. Not calling syncState allows the robust resource init operation to happen *before* we syncState. Which in turn allows FramebuffeVk to initialize the VkImages in one go. Added new regression tests for Texture updates. This might not cover all cases. I found it was very hard to trigger some of the resource update staging in TextureVk. Bug: angleproject:3427 Change-Id: Idfa177436ba7fcb9d398f2b67922e085f778f82a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601552 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3f3a05d4 2019-05-27T09:08:46 Fix KHR dEQP test data dir. Had an extra "gl_cts" appended. Bug: angleproject:3353 Change-Id: I962cd0196b898e5fdd631790d88bfb1d478d16b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630292 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 8ae3f2c5 2019-05-27T07:01:17 Roll ./third_party/spirv-tools/src b8fe7211c465..42abaa099aab (3 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/b8fe7211c465..42abaa099aab Created with: gclient setdep -r ./third_party/spirv-tools/src@42abaa099aab 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=ynovikov@google.com Change-Id: Ia9007cafa07ba4872d62ef2226a0e4e815c35d8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1631167 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Michael Spang 40757b28 2019-05-22T15:23:22 Use ConvertToGLBoolean instead of ternary operator in Context Clean up Context by replacing foo ? GL_TRUE : GL_FALSE by ConvertToGLBoolean(foo); Change-Id: I6a6ee9c23bb30d8b4ef43371c04a94578758145e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1626309 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
angle-autoroll de15ed37 2019-05-24T07:01:34 Roll ./third_party/glslang/src 27ec91958501..66e46037d74f (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/27ec91958501..66e46037d74f Created with: gclient setdep -r ./third_party/glslang/src@66e46037d74f 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=ynovikov@google.com Change-Id: Ib84a65db65118755fd62891052c338b3b168792f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1628530 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 179d29a5 2019-05-24T07:01:17 Roll ./third_party/spirv-tools/src d9c00e1d2de1..b8fe7211c465 (5 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d9c00e1d2de1..b8fe7211c465 Created with: gclient setdep -r ./third_party/spirv-tools/src@b8fe7211c465 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=ynovikov@google.com Change-Id: I7f029edec722ab2b057849602699e8d6751e893f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1628528 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 17d6e3c4 2019-05-24T07:01:31 Roll ./third_party/spirv-headers/src 9674a1a54754..7f4277e21b52 (1 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/9674a1a54754..7f4277e21b52 Created with: gclient setdep -r ./third_party/spirv-headers/src@7f4277e21b52 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=ynovikov@google.com Change-Id: If9261e9ecb859c6ed285f5d516db512890757057 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1628529 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Qin Jiajia d68aff6c 2019-05-22T13:01:50 Fix the crash when the array size is not big enough. Previously, we used IMPLEMENTATION_MAX_DRAW_BUFFERS(8) as the array size of 'previouslyBound' which is used to record whether more than two different blocks are bound to a single buffer. However, when the underlying driver is d3d11_1, the max allowed shader storage blocks will be 64 which is larger than 8. An assert error will be met in push_back like below: Test case 'dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.45'.. ERR: push_back(250): ! Assert failed in push_back (../../src\common/FixedVector.h:250): mSize < N So we use 64 as the upper limit of max shader storage blocks. Bug: angleproject:3447 Change-Id: Ie76bfd15486c1ed02afca4283d6e70bdb4298cb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623794 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Minkyu Jeong 431ef2fd 2019-05-21T17:13:08 Add support for EXT_blend_minmax This is to add additional modes (MIN, MAX) to "BlendEquation". - add cases for "GL_MIN" and "GL_MAX" into "PackGLBlendOp()" in vk_cache_utils.cpp - add enabling "blendMinMax" codes into vk_caps_utils.cpp And, AUTHORS and CONTRIBUTORS are updated. BUG=angleproject:2897 Tests: dEQP-GLES3.functional.fragment_ops.blend.*min* dEQP-GLES3.functional.fragment_ops.blend.*max* Change-Id: I13a1d6d28a104b18e21697f9f23d77e4eda2d1a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621582 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jiawei Shao e794ddc8 2019-05-10T11:05:10 OpenGL: Remove all attachments before executing internal clear This patch fixes a bug in BlitGL::clearRenderbuffer() by removing all the attachments of mScratchFBO before attaching the real target of clear to keep mScratchFBO always being incomplete. Without this fix, the WebGL CTS tests mentioned in issue 2760 will fail on Intel OpenGL drivers when Chromium is using pass through command buffer because when a multisampled depth renderbuffer is attached to mScratchFBO, mScratchFBO will sometimes become incomplete because it may already have a non-multisampled color attachment. Bug: angleproject:2760 Test: angle_end2end_tests Change-Id: Id206fb4b338545ab46aba118e80d288158dcd8ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612305 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov d2683459 2019-05-23T16:11:19 Skip Texture2DIntegerTestES3.IntegerTextureNonZeroBaseLevel on Win AMD OpenGL Bug: angleproject:3478 Change-Id: I8f0ffeb0da31d08f4f4f45048d295c847cf095bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1626328 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Michael Spang 6bb193c8 2019-05-22T16:32:21 Vulkan: Implement glImportSemaphoreFdEXT Allow importing file descriptors into semaphores on linux. This can be used to synchronize ANGLE's GL renderer with respect to vulkan composition in chromium. Bug: angleproject:3289 Change-Id: I04ba3bbb2e343baa000ff89c21c03ca36163a713 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623812 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jeff Gilbert d9fa0744 2019-04-25T14:57:26 Emit OVR_multiview2 on ESSL/GLSL outputs. Add ARB_shader_viewport_layer_array support to SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER. Bug: angleproject:3404 Change-Id: Ia89517d0cc92400ce47c9118e8c1abf8285aec41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1585452 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 344ecaa6 2019-05-21T11:17:55 D3D: Return Incomplete when failing to load a program binary. When Stop is returned, the ProgramD3D::GetExecutableTask attempts to pop an error that has not been set. Returning Incomplete matches the other error cases in program binary loading. BUG=962439 Change-Id: I70895ddc706045620e3df219681982357b7b63e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1620914 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Anders Leino 8224a58b 2019-05-20T12:39:29 Normalize fragment color in Texture2DIntegerTestES3 The sampler returns colors with components in the range 0-255. Bug: chromium:963595 Change-Id: I7030ab9da6e0803e3aaf8aef4691ce7276636b10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617778 Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 5093ba67 2019-05-14T17:36:36 Implement resource management for GL_EXT_semaphore This implements glGenSemaphoresEXT, glDeleteSemaphoresEXT, and glIsSemaphoreEXT. It's not possible to do anything useful with them yet. Bug: angleproject:3289 Change-Id: I20ad90dbcd3fc573a4650c8531d6e1b8ccf7ca9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623811 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang 215b2191 2019-05-21T21:35:31 Add packed enum for GL_EXT_semaphore image layouts Add a new packed enum gl::ImageLayout which consists of the following enum values: GL_LAYOUT_GENERAL_EXT GL_LAYOUT_COLOR_ATTACHMENT_EXT GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT GL_LAYOUT_SHADER_READ_ONLY_EXT GL_LAYOUT_TRANSFER_SRC_EXT GL_LAYOUT_TRANSFER_DST_EXT GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT Bug: angleproject:3289 Change-Id: Idc1615717d54fb1193e2f27c84a24993f6007d7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623810 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Anders Leino e4452440 2019-05-09T13:29:49 Fix integer cube map sample HLSL calculation This patch fixes two issues in the HLSL generated to sample an integer cube map. The first issue was that an inappropriate major axis was selected when sampling from corners of the cube map. In particular, the added test case demonstrates a situation where a major axis of length 0 was selected, which lead to an infinite LOD being calculated. The fix was to adjust inequalities such that always exactly one of xMajor, yMajor and zMajor is true. The second issue was that the derivative functions ddx and ddy were being used on values that depended on the choice of major axis, which is not continuous at the corners of a cube map. This lead to a finite but incorrect LOD being calculated. The fix was to make sure major axis choice is not included when estimating the scaling factor. Bug: angleproject:3442 Change-Id: Ia3eb8c89f47d1bfdadc18aec989e8cbebc088ec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601515 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 25b2980b 2019-05-22T07:01:16 Roll ./third_party/spirv-tools/src 47741f05043a..d9c00e1d2de1 (5 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/47741f05043a..d9c00e1d2de1 Created with: gclient setdep -r ./third_party/spirv-tools/src@d9c00e1d2de1 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=ynovikov@google.com Change-Id: I7d01bcf5c7ed218c3c6d095fd208f721a11c983c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623927 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi fb8e1b25 2019-05-17T13:18:40 Vulkan: Fix multisampled clear UtilsVk::clearFramebuffer was not setting the sample count. Bug: angleproject:3204 Change-Id: Iab7d385ec58b12f21d888c5dfc9e94b7846ac40c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616858 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 01f98cbf 2019-05-21T12:21:36 Skip failing MultisampleTest on Nexus 6P and NVIDIA Shield TV Bug: angleproject:3464, angleproject:3470 Change-Id: Ie864118ceebfc0d72aa95928a02ef0939be5b89a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1620992 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi affc252c 2019-05-21T11:20:31 Vulkan: Update glslang_validator binary for Windows The new binary has the ability to optimize SPIR-V code. Bug: angleproject:3432 Change-Id: I57ac99d2b1c5ee0678c3b6ab3db1e215a12bd08a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1620915 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b86e73da 2019-05-21T10:23:23 Vulkan: Update glslang_validator binary for Linux The new binary has the ability to optimize SPIR-V code. Bug: angleproject:3432 Change-Id: I5953be6f207f153baaf2efe17380448aff374d60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1620913 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll ac05c2a2 2019-05-21T07:01:35 Roll ./third_party/glslang/src 6e384fef6c0f..27ec91958501 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/6e384fef6c0f..27ec91958501 Created with: gclient setdep -r ./third_party/glslang/src@27ec91958501 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=ynovikov@google.com Change-Id: I2a76cbdefe28e4122a16a7814c037dde80a1f361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621830 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll dc4f4a5b 2019-05-21T07:01:16 Roll ./third_party/spirv-tools/src 9dfd4b835807..47741f05043a (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9dfd4b835807..47741f05043a Created with: gclient setdep -r ./third_party/spirv-tools/src@47741f05043a 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=ynovikov@google.com Change-Id: I4d1347d3fa7b089fa03012954de2660654b6d134 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621847 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jeff Gilbert e8247a57 2019-04-25T18:54:24 Add scripts/export_targets.py. $ export_targets.py <out_dir> <targets...> Flattens all library targets under <targets...> and checks that all includes in 'sources' are known to the build. Firefox can use this as the first half of our ANGLE vendoring process. Included additions to src/libGLESv2.gni were found with: $ export_targets.py out //:libEGL Eventually, it would be nice to have this as a presubmit check. Bug: angleproject:3403 Change-Id: I0f455e8c37c4b0a9e17e9f843843422b6a32f588 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584652 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tom Anderson 08146a27 2019-05-17T10:40:44 Remove non-source sources from binary targets No behavior changes. BUG=chromium:964411 Change-Id: I843757e65f110882c01514fe6bf4aed28e07dd21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617011 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7a026133 2019-05-20T10:34:08 Fix Android data dir for KHR dEQP tests. Also includes a fix for case list paths on developer machines. Also includes a test expectation update for GLES2. Bug: angleproject:3353 Change-Id: Idb01eb8d806067739253a6676a6d2d8ee1199929 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616853 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 70958d15 2019-04-17T13:59:45 Let attribute aliasing logic detect overflow Checking against the max attribute count is not needed as aliasing is implemented correctly below. If not enough locations are available, linking will fail. This works for backends that support aliasing (Vulkan, GLES), but not for D3D11, which asserts. To handle this, add a limitation that informs the frontend of aliased attribute support. Bug: angleproject:3252 Bug: chromium:964404 Change-Id: Ib9ae5d381bbb2e6bf496272fc3d9e88467c17290 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572817 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b16d69c3 2019-05-13T16:28:27 Vulkan: Add support for surface multisampling A multisample image is created for the surface if multisampling is enabled. Prior to present, this multisample image is resolved into the swapchain image. FramebufferVk::readPixelsImpl similarly has got the ability to resolve the region of interest into a temporary image prior to readback. Tests are added to render a point, line and a triangle on a 4x multisampled surface. Bug: angleproject:3204 Change-Id: I34aca502fa1918b5cbf000ff11521c350372e051 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610188 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis cd3011fb 2019-05-13T13:55:25 Fix formatting issue in generate_stats Update to new (public) sheet in chromium account. Fix issue with python newline on concatenated string. Ensure all tables are sorted by date. Bug: angleproject:3435 Change-Id: I5de178409dec1e0dcf1467e4f0fe8cf85ea23c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1609939 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Yuly Novikov 52bfbd35 2019-05-17T12:29:49 docs: Update Android Test Instructions reference Bug: angleproject:1944 Change-Id: Ifb8435c9e73f91acc69605e6a93c1d8e529db19f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617010 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 6a4cad87 2019-05-01T13:04:00 Vulkan: Tighten descriptor stage usage hints Per-stage uniform buffers are marked with the specific stage. Program uniform buffers and images are specified to be used in all graphics stages. Descriptors used in internal shaders are marked for use in either compute or fragment stages. Bug: angleproject:3220 Change-Id: Ifcac36a1224f0392ba5fba50660514e498256401 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595439 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Cody Northrop 09eabed9 2019-04-03T19:20:21 Allow attribute linking for ES2 * Pipe webGL compatibility down to allow attribute aliasing. * Reject aliasing if shader level is too high, or webGL is in use. Bug: angleproject:3252 Change-Id: I3378fe707e3795a4b8a424989afccff42bc84344 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1556538 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill cafd7736 2019-05-17T09:33:41 Fix KHR-GLES dEQP test paths. Our GN was using the incorrect path for the new test sets. This was showing up as an isolate_tests failure when running the new tests. Also fixes incorrect search paths for the case list directory when used in a Chromium checkout. And adds a few other missing data dependencies. Bug: angleproject:3353 Change-Id: I602db1e5debdad88b6eace76416fc2c10c059f8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616021 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 4274cc46 2019-05-17T07:01:04 Roll ./third_party/spirv-headers/src 4b0985f29277..9674a1a54754 (2 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/4b0985f29277..9674a1a54754 Created with: gclient setdep -r ./third_party/spirv-headers/src@9674a1a54754 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=syoussefi@google.com Change-Id: I23c59c0273df539d1a9c0649dd2608550dd9c9f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617361 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 06de90c6 2019-05-16T12:46:54 Vulkan: Re-enable a handful of suppressed ES3 tests Few features are already implemented but the suppressions were not removed. Bug: angleproject:2392 Bug: angleproject:2394 Bug: angleproject:3199 Bug: angleproject:3219 Bug: angleproject:3423 Change-Id: Iefd6c10f5ec774e174901114b35410c0d397085f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614428 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 0febee5b 2019-05-15T17:03:52 Break debugger on assertion failure. This adds a few simple system utility functions. We can check if a debugger is attached and break into the debugger. Most of the code is adapted from Chromium's base/debug. Bug: angleproject:3162 Change-Id: I9cb39d42865a543fbf3201222dd8227318b32ad5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1615353 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill aefbea29 2019-05-16T13:33:27 Fix Clang warning in dEQP-KHR tests. Due to complex and slow process of upstreaming it's easier to disable this warning than to fix it upstream. Only happens in a Chromium build because Chromium uses a specialized standard library. Bug: angleproject:3353 Change-Id: I01607a00e469110c87458458d3b205fd59ea3db3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614426 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 66c11662 2019-05-08T14:27:44 Add a note regarding RenderDoc+Android+Vulkan+dEQP Bug: angleproject:1944 Change-Id: Ib0a9195ddaf5afc6f909631c859c7e0bd33d7a1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600050 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill cfffc138 2019-05-16T11:35:01 Add KHR-GLES dEQP tests. This reorganizes the dEQP build targets to allow for better reuse with the new KHR test set. It also adds a single new test target called "angle_deqp_khr_tests" that houses all the new test sets. The new test targets can be compiled now but cannot yet be executed. That new functionality will follow in a subsequent CL. Along with test expectations and integration. Uses a new template type in the build to conslidate GN customization. Adds the GLES 2.0 and 3.0 tests for now. We can follow up with additional work for the GLES 3.1+ tests. Also adds test expectations. Bug: angleproject:3353 Change-Id: Ib0673e97f679c8aa46e27dfa616845a2014a75fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1604070 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 04e389d1 2019-05-14T07:14:25 Vulkan: make sure default uniforms are in std140 Bug: angleproject:3199 Change-Id: I29fdf33ea5af37a66c2cfd5b3355d7ff32105d63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614781 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Anders Leino 60cc751a 2019-05-06T09:25:27 Use D3D11 GetDimensions driver workaround for integer cube maps Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects integer cube maps because the dimensions are used for sample position calculations, which leads to sampling outside the cube side textures when the base level is non-zero. Bug: angleproject:3441 Change-Id: I151f9336b9c6d8ec7012bf5010a2d45fb2951e73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595688 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 57da8d31 2019-05-16T07:01:19 Roll ./third_party/spirv-tools/src f815e6fe51af..9dfd4b835807 (6 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f815e6fe51af..9dfd4b835807 Created with: gclient setdep -r ./third_party/spirv-tools/src@9dfd4b835807 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=syoussefi@google.com Change-Id: I036f558eed529ed640e0908e1fe30f50793646e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614556 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Qin Jiajia 311e8086 2019-05-15T13:25:56 Do struct mapping under conditions Struct mapping consumes lots of time when the array lengh is very large. And it's done unconditionally. This CL does struct mapping only if it's a struct assignment or passing the struct to a function. In the next step, we can use a function to do struct mapping instead of struct array initialization. Bug: angleproject:2967 Change-Id: Ie5a74fa05dbc0255ad664d6265dbb880a624f01e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612978 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Jamie Madill 6ddb7768 2019-05-15T15:25:36 Remove angle:: prefix in angle_deqp_gtest. Refactor and cleanup only. Bug: angleproject:3353 Change-Id: I2a01ddf71ba44b8f1a1fc2c4ccbac9edc7c80174 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613893 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b4ca09ac 2019-05-15T15:23:12 Add IsDirectory helper function to system_utils. This was previously a method in dEQP only. Cleanup change only. Bug: angleproject:3353 Change-Id: I9ac58ab52516f75efbb08bddb39466a40c07cbb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613892 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Tobin Ehlis 38ff3c70 2019-05-15T10:07:09 Vulkan:Allow same-named var in nested scope ESSL 1.00 spec allows for variable with same name to override outer variable inside of a nested scope. This change adds new scope to symbol table inside of a function defintion, but after function parameters for ESSL 1.00 shaders (but not webGL). This prevents an error while parsing. This also includes some new code in translator to rename any vars that are redefined between the function body and the function parameters. This prevents an error later on when the translated shader is then parsed as a desktop GLSL version. Bug: angleproject:3287 Change-Id: I3f025805cf8d65bf912283bb15e6dad6e5e9b967 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601553 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>