- 30 Jul, 2019 2 commits
-
-
Tim Van Patten authored
Android requires the same line rasterization for Vulkan, so this CL will enabled that workaround. Bug: angleproject:2830 Test: dEQP-GLES2.functional.rasterization.primitives.line* Change-Id: Ic28dd2e54c5cb9b29f8592952b2c0f29a5f97fd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715207Reviewed-by:
Tim Van Patten <timvp@google.com> Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
-
Tim Van Patten authored
The libEGL_angle.so and libGLESv2_angle.so libraries are typically loaded into the same process each time, so we need to make sure there aren't any duplicated symbols which could violate ODR and lead to crashes or undefined behavior. In this case, the libEGL_angle.so function pointer names were colliding with libGLESv2_angle.so function names, causing crashes at runtime. The fix here is to mark the libEGL_angle.so function pointer symbols 'hidden', so they don't appear in the symbol table for other executables/libraries to see and can't be overridden by other symbols. Bug: angleproject:3751 Test: Embed ANGLE within dEQP.apk and verify no crashes Change-Id: Ibb78369374a4a68b3489a7dd7775c52e29fa37e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724909 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 29 Jul, 2019 6 commits
-
-
Tim Van Patten authored
Initial attempt to give desktop ETC/EAC formats support. Bug: angleproject:3676 Change-Id: Id147b0c1808e30df77097d0c7ff6a06534554b93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699307 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Jiacheng Lu authored
Remove the dirty checking of matrix uniform update at frontend and always let backend update whenever glUniformMatrix* is called. Profiled with UniformsBenchmark/* with vulkan backend, performance increases around 6% when data being updated is changing and performance increases around 2% when data being updated stays same. Bug: angleproject:3705 Change-Id: I8eaf6a1231e634b69c6dc540db1b9d3a312bf45d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709725 Commit-Queue: Jiacheng Lu <lujc@google.com> Reviewed-by:
Tobin Ehlis <tobine@google.com>
-
James Dong authored
Handles the ES 3.1 relative offset parameter in vertex attributes by adding it to the binding offset. Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n dEQP-GLES31.functional.vertex_attribute_binding.usage.single_binding.unaligned_offset_elements_1_aligned_elements Bug: angleproject:3598 Change-Id: Idbbd5ba4868a4dfc8f99188a84a5cd1374e09065 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724453Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: James Dong <dongja@google.com>
-
Jiacheng Lu authored
1. Compare updating values with active ones at frontend when depth&stencil related gl call happens and do not set any unnecessary dirty bits. 2. Remove d3d and gl backends' checking of depth&stencil states when detect any dirty bits, as it is now being done at frontend. 3. Modification to graphics pipeline description update, make sure it syncs with gl::State initial value. 4. Change gl_vk::CullMode return type to VkCullModeFlagBits, as it only represents single value. Bug: angleproject:3700 Change-Id: Id3aa5186455ee3a10a9c147edad13944e3e41098 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706903 Commit-Queue: Jiacheng Lu <lujc@google.com> Reviewed-by:
Tobin Ehlis <tobine@google.com>
-
angle-autoroll authored
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/42f813401bdf..7fc868349143 Created with: gclient setdep -r ./third_party/glslang/src@7fc868349143 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. Bug: None TBR=jmadill@chromium.org,jmadill@google.com Change-Id: I91cbab4ec63909cf62892905d0e6500e22261855 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723835Reviewed-by:
angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
-
angle-autoroll authored
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/f54b8653dd9d..9559cdbdf011 Created with: gclient setdep -r ./third_party/spirv-tools/src@9559cdbdf011 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. Bug: None TBR=jmadill@chromium.org,jmadill@google.com Change-Id: I27a15130e7b8786e1d2404a2cfa6954f9ddd339f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723834Reviewed-by:
angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
-
- 27 Jul, 2019 1 commit
-
-
Jeff Gilbert authored
(on behalf of RewriteAtomicFunctionExpressions) The compile will occasionally choose to inline all instances of this function, and therefore not export this entrypoint into the object file, leaving other TUs (RewriteAtomicFunctionExpressions) with missing link symbols. Bug: angleproject:3752 Change-Id: Ida778bcd897a85567680911a88aae88a3797aa93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721954 Commit-Queue: Jeff Gilbert <jgilbert@mozilla.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 26 Jul, 2019 15 commits
-
-
Ian Elliott authored
Bug: angleproject:3209 Change-Id: I82e67345ce9f70b1b1d211b00b23d95dd53a44e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721188Reviewed-by:
Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
-
Tim Van Patten authored
We are currently returning a 3.0 context for Vulkan backends (issue 3425). However, we aren't quite 3.0 conformant yet, so this bug will drop that back down to 2.0 in getMaxConformantESVersion(). Bug: angleproject:3734 Test: dEQP Change-Id: I2c5a6ee0ddb3bd52fdc92fdc9b12cf3c6d8e0510 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716244 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Ian Elliott authored
Recent changes allow these to all run and pass! Bug: angleproject:3190 Change-Id: I6349b8d9aa90297e676f170361f468ac04b3150d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721171Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
-
Yuly Novikov authored
ClearTestES3.RepeatedClear/ES3_Vulkan ShaderStorageBufferTest31.LoadAndStoreBooleanValue/ES3_1_D3D11 Bug: angleproject:3748, angleproject:3749 Change-Id: I54c6259d36c9993250e961d92a6d4b8e4349ed57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721185Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jiacheng Lu authored
1. add '-Wfloat-conversion' in compiler flag for clang 2. fix existed implicit float conversion Bug: angleproject:3728 Change-Id: I0dc07eeb74c5d6dc480c6f0aa88bc75ab98e4292 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713741 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Cody Northrop authored
Includes changes from jmadill to align with Vulkan backend design. Correctly setting layer count and depth when the texture type is 2Darray. Vulkan requires depth of 1 for 2Darray textures. Bug: angleproject:3189 Change-Id: I0d58c33fcd75b1d768ea0308ac6e54230d8cfcc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721169Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
-
James Dong authored
When handling dirty bindings, we were treating binding indices as if they were attribute indices, causing strange behavior. This change fixes the dirty bit handler to use the provided index properly and update the attributes that correspond to the binding index. Test: ./angle_end2end_tests --gtest_filter='VertexAttributeTestES31.OnlyUpdate*/ES3_1_Vulkan' Bug: angleproject:3598 Change-Id: I2bc3cd4da5f639a1301776fcf057a74368812c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1718786 Commit-Queue: James Dong <dongja@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jonah Ryan-Davis authored
The charts were regenerated, update the docs to point to the new charts. Also remove some redundancy (we don't need the overview to track differences in vendors) Bug: angleproject:3713 Change-Id: I2005031c4ca960d7f9afd80562957d31af795d61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721190Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
-
James Dong authored
Translation buffers weren't being marked dirty after running a compute shader in which they are bound as SSBOs. This change invalidates all SSBOs after a draw or compute call. Bug: angleproject:3739 Change-Id: I66b56df7e619b55afc7e3da6b5613b6d050e06bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1717144Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: James Dong <dongja@google.com>
-
Jiacheng Lu authored
Bug: angleproject:3611 Change-Id: Idba4d49d36274db8545f2526f19f045f97031379 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721173Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Clemen Deng authored
Other small fixes for desktop compatibility Bug: angleproject:3620 Change-Id: I8e75bce1f850fb891c8bb6e16f79302a6d59276c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707932 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jonah Ryan-Davis authored
On Mac, blitFramebuffer calls fail if the source region is not enclosed by the framebuffer. In this case, we must naively clip the source region and adjust the dest region accordingly. This is slightly different behavior and may cause issues with scaling so we use a separate workaround. Also, Windows NVIDIA has a driver bug that affects Vulkan device creation after blitting large textures, so it should be included in the original workaround. This CL cleans up the workaround to use more helpers from ANGLE and to generally improve readability. Bug: chromium:830046 Change-Id: I50bd97449725b738036e6bd3af82362020d7eda8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713090 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
angle-autoroll authored
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/9f2236e58ed0..42f813401bdf Created with: gclient setdep -r ./third_party/glslang/src@42f813401bdf 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. Bug: None TBR=jmadill@chromium.org,jmadill@google.com Change-Id: I88b5be03e7f7ec2b442baa2a01033ac5ca97dd4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1720290Reviewed-by:
angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
-
angle-autoroll authored
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/3855447d93eb..f54b8653dd9d Created with: gclient setdep -r ./third_party/spirv-tools/src@f54b8653dd9d 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. Bug: None TBR=jmadill@chromium.org,jmadill@google.com Change-Id: Id79c4c5ce598fb2bb1206e3902ffede2aa8dc4c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1720289Reviewed-by:
angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
-
Ian Elliott authored
The ESSL 1.0 spec is clear that "initializers must be a constant expression." Yet, because of "legacy" applications (apparently just WebGL applications), the code was only issuing a warning and not an error. The "KHR-GLES2.shaders.negative.initialize" test requires an error be generated. This change splits the semantics, allowing GLES applications to get an error, and WebGL applications to get a warning. Note: This change is related to https://chromium-review.googlesource.com/829138 (for angleproject:2285). Bug: angleproject:3381 Change-Id: Ie243b7dd72102aeb52df506d121d1d2a8f6974d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716617Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
-
- 25 Jul, 2019 5 commits
-
-
Jamie Madill authored
Bug: angleproject:3189 Change-Id: I4b95240bb32fbc2b3d0c8f097e0552d0fe23417d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713094 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Cody Northrop <cnorthrop@google.com>
-
Shahbaz Youssefi authored
The draw framebuffer was consulted for flipping instead of the read framebuffer. Revealed a bug with copy-with-transfer not taking source render target's level/layer into account. This test was failing on Linux/Intel because there the framebuffer is not flipped, so the transfer path was taken. Bug: angleproject:2954 Bug: angleproject:3723 Change-Id: If95bf97b8e0536302ed39999be47bf904283c9e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1718784 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Mohan Maiya <m.maiya@samsung.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Shahbaz Youssefi authored
The READ_FRAMEBUFFER_BINDING dirty bit sync was missing from copy image functions. In the Vulkan backend, a cached value for the current read framebuffer was used to determine if the copy should flip in Y, and that cached value was out of date. Bug: angleproject:3723 Change-Id: I10e8a276a42c28fbedc9939f653a5a1f4a14e87b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715483Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Mohan Maiya <m.maiya@samsung.com> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
Previously, all non-compressed formats were satisfied with a 4-byte alignment. The introduction of float formats changes this. This change calculates the necessary alignment using the same code path as compressed formats. Also fixes RGB9E5's pixelByte being calculated as 3 instead of 4. Bug: angleproject:3731 Change-Id: I6abfd1c294e7f863eb99d2468eaac09e5d714039 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715205Reviewed-by:
Mohan Maiya <m.maiya@samsung.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
Shahbaz Youssefi authored
A likely driver bug is causing the subsequent OpenGL test to fail. Bug: angleproject:3738 Change-Id: I6ee5e9e7298a2adb3069a6e14ac83453fa34b50f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716056Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-
- 23 Jul, 2019 3 commits
-
-
Clemen Deng authored
Bug: angleproject:3727 Change-Id: I33ee85563e3b070b4b86afc37230d3f5af54f446 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713091 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Jose Dapena Paz authored
Compilation with GCC breaks as there is a build check using it. To avoid the problem, we declare the macro HAS_BUILTIN that maps to __has_builtin if it is defined, or 0 otherwise. Bug: chromium:819294 Change-Id: I105d566f08baa495fccd553d7b06eb8ce36621ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713604 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
angle-autoroll authored
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/76b75c40a1e2..3855447d93eb Created with: gclient setdep -r ./third_party/spirv-tools/src@3855447d93eb 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. Bug: None TBR=jmadill@chromium.org,jmadill@google.com Change-Id: I5d98e670ca5e5de9c2675cca7803e395e7f0d1d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1714120Reviewed-by:
angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
-
- 22 Jul, 2019 8 commits
-
-
James Dong authored
Implements indirect dispatch for Vulkan backend. Layout of dispatch structure is the same as OpenGL, so we pass in the buffer directly. Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.compute.indirect_dispatch.*' Bug: angleproject:3601 Change-Id: I94c6b1a86d3c24c1ca1bb6a78529b38909a2b91f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710024Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: James Dong <dongja@google.com>
-
Jamie Madill authored
Merely a minor refactor to clean up the diff of a subsequent CL. In the follow up we will also distinguish the GL extents from the Vulkan extents/layerCount pair. Bug: angleproject:3189 Change-Id: Ibbb79bf2e6d3f798243b424bacbfb2e5538bfecf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709755 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jonah Ryan-Davis <jonahr@google.com>
-
Clemen Deng authored
Need to support implicit conversions between types for GL shaders Other small fixes to support GL shaders Bug: angleproject:3673 Change-Id: I5341cb7195054ccc4cd36aad5dc8c801c7e1a14f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698649 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by:
Shahbaz Youssefi <syoussefi@chromium.org>
-
Yuly Novikov authored
on Pixel 2 Vulkan. Bug: angleproject:3690 Change-Id: Ic00038cfe8fe9d1170eb75aec89c0ac0f074fb05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710026Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
This makes the distinction between a gl::Extents (includes a depth value for 2D array texture layer count) and a Vulkan extents (2D array textures have a "1" for depth) clearer. Preparation refactor patch. Bug: angleproject:3189 Change-Id: I9a13379c421e7f3c7856ac15b7a73013258ab9fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709754Reviewed-by:
Jonah Ryan-Davis <jonahr@google.com> Reviewed-by:
Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Only for 2D array textures. Bug: angleproject:3189 Change-Id: I9958ab60ffa464aa63f5cb321cbbe14b378f3647 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709109 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Cody Northrop <cnorthrop@google.com> Reviewed-by:
Jonah Ryan-Davis <jonahr@google.com>
-
Yuly Novikov authored
on Pixel 2 Vulkan. Bug: angleproject:3725 Change-Id: Ic5c80ad3ec495c3fd382639f761b368f16993434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713564Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Shahbaz Youssefi authored
Vulkan doesn't treat atomic counters especially, and they are emulated with atomic access to storage buffers. A single atomic counter buffer binding per pipeline is supported. All the atomic counters identify an offset within this buffer. The shader is modified to include a storage buffer definition with `uint counters[];` as the only field. A compiler pass replaces atomic counter definitions with variables that hold the corresponding offset parameter, as well as changing atomic_uint types to just uint (as the offset). Where an atomic counter variable is used, it is replaced with the offset variable (plus the array index, if array). At the same time, built-in `atomicCounter*` functions are replaced with a corresponding `atomic*` function and `memoryBarrierAtomicCounter` is replaced with `memoryBarrierBuffer`. Bug: angleproject:3566 Change-Id: Iefb3d47de6a5cb3072bfa0cb94a46ac6a886d369 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704635 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Tim Van Patten <timvp@google.com>
-