src


Log

Author Commit Date CI Message
Yuxin Hu f2f17bad 2022-08-31T17:40:22 Vulkan: Fix Framebuffer Fetch Test Failure If permanentlySwitchToFramebufferFetchMode is enabled, mIsInFramebufferFetchMode will remain true. If we switch from a non-framebuffer fetch program to a framebuffer fetch program, the condition if (mIsInFramebufferFetchMode != hasFramebufferFetch) doesn't hold, and we will miss setting the dirty bit in OnColorAccessChange, and miss updating the color attachment resourceAccess value. This causes test failure when running the test FramebufferFetchES31.DrawNonFetchDrawFetchInStorageBuffer_Coherent. The color attachment resourceAccess remains unused after the first draw call that uses a program which doesn't read/write from the framebuffer color attachment. The second draw call uses a program that needs to read from the framebuffer color attachment, however, since the color attachment access value is unused, it will use LoadOpNone, making the color attachment value not availble for the shader program to read from. This change fixes the failure by setting the bit dirty whenever the program uses framebuffer fetch mode, given the condition that feature permanetlySwitchToFramebufferFetchMode is enabled. Bug: angleproject:7583 Change-Id: I240381766d75f6e73ea9c20503b2344cc816cbc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864127 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Chris Dalton d0fad24c 2022-08-30T23:24:06 Add noncoherent PLS tests Coherent pixel local storage is so widely supported now that we have a testing gap on the noncoherent version. This change adds backend features to disable the extensions we use for fragment synchronization and tests that disable them. Bug: angleproject:7279 Change-Id: If71a1a1016922cb9e3b68024dd2616483c700395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866163 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao c6ad305c 2022-08-25T11:53:46 Vulkan: No depth load/store if depthFunc==ALWAYS/NEVER && mask==FALSE If depthFunc is set to always or never pass with depthMask disabled, and the entire render pass is drawing with that state, then there is no need to load or store depth value. Bug: b/243711628 Change-Id: I71d470bda49abc48a4a6e20895b7e056c33fa33a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858143 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Geoff Lang f602278c 2022-08-30T10:31:07 Vulkan: Parse human readable ARM driver versions. Update two workarounds to be gated on driver versions with fixes. Bug: angleproject:7370, angleproject:7556 Change-Id: I78e1cebb756b06c7fc926fb9ab27357cf3c7ce4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863162 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yiwei Zhang e9cb83dd 2022-08-27T06:20:20 Vulkan: disable EGL_EXT_image_gl_colorspace sRGB texture upload for AHB backed external storage is broken. Disable EGL_EXT_image_gl_colorspace until that gets fixed. Bug: b/205995945 Test: SingleLayer_ColorTest_GpuSampledImageCanBeSampled_*_UNORM_sRGB Change-Id: I1be51f9f3528cd864709cf48ab0d949bb23cdfca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859694 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao 7428369a 2022-08-29T17:59:38 Vulkan: Use macros for load/store Op check Use macro instead of inline function for result check so that the correct line number gets print out for the failed check. Bug: b/243711628 Change-Id: I1141f6a63fd01bb9fe0cf5c06b81b378e8acc08e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864347 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lingfeng Yang c8b0caf1 2022-08-29T15:08:22 Vulkan: Don't try to guess format mapping Either the implementation should tell us what Vk format it is, or it returns VK_FORMAT_UNDEFINED and we should take the "YUV" path, regardless of how un-YUV-like the format ID enum suggests it is. Bug: b/223456677 Change-Id: I979e9d19c466005350aeb8f88f2e0c092b545d51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864024 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Lingfeng Yang <lfy@google.com>
Alexey Knyazev 00411e2c 2022-08-25T00:00:00 Support provoking vertex state query When ANGLE_provoking_vertex is enabled, glGetIntegerv should accept GL_PROVOKING_VERTEX parameter name. Bug: angleproject:2829 Change-Id: I6316de2c6b4cdbf4365df3ffb88f75c4b095f99c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858264 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Kimmo Kinnunen c10326f1 2022-08-26T11:37:59 Make shader dump code compile after ShCompileOptions API change Make the output directory configurable with the define that turns on the dump feature. Write each aggregate struct in its own block of memory, so that if an aggregate changes, the binary format does not change so easily. Choose the filename based on the contents hash, so that multiple dump sessions do not produce excessive amount of dumps. Bug: angleproject:7612 Change-Id: Ifccd2d83e3361dc4633b601fd18f425c9ec44790 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858263 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 2c373771 2022-08-30T10:08:44 Add include atomic, missing in Skia builds. Bug: angleproject:7602 Change-Id: I024981c880ed073c3a603f47b538d2375a911e1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863161 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuxin Hu 70c434b2 2022-08-29T17:09:23 Check max shader storage blocks support in test If the shader source code uses shader storage buffer objects, we need to check the corresponding GL_MAX_*_SHADER_STORAGE_BLOCKS is at least of size 1. Bug: angleproject:7583 Change-Id: I7f0e537e4dcfca8414cccb0088be8d34735633d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863111 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ac19624e 2022-08-26T21:29:53 Vulkan: Handle suboptimal like out-of-date If out-of-date can recreate the swapchain, so can suboptimal. Do so to better support window resizing on desktop. Note that on Android this was already being done. Bug: angleproject:7615 Change-Id: I3d1ce8ca45b002e5382e31fda003f02753a2c94e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859409 Reviewed-by: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 64f41972 2022-08-25T11:16:23 Use canonical gl.xml and update enum to string function. This replaces our copy of gl.xml with the upstream canonical copy. Note that one patch is required before we can remove ANGLE's copy: https://github.com/KhronosGroup/OpenGL-Registry/pull/538 Because the upstream version uses a new method of enum groups, we also update our enum-to-string generator to use the new groups. This new code includes many more enums and groups in the mapping. Bug: angleproject:6461 Change-Id: I1c0ab44c36afce8db04c9661b377bbe5762c913e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856649 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sunny Sachanandani 32072905 2022-08-25T15:17:13 d3d11: Support rendering to GL_TEXTURE_2D target for YUV images YUV D3D11 texture plane EGLImages can be bound to TEXTURE_EXTERNAL_OES, but don't support rendering because ExternalImageSibling11::IsYUV() returns true. While it might appear that IsYUV() should return true for YUV D3D11 textures, the EGLImage siblings are actually for individual planes which are R/RG 8/16 and they can indeed be bound as render targets if we just return false for IsYUV(). This CL makes IsYUV() return false and adds a test for rendering to YUV EGLImages. Bug: angleproject:7610 Change-Id: I6c95a9521448e83a53153c1efaca70bd73e49818 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856660 Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov f18b6335 2022-08-29T11:53:01 Replace std::this_thread::get_id() use with a unique thread id. std::this_thread::get_id() gets recycled. It's pthread_self() under the hood on Linux and Android which gets recycled, for example when one thread terminates and another one starts it is likely to return the same value. Bug: angleproject:7602 Change-Id: I83d818bc17ead5cce8bce7f7d88fc1c7c0fa860c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855041 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9fb05a88 2022-08-26T22:26:33 Vulkan: SPIR-V Gen: Remove suppression of passing tests Some tests were suppressed during development. Try enabling them again. Bug: angleproject:6210 Change-Id: I7b52307a26fb9351773a591901a9c5bbb4703466 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859411 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Solti b9df3551 2022-08-15T17:42:53 update CopyTextureCHROMIUM to match Chromium Overview: This CL makes the validation of *CopyTextureCHROMIUM* and *CopySubTextureCHROMIUM* in ANGLE behave consistently with CHROMIUM. The new behavior is: ``` INVALID_OPERATION is generated on ES 2.0 if <sourceId> refers to an external texture (OES_EGL_image_external), <destId> refers to a texture with an integer-type internal format, and the underlying context does not support OES_EGL_image_external_essl3. ``` Tests: ===== CopyTextureCHROMIUM ===== add a test in ES 2.0 to test the API with the error case. ===== CopySubTextureCHROMIUM ===== add a test in ES 3.0 to test the error case. in ES 2.0, the error case cannot happen because "glTexImage2D()" doesn't support integer formats - ran all CopyTextureTest on gLinux: ```autoninja -C out/Debug && xvfb-run out/Debug/angle_end2end_tests --gtest_filter=*CopyTextureTest* --verbose``` - ran all CopyTextureTest on Android test phone: ```autoninja -C out/Android && out/Android/angle_end2end_tests --gtest_filter=*CopyTextureTest* --verbose``` Bug: angleproject:4228 Change-Id: I1cb77c72750add5f399013d3d30eed7acf8d0a50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826166 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 4b33633a 2022-08-26T16:16:50 Capture/Replay: Delete binary data in FinishReplay via callback Delete callback fixes b/179188489 as delete[] will get called from the same module where allocation happens. When decompress/delete callbacks not provided, new[] and delete[] are called from the fixture. AFAICT, gBinaryData == nullptr every time, even with a single test and --gtest_repeat=N, so we never delete the uncompressed data. When running multiple tests locally, I see RES usage grow significantly on Linux which this CL fixes. I don't think this matters for bot runs as we run tests one by one there. Bug: b/179188489 Change-Id: Iee3bccb9d6d72c315c4358b70ec9c3c0ac963258 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858185 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov cd0f642e 2022-08-29T17:25:33 Fix loading end2end test expectations on iOS Need to be packed and found in the application bundle. Bug: angleproject:5417 Change-Id: Iaf84ced0de6674a807aa747e71dbbf2715bbd6fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3860831 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Eddie Hatfield ba4b6913 2022-08-23T09:34:27 Fix data race in BlobCache * Re-enable shader cache feature * Improve BlobCache thread-safety test * Improve EGLProgramCacheControlTest to not check the size of the BlobCache, since the shader cache interferes with this. * Include the arguments to ConstructCompiler() and Compile() in the key hash for the shader cache. Bug: angleproject:7036 Change-Id: Ied4e11f9160552f2f9358d99b5656315239ba856 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851161 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Kimmo Kinnunen 5ef3960b 2022-08-29T12:50:26 Use correct seed type for XXH32 fuzzer Patch by: David Kilzer <ddkilzer@apple.com> Use unsigned int as the seed type as expected, instead of unsigned long long. Helps compiling with strict compile flags. Also fix a bug where short buffers would test XXH64 instead of intended XXH32. Bug: angleproject:7618 Change-Id: If63318fbc932349db4ab82aa8abadc9bab655989 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3860830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Shahbaz Youssefi bec40d76 2022-08-26T21:28:53 Vulkan: Set SPIR-V Generator version to 1 Let's call it officially no longer experimental. Bug: angleproject:6210 Change-Id: I7c5ae91dff0ff189f93e67fe1cd0721771c67275 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859410 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu ac2aeccd 2022-08-25T17:43:43 Check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS in test If the vertex shader uses shader storage buffer objects, we need to check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS is at least of size 1. Bug: angleproject:7185 Change-Id: I98d83f9f0cc30e92fdcaee15541fdde96652b38e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858144 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu cb618b3d 2022-08-25T13:30:26 Vulkan: Remove useRelaxedPrecision Bug: angleproject:7488 Change-Id: I30ca3e2740d8810a01615ca778eb072d77ad34d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856658 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 2d48a370 2022-08-26T11:11:19 Vulkan: Support passthrough of colorspace attributes On Android, the EGL loader supports and implements the necessary functionality for the following colorspace extensions - 1. EGL_EXT_gl_colorspace_display_p3 2. EGL_EXT_gl_colorspace_display_p3_linear 3. EGL_EXT_gl_colorspace_display_p3_passthrough 4. EGL_EXT_gl_colorspace_scrgb 5. EGL_EXT_gl_colorspace_scrgb_linear Add support for "EGL_ANGLE_colorspace_attribute_passthrough" extension that allows vendors that support wide color gamut to passthrough colorspace attribute values to the underlying Vulkan implementation to be used during VkImage creation. Bug: angleproject:7319 Test: PbufferColorspaceTest.CreateSurfaceWithColorspace* Change-Id: Ibd78bb5fea4ede394f4dc5027c1d4a730746f2ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855048 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield 98d5db70 2022-08-25T16:50:38 Add capture functions for desktop GL entry points The parameter capture functions are left unimplemented for now. Bug: angleproject:7533 Change-Id: Ief356e7401805cf9b417e1f5cc3790011237e03f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858618 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Chris Dalton 6ba8582b 2022-08-05T16:16:01 Add a fix on all backends for images as function arguments The ESSL spec has a bug with images as function arguments. The recommended workaround is to inline functions that accept image arguments. Bug: angleproject:7484 Change-Id: I8fc0826f330c68150de5c3d1758c10c3e37bbf04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813050 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 02eb5f49 2022-08-19T12:41:11 validation: Annotate kEnumNotSupported errors with values. Use validationErrorF to annotate all unsupported enum errors with the corresponding value of the enum in hex. This makes the errors more meaningful and reduces the amount of debugging required to find out the invalid enum used. Add kEnumInvalid error string in cases an InvalidEnum is provided and can't be resolved to the given GL enum. Before: glEnable: GL error: HIGH: Enum is not currently supported. After: glEnable: GL error: HIGH: Enum 0x809D is currently not supported. Bug: angleproject:7595 Bug: angleproject:7596 Change-Id: Iff060a1c3a2f482f4df5b5b7ea036b93025df7d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849475 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 320bfde0 2022-08-22T00:00:00 Hide emulated ETC2/EAC formats from WebGL contexts In addition to not exposing the dedicated ANGLE-specific extension name, do not add these formats to the internal formats table. Bug: angleproject:7601 Change-Id: I2e3fdd99129823b8092bfa35cb95023ae5008edd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853591 Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton 9d41585e 2022-08-12T14:20:34 Make PLS coherent on D3D 11.3 Adds a new internal memory qualifier to the compiler called "rasterOrdered", which we set in RewritePixelLocalStorage.cpp when D3D 11.3 Rasterizer Order Views are supported. The HLSL translator then generates RasterizerOrderedTexture2D<> instead of RWTexture2D<> when this qualifier is set. Bug: angleproject:7279 Change-Id: I39b8c3279b7bff93b7e57272e8fb84d9c0312616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3830288 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Lubosz Sarnecki cedc23d8 2022-08-19T12:41:20 validation: Annotate kInvalidInternalFormat errors with values. Use validationErrorF to annotate all internal format errors with the corresponding value of the internal format enum in hex. This makes the errors more meaningful and reduces the amount of debugging required to find out the invalid format used. Before: glCompressedTexImage2D: GL error: HIGH: Invalid internal format. After: glCompressedTexImage2D: GL error: HIGH: Invalid internal format 0x8B94. Bug: angleproject:7595 Bug: angleproject:7596 Change-Id: I6b9c116863e0116f96b8ff0e71e9734947a1c1c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849476 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Chris Dalton 51de3837 2022-07-28T00:05:54 Enable PLS on D3D Bug: angleproject:7279 Change-Id: Ide498e6ebadc5cd567dc64cd1efed52e777aa32e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3790473 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f6842cc2 2022-08-25T10:23:32 Revert override for desktop GL extensions in gl.xml. Instead override the supported APIs in registry_xml.py, which will transfer to using the canonical gl.xml. Note these are desktop-GL-only extensions that ANGLE exposes in GLES: GL_ARB_sync GL_NV_robustness_video_memory_purge Bug: angleproject:6461 Change-Id: I25778149ecfc3cb4be0aca2104c08273c260c564 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856648 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 68b6206e 2022-08-19T16:39:01 FrameCapture: Fix capturing glBindRenderbuffer on GLES1. Use FramebufferCaptureFuncs when capturing glBindRenderbuffer calls on GLES1 contexts, since they require the GL_OES_framebuffer_object extension and will otherwise crash on certain native GL drivers. Bug: angleproject:7596 Change-Id: I7be1b0dee38c9186b657489ca76bf769f47caeb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849478 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Shahbaz Youssefi 80a9ee71 2022-08-25T01:03:09 Fix translator fuzzer The GLSL mac-only options were being listed as unsupported only when the output is not GLSL. However, they should also be listed as unsupported on GLSL output when not on mac. Bug: chromium:1355076 Bug: chromium:1355281 Change-Id: I5a87d9a529e534b2ea6c030ad7132cd0f698e7d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855700 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Jamie Madill a35728bd 2022-08-25T12:13:39 Skip several Multithreading Tests on SwiftShader. Because any of the tests could flakily hang, it's better that we skip the group entirely until we have the ability to add flaky retries as test expectations. Bug: angleproject:6261 Change-Id: I59d686d983ff5123a2c8cb40f3c1d808c611b20e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856651 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 5d62c05e 2022-08-24T13:17:14 Use canonical Khronos registry XML files for auto-gen. This switches ANGLE to use the upstream XML files for the CL, EGL GLX and WGL APIs. Since gl.xml has a few more significant diffs from the upstream version, that work will come in another CL. This also removes an ANGLE EGL ext that was added upstream. Bug: angleproject:6461 Change-Id: I29ead5edc13a4256d1f702c330a5d3d233502cd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3854318 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny b688c909 2022-08-11T13:14:49 Capture/Replay: save and restore UNPACK_ALIGNMENT in MEC MEC replay requires an unpack alignment of one. When creating a trace the call to set this alignment is emitted, but it is not actually set in the context, so that the captured context state records the actual unpack alignment. When replaying, the call to set the unpack alignment to one is executed, and the context state changed, so that comparing the captured context to the replay context will fail if the original alignement was not one. Restore the original alinment in the context setup functions to ensure that the context state holds the same state information when replaying like when the trace was captured. Bug: angleproject:7564 Bug: angleproject:7180 Change-Id: I09d9bf77bc0193bdf9f41b6183f1ee8d66c5e563 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827346 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi a69e53c5 2022-08-22T16:23:08 Vulkan: Move vertex stride assert Bug: fuchsia:107106 Change-Id: I82c34b5c450f39f2869c8fd6ae938b2cdfc5af13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846404 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 15b1678f 2022-08-19T13:13:42 FrameCapture: Add VertexArrayCaptureFuncs. Analogously to FramebufferCaptureFuncs, append OES suffixes to vertex array related functions on GLES1 contexts. These functions require the GL_OES_vertex_array_object extension and will crash on certain native drivers without the OES suffix. This resolves the following validation error when replaying GLES1 traces captured using MEC on ANGLE: glBindVertexArray: GL error: HIGH: OpenGL ES 3.0 Required. Bug: angleproject:7596 Bug: angleproject:7608 Change-Id: I603efae4a8d61b84b7711effb2e7e1d8d52e3d83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849477 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bryant Chandler efa9a4d9 2022-08-24T22:08:38 Rename README.angle to README.chromium The extension needs to be `.chromium` for compatibility with tools/licenses.py Bug: chromium:1355665 Change-Id: Iabc26bd96ec8b71cf8546ff0ec05172fb8d82ca1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855396 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Charlie Lao b9bc09cb 2022-08-24T13:15:45 Vulkan: Always enable mVirtualBlockMutex Right now this is only enabled if async queue submission is enabled. I think this is a bug that we have to always enable the lock, since suballocation destroy could come from any threads. Bug: b/236098131 Change-Id: I0fda61e5db3ff60f776b8d4917a9f10dafed6b1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855203 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Eddie Hatfield d89c027e 2022-08-22T11:40:40 Add unimplemented GLX entry points to desktop GL Test: Run glxgears and hit unimplemented in ANGLE Bug: angleproject:7533 Change-Id: Ic7ed7506b6d0c5ef5022ae6899cbd6c4d351b178 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3852631 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 28600f60 2022-08-21T21:51:19 Test: Add Antutu Refinery trace Test: angle_perftests --gtest_filter="*antutu_refinery*" Bug: angleproject:7590 Change-Id: I967c72a4109baf64cda1afc3d27407286253ea35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844790 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tom Anderson 3e9d8f43 2022-08-23T20:00:20 Fix build with -Wextra-semi Change-Id: Ibda56f1c3ad3e2851997cba93de5bc32b4606300 Bug: chromium:1355871 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851180 Auto-Submit: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
Eddie Hatfield 5317b778 2022-08-23T08:58:04 Enable desktop GLSL for desktop GL frontend Bug: angleproject:7533 Change-Id: I91bd0c217880b05683b86449a9211b9844575ebc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3850471 Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov f7274de2 2022-08-24T14:26:50 Skip EGLMultiContextTest.ReuseUnterminatedDisplay on Pixel 4 GLES Since it causes this combination of tests to crash there: EGLMultiContextTest.ReuseUnterminatedDisplay/ES3_1_OpenGLES ComputeShaderTest.ImageLoadMipmapSlice/ES3_1_OpenGLES CopyTexImageTest.CopyTexSubImageFromCubeMap/ES2_OpenGLES_EmulateCopyTexImage2DFromRenderbuffers Also tentatively skip on Win Intel Vulkan due to similar flakiness in: Texture2DTest.CopySubImageFloat_RGB_RGB/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageUnpackRowLengthPBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageWithLuminancePBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageWithRGBA4444PBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexStorage/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Bug: angleproject:7602 Change-Id: I5be9e23bfabe6be345caaca3c5ca9bed19112903 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3854603 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cody Northrop 94a23a4e 2022-08-21T19:52:50 FrameCapture: Fix separable shader uniform locs Uniform locations are tracked by traced program ID, not remapped program ID. This was creating code that used incorrect locations and would immediately crash. For instance, the following code: glProgramUniform4fv(gShaderProgramMap[92], gUniformLocations[gShaderProgramMap[92]][12], 1, reinterpret_cast<const GLfloat *>(&gBinaryData[0])); gShaderProgramMap[92] happens to remap to 54 during replay. But if you look in UpdateUniformLocation, we track uniform locations based on the trace program (92): // Example call: UpdateUniformLocation(92, "fullmatrix", 0, 1); void UpdateUniformLocation(GLuint program, const char *name, GLint location, GLint count) { ... gUniformLocations[program] = programLocations.data(); } So when gUniformLocations[gShaderProgramMap[92]] is used, it tries to look up uniform locations for 54, which don't exist, and returns nullptr. To fix, don't use gShaderProgramMap when looking up locations of uniforms. This only affects separable programs. Normal glUniform calls use gCurrentProgram which is already the trace program (92). The new code looks like this: glProgramUniform4fv(gShaderProgramMap[92], gUniformLocations[92][12], 1, reinterpret_cast<const GLfloat *>(&gBinaryData[0])); Test: Antutu Refinery MEC Bug: angleproject:7590 Change-Id: I079923ec8d938356e72e929d61f80c7fc371a95b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844642 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 429a7cab 2022-08-21T19:50:32 FrameCapture: Fix cube face as framebuffer This fix is required for Antutu Refinery benchmark, which has cube faces mapped as framebuffer attachments. Test: Antutu Refinery MEC Bug: angleproject:7590 Change-Id: I5eec5fcbe12ac7486499b047a4b7564b3bc2690f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844641 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya aa2a558e 2022-08-23T09:47:02 Vulkan: Add support for setting timestamp surface attribute On Android the EGL wrapper handles most of the functionality required by EGL_ANDROID_get_frame_timestamps. However if for some reason the swapchain is recreated, the timestamp state would be lost resulting in stuttering. Introduce EGL_ANGLE_timestamp_surface_attribute extension that adds support for toggling the EGL_TIMESTAMPS_ANDROID attribute of a surface. Cache this state and recreate the swapchain accordingly. Bug: angleproject:7489 Test: EGLSurfaceTest.TimestampSurfaceAttribute* Test: dEQP-EGL.functional.get_frame_timestamps* Change-Id: I3660f7137c006d904164d243a682a4ff520eabd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753396 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuxin Hu f10625d3 2022-08-11T14:32:45 Enable Robustness Extension on ARM These dEQP tests failed due to Robustness was disabled: dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer#readn_pixels dEQP-GLES31.functional.debug.negative_coverage.log.buffer#readn_pixels dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer#readn_pixels dEQP-GLES31.functional.debug.error_filters#case_12 dEQP-GLES31.functional.debug.error_groups#case_12 Re-enable the Robustness Extension on ARM to check if mali driver supports GL_EXT_robustness extension now. If it does we can enable the robustness feature in ANGLE so that the above dEQP tests can pass. Bug: angleproject:7351 Bug: angleproject:4823 Bug: angleproject:2330 Change-Id: Ifce20e410607f2d4b6b3b55235081fef690c983c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828441 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 13456bfc 2022-08-23T13:33:13 Propagate device type in another eglGetPlatformDisplayEXT call. Same as https://crrev.com/c/3759712 for another test. Also use !platformSupportsMultithreading() to skip tests. However, need to skip separately from capture/replay where multi-threaded tests seem to run into issues. Bug: angleproject:7494 Bug: angleproject:7423 Change-Id: Ief87b4163aedd26b440987540c06ceb7ae8a575b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851166 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov f0b4e8b2 2022-08-23T17:12:44 Fix loading ANGLE libraries on iOS Previously end2end tests would try to load libEGL.framework/libEGL.framework instead of libEGL.framework/libEGL Bug: angleproject:5417 Change-Id: Iccb9ad20df980dfd460219dbcaf9b273aef9c7dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851164 Commit-Queue: Kenneth Russell <kbr@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Yiwei Zhang 41c01134 2022-08-23T06:00:04 Extend the image test to verify RGBX AHB and GL_RGB upload This changes updates the RGBXAHBImportThenUpload test to do texture upload to the right side and adds a new helper to validate the render result on both sides to check the upload respects the GL_RGB channels. Bug: b/238460927 Test: ImageTestES3.RGBXAHBImportThenUpload Change-Id: I61723e7db99dab78b7828b783bb7cdf062f39ad9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849462 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yiwei Zhang df946856 2022-08-22T20:36:52 Map RGBX AHB to GL_RGBX8_ANGLE and fix the load function AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM was false mapped to GL_RGB8, which will write back to the backing exteranl storage with 3 channel layout. Angle actually has ANGLE_rgbx_internal_format to fix the mapping with GL_RGBX8_ANGLE. However, the load function must align with GL_RGB8 if the actual storage is 4 channel. This change also fixes that to use LoadToNative3To4<GLubyte, 0xFF>. Bug: b/238460927 Test: CtsNativeHardwareTestCases#SingleLayer_ColorTest_*_R8G8B8X8_* Test: ImageTestES3.RGBXAHB* pass without VVL error Change-Id: Ic5db4cb4adba252949d64e560ff32e492a045912 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846413 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com>
Mohan Maiya b32091b4 2022-08-17T16:00:02 Vulkan: Bug fix related to pre-rotation code Account for possiblity that the draw and read surfaces are different when querying pre-rotation information. When updating mCurrentRotationDrawFramebuffer and mCurrentRotationReadFramebuffer, make sure to query pre-rotation information from current draw and read surfaces. Bug: angleproject:7581 Test: FramebufferTest_ES3.BlitWithDifferentPreRotations* Change-Id: Ibe7a2450907e53aa5c33e13cff00059ab2f6602e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3836491 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 952d6e8f 2022-08-21T21:51:03 Vulkan: Workaround ARM driver bug with dynamic vertex strides According to ARM, vkCmdBindVertexBuffers2EXT is broken when more than one attribute binding is involved. In this change, the vertex strides dynamic state is avoided altogether on ARM. Bug: fuchsia:107106 Change-Id: Ie41fc07037083214d2dc99e4ed062485384911c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844640 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield bd1484f3 2022-08-22T13:53:35 Temporarily disable shader caching feature This will be re-enabled when the BlobCache test flakes are resolved. Bug: angleproject:7036 Change-Id: I38829ffcd5869679bf65017475e8a10d165f369b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846403 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Kimmo Kinnunen e22eb503 2022-08-22T11:46:53 Metal: Report Metal being available on iOS simulator Make Metal backend always available on iOS simulator. Currently the GPU family query is not useful as it does not return anything that would enable Metal ANGLE to be used. However, testing on iOS simulator is still useful. Bug: angleproject:7591 Change-Id: I0aa881bb7482fc63bbaa08d5efc10920b3c1af43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3845154 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
angle-autoroll a8ffbef8 2022-08-19T21:02:14 Roll VK-GL-CTS from 5a93cd60f33b to 435ebaff9214 (5 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/5a93cd60f33b..435ebaff9214 2022-08-19 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-08-18 piotr.byszewski@mobica.com Add coverage for MaxAtomicCounterBufferSize 2022-08-18 piotr.byszewski@mobica.com Check that image*Shadow are not reserved keywords 2022-08-18 piotr.byszewski@mobica.com Fix vkGetPhysicalDeviceProperties2 query 2022-08-18 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.3 into vk-gl-cts/main 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 angle-bots+autoroll-info@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry 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/main/autoroll/README.md Bug: angleproject:7592 Change-Id: I87bd89dd6ad63e2fa28ae87cdd4a91555d56e203 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3842857 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lingfeng Yang caf2b427 2022-07-01T18:17:30 Vulkan: Add feature to use PASS_THROUGH for EGL_NONE color spaces This is a temporary solution to fix media tests until ANGLE also has the ability to query the "preferred color space" from Surfaces. Bug: b/235995022 Test: Launch Cuttlefish with this change and the feature enabled with aosp/2167231 Test: cts -m CtsMediaCodecTestCases -t android.media.codec.cts.EncodeDecodeTest Test: cts -m CtsMediaCodecTestCases -t android.media.codec.cts.DecodeEditEncodeTest Change-Id: I17d1a2c1701cd1707b34f5bf2f222e9ad57c7a61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770291 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Jason Macnak <natsu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com>
Roman Lavrov f30cfd18 2022-08-16T16:50:33 Perf and gold tests detect test SKIPs from json results. Make angle_test_util.RunTestSuite() gets and returns json results (using --isolated-script-test-output). perf tests has an additional special case (filed https://anglebug.com/7578): Previously when metrics were missing it was assumed that this was due to tests being skipped - which seems to currently be the case except for the special case of GLMark2Benchmark* tests. Those produce .fps/.score metrics instead of the metrics expected by this script. This CL keeps those tests running (once) but then marks them as SKIP in test results when no metrics are found (which is the behavior before this CL; it might actually make more sense to count this as PASS because everything matches our expectations). We're still running them once, so if they FAIL we'll get notified. gold tests: Use json results file instead of checking for '[ SKIPPED ]' in stdout. Bug: angleproject:7299 Bug: angleproject:7578 Change-Id: Ia751784ad1aa94dc855c8b58ebfe5ba3e06e462f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826167 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 31ac3fef 2022-08-21T21:30:53 Lift suppression of passing test Bug fixed in https://chromium-review.googlesource.com/c/angle/angle/+/3835168, but a suppression for the test landed in the meantime Bug: angleproject:7583 Change-Id: I14a3e59a6270bfee8288dd733938a18cbf491c20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844638 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Kimmo Kinnunen b9c3c5d6 2022-08-18T13:38:49 Metal: Fix MTLArgumentEncoder leak in InitArgumentBufferEncoder Patch by David Kilzer <ddkilzer@apple.com> Metal functions with "new" prefix return objects with refcount +1. Adopt the ref to the ObjCObj smart pointer. Bug: angleproject:7577 Change-Id: I57b1ac031aa9cf179288879359d3c88dbd168caa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3834820 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Shahbaz Youssefi 9a258281 2022-08-17T17:47:22 Fix submit-count perf counter test on ARM On ARM, the preferSubmitAtFBOBoundary feature causes extra submissions that need to be taken into account. Bug: chromium:1337538 Change-Id: Id545ee3e65fc943aff51ea3721e9c19bc0afd4a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835168 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 4330a827 2022-08-19T02:59:26 Reland "Vulkan: Use VK_EXT_primitive_topology_list_restart" This reverts commit 29d18b303189bf31b3af3a85c3df6013114eebc8. Reason for revert: Fixed VVL suppressions not working Original change's description: > Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart" > > This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073. > > Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579 > > Original change's description: > > Vulkan: Use VK_EXT_primitive_topology_list_restart > > > > From ANGLE's point of view, there is nothing to do with this extension > > other than enable a feature that silences a validation error. > > > > Bug: angleproject:3832 > > Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380 > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: mohan maiya <m.maiya@samsung.com> > > Bug: angleproject:3832 > Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:3832 Change-Id: Ia79b1f3b716f0df1991f605704135b4af48fb639 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3841366 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Faye Zhang 6d153b7d 2022-07-06T12:34:22 Implement BaseInstanceEXT Capture Entry Points In order to support Capture/Replay of apps that use GL_EXT_base_instance functions, their GLES EXT Capture functions should be implemented. Bug: angleproject:7477 Change-Id: Idb96b66ca5a7c96f1883402e62934acc33bd24c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749796 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 29d18b30 2022-08-18T18:18:04 Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart" This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073. Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579 Original change's description: > Vulkan: Use VK_EXT_primitive_topology_list_restart > > From ANGLE's point of view, there is nothing to do with this extension > other than enable a feature that silences a validation error. > > Bug: angleproject:3832 > Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: mohan maiya <m.maiya@samsung.com> Bug: angleproject:3832 Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov eb8488e1 2022-08-18T15:43:49 Skip end2end failures on Pixel 6 Android 13 TP1A.220624.021 Bug: angleproject:7583 Change-Id: Ib9a44c222207b6f2c70733738f1c440c6d6a7ce8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838857 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Eddie Hatfield 955adb77 2022-08-12T10:14:48 Cache compiled shader By storing the compiled shader in the blob cache, the time to recompile the same shader is reduced. Based on work by <hckim.kim@samsung.com> Bug: angleproject:7036 Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 2965f81b 2022-08-16T15:26:22 Remove suppression of previously crashed deqp test dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules#internal_different_precision was fixed in a recent check-in at https://crrev.com/c/3780874. Remove the suppression in the test expectation file. Bug: angleproject:6908 Change-Id: I41025c2555e0c21ff8faaa888842201d26499205 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828139 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sean Risser 266d0a83 2022-08-09T22:08:03 Skip glObjectLabel in replay capture Similar entry points are also skipped, so it's likely the list was just missing this one. Bug: angleproject:7567 Change-Id: I1d7e37b35960fd71fdec9143d9193dee6f97e1f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824777 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang eb535deb 2022-08-17T16:59:57 Don't set the framebuffer read buffer dirty bit on ES2. glReadBuffer is not added until ES3. Make sure we don't tell the backend to synchronize the read buffer state unless it's supported. Bug: chromium:1346132 Change-Id: I9836d6baac5a250c1fddf5d3ec6d395228e118db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835167 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Mohan Maiya 7a87e90d 2022-07-16T11:39:08 An inactive but alive thread shouldn't prevent cleanup 1. Acquire EGL global lock before thread cleanup and remove all clean up related mutexes 2. Mark contexts that are not current as invalid during terminate 3. During thread exit, if there are other active threads, terminate with TerminateReason::InternalCleanup. This gives an opportunity for well behaved threads to cleanup up invalid objects. Bug: angleproject:6723 Bug: angleproject:6798 Test: EGLContextSharingTestNoFixture.InactiveThreadDoesntPreventCleanup* Change-Id: I418e5f8b486d3d309bd58c4cfb04b7dc1149ffc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768667 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov 6a8bd801 2022-08-17T11:18:31 Add process_angle_perf_results.py to perf tests data. analyze step doesn't currently trigger angle_perftests on changes to process_angle_perf_results.py Example: https://crrev.com/c/3835162/2 https://ci.chromium.org/ui/p/angle/builders/try/linux-test/7791/overview (so I had to https://crrev.com/c/3835162/3) Bug: chromium:1346781 Change-Id: Id991facedd48036a5c072d910aeb8488712516f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835163 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 213a1ee6 2022-08-16T12:44:35 Vulkan: Enable VK_EXT_primitives_generated_query Added a test to make sure PGQ works with indirect draws too. Bug: angleproject:5430 Change-Id: Ic91e11906ca34c4f9a50f3442709e544f7f6744c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826165 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Solti a216cfe8 2022-08-08T21:05:00 Adding angle_perftests test case names in logcat Overview: In logcat, we want to know which test is being executed. The CL 1. makes *ANGLEPerfTest* print the test name 2. wire the trace names in *TracePerfTest* as test names to *ANGLEPerfTest* Local Test: ==== Test 1 ==== - use this build args: http://go/paste/5111738277036032 - ```autoninja -C out/Android && ./out/Android/angle_perftests --gtest_filter="*angry_birds*" --verbose``` - Wait for the test to complete, then run ```adb logcat -d | grep running``` - 4 tests were executed: ``` solti@solti:~/angle$ adb logcat -d | grep running 08-11 18:13:49.757 7690 7721 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_1500 08-11 18:13:59.914 7690 7721 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_1500 08-11 18:14:21.265 7690 7721 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_launch 08-11 18:14:48.030 7690 7721 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_launch 08-11 18:14:58.296 1525 1525 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything 08-11 18:14:58.296 1525 1525 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything 08-11 18:14:58.297 1525 1635 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything solti@solti:~/angle$ ``` ==== Test 2 ==== - follow http://docs/document/d/1W3E7e-YcR5noim_poM0f7Dc0W8AdQDbJ2tFSPXgjpH0? resourcekey=0-VmGDLI3x0q4-sdpQ0n8GSA - setup out/AndroidPerformance - run cmd: ./out/AndroidPerformance/angle_perftests --gtest_filter="*angry_birds*" --verbose --local-output --verbose-output --shard-timeout 100000 --max-steps-performed 1 - then, run cmd: ```adb logcat -d | grep running``` - confirmed the test names are printed ``` solti@solti:~/angle$ adb logcat -d | grep running 08-11 18:22:50.698 8496 8525 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_1500 08-11 18:22:51.599 8496 8525 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_1500 08-11 18:22:51.917 8496 8525 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_launch 08-11 18:22:52.362 8496 8525 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_launch solti@solti:~/angle$ ``` ==== Test 3 ==== - build a Linux build, using the args: http://go/paste/5953043785842688 - run the same test with cmd: xvfb-run ./out/Debug/angle_perftests --gtest_filter="*angry_birds*" --verbose | grep "running test" - confirmed the message is printed: http://go/paste/5800151735074816 Bug: angleproject:6353 Change-Id: I6118a75f54b1648923cb5fe541633d7dd52b20bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3817409 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov 7c66d77d 2022-08-16T15:06:29 Avoid logging None introduced in https://crrev.com/c/3831885 Currently prints: Test 5/97: DrawCallPerfBenchmark.Run/gles_null_uniform: None Wasn't printing anything before, so this CL goes back to that. Bug: angleproject:7299 Change-Id: I8270129958a93e5c3fbb6cac321fe7e2396a6376 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3834068 Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Roman Lavrov c5efd2b5 2022-08-15T16:20:25 Improve Ctrl-c handling. 1. Restore original handlers after subprocess terminates. Otherwise the installed handlers persist and will swallow sigint outside of subprocess invocations. 2. Raise KeyboardInterrupt when subprocesses terminate to interrupt the script itself. run_perf_tests.py allows for some subprocess failures (--max-errors, with non-zero default). This results in ctrl-c interrupting subprocesses but the script just marks the test as FAIL and keeps running. Bug: angleproject:7299 Change-Id: I2917008baa389491c7591596fc14ee139fa6417e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3831887 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi e79c9cd6 2022-03-30T23:06:54 Vulkan: Use VK_EXT_primitive_topology_list_restart From ANGLE's point of view, there is nothing to do with this extension other than enable a feature that silences a validation error. Bug: angleproject:3832 Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Solti 428b6788 2022-08-15T17:54:27 Update CHROMIUM_copy_texture.txt to match the code [Overview] The internal format list in the code mismatches the one in the spec txt. see the link below for the missing formats in the spec txt: - http://screen/vDkHo3MFXpE3eQF.png Therefore the CL is matching the spec txt to the code. [Test] CQ DRY RUN completed and passed Bug: angleproject:4228 Change-Id: Ib66fb00b65ce2164779ca7649ec0652910a8e467 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3830892 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 8878366f 2022-08-15T11:51:00 Refactor to reduce main loop complexity. Bug: angleproject:7299 Change-Id: I157e84b7a6718d59eecb00471d4ec7ae5b3317cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3831885 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Nicolas Capens ad6513fe 2022-08-16T16:06:19 Unconditionally enable EGL_ANGLE_iosurface_client_buffer on macOS EGL_ANGLE_iosurface_client_buffer does not depend on VK_EXT_external_memory_host. Locked IOSurface memory gets copied to/from staging images instead of being imported as device visible host memory. Bug: chromium:1352481 Change-Id: I904e6af53e169ef04446181de91db6f3cdc31530 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826164 Auto-Submit: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 2089943b 2022-08-13T21:48:33 Tests: Add Lumino City trace Test: angle_perftests --gtest_filter="*lumino_city*" Bug: angleproject:7571 Change-Id: I206b965712b8f833874069bbcec0c93fc7ee5087 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829135 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang b9fd47b8 2022-08-12T10:55:49 Not use Android TLS slot for chromium In the profile, GetGlobalContext() & GetValidGlobalContext() have extra overhead for checking angle::gUseAndroidOpenGLTlsSlot. Since angle::gUseAndroidOpenGLTlsSlot is always false for now, so add a build flag to disable it for chromium build. In the profile, with angle_use_android_tls_slot = false, GetValidGlobalContext() is reduced from 0.153% to 0.044%. Bug: chromium:1336126 Change-Id: Id5e1752b0a03289fb299e8de2ed6e962e35291c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827955 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 64c652d7 2022-08-12T18:14:39 Use stdout instead of (default) stderr in logging.StreamHandler Currently logging output appears before stdout on bots, makes logs so confusing as subprocess logs get out of order with logs from python. Using StreamHandler(stdout) seems to be the common practice in other python scripts in code search. Note: subprocess's stderr is redirected to stdout: https://crsrc.org/c/third_party/angle/src/tests/py_utils/angle_test_util.py;drc=2de8bb42a9ef93dfafe476e7dc81643285fa7ef1;l=92 Bug: angleproject:7299 Change-Id: I825f16d9c479f33a280d8fdbafb8297cda0c18b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827957 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Faye Zhang 4c941149 2022-08-12T11:42:07 External Texture Support In MEC Bug: angleproject:4964 Change-Id: I5cfbadf515a30fb20d75b2d745fdecdafa12268f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812378 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Faye Zhang <ffz@google.com> Commit-Queue: Faye Zhang <ffz@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 02d79c32 2022-08-12T11:21:04 Skip kotor trace on Swiftshader due to flakiness After changing the driver uniforms to push constants, the kotor trace became flaky on Linux/Swiftshader. In this CL, the flaky test is skipped. Bug: angleproject:7565 Change-Id: Ia3deb1344ce2dfb8cec443d197b0f95788a12599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829907 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Peng Huang 44791792 2022-08-12T00:13:45 Use angle::FlatUnorderedSet for ImageSibling::mSourcesOf As my test with Chromium on Android, ImageSibling::mSourcesOf only contains one item, so change it to angle::FlatUnorderedSet with default size 2. Bug: chromium:1336126 Change-Id: Ie1ba3ebb195170ad5c9f4713b599a91de5052702 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang a9fac249 2022-08-12T07:01:42 Use FixedVector for Framebuffer::mDirtyColorAttachmentBindings Bug: chromium:1336126 Change-Id: Ie997af106de09468c8520187190a857db099dff9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829144 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Peng Huang afdd5106 2022-08-11T21:14:23 Use angle::FlatUnorderedMap in Display.cpp Bug: chromium:1336126 Change-Id: I57d97d37749de2abbba88b6558bde31fa8346764 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828442 Commit-Queue: Peng Huang <penghuang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield 2ebd5100 2022-08-11T10:43:32 Add gl::Context as a parameter to Shader::resolveCompile This prepares us to access the Context's shader cache in resolveCompile in the next commit. Bug: angleproject:7036 Change-Id: I7995c54b290a5a48f0c8985cb56ea0048598ab2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827642 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 61a17ba9 2022-08-11T11:23:10 Use angle::FlatUnorderedSet for ImageState::targets In mose cases, chrome only needs 1 or 2 targets for an EGLImage, so using angle::FlatUnorderedSet with 2 default size instead of the std::set for targets. Bug: chromium:1336126 Change-Id: Ieff3cfbd5d020fda3aaecb162ddb354def14d962 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827681 Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kyle Piddington 58392791 2022-04-07T16:14:12 Translator: Fix crashes with monomorphizing loops Monomorphize functions crashes when trying to deep-copy a while loop, and a continue statement. Null check these values before performing a copy, as this is still valid AST syntax. Bug: angleproject:7190 Change-Id: I822c0aa062ed844f86aa2b603899d73cbd48255e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573079 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 4c6f7d8e 2022-08-10T15:21:57 Vulkan: Never stage update for EGLImage EGLImage could be shared between contexts in different share groups. If we stage any update in the ImageHelper for such EGLImage, then you may run into threading bugs when two textures are trying to flush out the staged update at the same time. There is no evidence showing we are running into this issue, but this CL forces this requirement. Bug: b/169868803 Change-Id: Ie26542225705ee4638ca1b3cf3cc5af499685137 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824159 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Rafael Cintron c9360ccb 2022-08-10T16:05:49 Reflect TextureD3D label updates with storage object When developers change a label with the KHR_debug extension, TextureD3D calls TextureStorage::onLabelUpdate. However, onLableUpdate was still using the out of date member variable (mTextureLabel) that was set in the constructor. This change adds a setLabel method to the TextureStorage class which properly updates the texture label member variable. Calls to onLabelUpdate now retrieve the most up-to-date label. This change also renames TextureStorage::mTextureLabel to mKHRDebugLabel to make it more clear which label was being stored. Bug: angleproject:7569 Change-Id: I6bc65c35dfb2237b5da88a6ed0e2d872a14857ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3825357 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton 4a636cdd 2022-07-20T22:44:30 Require all PLS formats to consume exactly 4 bytes of storage D3D 11.0 UAVs only support R32_FLOAT, R32_UINT, R32_SINT formats. EXT_shader_pixel_local_storage explicitly states that all PLS variables consume exactly 4 bytes. ESSL images can only have both read and write access if their format is r32f, r32i, r32ui. (We were able to circumvent this via aliasing, but it was a huge source of bugs.) There is a large precedent for only supporting 4 bytes of storage in the capabilities we use for PLS, so this CL removes support for all PLS storage formats that are not 4 bytes. It also implements an "R32" mode for PLS, that does manual packing and unpacking of r32* image formats. If the application wants larger formats, it can always define multiple PLS planes and piece them together. Next up we ought to be able to support rg16* types with more packing/unpacking. With aliasing gone, and with a bit of tweaking, the PLS tests now pass on the Pixel 4 GLES bot. Bug: angleproject:7279 Bug: angleproject:7388 Bug: angleproject:7524 Bug: angleproject:7527 Change-Id: I6b8f62c2428ade6cb5413e33360d734e55dda0eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782579 Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Charlie Lao badfeecd 2022-08-10T14:38:43 Vulkan: Destroy fb1 should not affect fb2 with same attachments If two FBOs has the same attachments. they will share the same VkFramebuffers. Destroy one fbo should not cause trouble for the other fbo. Bug: chromium:1351170 Change-Id: I032da8cc12eb8556c3e325c8fd7a3de9974ae909 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824302 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Chris Dalton fa3d7d5c 2022-08-05T00:57:40 Make PLS coherent on Vulkan Uses the VK_EXT_fragment_shader_interlock extension to make the shader image implementation of PLS coherent on Vulkan. This extension is supported on AMD, Apple, NVIDIA, and Intel. Bug: angleproject:7279 Change-Id: Ic0253eb20932eb6be0b1f433ba454e48b57be2f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kyle Piddington aef9603f 2022-08-02T18:30:08 Separate Struct declarations earlier Metal translator backend asserts with compound struct definitions. Move SeparateCompoundStructDeclarations before SeparateCompoundExpressions. This change does revert some changes for angleproject:6386, but the tests fixed there continue to pass. Bug: angleproject:6489 Change-Id: I6adc606ac0b14453eb5e3e90f6501bf02c2d2768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3806616 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>