src


Log

Author Commit Date CI Message
Jamie Madill 7a026354 2020-10-11T17:16:34 Link C++ histogram support into angle_perftests. This is the first step in uploading histogram data instead of a gtest special format. We importing several new libraries: - tools/protoc_wrapper - third_party/protobuf - third_party/catapult (was already used for Android) No functional change. Only affects compilation. Protobuf support is disabled when not available. Bug: angleproject:5161 Change-Id: Ie28d57d7e142c437ebd51463ce3e2cafd87468d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482294 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter cfd70489 2020-10-22T10:26:19 Re-enable dEQP-EGL.functional.fence_sync.* Tests appear to pass now. Going to be changing functionality in this area so prefer to have them enabled. Bug: b/154030730 Bug: angleproject:3271 Change-Id: I1c0ffe40b726943c146fa06aa16de79d434760bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493182 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill c8542d28 2020-10-22T14:10:32 Temporarily duplicate standalone tests. This switches 'angle_*_tests' to be identical to 'standalone_angle_*_tests'. Once rolled into Chromium we can then switch back to using 'angle_*_tests' and finally remove 'standalone_angle_*_tests' entirely. Must land after https://crrev.com/c/2490987 Bug: angleproject:5124 Change-Id: I1f4794d429733a43113dcba6aaaba0c047607e50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491932 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter 097f307e 2020-10-22T10:26:19 Vulkan: Fix segv referencing contextVk Tests dEQP-EGL.functional.fence_sync.* can cause SyncHelper::clientWait to be called with a null contextVk which we were trying to deference to get to the renderer. We have a pointer to the renderer already so just use that. Bug: b/154030730 Change-Id: If64ec2c960f39b893d2e47a11638d16f830aecfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493181 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott e89c8f7c 2020-10-22T13:16:29 Add run-time check in EVENT() to disable debug markers To avoid a large performance impact from adding Vulkan debug-util markers for every GLES entrypoint, the EVENT() macro needs a run-time check that avoids constructing a ScopedPerfEventHelper object. Test: angle_perftests -v --local-output --gtest_filter="TracePerfTest.Run/*nba*" Bug: b/170249632 Change-Id: I422111cdf6f6f713800e7ac587e66582bd00359f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491009 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexis Hétu fbec291e 2020-10-21T19:32:38 Allow rendering to half float in ES2 contexts when possible According to the EXT_color_buffer_half_float spec: "Dependencies on OES_texture_half_float If OES_texture_half_float is not supported, then all references to RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and half should be ignored. If OES_texture_half_float is supported, textures created with: <internalformat> = RGBA <format> = RGBA <type> = HALF_FLOAT_OES are renderable." This fixes 4 viz_unittests when running with SwANGLE: All/GLI420ConverterPixelTest.ScaleAndConvert/0 All/GLI420ConverterPixelTest.ScaleAndConvert/1 GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture GLScalerPixelTest.ScalesWithColorManagement The original attempt at landing this change (https://chromium-review.googlesource.com/c/angle/angle/+/2489726) was reverted due to dEQP failures on the Metal backend. After some investigation, it was decided to simply disable the 2 offending tests for now. Bug: angleproject:5174 Change-Id: Id1e382b72d91109e4718c729cc6c5f0a0f413d7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491930 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Cody Northrop 9c8da026 2020-10-22T10:46:00 Revert "Tests: Add FIFA Mobile trace" This reverts commit 2e1091e0ef699a39662f210abcb5af69750dcb38. Reason for revert: Potentially flaky results, http://anglebug.com/5215 Original change's description: > Tests: Add FIFA Mobile trace > > Test: angle_perftests --gtest_filter="*fifa_mobile*" > Bug: b/171421051 > Change-Id: If50c6387a1a49fb6946d20279caf6470544a2b11 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490279 > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Cody Northrop <cnorthrop@google.com> TBR=jmadill@chromium.org,syoussefi@chromium.org Bug: angleproject:5215 Change-Id: I6a332b126c6c54f189fd451725957d288ab6b76b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491113 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 0f2542e1 2020-10-21T00:38:40 Vulkan: Validate SPIR-V transformer at link time Using an ASSERT, the SPIR-V transformer is run at link time to catch bugs in tests that link but don't draw. Bug: angleproject:4249 Change-Id: Icbeeb6e968f9901ba003918b1dd1d2eef0792469 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488227 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu 883276cc 2020-10-21T16:20:35 Fix end2end tests VertexAttribute* failure VertexAttributeTests used 'mediump' precision to sample ushort with 65533/65534/65535 which exceed the range defined in ESSL Spec. (Spec "4.5.2 Precision Qualifiers") Change precision of attribute 'test' and 'expected' to 'highp' for numbers that exceed the minimum range. Bug: angleproject:5211 Change-Id: I01e5c999ec43d17a7390835d2ac88ce2bc0b4c5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491621 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 1c7f0284 2020-10-21T01:40:08 Vulkan: Fix invalid clamping of ES3 clear stencil values Added 3 new end2end tests Bug: angleproject:5202 Change-Id: I95f9ffd989105f5bd3283676d6fa46e904503369 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488481 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi d7475437 2020-10-20T15:04:18 Vulkan: Support vertex attribute aliasing for matrix types This change builds on vertex attribute aliasing SPIR-V tranformation for non-matrix types to add support for matrix attribute types. This is done by turning every matrix attribute declaration into multiple vector attribute declarations, and reusing the same mechanism for resolving aliasing between non-matrix types. Take the following example: attribute mat4 a; // location 0 attribute vec3 b; // location 1 attribute mat3 c; // location 1 attribute vec4 d; // location 2 The shader is modified as such: attribute vec4 a_0; // location 0 attribute vec4 a_1; // location 1 attribute vec4 a_2; // location 2 attribute vec4 a_3; // location 3 attribute vec3 c_0; // location 4 attribute vec4 d; // location 5 attribute vec3 c_2; // location 6 mat4 a; mat3 c; and in the beginning of main(), the following code is inserted: a = mat4(a_0, a_1, a_2, a_3); c = mat3(c_0, d.xyz, c_2); The shader continues to use a and c as before. Bug: angleproject:4249 Change-Id: Idfcb8c6037ca0c1f21de8203d7e2a1b66fed6e7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488128 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop 2e1091e0 2020-10-21T14:53:40 Tests: Add FIFA Mobile trace Test: angle_perftests --gtest_filter="*fifa_mobile*" Bug: b/171421051 Change-Id: If50c6387a1a49fb6946d20279caf6470544a2b11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490279 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop ad222d1c 2020-10-20T16:29:08 Tests: Add KartRider Rush+ trace Test: angle_perftests --gtet_filter="*kartrider_rush*" Bug: b/171337677 Change-Id: I9a248ecf51e296a2b894b0951538842a7efde046 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490277 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3fb490a7 2020-10-19T23:33:47 Vulkan: Faster check for vertex attribute aliasing In preparation for matrix attribute aliasing support, where CalculateAliasingAttributes would get a bit more complex. This change adds a fast-check function to determine if there is any aliasing at all. Bug: angleproject:4249 Change-Id: Ib2aa08b2da29a194baa905ba8f9aa2cdef0ae2c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488127 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 8feb5c82 2020-10-20T15:49:13 Tests: Add Marvel Contest of Champions trace Test: angle_perftests --gtest_filter="*marvel_contest_of_champions*" Bug: b/171334313 Change-Id: Ia1195a5647ad2805e3cabd23c15719eb1ebc3534 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2487764 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Alexis Hétu 032431a1 2020-10-21T19:32:38 Revert "Allow rendering to half float in ES2 contexts when possible" This reverts commit 1dc0d3945e7f11506b9e3239bba7189d66a25a50. Reason for revert: Causes a failure on the bots. See: http://anglebug.com/5206 Original change's description: > Allow rendering to half float in ES2 contexts when possible > > According to the EXT_color_buffer_half_float spec: > > "Dependencies on OES_texture_half_float > > If OES_texture_half_float is not supported, then all references to > RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and > half should be ignored. > > If OES_texture_half_float is supported, textures created with: > > <internalformat> = RGBA > <format> = RGBA > <type> = HALF_FLOAT_OES > > are renderable." > > This fixes 4 viz_unittests when running with SwANGLE: > All/GLI420ConverterPixelTest.ScaleAndConvert/0 > All/GLI420ConverterPixelTest.ScaleAndConvert/1 > GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture > GLScalerPixelTest.ScalesWithColorManagement > > Bug: angleproject:5174 > Change-Id: If8623b1edbc8f0bac83513ea202ef49ad388101c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2489726 > Commit-Queue: Alexis Hétu <sugoi@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=sugoi@chromium.org,geofflang@chromium.org,sugoi@google.com Change-Id: Iab2df8ac563661fcf270425408b17e7bbe48a255 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:5174 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490820 Reviewed-by: Alexis Hétu <sugoi@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Geoff Lang 25bbf5d7 2020-04-03T11:58:13 GL: Use ANGLE_GL_TRY when setting pixel pack and unpack state. Bug: angleproject:3020 Change-Id: Ifd36973d66c850d0d0520d9721ab9e5294489b39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134424 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexis Hetu 1dc0d394 2020-10-21T10:09:10 Allow rendering to half float in ES2 contexts when possible According to the EXT_color_buffer_half_float spec: "Dependencies on OES_texture_half_float If OES_texture_half_float is not supported, then all references to RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and half should be ignored. If OES_texture_half_float is supported, textures created with: <internalformat> = RGBA <format> = RGBA <type> = HALF_FLOAT_OES are renderable." This fixes 4 viz_unittests when running with SwANGLE: All/GLI420ConverterPixelTest.ScaleAndConvert/0 All/GLI420ConverterPixelTest.ScaleAndConvert/1 GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture GLScalerPixelTest.ScalesWithColorManagement Bug: angleproject:5174 Change-Id: If8623b1edbc8f0bac83513ea202ef49ad388101c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2489726 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 089ef0fa 2020-10-14T11:31:56 Expose glGetTexLevelParameter{if}v before ES 3.1. Add a new extension, ANGLE_get_tex_level_parameter which allows users to query texture size and format information before ES 3.1. This is very useful for re-using existing textures instead of re-allocating. Bug: chromium:1132514 Change-Id: I71f6bad8bdacb91875cc81b4884d4c3099235f3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469959 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd88bccf 2020-10-21T08:44:32 Test Runner: Command line sharding args override env. Previously ANGLE would error out when both the enviornment and the command line args are specified at the same time. Because the perf bots use both at once we need to handle the conflict in the same way as the prior test runner does. In this case the command line takes precedence over the environment. Bug: angleproject:5124 Change-Id: I1ba765b4e75759922bf9fe2db9f153cfc5995f85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2489722 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis fb44e93b 2020-10-20T10:54:48 Disable TransformFeedbackTest.NonExistentTransformFeedback* This test hase begun failing consistently on the Arm based Apple DTK. This adds a skip to the test for that config. Test: TransformFeedbackTest.NonExistentTransformFeedbackVaryingWithGLPrefix:/ES3_OpenGL Bug: chromium:1140113 Change-Id: I97612a073db20c99883908a19ac0013101061da0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486100 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya 553726a4 2020-10-20T11:29:17 Vulkan: Add OES_shader_multisample_interpolation extension Addition of 'sample' qualifier keyword and 'interplateAt*' fragment shader builtin functions with autogen Bug: angleproject:3589 Change-Id: If358eb371fbcefffa715c8da4ba5e96eefaf6f52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477904 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop d591ddff 2020-10-08T10:36:21 Tests: Add Free Fire trace Test: angle_perftests --gtest_filter="*free_fire*" Bug: b/168049517 Change-Id: Ide772454fe5c602d92bf9c476d33da420b9dfa14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461350 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill e2147a58 2020-10-20T09:07:22 Add missing condition_variable include. This was breaking the ANGLE build in Skia. Bug: angleproject:5195 Bug: angleproject:5168 Change-Id: I931150922114df5b381e6d226e3fcaab4c15c2e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2485580 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9091de43 2020-10-17T00:33:57 Vulkan: Support vertex attribute aliasing for non-matrix types Initial implementation that supports float and vecN types. In this case, every attribute occupies a single location. When two attributes alias, they are either the same size, or one is bigger than the other. Take the following example: attribute vec3 a; // location 0 attribute vec3 b; // location 0 attribute vec4 c; // location 1 attribute vec2 d; // location 1 The shader may access either a or b (but not both). Similarly, it can access either c or d (but not both). The shader can be modified such that: - f(b) is replaced with f(a). - g(d) is replaced with g(c.xy). - b and d are removed As a result, there are no longer any aliasing attributes. In other words, when attributes alias, the larger attribute can be retained and the other attributes can be replaced by selecting the appropriate number of components from the retained attribute. Bug: angleproject:4249 Change-Id: I7c5461f777d659c92977e2572091a8ce5e422704 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482286 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 26cd1cc6 2020-10-18T11:44:27 Perf Tests: Add stdout printing arg to bot mode. This can be useful for debugging and also for perf tests. The perf tests output gets scraped from stdout. Bug: angleproject:5124 Change-Id: Id5005df3f2b66be9497a9ba422abd47b95a1a330 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486097 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 9d160b0b 2020-10-16T08:31:18 Tests: Add Brawl Stars trace Test: angle_perftests --gtest_filter="*brawl_stars*" Bug: b/171043467 Change-Id: Ide04fbbfd69145554c6dbb544d6ee4daa51df9cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481154 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 637786a9 2020-10-15T16:23:12 Tests: Add Arena of Valor trace Test: angle_perftest --gtest_filter="*arena*" Bug: b/170994774 Change-Id: I44c81c539da975fefcf085d6fc12f8508826277f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477440 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang d8529380 2020-10-20T13:55:23 Generate CONTEXT_LOST errors on every GL call. The robustness spec states that all GL calls should generate context lost errors when the context is lost. This behaviour was lost due to some context lookup optimizations but can be re-added at no cost by updating the autogenerated entry points. Updated the ContextLostTest to cover the repeated error generation behaviour. Bug: chromium:1137241 Change-Id: I0b8d1cf4d2a37f13c466c8dd0e66edfe852f7e59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488180 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 32f0dd6a 2020-10-15T10:08:51 Add Queries and Setters for resource initialization state. There are cases where we know that the next draw operation will fully initialize a texture/renderbuffer and we can save the robust resource init cost. Default all resource init state to Initialized, any redefinition will set it back to MayNeedInit. After setting an individual texture image to initialized, check if all images are now initialized and update the TextureState::mInitState to match. The cost of this check is only performed after initializing an image and allows future init checks to be faster. Bug: chromium:1132514 Change-Id: Ia23664ae162559d1614f1eb5643e24a491d87f7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475456 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter ed876984 2020-10-03T11:00:36 Vulkan: functionally complete worker thread Working on enhancing worker thread to completely own primary command buffers. This will include not only processing SCBs from main thread into a primary, but also submitting those command buffers to the queue. The CommandProcessor is a vk::Context so it can handle errors in the worker thread. When the main thread submits tasks to the worker thread it also syncs any outstanding errors from the worker. Include asynchronousCommandProcessing feature that will control whether the worker thread task does it's work in parallel or not. If false, we wait for the thread to complete it's work before letting the main thread continue. If true, the thread can execute in parallel with the main thread. Bug: b/154030730 Bug: b/161912801 Change-Id: I00f8f013d6cbb2af12a172c4f7927855db2f0ebf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2328992 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2882e1af 2020-10-20T09:45:23 Fix missing validation cache update on VAO binding. Bug: chromium:1139398 Change-Id: I85a0d7a72bc2c97b07ebc5f86effd8e36aefd544 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2485581 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6e125937 2020-10-20T10:30:14 Suppress timing out GLES 31 tests on GL/Linux. dEQP-GLES31.functional.compute.indirect_dispatch.gen_in_compute.large_offset dEQP-GLES31.functional.compute.indirect_dispatch.gen_in_compute.large_offset_multiple_invocations Bug: angleproject:5197 Change-Id: I379799565850fd2002c1f708bfa58d1e886c7fba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2485284 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 1bf0b917 2020-10-16T12:13:24 Vulkan: Pull generic SPIR-V transform functionality into base class This is in preparation for adding another transformation for vertex attribute aliasing. This transformation is not merged with the existing one, because in practice vertex attribute aliasing is rare so this transformation would be rarely done. This makes sure the efficiency of the main transformer is not affected, and avoids complicating it further. Bug: angleproject:4249 Change-Id: I9c3f6cefbec99a355596579f4471d7ada810927e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482285 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c55cd6b4 2020-10-14T23:06:27 Vulkan: Remove dead path in clear If the clear is not mid render pass, clearWithLoadOp was used to either: - modify the current render pass loadOps, assuming no rendering has been done, or - defer the clears by staging them in the attachment images. The former path however is dead code. It's impossible to start the render pass without recording any commands. In other words, if the render pass has already started, the clear must be mid RP. Bug: angleproject:4836 Change-Id: Idb1cb37b8a0e56b897ac69cf435f9a52be4bd2f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2473764 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen c90faa71 2020-10-18T20:38:54 Metal: Auto detect parent layer's contentsScale change Currently when user passes a CALayer to create WindowSurface, Metal back-end will create a child CAMetalLayer to render to. However, when this CALayer's contentsScale is changed, the CAMetalLayer's contentsScale wasn't updated accordingly. This CL fix this. Bug: angleproject:2634 Change-Id: I20411aa8b81a30c6353e595680f1de00a4a24da7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482407 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Alexey Knyazev 3d6df964 2020-10-19T14:38:23 Metal: Skip redundant clamp of stencil ref value Bug: angleproject:2634 Change-Id: I36b2303366f67dc7d35489dc44c495db4ab530c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483844 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen ba12a1d3 2020-10-18T17:20:58 Metal: Remove no longer needed precompiled shaders Bug: angleproject:5186 Change-Id: Ic5a029ba20852843b909cec26517c03eb738bff5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482406 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Cody Northrop f0dcaca2 2020-10-08T22:44:22 FrameCapture: Image Texture binding in MEC Test: LEGO MEC Bug: b/161716126 Bug: angleproject:4048 Change-Id: If5890638dfc6a8cc07aece584a5742b055007db0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462164 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop 1323e2fd 2020-10-17T18:17:33 FrameCapture: Implement Gen/DeleteVertexArraysOES Test: FIFA Mobile MEC Bug: angleproject:4048 Change-Id: I9725c9b9aba98a10ef2fa11b05f0459b3d8cc9d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486404 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8061002b 2020-10-16T11:24:04 Perf tests: Bump replay ES version to 3.1 Required to run traces of newer apps. Test: LEGO MEC Bug: b/161716126 Bug: angleproject:4048 Change-Id: Ie135fc1ce461460e1bc0978ceca4ba8c9cff68e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481153 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 0d3b84ef 2020-10-17T17:56:52 FrameCapture: Fix GLSync creation for MEC on 64-bit GLSyncs created during MEC were getting garbage for the high order bits when when run on 64-bit applications. That's because the iterator is 32-bit and was being bitcast to 64-bit. This change zero extends the iterator before converting to a GLSync. Test: Lots of traces were hitting this Bug: angleproject:4048 Change-Id: Ia22da945e014de0caad2a3663a33f996bb781b19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486403 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 5eebf3a7 2020-10-18T11:44:27 Perf Tests: Call finish every step in calibration. Calibration is only supposed to take one second of warmup time. Instead we were queuing up a large amount of GPU work and then janking on the finish call at the end of calibration. Fix this by calling glFinish repeatedly during calibration. Bug: chromium:1136900 Change-Id: Idb2fefe17fcb9acbe688cff5a36f051732fc5b59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483462 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 8f57f60f 2020-10-08T22:38:25 Add ES 3.1 check to ValidateBindImageTexture This fixes a crash that occured in the Lego trace when run with an ES 3.0 context. * At the end of each frame it unbinds all the image units using glBindImageTexture, which is an ES 3.1 call. * During validation, we verify things using ANGLE's internals, but they are only set up when the context is >= ES 3.1. * This led to a crash. * The fix is to check the ES context early and bail, which aligns with other entry points. Test: LEGO MEC Bug: b/161716126 Bug: angleproject:4048 Change-Id: I9aee2ee173436f5de5062758a70e0909f6fc9a7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462163 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
James Darpinian babce049 2020-10-16T16:32:17 iOS: Disable worker contexts, and use sized formats Kimmo Kinnunen made this change downstream in WebKit. https://bugs.webkit.org/show_bug.cgi?id=215908 Disable ANGLE workers until EAGL implementation is more complete. Current implementation fails to compile any shader, since the compilation happens in the worker thread and worker EAGL context which does not use the same sharegroup as the main context. The shader objects are created in the main context but the shader source setting and compilation happens in the worker context. EAGL needs a flush between state changes, and adding that correctly is a bigger change to be done later. Use sized formats when calling [EAGLContext -texImageIOSurface] from EGL_ANGLE_iosurface_client_buffer code. The texImageIOSurface accepts parameters with glTexImage2D logic. On ES3, some of the internal formats must be sized formats. The EAGLContext instantiated by ANGLE is ES3, even if the ANGLE context would be ES2. No tests added since this should be caught with the many video related tests. It's unclear why this is not the case -- at least on real hw. This is to be investigated later, too. Bug: angleproject:5104 Change-Id: Iebf1a04488c5137d55a278d973a34511e8dc46bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481850 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
James Darpinian 3c8f582b 2020-06-19T17:39:08 Build fixes for MacCatalyst WebKit needs these preprocessor directives because they can't selectively compile files per platform. Bug: angleproject:4613 Change-Id: Ie549cd734c74b50666f3d7e142b885bc78077fc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2255701 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
James Darpinian 916ad955 2020-10-16T16:22:52 No need to check for Catalyst in the iOS build Dean Jackson made this change downstream in WebKit. https://bugs.webkit.org/show_bug.cgi?id=215249 Bug: angleproject:4938 Change-Id: Ic5abbf56dabbafdb88e9dae0ecffa36f75329abb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481617 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Jonathan Ross 4720cfb7 2020-10-19T19:02:56 Disable TransformFeedbackTest.SwitchProgramBeforeDraw/ES3_OpenGL This test hase begun failing consistently on the Arm based Apple DTK. This adds a skip to the test for that config. Test: TransformFeedbackTest.SwitchProgramBeforeDraw/ES3_OpenGL Bug: chromium:1140113 Change-Id: Ie9499f4f90327429c02b3e690d4059838ad835d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2485296 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Yuly Novikov 61ab3819 2020-10-19T14:50:38 Expand ProgramBinaryTest.SRGBDecodeWithSamplerAndTexelFetchTest skip Also Mac ARM64 GL and Nexus 6P GLES. Bug: angleproject:4991 Change-Id: Ie4b1e76c2a804256970829431e8d85a140b22387 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2486091 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 2072ce50 2020-10-18T16:44:09 Rename "NonLinear" to "SRGB". In OpenGL parlance there are really only two color spaces: Linear and SRGB. Vulkan is much more complicated with linear and nonlinear SRGB, and multiple non-SRGB linear color spaces. Keep things simple by working with OpenGL nomenclature. Bug: angleproject:5176 Change-Id: Ia730a9a666a2b3325194b86dc588e7fd226c4183 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483466 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill e5590288 2020-10-18T12:40:14 Rename "texelFetchInvoked" to "texelFetchStaticUse". Technically more precise because something could be statically used and never invoked. Also more consistent with the spec. Bug: angleproject:5176 Change-Id: I70dd0787d67d9f046b7359abb24107cb430f5cae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483465 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jeff Vigil 00a49766 2020-10-14T10:27:56 EGL: Implement EGL_KHR_reusable_sync Add extension string and flags Add EGLReusableSync files to libANGLE and gni Test: angle_deqp_egl_tests --deqp-case=dEQP-EGL.functional.reusable_sync.* --deqp-case=dEQP-EGL.functional.fence_sync.* Bug: angleproject:5168 Change-Id: I967a10cf387047c9ee1963acfc854a8288325a8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477293 Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5f7eeb93 2020-10-17T11:52:40 Add isSRGB flag to angle::Format. Bug: angleproject:5176 Change-Id: I85fc78206456439ba7dab55c093187fb94364823 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482290 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Geoff Lang 6d3d381e 2019-08-23T16:45:05 GL: Update BufferGL to use ANGLE_GL_TRY. Refactor the check for keeping shadow data into a feature so it's only initialized once. Bug: angleproject:3020 Change-Id: I45575c246afa7cd54e3a07d7a8464f4d4f45b3be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769064 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 556d812a 2020-10-18T11:48:45 Test Runner: Disable watchdog when debugger attached. Bug: angleproject:3162 Change-Id: I3685a4fe068b6e82b8bb04448c212788f563ab8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483463 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 2be35682 2020-10-18T10:37:52 Add sRGBOverrideFormats end2end test Addition of a new end2end test to verify that all supported formats can be overridden for the GL_EXT_texture_sRGB_override extension. Bug: angleproject:4561 Test: angle_end2end_tests --gtest_filter=SRGBTextureTestES3.SRGBOverrideFormats*Vulkan* Change-Id: I93c4eab0489a1daadeb27c70ba1f755ed2e58fc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483564 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 7bbe497a 2020-10-16T14:46:45 Vulkan: Implement EXT_texture_sRGB_decode Implement EXT_texture_sRGB_decode. This builds on the existing functionality from EXT_texture_sRGB_override, with 2 major edge cases: 1. sRGB_decode allows the texture state to be overridden by sampler state, which is implemented by forcing a a texture state sync during updateActiveTextures if a texture is bound to the same unit as a sampler with that state 2. texelFetch calls require us to reenable decoding, regardless of decode state. We add a new compiler pass (FlagSamplersWithTexelFetch) to mark samplers that are used with texelFetch in order to support this. This change also re-enables EXT_texture_sRGB_R8, which was disabled due to a dEQP bug that this change will bypass. Bug: angleproject:3609 Bug: angleproject:4503 Test: dEQP.GLES31/functional_srgb_texture_decode_skip_decode_* Test: GLES31/functional_state_query_texture_*_srgb_decode_* Test: GLES31/functional_state_query_sampler_*_srgb_decode_* Test: GLES31/functional_debug_negative_coverage_*_srgb_decode_* Test: GLES31/functional_android_extension_pack_extensions_ext_texture_srgb_decode Test: angle_end2end_tests --gtest_filter=SRGBTextureTest.*Vulkan* Change-Id: I4a67e487dc82e2f57c8c87d4bcd8ef442b6fe220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359481 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill e3a57381 2020-10-18T15:42:58 Fix VertexAttributeTest.DrawArraysWithBufferOffset. This test was reading past the end of a buffer into undefined data. Bug: angleproject:3951 Bug: angleproject:4163 Bug: angleproject:4258 Bug: angleproject:4269 Change-Id: I54ab9aa0cd1442184692e60c7f99f2139a855d63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 188d0fe6 2020-10-18T14:33:28 Make Metal shader-gen cross platform. This switches the generator script use the hermetic Clang instead of the system gcc/clang. It also uses common Python routines to manage the temporary file so that it works consistently on Win. Bug: angleproject:5186 Change-Id: I52906d1a708db8b925061a9d5578b3d54a6dc862 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483464 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen 5b7c5b34 2020-10-18T17:19:51 Metal: don't precompile default shaders. Default shaders will be compiled from source at runtime, this is because they depend on ANGLE format table and there is currently no way to pre-compile metal shaders in a cross-platform manner. Using default shaders' source instead of pre-compiled form seems to reduce the libGLESv2's binary size. However, the startup time will be increased due to runtime cost of compilation, thus the compilation now will be done asynchronously. Bug: angleproject:5186 Change-Id: I0e1987d6c76692d5169255736fbb8e215185c33b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482405 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Jamie Madill 9047954c 2020-10-17T20:35:31 More Mac/AMD/GL dEQP suppressions. These tests became flaky with multi-process. Bug: angleproject:5172 Change-Id: I6ede6b33f8c2ddfb3970fbc2b7586c7622b79a09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482293 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 07ea804e 2020-10-17T08:57:28 Change Android atomic counter tests to skip. These tests were running into LowMemoryKiller issues on the Pixel 2. Disable them until we can switch to a newer OS/Device. Bug: angleproject:5185 Change-Id: Id33d0f6347961e216a471af2e3614f0fb18d28d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482288 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi da09d08f 2020-10-16T00:02:34 Regression tests for vertex attribute aliasing Tests for the upcoming implementation of vertex attribute aliasing in Vulkan. Bug: angleproject:4249 Change-Id: Ic87e44b1815b376da4cda5e8887dd3a05c9cc35f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477051 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 128ffe4a 2020-10-16T14:35:16 Roll VK-GL-CTS from 618e41c871d6 to 483a71c5130e (11 revisions) Suppress new dEQP-GLES3 tests on Nexus 5X: dEQP-GLES3.functional.transform_feedback.random_full_array_capture.* https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/618e41c871d6..483a71c5130e 2020-10-16 alexander.galazin@arm.com Update vk.xml revision 2020-10-16 lionel.g.landwerlin@intel.com Replace incorrect undefined->transfer-dst-opt layout transfers 2020-10-16 michal.m.pawlowski@mobica.com Add cube compat. to array image copy tests 2020-10-16 mikko.tiusanen@siru.fi Tests for pipeline laoyut early destroy 2020-10-09 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master 2020-10-09 mika.vainola@siru.fi Modify/add GLES XFB tests without element capture 2020-10-09 afdx@google.com Add a batch of GraphicsFuzz tests 2020-10-08 siglesias@igalia.com Fix wrong access flag for depth/stencil resolve 2020-10-08 lionel.g.landwerlin@intel.com Fix wsi tests using disallowed image usage 2020-10-08 siglesias@igalia.com Output depth image in case of failure 2020-10-08 karolina.palka@mobica.com Check SparseResidency flag before OpImageSparseRead If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md Bug: angleproject:5184 Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com Change-Id: Ie46c0306830871d605b15cfcd3abc580989f104f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480002 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten 16102e8b 2020-10-17T01:15:05 Reland "Vulkan: Fold deferred clears into current clears" This reverts commit 37c400146e59f718b516eb58e16fa53c8a88bf21. Reason for revert: Need to clear the package cache when bisecting. Original change's description: > Revert "Vulkan: Fold deferred clears into current clears" > > This reverts commit e416c92a81c9ef01d633ec5c05e81c2551b6c5d6. > > Reason for revert: Reverted parent: > https://chromium-review.googlesource.com/c/angle/angle/+/2481612 > > Original change's description: > > Vulkan: Fold deferred clears into current clears > > > > If there are clears prior to a glClear() call, those clears were > > flushed (starting a new render pass) and then the clear call's clears > > would be applied (essentially modifying the loadOps of said render > > pass). > > > > The main downside of the above is that the current glClear() clears > > don't get a chance to be deferred. This was observed in Chrome which > > clears an attachment with an emulated format, then switches > > framebuffers. > > > > Additionally, if the render pass had already been started, the deferred > > clears could have become inlined instead of breaking the render pass. > > Although, it's unlikely for there to be deferred clears when the render > > pass is already open. > > > > This change first identifies which clears need to go through the draw > > path (scissored, masked or as workaround for driver bug). It merges the > > rest of the clears (that don't need the draw path) with the deferred > > clears. It then checks deferred clears and applies them by either: > > > > - vkCmdClearAttachments if mid RP > > - Start a new render pass and use loadOps, if any draw-based clear needs > > to follow. > > - Modify current RP loadOps / defer the clear > > > > Afterwards, the draw-based clears are applied. > > > > Bug: angleproject:4836 > > Change-Id: Id4992c78983b199734508c9d4bb18ed3195c91ec > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2455167 > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Reviewed-by: Charlie Lao <cclao@google.com> > > TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com > > Change-Id: I85733b3594409df9b96e3d5b34933522c97c42cf > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:4836 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481613 > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com # Not skipping CQ checks because this is a reland. Bug: angleproject:4836 Change-Id: I702cd510f39ee46feab27d4efbf61ae5da10d4e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481856 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill d3e7ed93 2020-10-16T21:30:58 Suppress Mac/AMD/GL GLES2 failures with standalone mode. Bugs due to test ordering. Bug: angleproject:5172 Change-Id: If7e0c93a470bf2338347d484735f1b3691dd9ad5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482283 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 37c40014 2020-10-16T22:19:20 Revert "Vulkan: Fold deferred clears into current clears" This reverts commit e416c92a81c9ef01d633ec5c05e81c2551b6c5d6. Reason for revert: Reverted parent: https://chromium-review.googlesource.com/c/angle/angle/+/2481612 Original change's description: > Vulkan: Fold deferred clears into current clears > > If there are clears prior to a glClear() call, those clears were > flushed (starting a new render pass) and then the clear call's clears > would be applied (essentially modifying the loadOps of said render > pass). > > The main downside of the above is that the current glClear() clears > don't get a chance to be deferred. This was observed in Chrome which > clears an attachment with an emulated format, then switches > framebuffers. > > Additionally, if the render pass had already been started, the deferred > clears could have become inlined instead of breaking the render pass. > Although, it's unlikely for there to be deferred clears when the render > pass is already open. > > This change first identifies which clears need to go through the draw > path (scissored, masked or as workaround for driver bug). It merges the > rest of the clears (that don't need the draw path) with the deferred > clears. It then checks deferred clears and applies them by either: > > - vkCmdClearAttachments if mid RP > - Start a new render pass and use loadOps, if any draw-based clear needs > to follow. > - Modify current RP loadOps / defer the clear > > Afterwards, the draw-based clears are applied. > > Bug: angleproject:4836 > Change-Id: Id4992c78983b199734508c9d4bb18ed3195c91ec > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2455167 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com Change-Id: I85733b3594409df9b96e3d5b34933522c97c42cf No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:4836 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481613 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 5a9827d2 2020-10-08T13:17:16 FrameCapture: Move shader and program source to shared cache These are local copies of source seen earlier in the trace. Centralize them so they can be tracked across contexts. Test: PUBG MEC Bug: b/165824228 Bug: angleproject:4048 Change-Id: If414826b0280c61507812c2fd92706b7f095cc4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462162 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51ff0d05 2020-10-16T11:54:04 Trace Tests: Add vsync-limited mode with a GPU timer. Local testing on Linux shows that ANGLE and native have the same wall-time, and ANGLE has a 10 ms vs native 6 ms GPU time. Bug: angleproject:5183 Change-Id: I26da678b984af916bfb40e1db6416f5df4f85c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480782 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ecbac31c 2020-10-16T10:36:06 Perf Tests: Add offscreen mode. This lets the trace perf tests run configurable number of frames within a single swap. The offscreen config is similar to how gfxbench works. It renders to a user FBO (by overriding calls to BindFramebuffer) and then composits multiple frames into the real backbuffer. This allows us to get a perf measurement with less overhead from composition and display. Adds emulation for some APIs that operate on Framebuffers like BindFramebuffer, Invalidate, DrawBuffers and ReadBuffer. Bug: angleproject:4845 Change-Id: I1044c1d52c82f1c215a68a6c46d74c52ed0f3d2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300207 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 2402c336 2020-10-16T13:56:08 Suppress Mac/AMD/GL dEQP failures with standalone mode. These tests appear to flake based on different batch sizes. Disable them for now until we have time to investigate. See issue for more details. Bug: angleproject:5172 Change-Id: I90fff3b3400cbd5a5aa0d5e9a23364320fba7e4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480785 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5025d781 2020-10-16T08:50:56 Remove flaky check in TimerQueriesTest. We cannot guarantee that a shader with more instructions will always take more time than a smaller shader. Bug: angleproject:5178 Change-Id: Icf48a7b73ad482237cf3161667d75a25e36dd643 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2479682 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop d83f6792 2020-10-08T09:41:11 Capture/Replay: Fix GL_HALF_FLOAT_OES vertex attrib type name The string for VertexAttribType::HalfFloatOES was missing. The output would contain GL_INVALID_ENUM instead of GL_HALF_FLOAT_OES. Detected when capturing Free Fire. Test: Free Fire MEC Bug: b/168049517 Bug: angleproject:4048 Change-Id: Ib9efbb8cee1ae9f679ff20f4182f7dd428000d5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461349 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill b620ca9e 2020-10-16T13:10:28 Suppress fragment out int tests on Intel/Mac/GL. These tests started failing when run in larger batches. The test order caused determimnistic failures. See the issue for more details. Bug: angleproject:5172 Change-Id: If5be66b843c1e0fccba962ff55e5064cbee60859 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480784 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen 119d867c 2020-09-26T18:27:39 Metal: autogen blit & clear shaders for integer textures Bug: angleproject:2634 Change-Id: I20d0bf3fca354a7964ce5893a605ab72a8a9012d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433328 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen 27e7e446 2020-09-27T00:00:35 Metal: Support 2D array textures and base & max levels. Bug: angleproject:2634 Change-Id: If9e50cec46bdf5f472f1e58c6e82a67b524e2408 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433327 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b4fb7cc9 2020-10-15T08:58:06 Test Runner: Print reproduction steps on a batch failure. This prints out a large gtest_filter of the tests in a batch. Makes reproducing a particular failure much easier. In the future we could potentially look at using an encoding to reproduce a specific batch: e.g. a flag that acceps a batch / shard number and runs those tests based on using the same internal counts. Bug: angleproject:5172 Change-Id: Iefad8f5ca23761417ad1ceb11fd664c9cf23c8be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475455 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 089eac22 2020-10-11T12:40:07 Perf tests: remove redundant null naming. Bug: None Change-Id: I9e3e0d8b160a438c9001d9dbd4bb067355b9e562 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475457 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi e416c92a 2020-10-06T23:29:02 Vulkan: Fold deferred clears into current clears If there are clears prior to a glClear() call, those clears were flushed (starting a new render pass) and then the clear call's clears would be applied (essentially modifying the loadOps of said render pass). The main downside of the above is that the current glClear() clears don't get a chance to be deferred. This was observed in Chrome which clears an attachment with an emulated format, then switches framebuffers. Additionally, if the render pass had already been started, the deferred clears could have become inlined instead of breaking the render pass. Although, it's unlikely for there to be deferred clears when the render pass is already open. This change first identifies which clears need to go through the draw path (scissored, masked or as workaround for driver bug). It merges the rest of the clears (that don't need the draw path) with the deferred clears. It then checks deferred clears and applies them by either: - vkCmdClearAttachments if mid RP - Start a new render pass and use loadOps, if any draw-based clear needs to follow. - Modify current RP loadOps / defer the clear Afterwards, the draw-based clears are applied. Bug: angleproject:4836 Change-Id: Id4992c78983b199734508c9d4bb18ed3195c91ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2455167 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jonah Ryan-Davis 96a49a48 2020-10-06T13:34:09 GLX, EGL: Support NV_robustness_video_memory_purge Chrome is showing rendering issues on Linux/Nvidia after returning from the lock screen. This could be related to the fact that Nvidia drivers are not able to guarantee conformance after certain events. By exposing this extension, we can instruct Chrome to reinitialize contexts after they are purged by the driver. If this is not explicitly requested, we can still generate an UnknownContextReset to tell apps to discard the invalid context anyway. Bug: chromium:1113040 Change-Id: Ie99b6356cc27fea33643d61b1d74f4f68a271d70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453689 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang 266f4429 2020-10-15T15:53:44 Cache BlitGL initialization state with a single bool. We used to cache initializatin per-resource and check each one for every operation. This was slower and more error prone, the mSRGBMipmapGenerationFormat was computed every time. Found when diagnosing crbug.com/1136613 Bug: chromium:1136613 Change-Id: Ifd804fe1dc8e26e1a9b444cc1d0c6f73954da895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477037 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jeff Vigil 8eaf72a8 2020-10-14T10:20:20 EGL: Entrypoint and autogen for EGL_KHR_reusable_sync Add entry point eglSignalSync Update autogen files Test: angle_deqp_egl_tests --deqp-case=dEQP-EGL.functional.reusable_sync.* Bug: angleproject:5168 Change-Id: I47afa4010c533096b4c56e9b3ab6eddc1944b83e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472998 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter f51e99fb 2020-10-13T11:38:28 Vulkan: Remove serial from RenderPassHelper We don't delete RenderPass's so no need to keep a serial. This simplifies things for coming threading code. Bug: b/169788986 Change-Id: I2577b17bc1f6af163725389589d7cd62d09eea13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468538 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Le Hoang Quyen 0e5e6078 2020-09-26T23:31:24 Metal: Use MipmapNativeLevel class to store native mip lvl This is to avoid wrong native level in Metal, for example, not taking into account the OpenGL base level. Bug: angleproject:2634 Change-Id: I3a7a3ac41bdbd91a47755bb4ca11bd579c182e04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433326 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c9206a08 2020-10-15T11:15:28 GLES/GL/Win: Suppress all constancy samples tests. These were all flaking. Use two simple wildcard patterns. Bug: angleproject:5162 Change-Id: I37cd7db1234c5586bc7c61c7b8f379c878b2ae2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475458 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev a2ef8144 2020-10-14T02:25:37 Vulkan: fix undefined right shift in GetMask Bug: chromium:1137170 Change-Id: I95efdc7888e44f2b4227f9c0d892b9102cead0bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469616 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 43b4fefd 2020-10-14T20:48:37 Revert "Vulkan: Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount" This reverts commit a5db7d6eb5284359930b3b82507f96a52c62b6e1. Reason for revert: VVL rolled with the fix. Original change's description: > Vulkan: Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount > > Disable UNASSIGNED-CoreValidation-DevLimit-MissingQueryCount while the > Khronos issue is investigated. > > Bug: angleproject:5148 > Change-Id: If3cd4b028182a06411b928417e7c778ea02189d1 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462075 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:5148 Change-Id: Ibb66370334554773dda3e849d0bc9f3e8f8577fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472997 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Kenneth Russell 1ca0c2a9 2020-10-14T14:07:46 Populate LevelInfoGL's format/internalFormat in eglBindTexImage. Previously GL_NONE were being used, causing nativegl::SupportsNativeRendering to think the bound texture wasn't renderable, and TextureGL::copySubTextureHelper (called via CopyTexSubImageCHROMIUM) to use CPU readback. This affected the WebGL DrawingBuffer's premultiplyAlpha:false code path. Thanks to geofflang@ for the patch. Bug: chromium:1136613 Change-Id: Iee650156983f880fa802b3a17d3989f5a9322e91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472535 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Tim Van Patten 1e435d07 2020-10-14T13:33:10 Vulkan: Support dumping VMA stats string This CL adds support for dumping the VMA stats string, which can be given to VmaDumpVis.py to visualize the allocations that the VMA has performed. To enable dumping the string, set: RendererVk.cpp rx::kOutputVmaStatsString = true Copy the desired JSON output into a text file, and pass that to VmaDumpVis.py: python3 \ third_party/vulkan_memory_allocator/tools/VmaDumpVis/VmaDumpVis.py \ -o stats.png stats.txt The legend for the visualization is available at: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/tree/master/tools/VmaDumpVis Bug: angleproject:2162 Test: Manual verification Change-Id: Ic8c1002805dd57e594df724bcf1cdbc1d1599a3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472525 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 12462910 2020-10-14T17:33:50 Skip slow GLES 1 Win/Intel/Vulkan test. GLES1ConformanceTest.Blend/ES1_Vulkan Bug: angleproject:5171 Change-Id: I2f3bb0d53676ed54e1fb74816e7c93a8e44042a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472536 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade b22e437a 2020-10-07T18:02:39 Add GL_EXT_copy_image extension entry points Bug: angleproject:3593 Change-Id: I6d3a55a3112f5f9b20ef33c859a60b2952bfbc2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444209 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy 1075b47a 2020-10-14T13:24:58 Disable more ARM-based Mac tests Disables the following tests due to them failing on the ARM-based Mac DTKs: * GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_OpenGL * OcclusionQueriesTest.MultiQueries/ES2_Metal * TransformFeedbackTest.TwoUnreferencedInFragShader/ES3_OpenGL * WebGL2CompatibilityTest.CopyMip1ToMip0/ES3_OpenGL Bug: chromium:1132295 Change-Id: I557e3c978d884e9beeafb4f43676271edcd36a87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472532 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten fa47b9a4 2020-10-14T15:42:17 Revert "Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved" This reverts commit 4dae43d877763390c56435fb0126e310ee515fb8. Reason for revert: VVL rolled with the fix. Original change's description: > Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved > > Disable > UNASSIGNED-BestPractices-vkCreateDevice-physical-device-features-not-retrieved > while the Khronos issue is investigated. > > Bug: angleproject:5149 > Change-Id: I680cf264d6356cf219826902d7fdf2304e27ebab > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461475 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:5149 Change-Id: I0a338983ac0804d5bb0e41e592f177372be66d5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2471556 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Courtney Goeltzenleuchter 7d70a62f 2020-10-13T10:41:50 Vulkan: refactor error info Consolidate error info into a structure in preparation of threading work. Also preserves the meaning of the data until it's rendered to a string for consumption by GL. Bug: b/154030730 Change-Id: I8cde7133c817d77fdb117efc1c11edc94f615da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468537 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill d4b35199 2020-10-14T13:58:47 Skip slow EGL Vulkan Linux tests. dEQP-EGL.functional.swap_buffers_with_damage.resize_after_swap.* dEQP-EGL.functional.swap_buffers_with_damage.resize_before_swap.* See issue for more details. Bug: angleproject:5170 Change-Id: Id0376dcb26514dffc09a28e9ad7b2ade8d50b8c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472518 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fbc33c82 2020-10-14T13:58:47 Fail 3 tests on Android GLES N5X. These tests are failing for unknown ordering reasons: dEQP-GLES2.functional.fbo.render.texsubimage.after_render_tex2d_rgba dEQP-GLES2.functional.fbo.render.texsubimage.between_render_tex2d_rgb dEQP-GLES2.functional.fbo.render.texsubimage.between_render_tex2d_rgba Bug: angleproject:5169 Change-Id: I25e592f6aa50cf80b0d60f04085c42cb1169dd31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472517 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 1c6adcad 2020-10-12T15:37:18 Reimplement WindowSurfaceVk::checkForOutOfDateSwapchain Simplified and made faster for devices that return VK_ERROR_OUT_OF_DATE_KHR (and VK_SUBOPTIMAL_KHR). Bug: b/168327817 Change-Id: Iec3dad8d528eb7d3645062a6736b397514432829 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464921 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi 2aaeb81d 2020-10-06T17:20:29 Vulkan: loadOp=DONT_CARE + unused D/S => invalidate D/S If depth/stencil is not loaded, and it's not written to during the render pass, then treat it as if it was invalidated so storeOp can be set to DONT_CARE and its corresponding resolve attachment (if any) removed. This is especially useful for MSRTT as a resolve attachment is added at the start of render pass, and this optimization will give it a chance to undo that if depth/stencil was not actually used in the render pass. This situation can arise for example if a render pass is created for the sole purpose of clearing color. This change includes a bug fix for missing depth/stencil on*Access in the UtilsVk blit/resolve path. Bug: angleproject:4836 Change-Id: Ifc8eea3e6ffb3eb4bba19f03d1358f151ec69c44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453468 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a8c5d295 2020-10-14T10:32:00 Skip two more FBO max samples tests on Win/NV/GL. These two tests are causing the driver internally to OOM. dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_sample_coverage_inverted dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_both Bug: angleproject:5162 Change-Id: I6960b4b171efb2f74b42a82d8ecafce1edb167c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469958 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Hyunchang Kim d9a88d63 2020-09-28T17:58:31 Vulkan: Support OES_texture_cube_map_array extension Add support for GL_OES_texture_cube_map_array to the Vulkan backend if the underlying ICD supports creation of of cube array ImageViews Bug: angleproject:3584 Test: dEQP-GLES31.functional.fbo.color.texcubearray.* Change-Id: I636cbf347d718abfc1600119b312578370b8e02e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437989 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>