src/tests


Log

Author Commit Date CI Message
Jamie Madill ac78d723 2021-09-08T12:19:40 Capture/Replay Tests: Allow 3 concurrent ninja processes. This is an attempt to fix the flaky ninja error when running multiple processes while still getting pretty good test times. The previous fix eliminated the flakiness but doubled the test time. In local testing this is a bit slower but not 2x slower. Bug: angleproject:6299 Change-Id: Ibcd462712d3eab759c5923ca229e009046783e9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149570 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 44ab7a14 2021-09-09T10:05:19 Capture/Replay: Mark one test as flaky. WebGLCompatibilityTest.DrawArraysBufferOutOfBoundsNonInstanced Bug: angleproject:6373 Change-Id: I0c26511b3ab0cc4938fd7b7242a6ac033b22df42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149377 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 1a6fd9d0 2021-09-09T10:32:26 Capture/Replay: Remove debug logging The debug logging is flooding the terminal with the following: Frame 0: x 0 y 0 (screen x 64, screen y 133) Frame 1: x 1 y 0 (screen x 74, screen y 133) Frame 2: x 2 y 0 (screen x 84, screen y 133) Frame 3: x 3 y 0 (screen x 94, screen y 133) Frame 4: x 4 y 0 (screen x 104, screen y 133) Frame 5: x 5 y 0 (screen x 114, screen y 133) Frame 6: x 0 y 1 (screen x 64, screen y 166) Frame 7: x 1 y 1 (screen x 74, screen y 166) Frame 8: x 2 y 1 (screen x 84, screen y 166) Frame 9: x 3 y 1 (screen x 94, screen y 166) This drowns out all over log statements, so it's being removed. Bug: b/186881553 Change-Id: Ib2235a18b56b993f16e7532249c488403383bd65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152155 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki 3dded466 2021-09-09T15:28:07 Tests: Add Blockman Go trace. Test: angle_perftests --gtest_filter="*blockman_go*" Bug: angleproject:6365 Change-Id: I5f1008288ff1b4ec049e721fbdf72e80902fe8fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151816 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Brandon Schade a33d902b 2021-08-16T12:01:53 Add Entry points for GL_EXT_EGL_image_storage Code generation for GL_EXT_EGL_image_storage Bug: angleproject:6346 Change-Id: Ib918619205bfe7bd8fba0748ff6db593c858151f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133763 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 8ea87a67 2021-08-17T18:46:36 Vulkan: Avoid texture format fallback when possible Some texture formats are not renderable on some hardware. For example, R4G4B4A4 are not renderable on nvidia and not blendable on ARM. R5G5B5A1 are also not blendable on nvidia. Right now when we generate format table, we are being most conservative, picking an actual format that is always renderable and blendable. This means when R4G4B4A4 is used on one of these GPUs, we are always falling back to R8G8B8A8 regardless if the texture is actually being used as color attachment or not. This CL adds a actualRenderableImageFormatID field in vk::Format. Initially we will pick actualImageFormatID which only ensures texture sample capability. If later on the texture is being attached to FBO, then we will switch to actualRenderableImageFormatID and do data copy if necessary. This way we save memory and reduce texture bandwidth for most usage of these textures. For renderBuffer and surfaces and EGLImages, we always pick the renderable textures. Bug: b/196456356 Change-Id: I02eec3365c2a317b0d1bad6dbdc3e741114c5bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104514 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Sunny Sachanandani 46555145 2021-09-02T14:55:02 d3d11: Allow binding R/RG texture to EGLImage Also allows GL_RED/RG/R16/RG16_EXT as well as GL_RGB10_A2_EXT which was left out previously by accidently to match Chromium behavior. Adapts the existing ClearTextureImage test to parameterize over a number of texture formats. Bug: angleproject:6369 Change-Id: I91110a06b08379a3067a2161e345258415cd5e16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140744 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Jamie Madill e1bc8de3 2021-09-08T07:59:37 Change links from 'master' to 'main' branch. Bug: chromium:1226949 Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5726158f 2021-09-08T13:31:40 Trace Tests: Fix test data path. A prior refactor was missing the path separator between the trace folders. This CL also makes the error more visible by forcing the test step to fail if there's a missing path. Previously it would print an error message but silently continue. Bug: angleproject:5133 Change-Id: I71e7c751662a08d6ff199f0f802310d0ef52ed5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149572 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten f1cbaac7 2021-09-08T10:21:40 Capture/Replay: Disable world_of_kings for Win+Intel The world_of_kings trace is flaky, particularly on Windows+Intel. In most instances (every?) it's off by 1: Left Pixel rgba(32, 105, 119, 255) #206977FF <<--- good Diff rgba(0, 0, 1, 0) Right Pixel rgba(32, 105, 118, 255) #206976FF <<--- bad Bug: angleproject:6372 Bug: b/198101940 Change-Id: I6be7138e050d63df3dd8a189882b64dadfe62740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149433 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 2f3e4db8 2021-09-02T10:31:13 Capture/Replay: Serialize trace metadata to a JSON file. This will allow us to remove more code auto-generation for the trace tests. The trace info now can be loaded directly from JSON instead of from the autogenerated information. Bug: angleproject:5133 Change-Id: I04e22b9279b19282df274bc8defcd363d0449111 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9874be31 2021-09-02T10:25:21 Trace Tests: Load trace list from JSON file. Instead of using the auto-generated enum for the trace list, load directly from restricted_traces.json. This will lead to more CLs that entirely remove the auto-generated code from the trace tests. Bug: angleproject:5133 Change-Id: I6515624a2145319d097b43085741cf9c48f1792e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140217 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 5a7b8c61 2021-08-31T14:58:06 Vulkan: Removed size check when handling mismatched vertex attributes If locations are specified to be noncontiguous or out of order when there is a mismatch between the attribute type specified by glVertexAttribPointer and the shader, the program's attribute type from ProgramExecutable's getProgramInputs() method would fail. This is due to using attribIndex which refers to the attribute's location rather than the position in the vector returned from getProgramInputs(). This change removes the size check as it's not needed for GL_ANGLE_relaxed_vertex_attribute_type. Bug: angleproject:5762 Test: VertexAttributeTestES3.DrawWithMismatchedComponentCountLocationSpecified Change-Id: Ie15f2095e618e12403d1524273d1add74b00cdbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3137273 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Brandon Schade d6afeadd 2021-08-30T14:44:59 Vulkan: Make descriptor set bindings consistent across shader stages Previously if a uniform or uniform block was used in a program's shader, a different descriptor set binding index would be used for each linked shader stage. Now, the bindings chosen for uniforms and blocks of the same name will be identical. This change also updates mActiveImagesMask in ProgramExecutable for separable programs. Bug: angleproject:4512 Tests: KHR-GLES3*.core.geometry_shader.api.max_image_uniforms ProgramPipelineTest31.MaxFragmentShaderStorageBufferObjects ProgramPipelineTest31.MaxFragmentUniformBufferObjects ProgramPipelineTest32.MaxGeometryImageUniforms GeometryShaderTestES32.MaxGeometryImageUniforms Change-Id: I3662d06b4dec284f4c51c6047e6b684b82925e3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068381 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Charlie Lao c5d11128 2021-09-02T18:18:02 Vulkan: Skip but keep incompatible updates. If texture has a level incompatibly specified, right now we are still oding the copy. This will trigger VVL and is incorrect. This CL skip the flush and keep it. Also Add various tests for 16 bit texture format in preparation for future CLs that may pick a more native format for 16 bit texture instead of always fallback to 32 bit. Test: VulkanFramebufferTest.R4G4B4A4TextureSampleOnlyActuallyUses444Format Bug: b/196456356 Change-Id: I9d53a97bb72208b52fb25e429abb49bbbc53c50c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141030 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill c5a38976 2021-09-01T07:35:40 Capture/Replay: Add expression trigger validation calls. Setting the environment variable "ANGLE_CAPTURE_VALIDATION_EXPR" will make ANGLE's capture logic evaluate this expression every captured call to see if it should insert a validation checkpoint. The retracing script also accepts --validation-expr as an argument. For instance, the expression: ((frame == 2) && (call < 1189) && (call > 1100) && ((call % 5) == 0)) Will insert validation checkpoints on frame 2, between calls 1100 and 1189 and will validate every 5th call. The 'call' here is the count of captured calls, which are mostly GL calls with a few ANGLE replay calls in the mix. We add a small single-header library that can evaluate arthithmetic expressions in order to parse these expressions, as well as an option to the retracing script. Bug: angleproject:5133 Change-Id: Ic369e85d8e905a3a7a32fa098f7d8ebe7baf4ab9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136094 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Zequan Wu 178b8481 2021-09-03T23:30:52 Revert "Skip validation of stderr in TestSuiteTest.RunFlakyTests" This reverts commit 89dbbb2ac6875c92c99feb24353641142bbd49b1. Reason for revert: The test failure was gone in latest clang roll. Original change's description: > 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> Bug: chromium:1234124 Change-Id: If33e92b533c99677d2b8f55de618ecf15e3f19d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3141973 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3ae1f336 2021-09-03T09:34:10 WebGL: Make unsuccessful links fail subsequent draw calls. This protects against incomplete state updates during a failed link call that can interfere with draw calls. Bug: angleproject:6358 Bug: chromium:1241123 Change-Id: Ie892654c3a58c69d6e35ba3c41758ab6269d8193 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140496 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Gregg Tavares ab187c35 2021-09-02T14:46:29 Handle comparing arrays of scalars/vectors/matrices Fixes: UniformBlockWithOneLargeArrayMemberTest.MemberArrayOperations/ES3_Metal Bug: angleproject:5505 Change-Id: Ife35db2146ac8ce8c0880cdb98df57dc75cb35cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140712 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny b0dfd268 2021-09-02T10:53:57 Capture/Replay: Handle Gen/Delete ProgramPipelines Enable the test that failed compilation before. Bug: angleproject:6180 Change-Id: Id15a5b82c8ee5dab291090375d15ce93b8908535 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139900 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 066edc2b 2021-09-02T10:11:03 Capture/Replay: Handle glGetFragDataLocation Enable the test that is now passing Bug: angleproject:6180 Change-Id: I3aadc708ebf0b5d751af0a45713aaf4b72526188 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139899 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 349d555d 2021-09-02T10:07:26 Capture/Replay: handle glGetBooleani_v This also fixes a test. Bug: angleproject:6180 Change-Id: Icad2d089738f4458c90b87620337e9798adb9141 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139898 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill b6e99bb3 2021-09-02T13:47:34 Rename and expand shader variable init feature. This feature now forces both output and unitialized locals to be initialized by the shader translator. This feature is needed by the trace validator to ensure we get deterministic behaviour in traces that exhibit some undefined results. Bug: angleproject:5133 Change-Id: Id1242cd077a57e891eed217f7671976ce1631a58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140216 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9c05f55a 2021-07-15T10:58:10 Capture/Replay: Add replay state validation. We can use this to validate traces that have slight differences when retracing. The valdation works by embedding the "expected" JSON into a string at the end of each captured frame. The replay also embeds a callback which fires right before the swap in the replay harness. The harness then gets the "actual" JSON and runs a comparison. On a mismatch it calls "diff" externally. Currently the diff call is hard-coded to work on Linux only. Note that when running validation it's important to replay on SwiftShader since that's what we use to retrace. Bug: angleproject:5133 Change-Id: Icbf0031d07be8bd916607c537dec235f9a512c43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066008 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 8bb3c827 2021-07-22T19:06:40 Fix Multithreaded eglDestroyContext()/eglTerminate() The following EGL calls can lead to a crash in eglMakeCurrent(): Thread A: eglMakeCurrent(context A) Thread B: eglDestroyContext(context A) B: eglTerminate() <<--- this release context A Thread A: eglMakeCurrent(context B) The eglMakeCurrent(context B) call will assert when attempting to unMakeCurrent(), since thread A doesn't know that context A was already destroyed by thread B. To fix this: 1.) A Context will only be released once there are no Threads that currently have a reference to it (no longer have the Context current). - Context::mIsCurrent is being removed, since it was inaccurate and not thread-safe. For example, when eglTerminate() was called, the eglTerminate()'ing-Thread would "steal" the Context that was current on another Thread to destroy it. 2.) A Display will only be fully terminated and its resources released once all Contexts have been destroyed and are no longer current. Otherwise, Display::terminate() will return if any Contexts are still in use by a Thread. EGL 1.5 Specification 3.2 Initialization If contexts or surfaces, created with respect to dpy are current (see section 3.7.3) to any thread, then they are not actually destroyed while they remain current. If other resources created with respect to dpy are in use by any current context or surface, then they are also not destroyed until the corresponding context or surface is no longer current. With this fix, the app com.netmarble.sknightsmmo can start. This also exposed an issue with GlslangFinalize(), since glslang can only be initialized/finalized once per process. Otherwise, the following EGL commands will call GlslangFinalize() without ever being able to GlslangInitialize() again, leading to crashes since GlslangFinalize() cleans up glslang for the entire process. dpy1 = eglGetPlatformDisplay() | eglInitialize(dpy1) | GlslangInitialize() dpy2 = eglGetPlatformDisplay() | eglInitialize(dpy2) | GlslangInitialize() eglTerminate(dpy2) | GlslangFinalize() eglInitialize(dpy1) | isInitialized() == true Since Display::isInitialized() == true, the rest of Display::initialize() is skipped and GlslangInitialize() is not called. Later, the next test that attempts to compile a program will crash due to glslang no longer being initialized. Finally, this exposed the following tests leaking EGLContext handles: - EGLSurfaceTest::initializeContext() - EGLContextSharingTest.DisplayShareGroupContextCreation - EGLCreateContextAttribsTest.IMGContextPriorityExtension - EGLMultiContextTest.TestContextDestroySimple Other tests were failing to reset the context, preventing the Display from being terminated since there were still references to Contexts owned by the display: eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); Bug: angleproject:6208 Bug: angleproject:6304 Bug: angleproject:6322 Test: EGLContextSharingTest.EglTerminateMultiThreaded Test: EGLContextSharingTestNoFixture.EglDestoryContextManyTimesSameContext Test: Load com.netmarble.sknightsmmo Change-Id: I160922af93db6cabe0ed396be77762fa8dfc7656 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046961 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Gert Wollny ea609fba 2021-08-30T10:43:29 Capture/Replay: Change workdir for debug runs and annotation Append "Debug" to the capture_replay_tests workdir if it wasn't overridden to avoid having to recompile everyithing when running with or without the --debug flag given. Also add annotation for test that only fail when run with the --debug flag. Bug: angleproject:6282 Change-Id: I7c5251d8a6b1a010f3c0950909db60feeb58c611 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129360 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 3f4fc14f 2021-09-02T10:13:42 Capture/Replay: Update expectation for fixed test Bug: angleproject:6180 Change-Id: Ice84b0b104fe0e6b38e3830e9598f2c71efbc738 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3138511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 606de9b7 2021-09-01T12:22:08 Capture/Replay: Handle glInvalidateSubFramebuffer Enable tests that are fixed by this Bug: angleproject:6180 Change-Id: I1efa6c34babf729a22ff42fa0f2d745e75e3521f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3135316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 9d0e2851 2021-09-01T00:42:58 Fix SeparateDeclarations vs struct specifiers Bug: chromium:1237696 Change-Id: I3b00f3797800e814ca83226a8e4f25b2a43cc641 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133824 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b8c50f39 2021-08-25T09:05:03 Support syncing traces to experimental CIPD prefix. This lets us test a retrace without first committing it to the immutable "angle" prefix. Bug: angleproject:5133 Change-Id: Ia52ccffe69faf099d6fc92eaf392610eefa549f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118270 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Aditya Kushwah f015ae81 2021-08-02T12:47:32 Implement onLabelUpdate method. This change will implement the onLabelUpdate method by calling from every TextureStorage object. Instead of using setDebugName, introduced two new functions, setInternalName and setKHRDebugLabel, which will set the internal name and KHR label respectively that will further be sent to D3D string. Bug: chromium:1164111 Change-Id: I401ca9f6e8a2099a8807f0d7f321efe74269f9f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067921 Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Jamie Madill 047e9833 2021-08-30T10:00:51 Traces: Move skia gold Python scripts. Moving this folder up one level allows us to enforce that every subdirectory in the restricted_traces folder is a trace folder. This makes it easier to batch delete or move traces. Bug: angleproject:5133 Change-Id: I5af24ce6c233f50dea2e6ffcaef6d489b03914c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130441 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 58f8c824 2021-09-01T12:36:31 Capture/Replay: Update expectation bugs, remove passing test Bug: angleproject:6334 Bug: angleproject:6180 Change-Id: I7ba4e7d19e394b43e59abbd7d5a89752b6098c10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 8bb1df7d 2021-08-30T17:17:44 Capture/Replay: Clean up tests that pass and add new failures Bug: angleproject:6331 Bug: angleproject:6333 Bug: angleproject:6334 Bug: angleproject:6345 Change-Id: I9f6df69f50f6c8c21eaad09e476aac956c78517a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129361 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 6eeab192 2021-08-27T16:26:25 Vulkan: Don't defer clear for read render target We shouldn't collect deferred clears for the read render target because they get applied to the draw render target. This CL flushes stages updates to the read render target only if it's not the same as the draw render target. This can happen when the read render target is bound to another surface. Bug: b/192327017 Change-Id: I7c9e804f4eff10728aed7aeeaf41ef3869c9bdbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3125462 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Brandon Schade 10846073 2021-08-30T14:41:16 Allow image uniforms to be used in separable programs This change updates mActiveImagesMask in ProgramExecutable for separable programs. Previously image uniforms would only work in the first shader stage. Bug: angleproject:4512 Tests: ProgramPipelineTest31.ImageUniforms Change-Id: Ib35bed94bb8fac883fd67f8bfa052186926d0ce4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3131582 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Jamie Madill a8f1a916 2021-08-26T17:53:56 GetTexImage: Remove syncState calls & add early error exit. Instead of calling syncState to force the Vulkan staged textures to flush, we ensure the Texture is marked initialized by sending a message up to the Texture when there are no more pending updates. Also adds handling for textures with extra mips. Instead of crashing, we now return an error with a warning. Also adds a test with a texture that has extra (outside the mip chain) defined levels. Also adds a test and handling for empty texture levels. This should lead to more consistent behaviour in the trace test serialization logic, where often the prior logic would behave differently depending on if GetImage was called from MEC or from the serialization code. Also updates the generateMipmap logic to syncState after calling initializeContents so the updates happen in the correct order on Vulkan. Bug: angleproject:5133 Bug: angleproject:6336 Change-Id: Iab1c2a22b9f9435e7f3c0f870c86bbed3460482e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123168 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 5090cb22 2021-08-30T22:12:59 Tests: Add Words With Friends 2 trace Test: angle_perftests --gtest_filter="*words_with_friends_2*" Tbr: jmadill@google.com, timvp@google.com Bug: b/198232783 Bug: angleproject:6348 Change-Id: Iacb62540b8680574dc34b7fa299948dd56c76074 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3132340 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3a9df22f 2021-08-29T21:05:04 Tests: Add World of Kings trace Test: angle_perftests --gtest_filter="*world_of_kings*" Tbr: timvp@google.com, jmadill@chromium.org Bug: b/198101940 Bug: angleproject:6339 Change-Id: Id19ebe19d6a3dee3bc7c1c59801e7b9a4dc4fdb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127943 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Gert Wollny ec50e22b 2021-08-27T10:17:12 Capture/Replay: Show some expectation when skipped tests are run These tests were marked "PASS or new tests", when failing which is misleading. Bug: angleproject:6282 Change-Id: I2adf4a29690f8442682e65e5326d173e4e157842 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3129142 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill a29b07d8 2021-08-26T13:11:29 InitializeVariables: Init shader IO block outputs. These variables were not handled in the pass because we had no prior test coverage of them. Some frame capture testing uncovered this gap. The variables must be initialized field-by-field, since there seems to be no defined way to initialize an entire block at once. Bug: angleproject:6326 Change-Id: Ib7aecfb76b97b4236d786b44b3dfb706c573e221 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123228 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny bc89eda7 2021-08-26T21:30:41 Capture/Replay: honor base level when serializing textures Bug: angleproject:6331 Change-Id: Ibd1eba995b0aec02854da5c3c16196c6d079e94d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123407 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 58bb11ca 2021-04-16T12:28:50 Capture/Replay: Multi-Context Support Add support for capturing and replaying multiple contexts. 1.) Create and initialize the Contexts in the share group during SetupReplay(). 2.) Track the Context the command stream is for, and if the Context ID changes, inject an eglMakeCurrent() call to switch to the new Context. 3.) Intercept eglCreateContext() and eglMakeCurrent() to route to either EGLWindow or WGLWindow, depending on the current platform. Specifically, this enables capturing and replaying Asphalt 9. Bug: angleproject:5878 Change-Id: I5bc9b7ece5388ce405ba3f9e9dc3967e78662000 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830145 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 82423ad1 2021-08-27T11:48:22 Cleanup ValidateES2TexImageParametersBase; update tests Non-compressed TexImage entry points consistently reject compressed format enums. They no longer have a special case for four S3TC formats. Expanded coverage of CompressedTextureFormatsTest. Bug: angleproject:5731, angleproject:6280 Change-Id: I058a1e745a0d5257bd5e0333d71b238b0a2e7b96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123414 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 9c271645 2021-08-27T13:07:06 Vulkan: SPIR-V Gen: Fix gl_PerVertex without clip/cull support When the clip/cull distance extension is not supported, the gl_ClipDistances and gl_CullDistances arrays were given a size of 0, which made them translate as OpRuntimeArray. This change makes sure that these arrays always have a non-zero size. Bug: angleproject:4889 Change-Id: I8d2ffe3a7c1df9316e91eebc2aa53bdc2c87ccc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123354 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 77151a6c 2021-08-26T19:32:35 Cleanup ValidateES2CopyTexImageParameters; add test Compressed and depth formats are rejected earlier with ValidateCopyTexImageParametersBase. Added a new Texture2DTest.CopyAfterCompressed test to ensure that validation code for non-subImage case does not fail new assertions. Bug: angleproject:5731, chromium:1216276 Change-Id: I11d2ac3389418731b6cc6e2bd5c9655b1590b02d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122156 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Jamie Madill edc8e852 2021-08-26T09:58:08 Capture/Replay: Skip one additional ES3 test. RenderbufferMultisampleTest.IntegerInternalformat/ES3_Vulkan_SwiftShader Also sorts the list of crashed tests alphabetically. Bug: angleproject:6180 Change-Id: If329c4a47188a8ca6ffd9bffaba588439344b06d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki f162e4bc 2021-08-26T14:44:03 SRGBFramebufferTest: Add test that used to fail on Vulkan. This commit adds a test that reproduces a Vulkan validation error found in several suites of the Chromium CI. The error was caused by enabling the VK_KHR_image_format_list extension on SwiftShader and thus exposing the GL_EXT_sRGB_write_control GL extension. Commit bd19620fcd599947a2fada3e02061d02d690d9eb reverted the change and disabled the extension for all platforms besides AMD and ARM. The issue was fixed in angle by either of the following commits: cf090996c7850074d76ce8408af4661a3c91e5e2 e70a1444af85c77a39e82a69569f723098c8d37c To reproduce the Vulkan validation error, both commits need to be reverted. Bug: angleproject:5281 Bug: angleproject:6244 Change-Id: Idd7d8d955004506a5f4b1b822ad568c727e19f1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122645 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 41f7dedd 2021-08-05T16:48:17 Reland "VulkanExternalHelper: Use VK_KHR_image_format_list extension." This reverts commit bd19620fcd599947a2fada3e02061d02d690d9eb. Bug: angleproject:5281, chromium:1233561 Change-Id: I0dc2a142dc7de83c0bdbf2256e9fb372e56d177a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122124 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny b3d062da 2021-08-26T20:41:42 Capture/Replay: Handle glCopyTexture3DANGLE Bug: angleproject:6331 Change-Id: I704a34587600e612dd1d8d16b87225a7c66d4e82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122164 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 78e0ae81 2021-08-25T18:59:15 Capture/Replay: Add specific bug IDs for crashing tests Bug: angleproject:6313 Bug: angleproject:6314 Bug: angleproject:6315 Bug: angleproject:6324 Bug: angleproject:6325 Bug: angleproject:6329 Bug: angleproject:6331 Change-Id: I881e19f9501f4b6b1a80df120b5772dbc24044b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118549 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5e1bd524 2021-08-26T10:28:57 Perf Tests: Fix histogram units. There was another place where we needed to set "smallerIsBetter". Also prefer "ms" instead of "msBestFitFormat". Bug: angleproject:6090 Change-Id: I489089ae03f46b4c427821019917294d2d01dbcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao 24a1650a 2021-08-23T18:48:24 Vulkan: set TextureVk::mImageUsageFlags for extern mem backed texture For external memory backed texture, mImageUseFlags are never set. Not exactly sure what harm will cause, but I am seeing when TextureVk::syncState is called we are incorrectly recreating storage due to we think there is usage flags change. The other fix here is the test VulkanExternalImageTest.ShouldClearOpaqueFdWithSemaphores is not using deviceMemorySize and causing VVL to complain. Bug: b/197578056 Change-Id: Icca89de973ee3cb93b7e0fe8083ae674df81cae8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115333 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev a5e95c07 2021-08-26T02:40:10 Adjust TexStorage2DEXT validation; update tests - Use common texture format support function. - Enforce size restrictions for compressed formats. - Expand CompressedTexture* and WebGLCompatibilityTest.CompressedTexImage* tests. - Adjust GL_DEPTH_COMPONENT16 support condition on ES 2.0. - Adjust GL_DEPTH24_STENCIL8 support condition on ES 2.0. - Adjust GL_RGB10_A2 support condition on ES 2.0; adjust VulkanExternalImageTest.TextureFormatCompatChromium* tests. - Do not use integer formats in TextureRectangleTest.TexStorage2D. Bug: angleproject:5731, angleproject:6230 Change-Id: I2f288f459b511cc004601238df717aa78433be7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118553 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill dd5994df 2021-08-25T18:39:31 Capture/Replay Tests: Fix Renderbuffer readback. Renderbuffer readback would use an unimplemented size function, ending up with a zero sized buffer. Also cleans up some of the code for reading back both Renderbuffers and Textures. One Depth/Stencil test that was crashing due to a recent change to read back depth data is now failing comparison because of missing combined depth/stencil support. Also updates the capture/reply self-test to handle ASAN-only test expectations. Bug: angleproject:4688 Change-Id: Idb6c05d15329f405f44502c2e5282764c7f780fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119057 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f7b2ab5c 2021-08-25T19:00:44 Perf tests: Add 3 new skips after updating perf run times. MultisampledRenderToTexturePerf on P4 and Intel Linux TextureUploadPerf on Intel Linux Bug: angleproject:5120 Bug: angleproject:6319 Bug: angleproject:6320 Change-Id: Ia201a4d62e95f82ec42f64abebc4222e31d41e9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119058 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c61fd919 2021-08-25T08:29:55 Fix array texture readback with GetTexImage. According to the desktop GL specs, GetTexImage retrieves entire mips of a texture for 2D array and cube array textures. The prior code was only retrieving one layer and didn't have any way to get the layers other than layer zero. Fix this by using similar logic to how we read back 3D textures. Also adds regression tests to GetImageTest. Bug: angleproject:5133 Bug: angleproject:6132 Change-Id: I8b22bc10ac1fdfe6389ac309450b92681f087cda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118266 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott 39e58580 2021-08-25T14:50:49 Move some end2end suppressions to expectations file With 2 previous Wrangler-suppression CLs, I followed the pattern initially done for bug 5945. Jamie pointed out that these are better handled in the expectations file. This CL moves all 3 suppressions. Bug: angleproject:5945 Bug: angleproject:6318 Change-Id: Ib70c3ede4c1fcd92cfd7dc65f2b37e221380fefe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119683 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi f9d261f5 2021-08-25T10:23:48 Translator: Don't promote precision from initializer Take the following GLSL code: precision mediump float; uniform highp float u; float x = u; When `x` is declared, its precision is mediump due to `precision mediump float`. Its initializer (`u`) however is highp. Previously, ANGLE generated the following code to ensure the precision of the initializer is applied to the variable: highp float x = u; Compiling the same code with glslang and looking at the SPIR-V (both SPIR-V for OpenGL and SPIR-V for Vulkan), such a promotion is not done. The generated SPIR-V is equivalent to: mediump float x = u; This change aligns ANGLE's output with glslang's by outputting the precision of the variable itself instead of the precision of the assignment (which is highp due to promotion from the two operands). Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: I6f338a865c0a7710329fc13bc171fd245dd30b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118965 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 0d80bc8c 2021-08-25T13:47:05 Suppress EGLBlobCacheTest.FragmentOutputLocationKey on Metal EGLBlobCacheTest.FragmentOutputLocationKey is flaky on mac-rel Bug: angleproject:6318 Change-Id: I67c8f09ae75498d29f923d5c2d6cd52ca86bc249 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119679 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott bd5ac5df 2021-08-25T13:30:55 Suppress MultithreadingTest.MultiContextClear on Linux+Nvidia MultithreadingTest.MultiCreateContext/ES3_Vulkan_NoVirtual is flaky on "Linux FYI GPU TSAN Release" with linux-clang-rel NVIDIA, so it's being suppressed for now. Bug: angleproject:5945 Change-Id: I7f169641e19c893542ad8a51b81861b38d16a587 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119677 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill 6290a86b 2021-08-25T09:34:19 Capture/Replay Tests: Add lock around ninja calls. This should prevent huge numbers of calls to goma from causing test flakiness. Uses the Python multiprocessing.lock. Bug: angleproject:6299 Change-Id: I60fb38aaad363204de12d06f9d155bacb7ddd928 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118269 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1b2febb9 2021-08-23T12:39:16 Trace Tests: Refactor calibration logic. Instead of calling glFinish every step we now run a few warmup loops to try and figure out the right step interval. On each run we refine the step interval until we reach a number that completes in the specific time after a single glFinish call. This method will use the specified test time much more consistenty. Also a couple other improvements. Will use more test time on the bots because previously they were using a calibration/warmup time of 1 second per run loop, and this bumps it up to 3 per run loop. Long explanation below. What we did before: step() glFinish() step() glFinish() .. repeat for "gCalibrationTime" seconds then take the number of steps, the actual time ran, and compute an estimate for "mStepsToRun". When we run for real, we go: step() step() step() .. repeat for "mStepsToRun" steps. glFinish() this has an obvious performance difference, because after each step() (one frame in a trace) you had a complete stall. The new code first does the above to compute a tentative mStepsToRun, then uses the results of the second run to compute a much more accurate mStepsToRun by using the "actual" time it took to run the estimate. Bug: angleproject:6090 Change-Id: I0ff19873580e13f2af5a145a21f5b1c59fb15795 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny c4d4bd36 2021-08-24T09:13:41 Capture/Replay: Add ES3_Vulkan_SwiftShader expectations Bug: angleproject:6180 Change-Id: I47d68d8a6e21fa4b89e48898f27c365b51f70404 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118547 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 47279c72 2021-08-15T23:20:32 Adjust compressed texture validation; add test - Format check happens before target check to accommodate for unknown / disabled format enums. - PVRTC1 and ETC1 enums are not allowed for 2D Array and 3D targets. - PVRTC1 sRGB formats require enabling two extensions. - New noCompressedTexture3D limitation for older Metal versions. The test checks that only the appropriate entry points are affected after enabling compressed texture extensions. Bug: angleproject:5731, angleproject:6280 Change-Id: I4943cd3a82f60f9348215caa8639e0bc3e8b45db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094018 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 72ecb371 2021-08-24T11:17:12 Capture/Replay: further rework of replay script: * Simplify the code by using dictionaries to store the batch and final results * Use unified result specifiers * Group the unexpected result output by result type Bug: angleproject:6282 Change-Id: I90107efdeb51e183aa122ef67d1a646c8c1fd86a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114655 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 800e82c6 2021-08-23T11:05:23 Translator: Validate precisions When declaring a variable, a struct field, function parameter etc, there's a precision necessarily applied to the entity being declared. AST Validation is added to enforce this. Intermediate nodes derive their precision from these entities automatically. Consistency of intermediate nodes is not validated. This is because AST transformations replace a node with a transformed one, and that may not have the same precision. Take the following code: mediump float x = ...; mediump float y = ...; ... x + y ... and assume is transformed as such: highp float driver_uniform; ... (x * driver_uniform) + y ... The addition was originally done in mediump, but would seemingly need to be done in highp after transformation. There are a number of options here: - Make sure that when nodes are replaced, the precision is unaffected. This can be intrusive, requiring temp variables. - Bubble up the new precision - Accept the discrepancy ANGLE opts for the last option, which actually respects the original shader's intended precision for operations, even if some transformation needs to temporarily evaluate an expression at a higher precision. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Ibcde3a230de159157783b1c6d5ef1cd63ceb4d8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114027 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d240f104 2021-08-23T16:25:20 Perf Tests: Update histogram units. Use "ms_smallerIsBetter" instead of "msBestFitFormat". This matches the requirements of the online docs as well as ensuring the dashboard knows which way to track the regressions. https://chromium.googlesource.com/catapult/+/HEAD/docs/histogram-set-json-format.md Bug: angleproject:6090 Change-Id: I0b234725b55d4abb1dd1e8153e132fdbcbad1c60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 023867c8 2021-08-24T11:42:07 Tests: Add Wordscapes trace Test: angle_perftests --gtest_filter="*wordscapes*" Tbr: jmadill@google.com, timvp@google.com Bug: b/197646838 Bug: angleproject:6310 Change-Id: Idb5b8fe7e30f93ab0da0a749ee691eaeed4eac63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116367 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 460618ad 2021-08-20T18:34:10 Refactor EGLMultiThreadSteps.h -> MultiThreadSteps.h The class ThreadSynchronization is very useful when synchronizing multiple threads in ANGLE tests, so it's being moved from egl_tests/EGLMultiThreadSteps.h to test_utils/MultiThreadSteps.h. Bug: angleproject:5971 Change-Id: I5df469aa68b79cf72d95e0276f42ab33a091314e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111887 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 0e06d2f3 2021-08-23T20:18:48 Tests: Add Scrabble Go trace Test: angle_perftests --gtest_filter="*scrabble_go*" Bug: b/197580447 Bug: angleproject:6308 Change-Id: I624c5f201dbadb6b51fe39cbb832da2454c3cb39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114492 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 637e543f 2021-08-23T13:28:52 Capture/Replay: beautify the result output Instead of writing a diff between expected and real output list the tests that have results that differ from the expectations with their real and expected results. While at it also clean up the result printing a bit. Bug: angleproject:6282 Change-Id: Id95de9aa659b39f3a2fe3f63402e285ad875a4e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3113553 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gregg Tavares a141cb52 2021-08-23T13:52:57 Test vector and matrix scalarization does not affect output Vector and matrix scalarization was turned off because it affects the rendering output. We need to turn it back on in some form for Metal. This test is added to check that rendering output is not affected. Test adapted from WebGL CTS test https://github.com/KhronosGroup/WebGL/pull/3214 Bug: angleproject:6306 Change-Id: Ic1db18920064726761d6168f9dd5111772028598 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115013 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill 13e52124 2021-08-23T08:44:13 ANGLEPerfTest: Fix a couple comment typos. Bug: angleproject:6090 Change-Id: I2c1a2f4c6b25bb1d4e462bcb20bd788529e255e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114605 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 259ae49c 2021-08-20T10:51:31 Capture/Replay: Isolate trace export definitions. This small fix to the export header means we no longer include the "restricted_traces_autogen.h" in each and every trace file. That means when we change/add/remove a trace we no longer need to recompile each and every trace. Speeds up iteration time when working with the traces. Also fixes inconsistent path generation on Windows. Bug: angleproject:5133 Change-Id: I357d65477a683455d01379379e2e98431af2ed55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110749 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 8933a6e3 2021-08-17T12:09:21 Capture/Replay: Update expectation bug number Bug: angleproject:6166 Change-Id: I7bdb1778fc78d9c1e433b9658225322ff6c21030 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097380 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 14656a5d 2021-08-23T07:23:29 Skip all dEQP-EGL.functional.resize.surface_size on Linux/NV. This seems to be a persistent flake in the test suite. Bug: angleproject:5753 Change-Id: I4917ea54bba5ae1a01606038698e099ee8559f47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3112198 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 210773db 2021-08-05T10:41:59 Translator: Be more explicit about precisions GLSL ES requires that every symbol (variable, block member, function parameter and return value) is appropriately qualified with a precision, either individually or through the global precision specifier. Some tree transformations however produced symbols with EbpUndefined precision. In text GLSL output, these would produce unqualified symbols which was often incorrect. In this change, the transformations are made to produce explicit / more consistent precisions. The validation (that caught these issues) is not included in this change as there are still a few corner cases left to address. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Icca8a0a5476f8646226e7243aa8f501f44acc164 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075127 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2f45d93d 2021-08-18T16:58:44 Capture/Replay: Init shader outputs during self-tests. This forces all uninitialized variables to have default values. For instance if the application doesn't initialize the output color, or a varying that's use in the output, this will ensure we don't use any undefined values in the computation. Found when working on a re-trace of T-Rex, which doesn't write to the alpha channel in the final rendering pass. Also fixes undefined values in GLSLTest.InactiveVaryingInVertexActiveInFragment. Bug: angleproject:5133 Change-Id: Ia291338e5adf23dab5263cb2ebe737dc05852d3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b196eec0 2021-08-20T12:32:03 translator: Fix InitializeVariables with gl_ClipDistance. The extension allows for the shader to redeclare this variable with a different size. This would sometimes put the tree in an inconsistent state when used with the InitializeVariables feature. Fix this by using the user declaration of gl_ClipDistance when available. Found when working on trace validation, where using the init output variables option in the compiler would then cause tree validation to fail for one specific test. Test: ClipDistanceTest.ThreeClipDistancesRedeclared Bug: angleproject:5133 Change-Id: I42c9bfbe313826ac5d391068d9fc18eb5793375f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110752 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d2d1f41f 2021-08-16T08:05:55 Add EGL extension to create window with a swap interval set. On Vulkan this allows creating a window once without needing to recreate the swapChain after we specify the swap interval. Also adds a simple regression test and EGL enum assertion printing formatting. Bug: angleproject:5133 Change-Id: I72af124cb0e8f7cddfa810988a9862c0f36a0e46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097806 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill f65d6acc 2021-08-18T12:20:40 Test Runner: Determine slow tests from test expectations. This updates the test harness to handle slow test based on the TIMEOUT test expectation. It removes the "registerSlowTests" API in favor of using the test expectation files. Also updates some of the timeout handling for various angle tests, including on SwiftShader for multithreading tests. Increases the timeout for tests in a batch to attempt to fix the problem of the first test being much slower. Bug: angleproject:6261 Change-Id: I7427344da5a0c1ea26d8c2d6eb0e9be2557b56e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104007 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jonathan Ross 6a8abffc 2021-08-19T17:24:24 Turn off ProgramBinaryES3Test direct-to-Metal tests We enabled these tests, however they are failing consistently on Intel. Original change: https://chromium-review.googlesource.com/c/angle/angle/+/3105442 Bug: angleproject:5505 Bug: angleproject:6301 Change-Id: Iddc36400d55e8b06b15663c2d9bc00df7e04ce02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3107508 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 762db3c0 2021-08-18T09:06:42 Capture/Replay: Improvements to testing script. Using new Python APIs for multiprocessing logging. Also updates some logging to be simpler / more consistent. Also a few other small fixes. Bug: angleproject:5133 Change-Id: I4acbc9173a3891989f409cc499c8e6431e712c0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104006 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Kenneth Russell 8ffb4602 2021-08-18T16:55:56 Turn on the first few direct-to-Metal tests by default. All of the subtests of these previously-asserting tests are passing with --bot-mode: ProgramBinaryES3Test UniformTest WebGLGLSLTest so start running them on ANGLE's CQ. Bug: angleproject:5505 Change-Id: Ibdaa814cec846379e2c073117efa816fc871be33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev eb458fbe 2021-08-18T14:17:31 GL: Add emulateImmutableCompressedTexture3D workaround The workaround replaces glTexStorage3D with a series of glCompressedTexImage3D calls. Bug: chromium:1060012 Change-Id: I08e026e68dd697654cc4ab8feb190a35e56ea133 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103070 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill 02005fdc 2021-08-18T12:22:58 Fix Texture2DTest.TextureSize. This CL fixes a number of issues: fixes the calls to texture size query, fixes an uninitialized memory read, fixes some incomplete texture cases, and fixes an out-of-bounds with the color array. It also cleans up the test logic, and splits the test into four sub-tests so it runs more smoothly in CI. Noticed while working on the capture/replay harness with ASAN. Bug: angleproject:5982 Change-Id: I15459381b92332db5adad2bd91c0b9eb0f8b5961 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104005 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 839d5318 2021-08-16T08:29:28 Capture/Replay: Changes to MEC first frame capture. Recent changes made it so it was impossible to trigger MEC *after* the first frame and *before* the second frame. Instead it was only possible to capture *before* the first frame or *after* the second frame. Makes it possible for the retracing script to do identical captures. Also includes a number of refactorings to make it simpler to follow the code, including renaming methods, and removing some extra output files. Bug: angleproject:5133 Change-Id: Ice6a189eb9f4d53e8ee1ba39beb537af2ef5fd9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097807 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill e3f2acb9 2021-08-18T08:03:26 Trace Tests: Skip sakura school sim on Win/Intel. This test seems to produce non-deterministic rendering/flakiness. Bug: angleproject:6294 Change-Id: I5cb72318c865f21814d114fd13a18dfd44e5db60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103506 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade cc52e7cd 2021-04-19T21:37:20 Prevent separable programs from relying on attached shaders Previously, several linking functions were reliant on the HasAttachedShaders interface. The information stored there has been moved to ProgramExecutable. Linking information such as uniforms and uniform blocks from attached shaders is now also stored in temporary pending variables inside ProgramExecutable. Bug: angleproject:5506 Test: ProgramPipelineTest31.VaryingLocationMismatch* Test: GeometryShaderTest.RecompileSeparableVSWithVaryings* Test: ProgramBinaryES31Test.SeparableProgramLinkedUniforms* Change-Id: I93591431959c1c4c547ada92ec358369a3417723 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Jamie Madill d55d57ac 2021-08-17T14:16:07 GN: Disable unreachable code warnings in GLES 1 tests. Bug: chromium:1240679 Change-Id: Ib140cbd32386a7836acf9a4f477693b14bf3c6d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100590 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 17d41054 2021-08-17T13:22:46 Skip a flaky test on SwANGLE. The test was already marked flaky on Windows. Mark it TIMEOUT everywhere since likely the root causes are the same. KHR-GLES31.core.arrays_of_arrays.SizedDeclarationsPrimitive Bug: angleproject:5755 Change-Id: Ief208a5a2cb533e5ba4b88ef65e82a2a14dcf0b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100585 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 98e2410d 2021-08-17T07:52:03 dEQP: Remove Pixel 2/XL test expectations. We no longer support Vulkan on the P2. Bug: angleproject:2808 Bug: angleproject:3683 Bug: angleproject:3816 Bug: angleproject:4024 Bug: angleproject:4097 Bug: angleproject:4159 Bug: angleproject:4166 Bug: angleproject:4194 Bug: angleproject:4219 Bug: angleproject:4344 Bug: angleproject:4822 Bug: angleproject:5340 Bug: angleproject:5370 Bug: angleproject:5572 Bug: angleproject:6008 Bug: b/161540999 Change-Id: Ie2cb634201c2d604cb247eb0369d5e90d7600e8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3098490 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 130a8b63 2021-08-16T17:09:10 Perf Runner: Properly merge histograms. The prior method was emitting 5 histograms per test. The new script method merges the 5 histogram samples together and recomputes the running statistics. Should improve reporting on the dashboard. Bug: angleproject:6090 Change-Id: I58a5e020f3a3257a8545df2785bc3eaa811ee38e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3096550 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jason Macnak 0be285c6 2021-07-20T11:36:22 Vulkan: Flush read RT if color attachment is the read buffer Prior to this change, the following sequence: * eglMakeCurrent(..., draw=surface1, read=surface1, ...); * glClear(...); * eglMakeCurrent(..., draw=surface2, read=surface1, ...); * glBlitFramebuffer(...); * eglMakeCurrent(..., draw=surface1, read=surface1, ...); * glReadPixels(...); would end up with the `vkCmdClearColorImage()` on surface1 occuring after the `vkCmdBlitImage()`. This CL updates flushColorAttachmentUpdates() to flush any staged updates to both the read and draw attachments, since they can be different if different read and draw surfaces are bound. Adds a test which is a small repro of android.opengl.cts.FramebufferTest#testBlitFramebuffer failure. Bug: b/192327017 Test: EGLSurfaceTest.BlitBetweenSurfaces/* Change-Id: Iabad26dfcd8633e9dcfcee2fb16ba352bc3931d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078980 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gert Wollny 4aedb71f 2021-08-11T17:00:41 Capture/Replay: Force count and length in CaptureShaderSource The problem ist that there is a mix on how the captured shader source is written out, in some cases one string is written, e.g. with the test ZeroShaderLength, and in others case an array if strings is written, a with MixedShaderLengths. Be constistent about it and capture the shader source always as one string and handle it like this, and override the count to be 1 to reflect this and set the length to {-1} to use the new accumulated shader strings automatically. Bug: angleproject:6268 Change-Id: Ide927db1a6e4facdbab4d35c023b9bce4b6c30d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087448 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi d20afde4 2021-08-05T23:06:44 Vulkan: Retain precision of uniform variables When gathering in a uniform block, the precision of default uniforms was dropped. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Ie6a8e2e7cef7cd3808cee08d20f886fc4e762cd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076124 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 1fb846cb 2021-08-03T01:57:49 Validate texStorage dimensions with compressed formats Bug: angleproject:6230 Change-Id: I501ec1e6974bdc7e6731dcb88045edb0aa22b888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067329 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell d8cb9967 2021-08-04T18:15:51 In WebGL, constrain base level of compressed textures. Enforce that if a mipmap level > 0 is specified for a compressed texture, that it implies that the size of the base level of the texture is a multiple of the format's block size. Makes the test changes in https://github.com/KhronosGroup/WebGL/pull/3304 largely pass. There are some needed follow-on fixes to that PR, and this CL changes a sub-test result in the existing S3TC and S3TC-sRGB tests which will need to be suppressed Chromium-side first. Bug: angleproject:6245 Change-Id: I7723d7882091b78a353d8d273e80b819dd384021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072568 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 728baa50 2021-08-13T18:47:50 Revert "Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal" This reverts commit bf4eb2636ebae19cfa8d3edb9828bdb464360df5. Reason for revert: branch created before angle_end2end_tests_expectations.txt existed, need to use the old-fashioned suppression method. Original change's description: > Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal > > Fails in M92 branch, e.g. > https://ci.chromium.org/ui/p/chromium-m92/builders/try/mac_optional_gpu_tests_rel/67/overview > > Bug: chromium:1234829 > Change-Id: I74b9694a16fccc4ba358db5dc1168cf9e21ecab0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094707 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:1234829 Change-Id: Ifd01947e0ae79619cec3290e4afe1489933a650e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093248 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>