src


Log

Author Commit Date CI Message
Tim Van Patten fa74421d 2021-08-06T18:30:57 Capture/Replay: Add LoadEGL() Add LoadEGL() to gen_restricted_traces.py. This is a pre-requisite to frame capture being able to generate EGL calls, which is required for multi-context support. Bug: angleproject:5878 Change-Id: I210035aecad42173626834588bae51019deaa076 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078994 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 62cac8b5 2021-08-06T18:24:52 Capture/Replay: Add EGL support to generate_entry_points.py Add EGL support to generate_entry_points.py. This is a pre-requisite to frame capture being able to generate EGL calls, which is required for multi-context support. Bug: angleproject:5878 Bug: angleproject:4035 Change-Id: I3b8e9c91f9e2820b5207fc02d858e8109921f581 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078993 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell ff64d2c7 2021-08-06T21:24:09 Choose direct-to-Metal translator through a feature. Define directMetalGeneration in FeaturesMtl.h. If ANGLE_ENABLE_METAL_SPIRV is defined to 1 (still the default), directMetalGeneration defaults to false. It can be overridden via the standard ANGLE mechanism: ANGLE_FEATURE_OVERRIDES_ENABLED=directMetalGeneration It can also be overridden by instantiating angle_end2end_tests with the directives: WithDirectMetalGeneration(ES2_METAL()) WithDirectMetalGeneration(ES3_METAL()) These directives aren't working properly yet though. The direct-to-Metal compiler is instantiated, but the _DirectMetalGen versions of the tests fail. They pass when switching the Metal backend's default behavior using the above environment variable. This will be debugged in follow-on CLs. Thanks to syoussefi@ for the prototype of this CL: https://chromium-review.googlesource.com/3076129 Bug: angleproject:5505 Change-Id: I188ab89abc75bf89c5ed2d90102af311feaa1960 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3079083 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Lubosz Sarnecki 331be08f 2021-08-11T11:28:29 Tests: Add Sonic The Hedgehog trace. Test: angle_perftests --gtest_filter="*sonic_the_hedgehog*" Bug: angleproject:6181 Change-Id: I40a5affe804a747445ef620c4f78e842c1eed1ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087444 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny d3031c65 2021-08-11T12:30:01 Capture/Replay: Update expectations with bug IDs In addition, update two tests that are just failing and no longer crashing. Bug: angleproject:6166 Change-Id: I9f19bf411c79c39f4f1f3156a9f8682609d6b3d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Yuly Novikov 392ba63f 2021-08-10T19:20:47 Suppress 2 dEQP GLES3 tests on Win SwANGLE functional.shaders.operator.unary_operator.minus.lowp_uvec3_vertex functional.shaders.operator.unary_operator.minus.mediump_uvec3_vertex Fails on x86 when llvmorg-13-init-15561-gf98ed74f Clang rolled. Unfortunately, expectation file doesn't support architecture, so suppressing on both x86 and x64 Windows, keeping the test running on x64 Linux. Bug: angleproject:6265 Change-Id: I15f8955eaf38c95d0d3036378d97afdb1871d44e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3088016 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jeff Vigil 6136620b 2021-03-25T15:43:06 Reland "EGL: GLES: Implement GL_EXT_protected_textures" This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa This removes changes in gl backend. Original change's description: > EGL: GLES: Implement GL_EXT_protected_textures > > Implement EGL_EXT_protected_content Images > Add protected member to Images and Textures > Add error when creating objects if not supported or > does't match native buffer > When creating siblings pass protected state > Add extension caps > Add Validation > Add GetTexParameter and SetTextparameter > Add protected to Texture and state > Expand tests for images and textures > > Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest > > Bug: angleproject:3965 > Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest Bug: angleproject:3965 Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 0bd5cac2 2021-08-06T17:56:58 Allow BufferSubData with persistently mapped buffers Per the GL_EXT_buffer_storage extension: What commands are affected by the relaxed errors for persistently mapped buffers? RESOLVED: In GL 4.5 the following commands have the relaxed language BufferSubData, ClearBufferSubData, CopyBufferSubData, GetBufferSubData and InvalidateBufferSubData. Of these commands the only ones that apply to ES 3.1 are BufferSubData and CopyBufferSubData. However, if additional extensions add any of the other commands and EXT_buffer_storage is supported, they would have the same behavior in ES. Therefore we need to allow BufferSubData and CopyBufferSubData on persistently mapped buffers. Current we fail these scenarios in validation. This was detected when running Fortnite on Android using the game's GLES backend. Also added two tests: - StorageCopyBufferSubDataMapped to recreate the exact Fortnite scenario using glCopyBufferSubData. - StorageBufferSubDataMapped is a contrived case to cover glBufferSubData Test: BufferStorageTestES3.StorageCopyBufferSubDataMapped/* Test: BufferStorageTestES3.StorageBufferSubDataMapped/* Bug: b/180418810 Bug: angleproject:5658 Change-Id: Ib678e84f367934656ec10f0f4ad0d35ac687f0b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 8f214193 2021-08-10T20:40:36 Revert "Properly report xcb_connect failures in DisplayVkXcb" This reverts commit 81bee2e7f6deeda15691dd0b7fca90626b66bfb8. Reason for revert: fails on https://ci.chromium.org/ui/p/chromium/builders/try/linux-ozone-rel/918054/overview Original change's description: > Properly report xcb_connect failures in DisplayVkXcb > > Bug: chromium:1223431 > Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:1223431 Change-Id: I1da24861375a29f448e61771a609396e777c2e29 No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087555 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 0b651e42 2021-07-20T11:48:38 Vulkan/D3D11/Metal: Expose GL_NV_framebuffer_blit GL_NV_framebuffer_blit is equivalent to ES3 blit which these backends support. Bug: chromium:1220246 Change-Id: I6ef0b80f9e9ba7828d6720cdbe19c83c4abdc4cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041878 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 81bee2e7 2021-08-04T19:31:54 Properly report xcb_connect failures in DisplayVkXcb Bug: chromium:1223431 Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki 97c21277 2021-08-03T15:06:37 FrameCapture: Don't capture default drawbuffers state. When capturing framebuffers during mid-execution-capture the drawbuffers state is now compared with the default one and skipped when equal. This prevents capturing the unavailable glDrawBuffers call when using OES_framebuffer_object on GLES 1 contexts. Bug: angleproject:6181 Change-Id: Id2076223067dc5f89df88fe6a3a48b09fa9a3f5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068957 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 856228b0 2021-08-05T23:10:25 D3D9: Expose EXT_sRGB and EXT_texture_compression_s3tc_srgb sRGB reads are supported on D3D9 via SetSamplerState. sRGB writes are supported on D3D9 via SetRenderState. Bug: angleproject:6258 Change-Id: I841c25ce66486e93ae2122b370e910f383fed774 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076359 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Lubosz Sarnecki 595ce2b8 2021-08-03T15:06:14 FrameCapture: Use OES suffixes for framebuffer functions on ES1. Functions using the GL_OES_framebuffer_object extension on GLES 1.1 require the OES suffix or will otherwise crash on certain native OpenGL drivers. The framebuffer capture functions are stored in a struct. This patch makes replay of Sonic The Hedgehog possible on Pixel 4 XL native GL. Bug: angleproject:6181 Change-Id: I689267b024824818bfcf28e652b835e075208415 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068956 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill d25c9d7f 2021-07-07T12:15:12 Add perf tests runner script. This script will be responsible for running the perf tests multiple times to try and stabilize measurements. We'll use it on the bots instead of just running the perf tests directly. Because the script invokes the binary multiple times, this slows down execution. Most significantly on Android, where we now need to use 20 shards, up from 6. Also marks one test as flaky on OpenGL. Bug: angleproject:6090 Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Yuly Novikov b1b760e7 2021-08-09T13:37:10 Ignore VUID-vkCmdClearAttachments-baseArrayLayer-00018 New message added in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3133 Blocks vulkan-deps rolls. Bug: angleproject:6262 Change-Id: Iaaafe7539092cbe7eadd01e47b67071d60779929 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081376 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 23a50a7c 2021-08-06T18:15:30 Serialization: Fix groups & ensure compile resolution. This change has two fixes: 1) Some texture groups had multiple duplicate keys. Namely image descs and image contents. 2) Programs and Shaders would serialize non-deterministically because we would not ensure the compile/link was resolved. Fix this by explicitly ensuring the shaders/programs are done. Bug: angleproject:5133 Change-Id: I2f7f7768c76f90275f81e032ac08e3f2bc828ea2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076134 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 06b19ed8 2021-08-06T17:02:36 Framecapture: Update file naming Update the file naming to add "shared" and remove the unnecessary frame numbering: angle.angledata.gz angle_capture_context1.cpp angle_capture_context1.h angle_capture_context1_files.txt angle_capture_context1_frame001.cpp angle_capture_shared.cpp angle_capture_shared.h Bug: angleproject:6256 Change-Id: I6454a3dc412896557f29faee1269dfa55146d43b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078908 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 4686da27 2021-08-06T18:13:14 Add GetImage test with RGB. This test covers a case in T-Rex with an unused RGB texture that was tripping up serialization. It isn't currently possible to make the test fail but it does cover some new code paths. Bug: angleproject:5133 Change-Id: I87c066779f270752bed3c1c1882951c71f16d378 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076133 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 6c415487 2021-07-26T13:08:46 Capture/Replay: Add option to override test disabling In order to be able to easily run disabled tests, add a flag --force-run-capture that makes it possible to ignore the SKIP_FOR_CAPTURE designation. Bug: angleproject:6166 Change-Id: I195248045d5c928d965f16b5ae17681d78686374 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053363 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny af35fd22 2021-07-12T14:58:01 Capture/Replay: rework test runner to use expectations This CL changes the test runner to use a expectation file for all the tests including failing tests. The expectation file is also used to disable running certain tests. e.g. because they are known to crash or result in compilation failures, which then take down all the test in the corresponding batch. The capture_replay_tests.py script will report failure if the test result doesn't meet the expectation. In order to keep the current behaviour to run subsets of tests in tact, the test filter is also applied to the expectation. In addition to the "normal" expectations, FLAKY was added to tag tests that can be captured and compiled correctly but have unstable results. This CL also adds the expectation for ES2_Vulkan_SwiftShader and ES2_Vulkan Bug: angleproject:6166 Change-Id: Ica05303e6ae3b7c6d2b6749c2c9c6593b659cc1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024209 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Kenneth Russell 1654537d 2021-08-06T17:49:52 Fix default and driver uniforms' binding indices. These abstractions were introduced in the SymbolTable during upstreaming of the direct-to-Metal compiler and were accidentally swapped, leading to widespread test failures. Fix the comment reference in ContextMtl's DriverUniforms struct. Add missing emulatedInstance field, and add a TODO about its missing support in direct-to-Metal translator. Define it in SPIR-V Metal translator; the driver uniforms for the two must match. Bug: angleproject:6259 Change-Id: I0330ab4efca5b64a749b9cca90564fdbc84d7a80 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078998 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e70a1444 2021-08-05T12:49:21 Vulkan: Fix draw FBO1 followed by resolve FBO2 When syncing the framebuffer for blit/resolve, the render pass was not closed. This would be done later when necessary, except that onFramebufferChange called from FramebufferVk::syncState attempted to adjust the render area of the render pass (as it considered it open). If FBO2 is larger than FBO1, this would cause the render area of the previous render pass to become larger than the framebuffer size. This change makes sure that onFramebufferChange considers the render pass closed no matter what. Test is based on patch from steven@valvesoftware.com Bug: angleproject:6244 Change-Id: Iaec04232cfd2af04ba2564fd2de1dd5f08a40df6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076620 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade c664601d 2021-04-26T17:08:06 Allow drawing if a fragment shader isn't present According to the OpenGL ES 3.1 spec: 7.3 PROGRAM OBJECTS If there is no active program for the vertex or fragment shader stages, the results of vertex and fragment shader execution will respectively be undefined. If there isn't an active program for only one of these shader stages, the results of the other shader stage are still defined. To handle this, we no longer no-op the draw call if one of these is missing. We only no-op the draw if there's no vs. This allows for transform feedback to be captured when there's only a geometry and vertex shader. Tests: KHR-GLES32.core.geometry_shader.api.program_pipeline_vs_gs_capture Tests: KHR-GLES32.core.separable_programs_tf.geometry_active Tests: ProgramPipelineTest31.PipelineWithoutVertexShader* Tests: ProgramPipelineTest31.PipelineWithoutShaders* Bug: angleproject:5579 Change-Id: If9849cc398c307232435b167ab12431fa4258201 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906723 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi cf090996 2021-08-05T16:20:39 Vulkan: Call onFramebufferChange from a single place When sRGB control mode was dirty, onFramebufferChange was called which may not have been necessary if the actualy state hadn't changed. This removes a call to onFramebufferChange() in this path, and leaves it to be naturally called if the framebuffer desc actually changes. Bug: angleproject:5075 Change-Id: I177572a3cb819d7e1ecd589f46e03da4b967529e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076619 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell d191bc32 2021-08-06T12:59:39 Reintroduce TType::isRank0. This concept was used in the direct-to-Metal compiler, and its replacement with isScalar wasn't completely correct. Fixes several assertion failures in tests. Bug: angleproject:4889 Bug: angleproject:5505 Change-Id: I9b8800ed50591560c8e53faa81eca581c4f07a02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078474 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Charlie Lao 934ffac6 2021-08-05T15:43:32 Vulkan: Propagate BufferData changes to shader storage buffer binding This CL adds context to the observer list of shader storage buffer. When BufferData is called on the current bound shader storage buffer, context gets notified and DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING gets set. Bug: b/195678877 Change-Id: Id8a5266942e33f0a834d7c57fdde75f57e93d347 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076177 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 63248e7f 2021-08-05T23:49:23 Translator: Fix dead-code-elimination corner case The DCE code had a corner case bug where a switch case containing multiple DCE'ed `break`s followed by another case would cause some of the DCE'ed statements in the first case to be doubly pruned, failing on an assertion. This was due to the fact that visitBlock() was asking traversal to continue if a new case was visited while pruning nodes, but the traversal does not take into account that some statements need to be skipped and so would also visit the pruned statements. If the pruned statements contain a branch instruction, they get re-pruned. The visitBlock() function that does the pruning is reworked so that it more clearly traverses the statements. Bug: chromium:1237200 Change-Id: Ib078c2ea73ade756c7d7ef5a5c489fa53c39f352 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3077659 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 07c21bcc 2021-08-06T01:54:58 Add run-time switch for direct-to-Metal compiler. Setting the environment variable: ANGLE_USE_MSL_COMPILER=1 will switch from the SPIR-V Metal to the direct-to-Metal compiler. This makes it easier to diagnose regressions as the direct-to-Metal compiler is upstreamed. Bug: angleproject:5505 Change-Id: I78593e8ddc4e483bb0795960c432bcfa17e0a5b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076332 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 0cd99779 2021-08-05T10:35:10 Translator: Propagate precision to children nodes Similarly to glslang, when the precision of a node is determined, propagate that precision to any of its children that doesn't already have a precision. Ultimately these should only include TIntermConstantUnion nodes. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: I121231d04c7cf92fc3f07716019ffe88eca48b88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075126 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 8387f10f 2021-08-06T21:46:02 D3D9: Mark destination images dirty after CPU-copy path Fixes WebGL CTS failures for L and LA formats in: conformance/textures/image_bitmap_from_canvas conformance/textures/webgl_canvas Bug: angleproject:2192 Change-Id: If3a9bd81298c76320ed029617fd4965efe4e8ef0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076720 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
SeongHwan Park 16a61bbb 2021-08-05T23:06:22 D3D: Fix not notifying RenderTarget release in TextureD3D This could lead to use-after-free for the RenderTarget object. Bug: chromium:1234829 Change-Id: I73d4547b8f09f2f2cf3f7f8394f7f573fe5a4ef5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063858 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao c5fa9a44 2021-08-05T15:27:47 Vulkan: Add test for BufferData change is propagated to SSBO properly When BufferData is called while previous reference is still pending, ANGLE may allocate a new storage. When this happened, we need to ensure context gets notified so that it can pick up new buffer storage. Bug: b/195678877 Change-Id: Idb591ed49e7d2c9e2dc5803f65d00894687ae1d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076820 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao e28fb127 2021-08-05T14:32:16 Vulkan: Propagate BufferData changes to atomic counter binding This CL adds context to the observer list of atomic counter buffer so that it gets notified when BufferData is called on atomic counter buffer and set dirty bit accordingly. Bug: b/195678877 Change-Id: I924cf12ef54b5986d5c56b9e3b71584039490206 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076170 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 52aae056 2021-08-05T14:22:26 Vulkan: Test for buffer storage propagate to AtomicCounter properly When BufferData call result in storage change, it should propagate the change to atomic counter buffer binding properly. This CL adds a test to call BufferData on the same buffer while the previous usage of buffer is still pending (thus may trigger reallocation of buffer storage) and see if shader reads correct atomic counter buffer data. Bug: b/195678877 Change-Id: Iac94c3bd0a73573da0bfc814d33b5cd43475772d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076819 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Lubosz Sarnecki 4a841e6a 2021-07-27T13:30:26 PerfTests: Replay EGL color spaces. Add EGL_GL_COLORSPACE_KHR to the EGLWindow's surface attributes if EGL_KHR_gl_colorspace is available. Require the extension to be available if the color space differs from the default EGL_COLORSPACE_LINEAR value. Bug: angleproject:5857 Change-Id: Ib33cbed7d4b115979bd847418cb5cd2b96f4f173 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056374 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reid Kleckner 89dbbb2a 2021-08-05T13:14:12 Skip validation of stderr in TestSuiteTest.RunFlakyTests There is a bug (crbug.com/1234124) causing the profile runtime to print errors about failing to write the profraw file. Don't validate stderr in these builds until that is fixed. Bug: chromium:1234124 Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 9b646c13 2021-08-04T17:24:18 Tests: Add Final Fantasy trace Test: angle_perftests --gtest_filter="*final_fantasy*" Bug: b/195607411 Bug: angleproject:6246 Change-Id: Ie0f02d082d408a6eb18555741ab01cccc446d01f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073380 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott ab19e742 2021-08-04T18:41:51 Match DebugAnnotator::{begin|end}Event() calls The tests for whether ScopedPerfEventHelper::~ScopedPerfEventHelper() should call DebugAnnotator::endEvent() were not valid: - The test in ScopedPerfEventHelper::begin() simply checks whether a DebugAnnotator has been initialized. - In addition, ScopedPerfEventHelper::~ScopedPerfEventHelper() also checks whether DebugAnnotator::getStatus() returns true, which will always be false when the generic LoggingAnnotator is pluged in. - The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() must take into account whether EGL_Initialize() or EGL_Terminate() changed g_debugAnnotator, and whether ScopedPerfEventHelper::begin() called DebugAnnotator::beginEvent(), and so a matching endEvent() should be called. The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() is now simplified. Bug: angleproject:6158 Change-Id: I7fbd19cd0a372ef3ce3600c5d3fc50234b53ca38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072564 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2e8a2d3c 2021-08-04T11:04:44 Translator: Helpers to derive precision Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: I75e2084c76139ccb24b266f262d5e5597d8aa4ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071599 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten 3fd572c4 2021-08-04T12:45:09 FrameCapture: Fix setCaptureActive() and MEC timing Frame capture is currently off by one when calling setCaptureActive() and collecting the mid-execution capture state. The MEC state is collected at frame N, but setCaptureActive() isn't called until frame N+1, meaning all of the maybeCapturePreCallUpdates() and maybeCapturePostCallUpdates() calls are not tracking resources correctly for frame N. This CL fixes when setCaptureActive() is called relative to when setupSharedAndAuxReplay() is called, so the trace is active for the first frame and all of the resources are correctly tracked. Additionally, setCaptureActive() during the FrameCaptureShared() ctor if frame capture starts with the first frame. Bug: angleproject:6225 Change-Id: Id07e78b2da9c9d33779e20ab6a42f63cd103a6a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071940 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 061188a7 2021-08-04T10:07:47 Translator: General clean up General clean up done as part of other changes, split to simplify review. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Iade9954d187a759be9edd0e3754be007f4133c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071598 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop f9c287f0 2021-08-04T17:24:02 Capture/Replay: Fix reset for immutable textures Before this CL, we were including TexStorage in the calls to reset an immutable texture. This throws an error in GL, as you can only call TexStorage once on a texture. Example from ResetReplay(): glBindTexture(GL_TEXTURE_2D, gTextureMap[52]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9729); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, 6403); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512); // <== ERROR glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 512, GL_RED, GL_UNSIGNED_BYTE, ...); To fix this, move TexStorage into the calls used to regen the texture rather than restore its contents. This means ResetReplay will only call TexStorage again if the texture was actually deleted. Example new regen sequence, if the texture had been deleted: const GLuint deleteTexturesPacked[] = { gTextureMap[52] }; glDeleteTextures(1, deleteTexturesPacked); glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer)); UpdateTextureID(52, 0); glBindTexture(GL_TEXTURE_2D, gTextureMap[52]); glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512); Also rename texCalls to texSetupCalls to more easily distinguish from texGenCalls, now that they intermingle. Test: Final Fantasy MEC Bug: b/195607411 Bug: angleproject:6246 Change-Id: I37daaeb6ea4337969cb241a20256fec07dce514e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073379 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6fe91881 2021-08-02T11:13:13 Translator: Simplify RecordConstantPrecision Just before ESSL output, this transformation made some constants specified through temp variables such that their precision can be specified. This was done in cases where the precision actually affected the expression being evaluated. This transformation is simplified by declaring constants more conservatively as variables, and not stringently attempting to identify whether that's necessary. This is still not done in trivial cases. This change is in preparation for another change that overhauls precision propagation through the nodes. This change removes all references to TIntermTyped::getPrecision() outside the precision promotion code itself. Bug: angleproject:4889 Change-Id: I135b2b3241aa2f76219b209241c3844f1d09ccd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067948 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 798c5200 2021-07-31T22:17:48 Translator: Make precise-ness a property of AST nodes Instead of creating a "set of precise nodes", the nodes themselves are marked precise. This change is preparation for another change that overhauls precision propagation through the nodes, and which would also be storing the promoted precision in the nodes. Bug: angleproject:4889 Change-Id: Ieec8864be5cd2e95ed6fb4d90b367946d9f33fa1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065569 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 9da4e52b 2021-08-04T09:13:33 Tests: Add PUBG Mobile battle royale trace Test: angle_perftests --gtest_filter="*pubg_mobile_battle_royale" Bug: b/180418573 Bug: angleproject:6087 Bug: angleproject:6240 Change-Id: I722f249a7aafdd52be96f214d56b7cfa650ae778 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071662 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 1ce78397 2021-07-30T16:51:45 Remove support for WEBGL_debug_shader_precision This extension was rejected, and the implementation was hacky. This clean up is part of an ongoing work to improve precision handling. Bug: angleproject:6059 Change-Id: If08581ec6f19cf1698ffa3dd6d248dc5e68a1d31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064303 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 7c072f7e 2021-08-04T09:02:30 Tests: Add PUBG Mobile skydive trace Test: angle_perftests --gtest_filter="*pubg_mobile_skydive" Tbr: jmadill@google.com, timvp@google.com Bug: b/180418573 Bug: angleproject:6087 Bug: angleproject:6240 Change-Id: Ibcc7a5e84676d7e7e0df3fdad7aada0e23482bf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071661 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 091fb9b9 2021-07-23T10:44:35 Reland "Reland "GL: Fix GPU detection"" This is a reland of a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1 It was assumed that getting the GPU info from the system will always yield a valid Device ID, but this seems to be incorrect on some platforms (e.g. Apple M1). Reland reverts to the old logic of silently accepting 0 as Device ID. Original change's description: > Reland "GL: Fix GPU detection" > > This is a reland of 30dea869a7dc939f94048de23d70705247905c51 > > Original change's description: > > GL: Fix GPU detection > > > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this > > ensures that the correct GPU is used to determine workarounds. > > GetSystemInfo is still broken in that it assumes the discrete GPU to be > > active, but with this change it will only affect the test infrastructure > > (and not users). > > > > Bug: chromium:1187475 > > Bug: angleproject:6174 > > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 > > Reviewed-by: Kenneth Russell <kbr@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: chromium:1187475 > Bug: angleproject:6174 > Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1187475 Bug: angleproject:6174 Change-Id: Ie13854da314d8963c33f61f1fd1628a674fae434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067768 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 09d5047b 2021-08-03T01:31:03 GL: Remove the rewriteVectorScalarArithmetic workaround This workaround was implemented for a bug in Nvidia driver 387 which is end-of-life. More recent driver branches (390 and 4XX) are fixed, and so this workaround is no longer required. The implementation of the workaround itself could introduce bugs. Bug: chromium:772651 Bug: chromium:1201084 Change-Id: I3db179eb90d9124235bdad2daacc712302906d8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067952 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 10d50f64 2021-08-04T14:17:17 Revert "Reland "GL: Fix GPU detection"" This reverts commit a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1. Reason for revert: assertion failure on mac ARM bots: anglebug.com/6242 Original change's description: > Reland "GL: Fix GPU detection" > > This is a reland of 30dea869a7dc939f94048de23d70705247905c51 > > Original change's description: > > GL: Fix GPU detection > > > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this > > ensures that the correct GPU is used to determine workarounds. > > GetSystemInfo is still broken in that it assumes the discrete GPU to be > > active, but with this change it will only affect the test infrastructure > > (and not users). > > > > Bug: chromium:1187475 > > Bug: angleproject:6174 > > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 > > Reviewed-by: Kenneth Russell <kbr@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: chromium:1187475 > Bug: angleproject:6174 > Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1187475 Bug: angleproject:6174 Change-Id: Ice7a1246cb7ad0c257e685b1da4424aba8eaf406 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067767 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
SeongHwan Park 215d00b1 2021-08-03T23:34:02 D3D11: Add validation for storages size in updateBufferStorage The source/dest BufferStorage used by the updateBufferStorage may have a raw buffer ptr value of null. Add size validation to prevent null crashes. Bug: angleproject:6235 Change-Id: I57ed1ae0e558bd2f61273c64ed067958a1603425 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069000 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 217acac2 2021-07-21T12:42:56 Vulkan: Add support for EXT_primitive_bounding_box 1. Added support for EXT_primitive_bounding_box extension 2. Renamed shader variable gl_BoundingBoxEXT[] to ANGLEBoundingBox[] Bug: angleproject:3576 Test: dEQP-GLES31.functional.primitive_bounding_box.* Change-Id: I15fa9af50c6fd8e86d225670ddd8eb39f6e65d35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053618 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 35bdaf8d 2021-08-03T08:12:26 Capture/Replay: Minor cleanups. Removes a duplicate assignment to the enabled variable. In the cpp it's set to true, and in the header it was false. Also updates a few variable names to be consistent with the group. Bug: angleproject:5133 Change-Id: I3fb00ecc474191bea7c3a650ce23805b6f02d667 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066007 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 5bbaa2c5 2021-08-02T15:50:11 Capture/Replay: Track arrayed uniform locations Arrayed uniform values consume multiple locations. Until now we've only tracked the starting location in our lookup table. This breaks down when applications update uniforms in the middle of an array. We don't have a location to provide. We need to start tracking a location per entry. To support this, pass in the uniform count to UpdateUniformLocation and track a location for each array entry. Do it with an overload to preserve functionality with existing traces. Test: PUBG Mobile MEC Bug: b/180418573 Bug: angleproject:6087 Bug: angleproject:6234 Change-Id: I74fbe201cb37273d1a5f361ef0c951e00ca89a88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068199 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi f9942640 2021-08-03T11:45:31 Translator: Fix fuzzer crashing on assertion An assertion was triggered by the fuzzer when generating an invalid shader that redeclared a built-in. The assertion itself was unnecessary and the parser would appropriately generate an error if that assertion would have fired. Bug: angleproject:4889 Bug: chromium:1235229 Change-Id: I294b2e329491c75d4e87622b602570252555869f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063910 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a8f9b79a 2021-07-23T10:44:35 Reland "GL: Fix GPU detection" This is a reland of 30dea869a7dc939f94048de23d70705247905c51 Original change's description: > GL: Fix GPU detection > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this > ensures that the correct GPU is used to determine workarounds. > GetSystemInfo is still broken in that it assumes the discrete GPU to be > active, but with this change it will only affect the test infrastructure > (and not users). > > Bug: chromium:1187475 > Bug: angleproject:6174 > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1187475 Bug: angleproject:6174 Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a65b4056 2021-07-30T23:00:57 Reland "Translator: Clean up type cloning" This is a reland of f016c4352f5203c10511df078b1ed5359afc1b35 Original change's description: > Translator: Clean up type cloning > > TType has a constructor that aids cloning + helpers to convert between > types. A number of places where a type is constructed from the > information gathered from another type is changed to clone the type and > then use one of these helpers. > > This clean up is part of an ongoing work to improve precision handling. > This change removes many references to TType::getPrecision(). > > Bug: angleproject:4889 > Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> Bug: angleproject:4889 Change-Id: I35772f178eb4f6cf2b64bfeb37a4a144acdb4daf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067802 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Eng c5c8a25a 2021-08-03T14:40:33 Revert "Translator: Clean up type cloning" This reverts commit f016c4352f5203c10511df078b1ed5359afc1b35. Reason for revert: Suspect for crbug.com/1236060 Original change's description: > Translator: Clean up type cloning > > TType has a constructor that aids cloning + helpers to convert between > types. A number of places where a type is constructed from the > information gathered from another type is changed to clone the type and > then use one of these helpers. > > This clean up is part of an ongoing work to improve precision handling. > This change removes many references to TType::getPrecision(). > > Bug: angleproject:4889 > Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> Bug: angleproject:4889 Change-Id: I9b5ecacc410b41be382232292ceae2f7ea7906c7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064393 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Austin Eng <enga@chromium.org>
Jamie Madill 1f0e2916 2021-08-03T13:42:28 Revert "GL: Fix GPU detection" This reverts commit 30dea869a7dc939f94048de23d70705247905c51. Reason for revert: Breaking roll into Chrome, see bug. Original change's description: > GL: Fix GPU detection > > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this > ensures that the correct GPU is used to determine workarounds. > GetSystemInfo is still broken in that it assumes the discrete GPU to be > active, but with this change it will only affect the test infrastructure > (and not users). > > Bug: chromium:1187475 > Bug: angleproject:6174 > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1187475 Bug: angleproject:6174 Change-Id: I815c456b0e9775115ae6d2577b40399818b5bff5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067800 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 747d5323 2021-07-27T13:30:59 gen_restricted_traces: Add kReplayDrawSurfaceColorSpace. Use default color space if the trace doesn't specify one. Use Python 3.6 f-strings for the possibility to have default values at all positions and remove the now redundant defaults string. This breaks Python 2 compatibility for gen_restricted_traces.py. See PEP 498: https://www.python.org/dev/peps/pep-0498/ Bug: angleproject:5857 Change-Id: I532014e8e64ea792604a96a42ad998564882d801 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056372 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ac5bcdb3 2021-08-02T18:04:49 Vulkan: Use custom volk init function. This should ensure we're using ANGLE's version of the loader. Bug: chromium:1235314 Change-Id: Ia7318a922e192ce669a8cece070ab518ea421fd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 262dc97c 2021-07-27T11:13:59 FrameCapture: Capture the EGL color space. Add a SurfaceParams struct containing extents and color space so a single map can be used for all draw surface parameters. Persist the color space in the trace's header. Bug: angleproject:5857 Change-Id: I327da8c8870f2d76d057954af57d977a10ebb59f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056371 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 30dea869 2021-07-23T10:44:35 GL: Fix GPU detection Always use GL_VENDOR to determine vendor. On multi-GPU systems, this ensures that the correct GPU is used to determine workarounds. GetSystemInfo is still broken in that it assumes the discrete GPU to be active, but with this change it will only affect the test infrastructure (and not users). Bug: chromium:1187475 Bug: angleproject:6174 Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f016c435 2021-07-30T23:00:57 Translator: Clean up type cloning TType has a constructor that aids cloning + helpers to convert between types. A number of places where a type is constructed from the information gathered from another type is changed to clone the type and then use one of these helpers. This clean up is part of an ongoing work to improve precision handling. This change removes many references to TType::getPrecision(). Bug: angleproject:4889 Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 61517a16 2021-08-02T16:49:32 Remove extra angle:: uses from ANGLEPestTest.cpp. Bug: None Change-Id: I7101398504c547b97b9184c56b252bef5198cecb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067510 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fc6ce9ba 2021-08-02T13:47:36 Fix unreachable case in test instantiate. This error would only trigger when the "null" back-end was disabled. This would happen on official builds of Chrome. Bug: chromium:1235656 Change-Id: Icd516513fe28b2b6d6a451503fc690093371acb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067759 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 26329cb9 2021-07-30T09:55:24 Test Runner: Allow listing tests on Android. Because of quirks with the Chromium-provided Android test runner, we need to use a few tricks to get the test list output. We add placeholder output for a single test to trick the test runner into thinking it ran the tests successfully. We also add an end marker for the tests list so we can parse the list from the more spammy Android stdout log. Will enable a Python wrapper script to list and run performance tests outside of the GTest harness. Bug: angleproject:6090 Change-Id: I810d4722e9a6efa03ef94208e516401890af1c37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062240 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 0ce5f85f 2021-08-02T12:05:17 Capture/Replay Tests: Skip crashing test. PBOCompressedTextureTest.PBOCompressedSubImageWithUnpackRowLength/* Was added in a CL that didn't test win-trace-rel. Bug: None Change-Id: I91b056b50b53a302816564d6f12a0ef0f765e675 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aca9f2e2 2021-07-29T17:49:26 Vulkan: SPIR-V Gen: Fix constructors with uniform parameters When the constructor contains parameters from interface blocks, they may have SPIR-V type specializations that was not previously accounted for. The code is made more robust by retrieving the column/component types when generating constructors through TTypes instead of modifying SpirvTypes directly. Bug was caught by the WebGL CTS. Bug: angleproject:4889 Change-Id: I6c9df17a97fac8622dea55ed67c7bae1ce16d1bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061640 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3a6a0e91 2021-08-02T08:01:33 Remove ASSERT in computeRowPitch about row length. Compressed texture image uploads ignore unpack parameters. So it's not an error if these parameters have non-default values. We just ignore them anyway. This ASSERT was causing a crash in some edge cases in debug and dcheck builds. ASSERT introduced in https://crrev.com/c/348064 Bug: chromium:1235031 Change-Id: I1db6ebc9f5572a92ab16bb13da4c236f6fcb8ce2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064986 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Peter Kasting d4d6c23c 2021-07-31T11:41:29 Fix a recently-introduced case of -Wunreachable-code-aggressive. Also enable this and -Wunused-but-set-variable to avoid regressing them. Bug: chromium:1066980 Change-Id: I1fd7a57c2bf14513d657b69b70e35ad727c75ffd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065355 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ae8ef039 2021-07-30T00:43:14 Translator: Correctly respect precision of gl_FragColor/Data These builtins are declared with a mediump precision. However, during translation to Vulkan GLSL, the precision was not output and as such glslang treated them as highp. Discovered through comparison with SPIR-V output from ANGLE which included more RelaxedPrecision operations. Bug: angleproject:4889 Change-Id: I7974478e87ad20115345d679f8f035492be1f349 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062204 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 246e95a5 2021-07-30T21:40:48 Disable Precise unittests without SPIR-V gen enabled Half the tests fail with glslang, which have the expectations set appropriately. When SPIR-V gen is disabled in build, when the unittest attempts to run the SPIR-V gen path it will use glslang instead and cause test failures. The whole suite is disabled temporarily when SPIR-V gen is disabled (i.e. non-dcheck builds). Bug: angleproject:4889 Change-Id: I8686eafef6821c6207c94f991cd8af2fb65a87ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063943 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 8fb5c2f2 2021-07-29T23:41:08 Vulkan: SPIR-V Gen: Fix OpImage* on multisampled images Lod should not be implicitly specified on multisampled images per spec. This change fixes a crash on Intel/Mesa with the TextureSampleShadingTest.Basic/ES3_1_Vulkan test. Old spirv-val catches this bug, but ToT has regressed this: https://github.com/KhronosGroup/SPIRV-Tools/issues/4424 Bug: angleproject:4889 Change-Id: Ic2a661ce5264beb1f47f4e52706fe6556176628d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062203 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ebe943e2 2021-07-29T11:19:33 Vulkan: SPIR-V Gen: Fix gl_Clip/CullDistance These built-ins can be redeclared in the shader. The translator took these redeclarations (and gl_LastFragData) as UserDefined symbols. There were a number of hacks such as in name generation and CollectVariables, to special-case these redeclarations. This change instead makes sure that these variables continue to be considered built-ins with the appropriate qualifiers. A number of fixes are made accordingly: - Hacks are removed. - In fragment shaders, ANGLEClipDistance was initialized with gl_ClipDistance for further use by the shader. The code generation however mistakenly produced `gl_ClipDistance[0] = ANGLEClipDistance[0];`, which caused compilation failures by glslang, but passed the tests accidentally because they expected link failures (see next item). - CollectVariables is fixed to correctly collect gl_Clip/CullDistance in fragment shaders; previously they were collected as output varyings, and therefore the aforementioned link error was not produced in the tests after the compilation error was fixed. Additional fixes: - The transformation of gl_Clip/CullDistance was always ever done on one of them due to misplaced breaks in the loop that detected their presence. - The transformation of gl_CullDistance was skipped when it was not redeclared. Validation is added to make sure these built-ins always have the correct qualifier even when redeclared. SPIR-V gen support for these variables have been fixed as well. Bug: angleproject:4889 Change-Id: Ic8bf2c508357035cb937ef41a28ae22ffc533ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059921 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a83c9108 2021-07-29T17:13:41 Vulkan: SPIR-V Gen: Fix nested ternary operators The OpPhi instruction used to implement ternaries referenced to the blocks pregenerated for the true and false cases. However, if there were other code nested inside that could generate blocks (other ternary expressions or short-circuits), that would be wrong. Instead, the last block id is taken every time the true or false case is entirely visited (similar to how it's done in the short-circuit implementation). Bug was caught by the WebGL CTS. Bug: angleproject:4899 Change-Id: I71be86989dfe9596a13940ce657a7e67849e86bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061639 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2b23aae4 2021-07-29T16:39:28 Vulkan: SPIR-V Gen: Support vec(..., mat) Matrices specified in vector constructor arguments were not correctly handled w.r.t to casting (caught by the WebGL CTS). Bug: angleproject:4889 Change-Id: I70253f049a651fc5f439b56d1e4d8f785813b605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061638 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell aec5e65c 2021-07-28T00:36:12 Get direct-to-Metal backend to run angle_end2end_tests. Cherry-pick nameless struct fix from Apple in https://bugs.webkit.org/show_bug.cgi?id=227482 . Fix SeparateCompoundStructDeclarations pass to stop generating multiple declarations; thanks syoussefi@ for advice. Incorporate additional passes from TranslatorVulkan (MonomorphizeUnsupportedFunctionsInVulkanGLSL, RewriteArrayOfArrayOfOpaqueUniforms, SeparateStructFromUniformDeclarations) needed by RewriteStructSamplers pass in TranslatorMetalDirect. Fixes many assertion failures in GLSL tests. Moved these passes out of tree_ops/vulkan. Thanks again to syoussefi@ for advice and help. Disable a validation check related to the RewritePipelines pass. Skip two tests that were failing for other reasons. With these changes, angle_end2end_tests runs to completion when the direct-to-Metal backend is turned on. There are still ~1300 failures of the ~4000 tests which will be investigated next. Bug: angleproject:5505 Change-Id: Ibca77822543e8e8e8d2a8c862e92cdf74bfa3545 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058524 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 22ae4ce0 2021-07-28T16:06:49 Revert "Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout" This reverts commit f4f866ce289423d691a0edc0d44d13f4de16f897. Reason for revert: These tests should not be disabled. The culprit is fixed per crbug.com/1233361 Original change's description: > Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout > > The tests are blocking the CQ due to flakiness. > > Bug: chromium:1233361 > Change-Id: Ib0283e201c271379364a177bea130d63322eee53 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058233 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1233361 Change-Id: I24682f74d790d40f58a9526aaaaa842c3df23ec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058502 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 96ccf3f4 2021-07-29T12:38:21 Translator: Consolidate EvqFragDepth and EvqFragDepthEXT They were the same thing. Fixes SPIR-V generation which only handled EvqFragDepth. Bug: angleproject:4889 Change-Id: Id2c35f4c5a26e43ad16a420cc0306756a1add082 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059922 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu 014460d8 2021-07-30T09:19:50 Rename WebSwapLayerCGL to WebSwapCGLLayer Renaming WebSwapLayerCGL to fix the following MacOS warning: Class WebSwapLayerCGL is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/ Frameworks/WebCore.framework/Versions/A/WebCore and .../chromium/src/out/.../Chromium.app/Contents/Frameworks/ Chromium Framework.framework/Versions/.../Libraries/ libGLESv2.dylib One of the two will be used. Which one is undefined. Bug: angleproject:5253 Change-Id: I016e7467994d3ecf7b22750af2606314593dd516 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062212 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Lubosz Sarnecki cad2bcb8 2021-07-27T11:40:25 packed_egl_enums: Add ColorSpace. Add EGL ColorSpace enum consisting of sRGB and Linear entries. Bug: angleproject:5857 Change-Id: I1e30db6fca6ad65db17a6369a26eae886468a85d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056370 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 3036e090 2021-07-29T15:55:39 Vulkan: Direct SPIR-V Gen: Support the precise keyword The precise keyword is different in GLSL in that it defines what arithmetic operations _that have led to the value being assigned to a variable_ should be done precisely (i.e. not "contracted"). A tree traverser is implemented that detects precise access chains and applies precise-ness to the right hand side of assignment expressions to said access chains. This is only done if the shader uses the precise keyword in the first place. The algorithm for this is inspired by the implementation in glslang. This change additionally: - Fixes parser to allow precise on function parameters - Fixes GLSL code generation to output precise on struct members and function parameters. Bug: angleproject:4889 Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8f77e0bc 2021-07-29T15:54:26 Define angle::HashSet potentially using abseil Split change from CL using it for simplicity. Bug: angleproject:4889 Change-Id: Ie3e621dee624020581e9fd7679639332718948f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061439 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell e74638fe 2021-07-28T19:03:43 Disable Metal shader cache again in angle_end2end_tests. This hooking was removed in https://chromium-review.googlesource.com/3010486 and sped up local test runs, but seems to have reintroduced flakiness on the Mac AMD Retina bots. Bug: chromium:1233864 Bug: angleproject:5505 Change-Id: I46d95545fbbedc0e881e3a2832a5ac5d5384f405 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057823 Commit-Queue: ccameron <ccameron@chromium.org> Reviewed-by: ccameron <ccameron@chromium.org>
Aditya Kushwah ae24c9d3 2021-07-19T12:11:41 Remove space from internal debug name strings. This changes will reduce the amount of memory used by labels by removing the in between spaces from internal debug name strings. Bug: chromium:1164111 Change-Id: I0ec657789dade2c3c053966ffccfbd673186fdad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039119 Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Brian Sheedy b8e8c822 2021-07-27T11:19:59 Suppress Mac 11.4 failures Suppresses several Mac 11.4 AMD failures that were found after we started testing the configuration. Bug: angleproject:6222, angleproject:6223 Change-Id: I4f0f5ac0ab14d2645bb76def3e4ec55d999940fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056839 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Shahbaz Youssefi 8593e0a2 2021-07-28T13:52:06 TestSuite tests: Don't validate stderr until fixed Bug: chromium:1233361 Change-Id: Ibcd66520d7b842211eafb26f9188298c281cbe64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058503 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7c6da493 2021-07-26T21:24:25 Translator: Make sure built-in variables are consistent Some transformations left the tree in an inconsistent state, for example if it used gl_SampleMask from ES3.1+OES_sample_variables and the transformation added a usage of gl_SampleMask from ES3.2. The offending transformations are fixed and AST validation is improved to catch such errors. Bug: angleproject:4889 Change-Id: I9d9ea5bb43a9408dd4c6dc3e89ec20d60dfeff73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054613 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Peter Kasting 0d06c3cf 2021-07-26T04:30:39 Fix some instances of -Wunused-but-set-variable. Bug: chromium:1203071 Change-Id: I144165ae5ec47aba88658030a6ba3e371bf31ee7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053616 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c8c9e15b 2021-07-26T22:51:49 Translator: Fix sizing of tessellation shader arrays If layout(vertices=N) is specified after implicitly sized array declarations, the correct size was not being specified on them. Bug: angleproject:4889 Change-Id: I86ccf45a7f264b493a137b87316eff744079ed6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054614 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Yuly Novikov bd19620f 2021-07-27T23:45:11 Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension." This reverts commit 4222d5e5a03f85ca07253d54f3087684fe9447b3. Reason for revert: errors on multiple builders when rolling into Chromium https://chromium-review.googlesource.com/c/chromium/src/+/3057227 e.g. https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/924126/overview Original change's description: > VulkanExternalHelper: Use VK_KHR_image_format_list extension. > > To retrieve correct size requirements when the VK_KHR_image_format_list > extension is enabled, it must be used to match VkImages created in > vk_helpers. > > RendererVk: Fully enable VK_KHR_image_format_list. > Enable the extension on non-AMD and non-ARM platforms. > > Bug: angleproject:5281 > Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Bug: angleproject:5281, chromium:1233561 Change-Id: I3b15bb2fc2fb779adac8bbf5d805727a25b5795c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057071 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Peter Kasting 5bda5f91 2021-07-26T20:37:52 Fix some instances of -Wunreachable-code-aggressive. Bug: chromium:1066980 Change-Id: I1e769b78c51d939067e8855beab32ec7c006c00e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3055794 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Lubosz Sarnecki 4222d5e5 2021-07-16T16:26:17 VulkanExternalHelper: Use VK_KHR_image_format_list extension. To retrieve correct size requirements when the VK_KHR_image_format_list extension is enabled, it must be used to match VkImages created in vk_helpers. RendererVk: Fully enable VK_KHR_image_format_list. Enable the extension on non-AMD and non-ARM platforms. Bug: angleproject:5281 Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Lubosz Sarnecki ef406f1b 2021-07-16T12:19:23 FrameCapture: Capture GLES1 matrix stack. Capture the modelview and projection matrix stack. This is required for GLES1 applications that do not reset the stack every frame. Bug: angleproject:6181 Change-Id: I71befc15ca287cf91fcebf9d972c7badaeb23605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035050 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki edb4a7a8 2021-07-16T12:19:06 GLES1State: Add getMatrixStack function. FrameCapture requires access to the whole matrix stack. This function also exposes stacks that are not currently set. Bug: angleproject:6181 Change-Id: I595feaa0cbd3e5a62e398aa7a0578ecf6425ffe6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035049 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Shahbaz Youssefi b8d6f8aa 2021-07-22T22:31:29 Translator: Facilitate integration in FireFox Instead of relying on is_apple to build workarounds applied on apple hardware, a new build argument is added for this purpose. This allows FireFox to more easily include these files in their build system (which builds every workaround on every platform). The workarounds are reorganized too and moved from tree_ops/gl/mac to tree_ops/apple. RewriteRowMajorMatrices is moved there too as it's now used by both gl and metal. This workaround is large, and removing it from non-apple builds improves binary size (~40KB on Linux). Bug: angleproject:6188 Change-Id: I8e1dab44d0235bb6b8341d53721bdd0d157d46c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047385 Reviewed-by: Jeff Gilbert <jgilbert@mozilla.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi dbe986d7 2021-07-26T01:43:44 Vulkan: SPIR-V Gen: Fixes to tessellation shader support - TCS barrier() built-in is correctly looked up - Patch decorations are fixed Bug: angleproject:4889 Change-Id: I1befcaca85a965c9d46b1b41ec74597de44bf2b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052687 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi acfd63a4 2021-07-26T01:02:11 Translator: Remove GLSL rules from the ESSL-only symbol table Shaves ~36KB off of ANGLE's binary size on Android. Bug: chromium:1084580 Change-Id: I4711c6bd28437a43b7dc63be4cfcdaed7ae11ba2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052686 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>