src/tests


Log

Author Commit Date CI Message
Shahbaz Youssefi c13ca2af 2019-07-17T15:46:29 Vulkan: Allow more than one atomic counter buffer binding dEQP assumes there are more than one atomic counter buffers available. This is technically not a requirement by the standard, but nevertheless could be what applications expect as well. This change adds support for multiple atomic counter buffer bindings. This is done by declaring an array of storage buffers for the atomic counter buffers (instead of declaring only one) and passing the (binding, offset) pair around to functions instead of just the offset. The atomic counter is found by indexing `binding` into the storage buffer array first before indexing `offset` into its `uint[]`. ProgramVk's default uniform collection is also fixed not to include atomic counter uniforms. A remaining issue is that atomic counter buffer offsets don't have alignment requirements in GLES, but Vulkan does for storage buffers. Similar to emulated transform feedback buffer offsets, these should be sent to the shader through uniform values. This will be done in a follow up change. Bug: angleproject:3566 Change-Id: I5600225c24c38f1a8ecf5c64388073055733197d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707931 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 2a53d83a 2019-08-05T10:42:14 Vulkan: Enable more tests to run (and in most cases pass). Some of this set of expectation-file changes are due to PBO implementation. Bug: angleproject:3628 Bug: angleproject:3455 Bug: angleproject:3209 Bug: angleproject:3210 Change-Id: Ie74913f22600b967c2a239f8a6452f9a99b2a00a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736134 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Clemen Deng 9031bdd9 2019-07-26T14:51:23 Use perfect-hash module in gen_builtin_symbols.py The script currently takes ~4 minutes to run Using this module instead of manually hashing will improve runtime significantly Bug: angleproject:3747 Change-Id: I7e2d2ef5bbfd136b0299d571e0acc11f334c80b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724667 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott dc2c5c5a 2019-08-02T09:32:18 Vulkan: Initial Implementation of PBO support (software only) This contains support for both pixel unpack buffers (i.e. for glTex*Image*) and pixel pack buffers (i.e. for glReadPixels). Bug: angleproject:3209 Bug: angleproject:3210 Change-Id: I077cccbffb96fb5f0198922bc7c1850a7eb3f616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723096 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott a06d32dc 2019-08-02T15:44:09 Vulkan: Enable more tests to run (and in most cases pass). Bug: angleproject:3628 Change-Id: Idbb889165069d2ac45394b38cf44fad8c11bd910 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1733417 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten de50d039 2019-07-29T16:04:56 Enable ASTC 3D Textures Enable ASTC 3D textures. ETC are still unsupported, since dEQP fails if we indicate support. Bug: angleproject:3188 Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_*astc* Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_negative_compressed_tex_image Change-Id: I8559ae42d19e63fdf96ea7a49f2d7e3d5098771c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723094 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten 626a7280 2019-07-08T15:11:59 Vulkan: Implement framebuffers without attachments It is possible to render to a framebuffer object that has no attachments. However, the rasterization of primitives is always based on the area and characteristics of the bound framebuffer. These characteristics (size, number of samples, etc.) would normally be defined by the attached images. If no images are attached, these characteristics are defined by their default values. Bug: angleproject:3579 Test: dEQP-GLES31.functional.fbo.*no_attachments* Test: dEQP-GLES31.functional.state_query.framebuffer_default.* Change-Id: I9580b924ac810db573cd8df96273fbb01bbb1f73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1690688 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 301f77e7 2019-07-30T13:51:12 Vulkan: Enable passing ES2 multisample tests The tests need to be run with --deqp-gl-config-name=rgba8888d24s8ms4 for deqp to even try them. They pass and the removal of suppressions was missing from: https://chromium-review.googlesource.com/c/angle/angle/+/1639749 Bug: angleproject:3204 Change-Id: I77cb528da090d1374152e2e32f86e974df70358a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1726850 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
James Dong 593b1a6c 2019-07-30T10:02:22 Vulkan: Fix array handling in default uniforms Changes default uniform block layout generation to only remove the first array subscript, which causes arrays of arrays to be recognized correctly. Bug: angleproject:3604 Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.shaders.arrays*' Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.program_interface_query.*array*array*' Change-Id: Ifacc665cae87c651253e5cb8d929178d7fc92817 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724906 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Shahbaz Youssefi a0d010ab 2019-08-01T11:05:21 Disable atomic counter buffer tests on AMD/Windows/GL Second attempt at fixing this bot: https://ci.chromium.org/p/chromium/builders/ci/Win10%20FYI%20x64%20Release%20%28AMD%20RX%20550%29 Bug: angleproject:3738 Change-Id: I8e8626cc911df9dae82c542b2dde8696f10e49bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731130 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xinghua Cao e995d7fb 2019-06-26T17:59:27 Use memoryBarrier to sync image load and store Image load and store are incoherent memory access operations, so need to use memoryBarrier to ensure the visibility of incoherent memory access operations with other operations. Bug: angleproject:3044 Change-Id: I4d474d260a3199c026911de8d20878cd327d16c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1677420 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 1dbbc7b3 2019-07-31T17:49:39 Skip couple TextureBorderClampIntegerTestES3 tests. TextureBorderClampIntegerTestES3.TextureBorderClampInteger/ES3_OpenGL TextureBorderClampIntegerTestES3.TextureBorderClampInteger2/ES3_OpenGL failing on Win10 FYI x64 Release (AMD RX 550). Bug: angleproject:3760 Change-Id: I0ccd56f190b1a3775f6a9a0448ca3003baa331ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729564 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Xinghua Cao eb06814d 2019-07-03T17:17:45 Correct barriers of glMemoryBarrier in test cases Some test cases use wrong barriers when calling glMemoryBarrier. Bug: angleproject:2280 Change-Id: I0750c1eba84ed8af32091f7ecd5bdbd2b32fd397 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687591 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Tim Van Patten 9addf0cb 2019-07-23T11:45:24 Vulkan: Enable Line Rasterization Emulation 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/+/1715207 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
James Dong bf3d9333 2019-07-29T10:00:44 Vulkan: support relative offset in attrib bindings 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/+/1724453 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Ian Elliott a51232eb 2019-07-26T15:02:39 Vulkan: Split-out PBO and pack/unpack expectations Bug: angleproject:3209 Change-Id: I82e67345ce9f70b1b1d211b00b23d95dd53a44e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721188 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten 35f02850 2019-07-23T17:20:25 Vulkan: Reduce getMaxConformantESVersion() to 2.0 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 8d3077b8 2019-07-26T09:44:36 Vulkan: Expect additional texture-specification tests to run/pass 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/+/1721171 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Yuly Novikov ce66a4f8 2019-07-26T16:27:04 Skip 2 end2end tests failing on 431.02 Windows NVIDIA driver 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/+/1721185 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop a2129356 2019-07-23T12:54:13 Vulkan: Add support for 2D array textures 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/+/1721169 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
James Dong 7e50f4cd 2019-07-25T09:58:51 Vulkan: Fix ES 3.1 vertex attribute bindings 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>
James Dong 020abb8b 2019-07-24T11:33:49 Vulkan: invalidate translation buffers for SSBOs 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/+/1717144 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Clemen Deng f2412bca 2019-07-16T15:47:34 Get rendering to texture working 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 0716ce0a 2019-07-22T15:20:47 Re-add case to blitframebuffer workaround where src is outside of bounds. 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>
Ian Elliott fab397e5 2019-07-25T10:18:50 Vulkan: Enforce an error when initializing a global with a non-const 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/+/1716617 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi c68e7cbc 2019-07-25T11:28:07 Vulkan: Fix image copy flipping 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 557e3853 2019-07-24T18:16:18 Vulkan: Disable atomic counter buffer tests on AMD/Windows 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/+/1716056 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
James Dong 02407743 2019-07-22T10:56:35 Vulkan: implement indirect dispatch 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/+/1710024 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: James Dong <dongja@google.com>
Clemen Deng 592539fd 2019-07-10T13:15:59 Implicit conversions for Desktop GL shaders 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 3dcd8ebb 2019-07-22T15:33:22 Skip ProgramBinaryTransformFeedbackTest.GetTransformFeedbackVarying on Pixel 2 Vulkan. Bug: angleproject:3690 Change-Id: Ic00038cfe8fe9d1170eb75aec89c0ac0f074fb05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710026 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov af80b781 2019-07-22T14:31:08 Skip ShaderStorageBufferTest31.ActiveSSBOButNotStaticallyUsed on Pixel 2 Vulkan. Bug: angleproject:3725 Change-Id: Ic5c80ad3ec495c3fd382639f761b368f16993434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713564 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi b82d8633 2019-07-15T11:23:08 Vulkan: Atomic counter buffer support 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>
Yuly Novikov bd4ff479 2019-07-19T22:08:17 Revert "Reland "Temporarily disable creating D3D debug device."" This reverts commit 6064e6ab6bc7355b410543301a578d22d2f6e477. Reason for revert: flakiness should be fixed by https://chromium-review.googlesource.com/c/angle/angle/+/1709726 Original change's description: > Reland "Temporarily disable creating D3D debug device." > > This reverts commit 28394c2295335929c17bbfe0ab74f923cd234ff2. > > Reason for revert: may be the cause of flakiness on Win10 Debug (NVIDIA) per http://crbug.com/972914 . > > Original change's description: > > Revert "Temporarily disable creating D3D debug device." > > > > This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21. > > > > Reason for revert: Seems like flakiness is not related. > > > > Suppress D3D11 test failures uncovered by re-enabling D3D debug device: > > ComputeShaderTest.DispatchCompute > > Texture2DTestES3.TextureImplPropogatesDirtyBits > > D3DTextureTestMS.* > > > > Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages > > to clear reported messages, otherwise the failures are also reported > > for tests following the one with the actual failure. > > > > Original change's description: > > > Temporarily disable creating D3D debug device. > > > > > > To diagnose whether Windows Intel end2end tests flakiness > > > is related to creating debug device and new version of Windows SDK. > > > > > > Bug: angleproject:3153 > > > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737 > > > Reviewed-on: https://chromium-review.googlesource.com/c/1476954 > > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > > > Bug: angleproject:3153, angleproject:3493 > > Bug: angleproject:3501, angleproject:3512, angleproject:3513 > > > > Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854 > > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org > > Change-Id: I38a5cc9bb6ebcd50e97e40cc972a82679e73732a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3512, angleproject:3513 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652784 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> TBR=ynovikov@chromium.org,geofflang@chromium.org,kbr@chromium.org,jmadill@chromium.org Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3513 Change-Id: I16eff79172dcfa2dd6d4f6445a74c9c65c1bd27c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710861 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 9ec3f51d 2019-07-19T13:06:16 Reland "Vulkan: Implement OES_get_program_binary extension" Reason for revert: default uniform initialization was incomplete This change has the following fixes: 1. Add missing default uniform initialization when loading program binaries. 2. Re-enable OES Program Binary capabilities for Vulkan. 3. Added two angle end2end test, - ProgramBinaryES3Test.BinaryWithLargeUniformCount uses several uniforms across the vertex and fragment shaders. - ProgramBinaryES3Test.ActiveUniformShader tests the difference between uniform static and active use Bug: angleproject:3216 Bug: angleproject:3217 Bug: angleproject:3665 Tests: dEQP-GLES3.functional.shader_api.program_binary* angle_end2end_tests --gtest_filter=ProgramBinary* Change-Id: If6886f01241d65bb1e17a21cc3406533021072ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699069 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jiacheng Lu f35f1110 2019-07-19T09:18:55 Add script to apply clang-format on all sources 1. python script wrapper to call clang-format over the whole code base 2. Add clang-format rule `IncludeBlocks: Preserve` to tell clang-format do not merge include blocks 3. Fix existed clang-format issue in code base Bug: angleproject:3532 Change-Id: I289292dc62c2784ff21688065c87c3f3f5538f17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709720 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
James Dong 765ee7b7 2019-06-19T14:19:52 Vulkan: support for new vertex attribs in GLES 3.0 Fixes handling of packed vertex formats, adds new overrides for 32-bit [SU](NORM|SCALED) vertex types, and handles half-precision floats correctly. Pixel 2 does not natively support certain 10-10-10-2 vertex formats; this change does not add support for them. Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.vertex_arrays.*' Test: ./angle_end2end_tests --gtest_filter='AttributeLayout*/ES3_Vulkan' Test: ./angle_end2end_tests --gtest_filter='VertexAttribute*/ES3_Vulkan' Bug: angleproject:3193 Change-Id: I5ae4edd743e86e3e89e2697034c04dc4d9ecd1f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1668230 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: James Dong <dongja@google.com>
Geoff Lang 610f2388 2019-07-18T16:28:49 Return backwards compatible context versions in Vulkan, GL and D3D11. This allows us to pass some dEQP GLES 2.0 tests that require using an ES 3.0 context and matches native driver behaviour of returning a higher-than- requested context version when it's backwards compatible. BUG=angleproject:3425 BUG=angleproject:3300 BUG=angleproject:3715 BUG=angleproject:3243 BUG=angleproject:3240 BUG=angleproject:3716 Change-Id: I03dfd56deb6191c3363808717e0eea6fdcf5f3ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709111 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang 6a02f06d 2019-07-18T16:27:14 Implement EGL_ANGLE_create_context_backwards_compatible This extension allows the user to specify if ANGLE should create a context of the exact requested version or a higher version context that is backwards compatible. BUG=angleproject:3425 Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8cb95960 2019-07-16T13:54:57 Vulkan: Fix FS array output location assignment Test: angle_end2end_test --gtest_filter=GLSLTest_ES3.FragmentShaderOutputArray/ES3_Vulkan Bug: angleproject:3707 Change-Id: I6519a76aa58ad80ada0e2ad90a2a70d93f831ce5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704779 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jiacheng Lu ec30d78d 2019-07-03T12:56:58 Optimize uniform matrix update 1. Add a fast matrix update function to do a single memcpy for uniform matrix assignment with same layout. It benefits row-4 no-transpose GLSL matrix and col-4 transpose HLSL matrix. 2. Make boolean IsColumnMajor to be a template parameter in generate uniform matrix updating, which gets rid of the conditional branch in loop and has better performance. 3. Add e2e test of uploading multiple 3x4 GLSL matrices at the same time, which adds coverage to this CL. Bug: angleproject:3632 Change-Id: Id1701ef6fbf63ea4b9884254d93ea8eacfe4e16a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688274 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 69194e5f 2019-07-17T15:35:10 Reduce variance in TextureUploadPerf. This reduces the test time to run in several ms instead of almost seconds per iteration. It allows us to use the perf test runner harness to check test performance more accurately by increasing the sample count. It first reduces the test iteration count to reduce total test time. It also refactors the test contents to not allocate new objects and memory with every test iteration. This gives a better sampling of what the test is obsering: texture upload performance. Also allows tests that like to track GPU time to be used with the NULL device option. Bug: angleproject:3712 Change-Id: Idacc3e3b424f8882d7680769b27d1f04146ea65d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707112 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Li, Hao e9cffa62 2019-07-16T16:32:40 Rename data_dir to angle_data_dir in GN files Dawn reuses the Vulkan validation layers of ANGLE to avoid building twice in chromium, and references build_overrides/vulkan_common.gni, but angle_data_dir is undefined, which is defined as data_dir in angle.gni. There is a reminder to rename this name in https://chromium-review.googlesource.com/c/chromium/src/+/1610488 Bug: angleproject:3710 Change-Id: I4b7c4d24c37770ff58b70c988851a6ed32a04296 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703175 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi c44d2c79 2019-07-11T14:45:56 Fix glGetProgramResourceName filling output with 0 strncpy was used to copy resource names, which fills the unused parts of the buffer with '\0'. The spec doesn't forbid this, but dEQP fails on this behavior, presumably to try and catch overflow bugs. Bug: angleproject:3562 Change-Id: Ifce2d690221b2403848cb8913f4753ec60dfffab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698647 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 2e43b0f5 2019-07-11T17:09:54 Vulkan: Implement memory barriers Bug: angleproject:3574 Change-Id: I13d8f4fcd6f1bf9bf3496c91c2c697076e2491bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699005 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 950e1a4d 2019-07-16T13:10:29 GL: Reset the pixel unpack state after initializing texture data. Texture data initialization happens after dirty bit synchronization so TextureGL::initializeContents must be careful to leave the applied state the same way it found it. BUG=angleproject:3703 Change-Id: I1647cfc59c45fd9fad0fcde2e37af831e56f2e57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704215 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi f92fc916 2019-07-15T22:39:23 Vulkan: Compute shader support A DispatchHelper class is created as the equivalent of FramebufferHelper as a command graph resource. There's currently a single dispatcher and all dispatch calls are recorded on that. Context dirty bits are set up in such a way that graphics and compute workloads are independently handled, so that issuing a dispatch call wouldn't cause a framebuffer's render pass to rebind resources. Bug: angleproject:3562 Change-Id: Ib96db48297074d99b04324e44b067cfbfd43e333 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688504 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 5de073c0 2019-07-15T10:05:02 Vulkan: Enable more format-related tests to run After seeing some CLs in this space, that didn't change the expectations file, I checked to see whether more tests can pass, and they can. Bug: angleproject:3190 Change-Id: Ifa1d1c7b91c403c8c67ddcb5d8a589cbaf686cf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1702493 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
James Dong a9ec8749 2019-07-11T11:31:47 Vulkan: override format for mismatched attribs Prevents Vulkan validation error by replacing the input format for any mismatched vertex attributes with a format compatible to what the shader expects. Bug: angleproject:3436 Change-Id: Ia52f29c084d82bbc4e9149102cd4b5fc25ccb9b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698567 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 8b2bb18f 2019-07-10T17:12:25 Vulkan: Update capabilities with the necessary limits Some of the necessary limits were not being defined correctly in the native capabilities, causing some dEQP test failures. Bug: angleproject:3676 Test: Applicable dEQP-GLES3 limits testing Change-Id: If977da1edd7d55627c65cd81a6dcd42c63a3a6a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695934 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Clemen Deng 663b0481 2019-07-11T12:37:35 Load correct opengl32.dll Tests are still loading ANGLE's opengl32.dll instead of system's This is because external drivers are trying to load opengl32.dll Workaround: renamed to libGL.dll, need to change back when copying dll over for loading Bug: angleproject:3641 Change-Id: I051adc1fbb488a704c99718ad4a2f74bb7756cbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1697290 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 9d943af7 2019-07-11T17:53:37 Vulkan: Support more texture format-type combination tests. This is a partial fix for 3455, which contains a number of different root-causes. This CL addresses two sets of them. 1) Partial fix for KHR-GLES3.copy_tex_image_conversions.forbidden.* Recent changes, including adding support for GL_RGBA8-to-GL_RGB5_A1, plus adding support for GL_RGB10_A2-to-GL_RGB5_A1 eliminate the crashes for 56 of the 70 tests. 2) Most of the KHR-GLES3.packed_pixels.rectangle.r* tests now pass. Recent changes, including potentially the above get another 34 tests passing, and another 15 no longer crashing. 3) Vulkan: Fix errant glCopyTextImage validation code. I got all but 2 of the KHR-GLES3.packed_pixels.rectangle.r* tests passing. I fixed bugs in the validation code (with at least two more bugs that I haven't fixed yet). More details below. 3a) Fix the IsValidES3CopyTexImageCombination() function for SNORM. The code wasn't rejecting SNORM cases, which are missing from the table of effective internal formats, meaning that support is undefined. The GLES 3.2 spec says that a GL_INVALID_OPERATION error should be generated "if the effective internal format of the source buffer does not match the effective internal format of the new image." 3b) There's a caveat that was overlooked that means that internal formats like GL_RGB10_A2 are not supported. Bug: angleproject:3455 Bug: angleproject:3693 Bug: angleproject:3697 Change-Id: Ie4399a2d7cd969ec29acc926f32e6608775609c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1693325 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop c3085ead 2019-07-11T15:07:29 Vulkan: Set texel offset limits This was blocking compilation for any new texture builtin that used offsets. Bug: angleproject:3622 Change-Id: I30b221741796b53f8e47e3aeeebfbde3f1976bd6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699062 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Courtney Goeltzenleuchter 943fe34e 2019-06-24T16:51:57 Vulkan: Upload packed depth-stencil Bug: angleproject:3437 Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.VerifyStencilData/* Change-Id: Iffab48eaea6aa35888560859e9f502a4f814b833 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1674663 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 375ddfc5 2019-07-12T11:12:14 Signal different dirty bit for vertex buffer change. We use new logic to compare if the attribute format changes before setting dirty bits. This improves performance of VBO-only state changes significantly. On the VBO change Vulkan microbenchmark gives about a 30% improvement. Bug: angleproject:3256 Change-Id: Ifaf1c92ed7a09422156ef79b5983e7349de63346 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1684294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ian Elliott 25378d6a 2019-07-09T17:23:03 Vulkan: Split some SKIP expecations and put with correct bugs The tests previously skipped for 3458 have 2 different root causes. Bug 3458 was split into two: 3458 and 3674. The SKIP lines have been split into more-fine-grained SKIP lines, with some going to the new 3674 bug. Bug: angleproject:3458 Bug: angleproject:3674 Change-Id: I2eaa83a30b87a81144d8f19658007386683e6388 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695899 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten 0cb36be6 2019-07-11T10:32:39 dEQP: Override tes31Context.cpp to prevent 3.2 context creation Skip the GLES 3.2 context creation by overriding tes31Context.cpp with an ANGLE-specific tes31Context_override.cpp that only creates a GLES 3.1 context. Bug: angleproject:3687 Test: dEQP.GLES31 Change-Id: I1afab5f04b79dc252f1b27563032a44ab37cacfe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Clemen Deng 1d672749 2019-07-08T15:42:05 WGL implemetation for OpenGL tutorial Fixes to make WGL implementation work with OpenGL tutorial - Give directive parser the correct shader spec when on Desktop GL - Minor changes to parse Desktop GL shaders - Moved clientType parameter from Context to Context->mState - Minor fixes to WGL functions Bug: angleproject:3666 Change-Id: I01ddb828f6d581ad445f49942589436849eae5d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1693244 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 29fba5e0 2019-07-04T17:08:41 Vulkan: Prepare for variable-stage pipelines Compute (single-stage pipeline) is upcoming, but this change prepares GlslangWrapper to handle any number of stages (mostly). Additionally, this change binds each resource to each stage based on whether it's active, so that we don't hit the per-stage limit of resources by binding every resource to every stage. Bug: angleproject:3633 Bug: angleproject:3562 Change-Id: Ifebf691482846e0371c6e314f514226a4cfee258 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689330 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jiacheng Lu a1754dc8 2019-06-26T13:36:43 Vulkan: Recycle vkFence This CL introduces a Recycler to reuse unreferenced vk::Fence, reducing CPU time spent on vk::Fence init&destroy. Save around 15% of CPU time for most glmark2 tests. Bug: angleproject:3556 Change-Id: Ice5054305321c466c5be3bc368d04091f074729c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679239 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>
Tim Van Patten f8d26b4f 2019-07-10T15:10:35 Vulkan: Clean up deqp_gles3_test_expectations.txt The deqp_gles3_test_expectations.txt file is being cleaned up to give failures their own bug, rather than being lumped into the generic "Implement GLES 3.0 conformance" bug. This gives more visibility to the test failures and allows people to start working on this in isolation more easily. There were also some passing tests removed that were found while doing this cleanup. Bug: angleproject:2950 Test: dEQP-GLES3 Change-Id: I24810ac37053fba96bccc7f320bfacc66cc7da59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695927 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Qin Jiajia 96682377 2019-07-08T11:06:27 Fix the RTV and SRV conflict This change fixes below error: Message 0: ID3D11DeviceContext::CSSetShaderResources: Resource being set to CS shader resource slot 0 is still bound on output! Forcing to NULL. Bug: angleproject:3658 Change-Id: I72d656cf61ffb7c39660c019eab980c39eafb70f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688307 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
shrekshao cdab03aa 2019-06-18T17:24:54 Add flags to shader translator to emulate gl_BaseVertex and gl_BaseInstance Adds support for translating gl_BaseVertex and gl_BaseInstance for implementation of GL_ANGLE_base_vertex_base_instance. They will only be available in WebGL 2. Since there's no gl_VertexID and gl_InstanceID in WebGL 1. It won't be very useful to add them to WebGL 1. Mostly follow pattern of gl_DrawID of GL_multi_draw BUG=angleproject:3402,chromium:891861 Change-Id: Ifcd990c52d12f6814127b904e61a779b8d382e0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666361 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell cbdf8616 2019-07-09T20:30:45 Support blitFramebuffer to and from IOSurface-backed textures. Extend validation to allow texture rectangle-backed textures as blitFramebuffer sources and destinations. Add end-to-end test covering this functionality, and run the IOSurfaceClientBufferTests against both ES2 and ES3. Bug: angleproject:3669 Change-Id: I7b8815a2c98072c12de45717afbba9e9b29ba253 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1694483 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten b91900a2 2019-06-26T17:51:49 Vulkan: Fix khr-gles3.shaders.uniform_block.common.name_matching test failure Fix various shader translator validation errors related to uniform buffers and naming. Bug: angleproject:3459 Test: angle_deqp_khr_gles3_tests Change-Id: Iaa66b61e91c8f38ec7cccb43d71be9ba3cd83da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1684302 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
shrekshao 7964101c 2019-07-09T09:07:32 Fix regex parenthesis missing escaping backslash Bug: angleproject:3668 Change-Id: Iaf529a5a50d1ab040f016fae0ea9bd3129a8fd6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692625 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ian Elliott 5e1b3777 2019-07-08T09:38:38 Vulkan: Add support for GL_RGBA8-to-GL_RGB5_A1 This support was missing and caused dEQP crashes. Bug: angleproject:3627 Change-Id: Idc06cc92df676061f8a08d0f32a1b3e7f03a66f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1691102 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 934fc44f 2019-07-09T09:54:26 Vulkan: Note that KHR-GLES3.texture_repeat_mode.* tests pass Not sure when these were fixed, but they pass now. Bug: angleproject:3455 Bug: angleproject:3460 Change-Id: I0275ff001af3bab2599073143effcc54ee0bca82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692447 Commit-Queue: Ian Elliott <ianelliott@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 1cde0eab 2019-07-03T10:58:32 Vulkan: Add storage buffer support The storage buffers are placed in the same descriptor set as uniform buffers. Some refactoring is done to reuse code that handles UBOs to handle SSBOs as well. A good number of tests still fail as they test SSBOs in conjunction with compute shaders. Bug: angleproject:3561 Change-Id: Ia33c1f68e6f6402c746f5919ede87b2c308cf81c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687126 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi a1b6761e 2019-07-02T14:42:12 Vulkan: Add SSBO and combined resource limits Fixes UBO limits as well, both to use the per-stage Vulkan limit and to account for driver uniforms now being dynamic. Bug: angleproject:3561 Bug: angleproject:3633 Bug: angleproject:3605 Bug: angleproject:3443 Change-Id: I07e34923cc1d132e965a0b9c0590c96fc561fab1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1685877 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya 4c292b87 2019-07-05T09:37:22 Vulkan: Enable remaining ProgramBinary end2end tests Now that we have support for program binaries, enable the following end2end tests for Vulkan backend - 1. ProgramBinaryTest* 2. ProgramBinaryES3Test* 3. ProgramBinaryTransformFeedbackTest* Bug: angleproject:3217 Change-Id: I007b03181c4c3c6c20e8cb278ed78cf14bff7f1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689824 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov c26b7914 2019-07-04T16:52:21 Skip EGLSurfaceTest.SwapInterval on Linux NVIDIA Vulkan. Flaky hangs on Ubuntu 19.04 Bug: angleproject:3618 Change-Id: Iab85c94e90aec0f7b15fe0fbc14ae1a8d0734d48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689270 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Clemen Deng a71a8c66 2019-07-04T09:42:31 ANGLE tests loading wrong opengl32.dll ANGLE tests try to load opengl32.dll from ANGLE directory instead of system Bug: angleproject:3645 Change-Id: I3a8cea37252d13e915ff54ae6bbac920db16e4c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688544 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 524a8c90 2019-07-04T13:29:23 Fix header check for GLES 1.0 conformance tests. The no_gtest target wasn't sharing its header visiblity with the main target. Fix this using public_deps. Also rolls angle-internal to pick up MSVC build fixes. Bug: angleproject:3654 Change-Id: I4aca1f167031c0b41d1a7f7ff4d7303a960e2839 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688500 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott c4ef62ec 2019-07-01T14:34:06 Vulkan: Note newly-passing Windows tests. Remove FAIL lines from expectations file. After recent CLs have landed, addtional dEQP tests are now passing on Windows. Bug: angleproject:3190 Change-Id: I40e1f29b21d9d3bb450beac4e94377112175308a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1684226 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten 6d37651a 2019-06-26T13:13:09 Vulkan: dFdy is incorrect when the framebuffer is flipped To account for framebuffer flipping, `dFdy()` expressions must be changed to: dFdy() * ANGLEUniforms.viewportYScale Bug: angleproject:3487 Test: dEQP-GLES3.functional.shaders.derivate.dfdy.* Change-Id: I38f25ba37fb8c5ae61cee5ac911df88ec4a93fef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678404 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lingfeng Yang 196cd9e7 2019-07-03T08:50:03 GLES1: disable texture3DOES extension It requires GLES 2.0+ This should help keep src/tests/gl_tests/gles1/TextureParameterTest.cpp: TextureParameterTest.NegativeEnum green even if the extension is propagated to the frontend from the underlying renderer. Bug: angleproject:3639 Change-Id: I04118e060f38cb774a6897ee6ce035b540a3b60e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1686822 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jonah Ryan-Davis 7356514a 2019-07-03T12:13:05 End2end test for WebGL conformance2/uniforms/large-uniform-buffers.html Bug in UBOs over 65535 bytes is captured in the WebGL conformance test. Add an ANGLE end2end test to capture this behavior. Bug: angleproject:3388 Change-Id: I8151892d22b53a9100d26cceb124c13fdbfae844 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687116 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya a8da8668 2019-07-02T12:21:26 Vulkan: Implement OES_get_program_binary extension - Serialize and deserialize completed shader source of program for saving out for glGetProgramBinary(). - Cleaned up some unnecessary includes in cpp files. - Some refactoring within ProgramVk::ShaderInfo to minimize code duplication. - Added ProgramVk::ShaderInfo::saveShaderSource and ProgramVk::ShaderInfo::loadShaderSource. - Updated vk_caps_utils.cpp to enable getProgramBinary and add the GL_PROGRAM_BINARY_ANGLE program binary format. This follows the pattern for other backends. Bug: angleproject:3216 Tests: dEQP-GLES3.functional.shader_api.program_binary* angle_end2end_tests --gtest_filter=ProgramBinaryTest* Change-Id: I927a27aaf9aa3d7fac550819ee80d2676ec1d1be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1683099 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 35c847eb 2019-07-03T15:28:52 Skip EGLFeatureControlTest.InvalidDisplay on all Win/Intel Was skipped only on Vulkan, but it hangs on other backends too, like D3D11. Bug: angleproject:3629 Change-Id: I3a812d86e1765507fb03a58c6d10c6a48edc0f2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687124 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Yuly Novikov 994938ca 2019-07-03T13:44:46 Skip ImageTest.Source3DTargetExternal on Ozone Since Ozone supports external target only for images created with EGL_EXT_image_dma_buf_import Started failing when Texture3D was enabled in https://chromium-review.googlesource.com/c/angle/angle/+/1682782 Bug: angleproject:3188 Change-Id: I4131b51f16907d12088869b7ee02799ab1b39fec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687980 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 66b5ff58 2019-06-28T14:34:22 texture3D: Implement functionality and enable for Vulkan Also update test expectations for texture3D. Bug: angleproject:3188 Change-Id: If8a8e0a83a86c48c2afb0c36534c1e9d4120fe47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682782 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4fbbdb15 2019-06-28T14:17:13 texture3D: Compiler changes for sampler3D Bug: angleproject:3188 Change-Id: Iac1408f8b91c6a6610a63cef236205b7dcdbd2c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682781 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jonah Ryan-Davis cb335463 2019-07-02T12:56:16 Skip EGLFeatureControlTest.InvalidDisplay on Win/Intel/Vulkan This tests has flaky timeouts on the Win10 Intel HD Graphics 630 bot. I can't reproduce them locally with Intel 530, so I'm going to skip the test since it's testing unrelated behavior. Bug: angleprojec:3629 Change-Id: I124d318a870a067f8d100275f9ab5f0a0d053bd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682362 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill bc20a493 2019-07-02T11:14:52 Add vertex attribute change perf test. This perf test has quite different performance than the buffer-only state change test. Bug: angleproject:3256 Change-Id: I23aa08b87af371cbafa509803ae7f8cbe0ce1c58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1684292 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 383d1209 2019-07-02T20:57:24 Skip ComputeShaderTest.ImageAtomicCounterBuffer on Win NVIDIA GL. Bug: angleproject:3636 Change-Id: If106efa79967fa88d2c67feb7f07309e613ab989 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1686740 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi da904484 2019-07-02T10:49:14 Vulkan: Implement glInvalidate[Sub]Framebuffer Additionally, fixes an issue where the read framebuffer was affecting the render pass desc given to the pipeline. This fix is included with this CL as its test depends on glInvalidateFramebuffer. This issue was revealed by 071d2a44 changing the order in which read and draw framebuffers were synced. Previously, read was synced first, dirtying the pipeline and then draw was synced fixing it. With the order reversed, the read framebuffer is the last to changes the pipeline, leaving it in an invalid state. Bug: angleproject:3201 Bug: angleproject:3202 Change-Id: Ibebf732a3e3cc081e4865f79dcbaedb467fd9038 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682468 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
shrekshao be3d2d98 2019-06-25T17:52:17 More HLSL tests with regex Replace some more HLSL hardcoded unique id tests suffix with regex Bug: angleproject:3551 Change-Id: I4ed54092f9b2dda27702ba9412959ec3fb93a455 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1677408 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jordan Bayles b5a13bec 2019-06-28T14:11:17 Prepare for JsonCpp roll in Chromium This patch is the first of a multistep process to upgrade JsonCpp from its current legacy version to the latest version. A minor fix to how Json::Value is used is included, as well as properly pulling in the jsoncpp_config where jsoncpp is used, allowing for us to roll Chromium while Angle uses the deprecated Reader/Writer classes. After this patch is landed, the Angle dependency in Chromium can be rolled as part of rolling JsonCpp, then Angle can update to the new StreamWriter/CharReader classes. Bug: 961513 Change-Id: Idd1d61270aa0a7e4a91983b4c22a24e2fdaafe49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682815 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jiacheng Lu f116aa9c 2019-06-17T15:08:11 Vulkan: detect swapchain recreation passively Currently ANGLE vulkan query current window size every frame to detect whether a swapchain recreation is needed, however profiling shows some bottle neck on window size query on X11. So here removing the per frame window size query and only depend the result of vkAcquireImage and VkQueuePresent to detect a need for swapchain recreation. Bug: angleproject:3535 Change-Id: I4ddf70b973d78dfcd5f8fab28e29e802edad1b2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1662759 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill 4237e53e 2019-06-28T11:14:31 Pull angle-internal for internal ANGLE devs. These internal repos can hold confidential code. Also updates the GLES 1.0 conformance test configuration to pull data from angle-internal. Bug: angleproject:3621 Change-Id: Ifb9d2a5014b0827a078cfdc85fb20c5f5335204f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679992 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis a965ed14 2019-06-28T15:50:34 Update KHR GLES31 expectations to get bots running. Missing some expectations for unimplemented features in GLES31 for the KHR deqp tests. This suppresses them so the bots will run. Bug: angleproject:3521 Change-Id: I962cf03032514d99753306d0db9c942a5124b98f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682470 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
James Dong 8bb6baa0 2019-06-18T15:30:16 Vulkan: improve handling of RGB texture formats Adds fallback for some RGB textures using the corresponding RGBA formats and modifies fallback calculation to not require filtering/rendering for formats which are not required to support filtering by GL spec. Bug: angleproject:3190 Bug: angleproject:3196 Change-Id: I7beaf9881d63e3c6bd9339faede0333919a4174c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665894 Commit-Queue: James Dong <dongja@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
James Dong a7d8ada2 2019-06-28T11:10:41 Test out-of-bounds writes in glCopyTexSubImage2D Adds a test for out-of-bounds writes resulting from clipping the copy area to the size of the source framebuffer causing the destination area to be out of bounds. This causes a GL_INVALID_VALUE error according to the spec. Bug: angleproject:3355 Change-Id: I39638daa9b0c03cc82a6dbf6cabd0027e32a8ea8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682111 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 77c8496b 2019-06-28T11:24:27 Re-land "Cleanup angle_libs_suffix in BUILD.gn." We can use output_name instead of repeating the libs suffix in the GN files. The re-land adds automatic suffix application on Android. This makes the configuration a bit simpler and should detect future breakage. Also cleans up some of the "angle_libraries" code. Bug: angleproject:3611 Change-Id: I4971d1085ca67802c916655c30efb7df4001f040 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679993 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 8f1169eb 2019-06-27T15:32:32 Added end2end tests for GL_EXT_texture_rg Bug: angleproject:3195 Test: ./angle_end2end_tests --gtest_filter='Texture2DRGTest.*' Change-Id: I076af9e0b4ee78623dcc9c4e07b4e1bececd05c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1681109 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d4d43ac0 2019-06-28T10:54:26 Add suppression for test failing on old MESA Bug: chromium:979349 Change-Id: Iaeee744dc33e388e8030ccb923dde0c3f6fda0a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679991 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 931089f4 2019-06-27T16:34:18 Vulkan: Enable numerous deqp texture tests ... while verifying that compressed textures work. Bug: angleproject:3197 Change-Id: Icd25b761594fd51bbb6bc6963618caae8e4deec9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1680067 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3e6e70bb 2019-06-28T14:45:49 Revert "Cleanup angle_libs_suffix in BUILD.gn." This reverts commit 625f5b2fbd89eb04b2e24853502acadbd40f1f73. Reason for revert: Seems to break the Android build with suffix: ~/chromium/src$ gn args out/Release64 Waiting for editor on "/usr/local/google/home/cnorthrop/chromium/src/out/Release64/args.gn"... Generating files... ERROR Unresolved dependencies. //third_party/angle:compressed_symbols(//build/toolchain/android:android_clang_arm) needs //third_party/angle:libEGL_angle(//build/toolchain/android:android_clang_arm) //third_party/angle:compressed_symbols(//build/toolchain/android:android_clang_arm) needs //third_party/angle:libGLESv1_CM_angle(//build/toolchain/android:android_clang_arm) <snip> Original change's description: > Cleanup angle_libs_suffix in BUILD.gn. > > We can use output_name instead of repeating the libs suffix in the GN > files. > > Bug: angleproject:3611 > Change-Id: Ic87c1378aac8be8e1aec695ddbe5c8ec2ed3187b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678403 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,timvp@google.com,jmadill@chromium.org Change-Id: I532d9cf28c21ddf65d820d3fc323c87dbc844d96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3611 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679990 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 625f5b2f 2019-06-26T16:19:35 Cleanup angle_libs_suffix in BUILD.gn. We can use output_name instead of repeating the libs suffix in the GN files. Bug: angleproject:3611 Change-Id: Ic87c1378aac8be8e1aec695ddbe5c8ec2ed3187b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678403 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 923c30fb 2019-06-27T15:16:01 Update test expectations for vulkan gles31 bots. Before enabling gles31 vulkan tests on the bots, there are some test expectations that must be updated. Bug: 3521 Change-Id: If48cad3d7405cc331e133bf80f62b34d33504c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1680066 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>