src


Log

Author Commit Date CI Message
angle-autoroll 37f59b85 2022-02-07T19:34:11 Roll VK-GL-CTS from 97ceb2222747 to b594e2aabae9 (64 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/97ceb2222747..b594e2aabae9 2022-02-05 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/vulkan-cts-1.3.1 into vk-gl-cts/master" 2022-02-04 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/master 2022-02-03 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/master 2022-01-29 ilkka.saarelainen@siru.fi Add depth and stencil multisample copy tests 2022-01-29 juha.heiskanen@siru.fi Add color output check to early fragment sample count tests 2022-01-29 juha.heiskanen@siru.fi Test dynamic descriptors with different stage visibility 2022-01-29 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2022-01-29 mika.vainola@siru.fi Remove EnableBlendCase from ES 3.1 2022-01-29 srisser@google.com Delay initializing fragment_shading_rate tests 2022-01-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master 2022-01-27 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/master 2022-01-23 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master 2022-01-18 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master" 2022-01-16 ari.suonpaa@siru.fi Add coverage for transition between compute and indirect draw 2022-01-14 emmanuel.tanguy@broadcom.com Add missing barrier to fix multi-core issue 2022-01-14 juha.heiskanen@siru.fi Test EarlyFragmentTests effect on color output and sample counting 2022-01-14 jari.komppa@siru.fi Add more power of two checks 2022-01-14 piotr.byszewski@mobica.com Update vulkan-docs version 2022-01-14 jari.komppa@siru.fi Add missing formats to mapTextureFormat 2022-01-14 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2022-01-13 ari.suonpaa@siru.fi Move draw buffers indexed tests from ES3.1 to ES3 group 2022-01-11 pdaniell@nvidia.com VK_EXT_pageable_device_local_memory test coverage 2022-01-10 piotr.byszewski@mobica.com Rename mustpass master branch to main 2022-01-10 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/dev/VK_EXT_image_view_min_lod into vk-gl-cts/master" 2022-01-10 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master 2022-01-07 corentin.noel@collabora.com gl4cMapBufferAlignmentTests: ensure that the GL_ARB_buffer_storage extension is present 2022-01-07 jari.komppa@siru.fi Update README.md files, replacing old link 2022-01-07 arkadiusz.sarwa@amd.com Add support for building with Visual Studio 2022 2022-01-07 juha.heiskanen@siru.fi Remove unused variables from occlusion query tests 2022-01-07 dneto@google.com Assert that isnan and isinf cases cover intended classes 2022-01-07 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2022-01-07 venni.ihanakangas@siru.fi Improve AHB image_formats subtest log output 2022-01-07 marcin.zajac@mobica.com OpPtrEqual OpPtrNotEqual for non-variable pointers 2022-01-07 piotr.byszewski@mobica.com Extend FSR multiview tests 2022-01-07 michal.jakubek@mobica.com Handle VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_* flags 2022-01-07 jari.komppa@siru.fi Add 8-bit blend_operation_advanced tests 2022-01-07 rgarcia@igalia.com Test constant and dynamically uniform subgroup shuffle deltas 2022-01-07 ilkka.saarelainen@siru.fi Rework platform memory limits 2022-01-07 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.1 into vk-gl-cts/master 2022-01-07 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2022-01-05 quic_mnetsch@quicinc.com Notice of withdrawal of Vulkan CTS 1.2.5.x 2021-12-11 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2021-12-11 rgarcia@igalia.com Fix dot product with saturation tests 2021-12-11 piotr.byszewski@mobica.com Add dynamic rendering to attachment rate tests 2021-12-11 rgarcia@igalia.com Further VK_NV_mesh_shader test variants and fixes 2021-12-11 pdaniell@nvidia.com Fix and enable dynamic rendering multivew coverage 2021-12-11 quic_mnetsch@quicinc.com Merge "Merge dev/VK_EXT_depth_clip_control into master" 2021-12-11 ari.suonpaa@siru.fi Fix integer overflow in Random::getInt() 2021-12-11 juha.heiskanen@siru.fi TRANSIENT_ATTACHMENT_BIT store/load op test 2021-12-11 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master 2021-12-10 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-12-06 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master 2021-12-03 ilkka.saarelainen@siru.fi Add missing feature check to MS copy tests 2021-12-03 jarcher@nvidia.com Update Android API and permissions for OpenGL 2021-12-03 antto.makinen@siru.fi Test no-op image layout transitions in VK_KHR_synchronization2 2021-12-03 antto.makinen@siru.fi Ensure that compute shaders have a subgroup size that is uniform in command scope 2021-12-03 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/dev/VK_ARM_rasterization_order_attachment_access into vk-gl-cts/master" 2021-12-03 juha.heiskanen@siru.fi Missing coverage for vkCmdCopyQueryPoolResults 2021-12-03 jari.komppa@siru.fi Add suite of div by zero tests 2021-12-03 ari.suonpaa@siru.fi Enable packed formats for border swizzle tests 2021-12-03 piotr.byszewski@mobica.com Add portability_subset to extensions_data.txt 2021-12-03 lionel.g.landwerlin@intel.com Verify that timeline semaphores cannot import/export SYNC_FD 2021-12-03 piotr.byszewski@mobica.com Execute FDM tests with dynamic rendering 2021-12-03 piotr.byszewski@mobica.com Execute FDM tests with legacy renderpass 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,ianelliott@google.com,ynovikov@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:6773, angleproject:6737, angleproject:4394 Change-Id: I5e8157787a821d116231640f89b67cde2cc2fce4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442372 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop 02ce52d2 2022-02-08T20:41:01 Test: Add Lords Mobile trace Test: angle_perftests --gtest_filter="*lords_mobile*" Bug: angleproject:7000 Change-Id: I451433be5269c199ff404162df406b16ecee155b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jonah Ryan-Davis 4349904b 2022-02-04T14:22:53 Add keying on backend to ANGLE Display caching. Webkit needs to use one ANGLE display with OpenGL and another with Metal. Our display caching is interfering with this, so it should be updated to also key on the selected backend. Bug: angleproject:6978 Change-Id: I9ec47a28e16646f5fc75956e3bd78236990cc392 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440780 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Sergey Ulanov 9cfd8724 2022-02-09T08:23:02 Allow surface creation in DisplayVkNull Previously DisplayVkNull was returning unusable surface from createWindowSurfaceVk(). Updated it to return OffscreenSurfaceVk, which makes it usable with some tests that try to create surface through EGL Bug: chromium:1225002 Change-Id: If21a454201a32017b0e80ee7c01568a089ab0b0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450034 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 71d06198 2022-02-07T11:16:41 Vulkan: Fix vkCmdClearAttachments vs multiview Bug: angleproject:6262 Change-Id: I5a24693bb1b35201213c2e3fa25f7864609357b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442255 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 1b9774f5 2022-01-26T13:37:03 Vulkan: Force submit updates to immutable textures Submit immutable texture updates recorded in outside renderpass commands when the following conditions are met - 1. "forceSubmitImmutableTextureUpdates" feature is enabled 2. The texture is immutable This works around a problem that manifests in some applications that do not perform appropriate synchronization of shared contexts. Bug: angleproject:6929 Test: EGLContextSharingTestNoSyncTextureUploads.* Change-Id: I2a237046e2cc53650eb8dc07e3697f7481df9b02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3418138 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Jamie Madill a3961843 2022-02-04T08:45:34 Vulkan: Bind aligned default uniform buffer size. This makes us let reuse caches more often when uniforms change size slightly. It also simplifies the cache key management. Bug: angleproject:6776 Change-Id: I68ab48ab7761237bb9d28c4a4a88f4fc6e2c5af6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3439068 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6207fe88 2022-02-03T14:11:30 Vulkan: Minor cleanup to DynamicDescriptorPool. In preparation for future changes. Bug: angleproject:6776 Change-Id: I0a2ab004883ad482f4ed19075c5f5f4e9c451ae0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437413 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 5b43a30e 2022-02-08T13:15:45 Overlay: Rearrange the font image Each glyph is now placed in a separate layer, and the image is made mipped. This is to prepare for FS-based rendering of the overlay and provide more flexible sizing of the font. Bug: angleproject:6976 Change-Id: Iefe139d1801c22ce303e445f5759f9b25597cdce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448710 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 70c510eb 2022-02-03T07:54:29 Vulkan: Use common storage for descriptor set descs. This lets us avoid using templates when implementing descriptor set caches. As an added bonus, the key size now scales with the number of active items in the cache. In the case of using a smaller set of active textures, our keys now use sizeof(uint32_t) * (kFastBufferWordLimit) + sizeof(void *) bytes of storage (132/136) instead of sizeof(uint32_t) * 3 * 96 bytes (1152) per set. This reduction should improve cache coherency. Bug: angleproject:6776 Change-Id: I904fc5527ff033af927e25abe6d13d98142e3f14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436767 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 50fb842d 2022-02-08T12:52:09 Expand SwiftShader Win/ASAN suppression. Bug: angleproject:6965 Change-Id: I00021add3d22f1c64610355e4a6dc73c6c0471e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3447565 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao 52045876 2022-02-07T15:08:15 Vulkan: StreamVertexDataWithDivisor write beyond buffer boundary StreamVertexDataWithDivisor() function is advancing dst with dstStride, but then later on it is treating dst as if it never advanced, thus result in write out of buffer boundary. This was hidden by VMA's memory suballocation, which means it may result in some rendering artifacts. Bug: angleproject:6990 Change-Id: Ic91e917cedd247dfe85b12a69ae26b21b7a4e67a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3445528 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Greg Thompson d635feb1 2022-02-08T11:49:21 [fuchsia] Tests using additional_manifest_fragments are CFv1. These tests will be migrated to CFv2 as their fragments (and their respective required capabilities) are migrated to CFv2. Bug: chromium:1256502 Change-Id: I9ae42c35da005fe174cb0cebec925995f4fa7026 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3447540 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 236a3d0f 2022-02-06T16:09:24 Tests: Add Dead Trigger 2 trace Test: angle_perftests --gtest_filter="*dead_trigger_2*" Bug: angleproject:5823 Bug: angleproject:6986 Change-Id: I259cfb2f9c9d2d0f14af315c0e02fcd42d24cb8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442757 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 1acfe659 2022-02-06T21:18:44 Test: Add Last Shelter: Survival trace Test: angle_perftests --gtest_filter="*last_shelter_survival*" Bug: angleproject:6987 Change-Id: Ia565a0b75aff74fc9cd136763a7063890072225c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442766 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 8b81742d 2022-02-03T07:41:16 Vulkan: Move shader resources descriptor set update. This is in preparation for adding shader serial information to the desc, to work around a bug with incorrect descriptor set cache hits. It could have some perf impact if we restart command buffers constantly while using UBOs/SSBOs. Bug: angleproject:6776 Change-Id: I24f5cefd329a1c36f7f60cb2a520cfdf5f127051 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436765 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 02ad19e3 2022-02-07T13:46:46 Vulkan: Fix vkCmdResolveImage offsets glBlitFramebuffer takes identical regions for src and dst when resolving. vkCmdResolveImage should use the clipped area instead of using the actual offsets passed to this function. Bug: chromium:1292537 Change-Id: I13b91a4e14bdb3fcbf8f01edb36d7fb4110429ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3444340 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d9fcebb8 2022-02-07T14:11:58 Vulkan: Make framebuffer fetch syncval errors more specific The errors are very generic, so now they are only suppressed if framebuffer fetch is used by the application. This change partially relands 2eeb87488. Bug: angleproject:6951 Change-Id: I55f444d19360d3066f1d4b0959d25e676dbb1a38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3444341 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 939da294 2022-02-05T17:12:31 Tests: Add Magic Rush: Heroes trace Test: angle_perftests --gtest_filter="*magic_rush_heroes*" Bug: angleproject:6985 Change-Id: I29ea1746202345cb09d994336ad4c01719bae70e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440686 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Ian Elliott 9208dcc6 2022-02-07T18:23:12 Revert "Vulkan: Enable framebuffer fetch on SwiftShader" This reverts commit 2eeb8748867c529474200d302f21f20ab461b9b4. Reason for revert: Breaks tests for ANGLE-to-Chromium autoroller Original change's description: > Vulkan: Enable framebuffer fetch on SwiftShader > > Bug: angleproject:6951 > Change-Id: I10eeb58be9e8639c0519fc47f327a0894155b755 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437409 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:6951 Change-Id: I35eaf2b7411d1bf055484bbb32f7e681286edd42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442370 Reviewed-by: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop 44deda4c 2022-02-05T15:43:51 Tests: Add Dragon Mania Legends trace Test: angle_perftests --gtest_filter="*dragon_mania_legends*" Bug: angleproject:6984 Change-Id: Ia9242ec9850f4f9418617829314c381451f98dc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442140 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 959d4be5 2022-02-03T08:03:14 Vulkan: Remove buffer get method from descriptors desc. This will make a future refactor to use a common desc class easier to implement. We have the necessary buffer already in the call context so we can instead pass this buffer down to where it gets used. Bug: angleproject:6776 Change-Id: Ia9782cba9f91c9604b1e937252bb293a346d025c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436766 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya f65e7c3c 2022-02-02T14:23:31 Vulkan: Take base level into account in image views Similarly to how max level changes are handled, this change also handles base level changes. In either case, the old views are retained and new views are created for the [base, max] level range. Test provided by m.maiya@samsung.com Bug: angleproject:6967 Test: MipmapTestES31.UpdateBaseLevel/* Change-Id: Iee8b2f035c1cc0fa916b987a91939b8ae65d27c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3441074 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
Alexey Knyazev 6d30de10 2022-02-05T02:25:36 Metal: Fix ANGLEUniformBlock alignment To pass Metal validation, the length of ANGLEUniformBlock structure must be aligned to 16 bytes. Bug: angleproject:5505 Change-Id: I1e2becaac48739966afb44e087fc4a70f7b21d02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440067 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Antonio Caggiano ac20272f 2022-01-19T17:13:50 Vulkan: Fix present region rectangles EGL rectangles are specified relative to the bottom-left of the surface, while Vulkan framebuffer space puts the origin on the top-left corner. Bug: angleproject:6933 Change-Id: Ia57eea8601ee724c0a82eb718d831de6b7566472 Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3423770 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2eeb8748 2022-02-03T13:10:54 Vulkan: Enable framebuffer fetch on SwiftShader Bug: angleproject:6951 Change-Id: I10eeb58be9e8639c0519fc47f327a0894155b755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437409 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sergey Ulanov 2ab8f48f 2022-02-04T08:23:09 Allow glCopyTexImage2D from BGRX and RGBX to GL_LUMINANCE glCopyTexImage2D was failing with GL_INVALID_OPERATION when copying from GL_RGBX8_ANGLE buffer to GL_LUMINANCE texture, while it should be supported. Also updated validator to allow copying from RGBX & BGRX to GL_RED_EXT, GL_RG_EXT. Bug: chromium:1269826 Change-Id: I865dcdd46921730968995822d71ba34b39e49262 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3439129 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang c48e35b9 2022-02-04T01:44:36 Add more info in BlitFramebuffer error message Bug: chromium:1290638 Change-Id: Id1faab26df2f19b90ec85aff6852334e8fda03ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436326 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 2b00f4f5 2022-02-01T13:59:50 Fix bug in protected content validation 1. It is valid for a protected context to sample from an unprotected texture 2. It is necessary to match protected state of framebuffer attachment and the context Bug: angleproject:6602 Change-Id: Ia3138c1a6dc46ff6b85fc5948c6a04ef48fba8a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 706f8a31 2022-02-04T04:22:10 Support gl internal format for creating EGLImage from VkImage Bug: chromium:1290638 Change-Id: I5c9815b727497f63b9f04ecbd8c27deef4b929c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3438666 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Yuly Novikov da87b1db 2022-02-03T21:07:59 Fix GLES Display creation on ChromeOS when Vulkan is enabled GetPlatformTypeFromEnvironment() returns EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE on ChromeOS when Vulkan backend is enabled in build. Previously it returned 0, which caused DisplayGbm to be created on ChromeOS. Restore the previous state of GLES backend by creating DisplayGbm even for EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE platform. Note that this is a hack, and a proper solution would be to always use DisplayEGL on ChromeOS. Bug: chromium:1293420, chromium:1225003 Change-Id: Iab0324a56f0d426310d7db19fec3fc69e9bb5525 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437779 Reviewed-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 7820ca23 2022-02-02T09:34:07 Vulkan: Binding available buffer range to descriptor. This is fully conformant with GLES including robustness, where robustness specifically allows returning any values in the buffer. The goal is to eventually remove all shader-variable-specific info out of the descriptor set update. This will let us fix cache bugs that pop up when we move the descriptor set cache to the share group. Bug: angleproject:6776 Change-Id: Iccef33ca6174a68e359a07dc957a276b2484f97f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3431725 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao 1608a956 2022-02-02T13:54:53 Vulkan: Revert client vertex data streaming to use DynamicBuffer In early CL crrev.com/c/3352489, I switched client vertex data streaming from using DynamicBuffer to sub-allocating from the buffer pool. That caused CPU overhead regression due to extra cost of handling the suballocation object creating and garbage collection etc. Even after all other optimizations I did since then that significantly improved garbage collection performance, there is still 6% CPU time regression as measured with gardenscape. This CL moves StreamVertexData() back to use DynamicBuffer. In order to do that, I have cleaned up DynamicBuffer interface to be consistent with suballocation interface by storing the current allocated offset/size in the suballocation object. With that, the BufferHelper object that returned from DynamicBuffer will be able to pass around and referenced exactly like it comes from suballocation code path, and you can retrieve offset/size from that BufferHelper object instead of having to pass offset around between various function calls. Given that streaming vertex data from client memory is only possible for default vertex array and there is only one default vertex array for each context, this stream vertex data dynamic buffer is essentially a per context object. So the other change I made here is that I have merged mDynamicVertexData with default attribute (which uses per context dynamic buffers) code to use the same sets of dynamic buffers, since you will only use one or the other but not both. Bug: b/205337962 Change-Id: I0ceca5b854069f00afdb9544ee86953b9b773821 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434645 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop 9e323299 2022-02-02T18:09:36 FrameCapture: Regen framebuffers on Reset Regenerate framebuffers that have been deleted and recreated during the run. This required changing the order of how resources are updated during Reset. Textures need to come before framebuffers so they can be regenerated before being bound. Test: MEC of genshin_impact trace frames 2-100 Bug: angleproject:6893 Change-Id: I0d14e09a5e378e7553dec54f4608eefe1bf397dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3435112 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi e897bf9a 2022-02-03T13:53:11 Remove gl_PerVertex-related suppression Bug: angleproject:5579 Change-Id: I532bc2628f8d69aa429c73dc5613ccb5375109a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437411 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3dbba51d 2022-01-28T16:47:19 Reland "Vulkan: Enable ANGLE_texture_multisample" This is a reland of fe56532f503c9a6acde95f7573d705468102faff Fixed to include suppression of trace tests that were failing. Original change's description: > Vulkan: Enable ANGLE_texture_multisample > > Bug: angleproject:3565 > Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:3565 Change-Id: I9b95ce0823b0ee8cd82c8933f0d4c68bb044dda9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437525 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 83a3f654 2022-02-03T18:00:26 Revert "Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang" This reverts commit 600ffa6ec6729e82cf76694c2039c05af13dfbaa. Reason for revert: Bug is fixed in https://chromium-review.googlesource.com/c/angle/angle/+/3434898 Original change's description: > Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang > > GLSLTest.FramebufferFetchWithLastFragData was recently added and > fails on Pixel6 Vulkan Glslang. > > Bug: angleproject:6969 > Change-Id: I249feacd9949528275d6c077a73241c97d1ca24a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3433273 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Bug: angleproject:6969 Change-Id: Ie3272fd3362960112fe4df85c71ba31c57f4b3e3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437408 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4ac0f143 2022-02-02T16:28:01 Vulkan: Fix gl_LastFragData transformation This transformation was only called if gl_LastFragData was redeclared. Otherwise the ES3 version of the transformation (for inout variables) was being used which did not handle gl_LastFragData correctly. Bug: angleproject:6951 Bug: angleproject:6969 Change-Id: I188235bb9710a81c4010c9a170bce40cea8f414b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434898 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis f1159253 2022-02-03T10:38:58 Expand suppression of Mimap tests to any Win/Swiftshader config. These tests are still flaking on Win/Swiftshader/AsyncQueue. Bug: angleproject:6965 Change-Id: Ieeaff96a320ac8839aa0ad238ed3f2f02aa845f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437405 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop e56f0e29 2022-01-26T19:46:01 Vulkan: Check program fetch status when switching framebuffers Before this patch, we only checked whether to update the framebuffer fetch status when the program changes. We also need to check when the framebuffer itself changes. Test: FramebufferFetchES31.FramebufferMixedFetchTest Bug: angleproject:6893 Change-Id: I92ff1f30dfb3f17aee362e5931fc4c94d18142ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3418842 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jonah Ryan-Davis 600ffa6e 2022-02-02T16:58:33 Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang GLSLTest.FramebufferFetchWithLastFragData was recently added and fails on Pixel6 Vulkan Glslang. Bug: angleproject:6969 Change-Id: I249feacd9949528275d6c077a73241c97d1ca24a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3433273 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 4a65040b 2022-01-30T14:00:48 Add new Vulkan uniform update test. This covers a specific case with multiple programs and descriptor set caching. It could get tripped up by more complicated patterns in the trace tests. Bug: angleproject:6776 Change-Id: Ic8e42e55e60ef0fc01f0386712d3457abeea94e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426884 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis b756b2c2 2022-02-02T16:16:14 Suppress flaky Mipmap/Multithreading tests on Win/SwS/ASAN Tests started flaking a while ago, but the problem may be getting worse Bug: angleproject:6968 Bug: angleproject:6965 Change-Id: I82e4be369e78ad96f93047c01c09914ccb6d481e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3433271 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 812d5fff 2022-01-31T17:32:47 Metal: End the current render pass at glInvalidateFramebuffer. Prior to this, glInvalidateFramebuffer calls were discarding the effects of draw calls made afterward, in the same render pass. Add StateChangeTestWebGL2.InvalidateThenDrawFBO reproducing the basic problem reported, and document the variations attempted. Minimal code was changed to fix this issue because other changes hypothesized as necessary weren't testable. Drive-by cleanup of FragDepthTest, after which StateChangeTestWebGL2 was patterned. Bug: angleproject:6923 Change-Id: If79805dbf62fae76b7b9147940b5d9d301142baa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426828 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cody Northrop 7d7cca47 2022-01-17T18:00:25 Vulkan: Update default FBO when fetch in use If the fetch mode of the default framebuffer changes, lazily create and use a new set of framebuffers (one per swapchain image) that are setup for fetch (i.e. have a matching renderpass). Test: FramebufferFetchES31.DefaultFramebufferTest Test: FramebufferFetchES31.DefaultFramebufferMixedProgramsTest Bug: angleproject:6893 Change-Id: Iff2b73d7c34b9b8ca9429c3f24aa700c2746cc81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3401933 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 139f4bd4 2022-02-02T23:17:04 Revert "Vulkan: Enable ANGLE_texture_multisample" This reverts commit fe56532f503c9a6acde95f7573d705468102faff. Reason for revert: breaks win-trace trybot https://ci.chromium.org/ui/p/angle/builders/ci/win-trace/764/overview Original change's description: > Vulkan: Enable ANGLE_texture_multisample > > Bug: angleproject:3565 > Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:3565 Change-Id: Ia278894260b9e714542a8944cb132005c3700ddb No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434285 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 49488710 2022-02-02T14:57:04 Metal: Remove emulatedInstanceID The uniform variable is no longer referenced. Bug: angleproject:5505 Change-Id: I8de518592e045707d024eaa1c07999caf4b5da66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3431079 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 72529c19 2022-01-31T14:37:42 Vulkan: Fix a few framebuffer fetch bugs A few fixes to framebuffer fetch: - The built-in symbol for coherent and non-coherent are now the same for gl_LastFragData, so extension check can choose one or the other. - The temporary variable used in a transformation is renamed to not be gl_LastFragData. - inout usage is now validated correctly for shader type and version. Bug: angleproject:6951 Bug: angleproject:6905 Bug: angleproject:6907 Change-Id: I9af341a3e8e01ed375a8230618184494813d3ece Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427577 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fe56532f 2022-01-28T16:47:19 Vulkan: Enable ANGLE_texture_multisample Bug: angleproject:3565 Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao bc3be5a8 2022-01-27T12:12:58 Vulkan: Add a dedicated suballocation garbage list Suballocations are the most common garbage objects in most usage cases. The current garbage collection code will construct a garbage object from suballocation and then construct a SharedGarbage object with a std::vector that holds only one element. And then it adds this SharedGarbage to the garbage list. This CL tries to avoid create std::vector with just one element and avoid the cost of switch statement for each garbage object by adding a new dedicated garbage list that only holds the suballocation garbages, which is the most common garbages in the system. With gardenscapes running offscreen with --minimum-gpu-work, it reduces CPU overhead from 2.55ms to 2.20ms on Pixel6. Bug: b/215768827 Change-Id: Ia2872442462917c0caadb263769a1cbf3dd7366f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414356 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Jamie Madill be2da234 2022-01-30T13:59:21 Vulkan: Initialize exectuable with invalid uniform serial. Instead of reserving valid serials from the range of device serials, we can instead use an invalid serial. We can remove the extra check for valid this adds if it becomes a hotspot later. Bug: angleproject:6776 Change-Id: I81a36be503d6464ddc5dbb0e9df907f09dda9182 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426883 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 33427a4b 2022-01-31T12:07:43 Vulkan: Fix vkCmdResolveImage extents The source framebuffer's extents were accidentally used instead of the blit area extents. Bug: chromium:1288020 Change-Id: Ib723db50d9687fee0453d027141a94ea26d8a4b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427561 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 293c0b51 2022-01-21T15:53:38 Vulkan: Cache commonly used 6 ushorts stream index array data Looking at all app traces that we currently have, 16 out of 100 apps are making glDrawElements calls without element buffer. And among these usages, most of them are calling glDrawElements with 6 unsigned shorts, which makes sense for drawing a quad. This CL caches first four BufferHelper objects with 6 uint16_t indices in a buffer and reuse them if the data matches. With this we avoid create/destroy suballocations, we even save the time of data copy and set DIRTY_BIT_INDEX_BUFFER when called with same set of indices, which is the case for almost all apps that uses glDrawElements based on app traces research. In order to test the effect, I modified the `--minimize-gpu-work` to keep glDrawElements calls with (count=6, tye=ushort) to pass down count/type into angle, and only change the mode to point. That way this new optimization will gets activated with `--minimze-gpu-work` command line option (see crrev.com/c/3421377). With that, this CL sees cpu overhead reduced from 2.54ms to 2.37ms on Pixel6 with vulkan_offscreen_gardenscape. Bug: b/215768827 Change-Id: I9b682868978e3bef7b5b9d1a596500ead2738d3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3404677 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Brandon Schade 38fada35 2022-01-27T18:16:18 Vulkan: Add support for OES_primitive_bounding_box Add OES version of the primitive bound box extension Bug: angleproject:3576 Test: dEQP-GLES31.functional.primitive_bounding_box.* Change-Id: Ie44d952992a68dfffd5c124dda8dd11069f0c1e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3425086 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Brandon Schade 91b383e8 2022-01-27T10:22:17 Translator: Emit warning when identifier has double underscores OpenGL ES Shader Language 3.2 specification states that two consecutive underscores (__) are reserved. It doesn't result in an error if used but could result in unintended behavior. Update the translator accordingly. Bug: angleproject:6577 Tests: ShaderVariableTest.DoubleUnderscores* Change-Id: Ice7e0eca4f770400061f4b8f7f65106cb1926f1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3421411 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Jamie Madill 945a09d1 2022-01-30T13:57:32 Vulkan: Fix off-by-one in DynamicBuffer. allocateFromCurrentBuffer was using >= when it should have been using >. This prevented filling a buffer to the exact maximum. Bug: angleproject:6776 Change-Id: I9656e398080381f97d06912ff10fe62e7e7333ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426882 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Wez d6fb76a6 2022-01-31T16:14:17 [fuchsia] Don't try to use calling executable path to load .so's Bug: angleproject:6964 Change-Id: I856bdbcb83826c6af88ffa79c2a97b97ca827c85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427639 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 868c0739 2022-01-29T13:59:30 Vulkan: Fix image base/max level respecification case. Bug: angleproject:6776 Change-Id: I3e7774c20bae6d7ad7b1775d46797104e2429b81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426208 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 0a6c4310 2022-01-27T10:26:43 Vulkan: Fix incorrect gl_SamplePosition on ES3.2 gl_SamplePosition was not being replaced with angle's variable that takes into account surface rotation in ES3.2 shaders. This change fixes the translator to search for the ES3.2 variant of the builtin when the shader is an ES3.2 shader Test: dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.default_framebuffer --deqp-gl-config-name=rgba8888d24s8ms4 Test: dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer --deqp-gl-config-name=rgba8888d24s8ms4 Bug: angleproject:5637 Change-Id: I2b56ee4d2196fa717748c7205745169de562cb22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3421526 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sergey Ulanov 3c727e44 2022-01-31T22:18:22 Allow GL_RGBX8_ANGLE for texture copy destination Updated IsValidCopyTextureDestinationInternalFormatEnum() to allow GL_RGBX8_ANGLE. Bug: chromium:1269826 Change-Id: I07533560d8f0d6f9d114e7c05927f670c6f96891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426820 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f810e998 2022-01-31T11:39:37 Use a temporary timeout multipler for trace tests. The trace tests upload is frequently timing out on our test infra because of the size of the test suite. Until we can find a better solution we can increase the timeout non-invasively using an environment variable. Bug: angleproject:6854 Change-Id: Ifbe43c4d9dc8928cf35df8a26b844f884c90eb9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427560 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 508a8a02 2022-01-31T15:12:55 Remove old spellings for SYNC-HAZARD-WRITE_AFTER_READ skips Obsoleted by VVL roll crrev.com/c/3426000 Bug: chromium:1292106 Change-Id: I360dea6f97e75a25245597e96553aa86d655c340 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3428099 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 2d3ce72d 2022-01-20T10:13:06 Refactor shared library load to avoid allocations. Fixes a leak of an angle::Library detected in the EGL loader. Bug: angleproject:6937 Change-Id: I623aa6172b98a35465e1d2641b92f67bdc5d24e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403060 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 665ddccd 2021-12-09T23:06:39 Vulkan: Emulate dithering Dithering in OpenGL is vaguely defined, to the extent that no dithering is also a valid dithering algorithm. Dithering is enabled by default, but emulating it has a non-negligible cost. Similarly to some other GLES drivers, ANGLE enables dithering only on low-bit formats where visual banding is particularly common; namely RGBA4444, RGBA5551 and RGB565. Dithering is emulated in the fragment shader and is controlled by a spec constant. Every 2 bits of the spec constant correspond to one attachment, with the value indicating: - 00: No dithering - 01: Dither for RGBA4444 - 10: Dither for RGBA5551 - 11: Dither for RGB565 The translator appends code to the shader that, based on the format specified by the specialization constant, adds dithering to each color attachment output. A 2x2 Bayer matrix is used for dithering, indexed by gl_FragCoord.xy % 2. Bug: angleproject:6755 Change-Id: Ib45da5938e299b6626bff921119d63e7357dd353 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3374261 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 471f1852 2022-01-31T11:22:49 D3D11: Fix underflow with computing small strides. When an attribute stride was less than the size of a vertex element, and the D3D11 back-end emulates this vertex format, our vertex streaming logic could decide that an unsigned int underflow means our element count in a buffer is not computable and return zero. Fix this bug by using signed integers in the element conversion. Bug: angleproject:6958 Change-Id: Ibd9a3599d780e953d492db739c7443662c7e6b82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427559 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 55ef2b4f 2022-01-28T23:24:49 Update one more SYNC-HAZARD-WRITE_AFTER_READ skip vkCmdCopyImageToBuffer() was changed to vkCmdCopyImageToBuffer in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3705 Skip both variants for now, the old one to be removed after a VVL roll. Bug: chromium:1292106 Change-Id: I8c1a6be7bcf829c9a8b848c5ef2362462a965a11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424667 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 168e0ae5 2022-01-27T16:50:00 Vulkan: Refactor descriptor pool code. This uses vk::Context to init DynamicDescriptorPool, and removes some accesses to ProgramExecutableVk member variables so the methods can more easily be moved into another class. The changes should have no effective behaviour difference. Note that the immutable sampler descriptor count is entirely set by the format of the immutable samplers. However we can't determine this count by looking at the descriptor set layout desc with the current implementation. Bug: angleproject:6776 Change-Id: I0a323d19fa3720b5afd8300401ed9c30b105c0ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424657 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov a994ea99 2022-01-28T17:52:16 Update SYNC-HAZARD-WRITE_AFTER_READ skip VK_PIPELINE_STAGE_2_NONE_KHR was renamed to VK_PIPELINE_STAGE_2_NONE in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3705 Skip both variants for now, KHR to be removed after a VVL roll. Bug: chromium:1292106 Change-Id: Ie8d095eccedc526880edf7d3601fa0aca23c1498 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424665 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jeff Vigil e03f1753 2022-01-06T09:48:12 EGL: mutable_render_buffer deferredFlush fix When in SINGLE_BUFFER mode, need to get around deferredFlush and call Swapbuffers to force update This must do status check for OUT_OF_DATE. Bug: angleproject:6878 Change-Id: I34b7381f6799879bf6f6d490aba02feffc5c3748 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373739 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
sugoi1 8a1f8af4 2022-01-28T10:51:47 Turn on the Vulkan backend on ChromeOS ChromeOS needs to switch from testing on legacy SwiftShader GL to testing on SwANGLE instead. This CL allows ANGLE's Vulkan backend to exist on ChromeOS. Bug: chromium:1225003 Change-Id: I7bf702ce18857707226461152b560a570797fce0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424658 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Lubosz Sarnecki 9bf5716c 2022-01-26T16:39:11 Tests: Add War Planet Online trace. Add GL_KHR_texture_compression_astc_ldr prerequisite. Test: angle_perftests --gtest_filter="*war_planet_online*" Bug: angleproject:6774 Change-Id: I3d595453a0a570a1af4b1e6673cfc77e4ff9210b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3420296 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 287057b3 2022-01-25T17:01:43 FrameCapture: Don't track coherent buffers before capture starts. Even though coherent buffer storages were only captured after capture was activated, the buffer tracker was incorrectly initialized with the first call to glMapBufferRange, even though capture was not active. This fixes corrupted rendering in War Planet Online due to all coherent buffer storages being tracked at initialization of the app, when FrameCapture was enabled but not active. Introduce mMidExecutionCaptureActive, which exposes if MEC is currently executed. Bug: angleproject:5857 Bug: angleproject:6774 Change-Id: I4849d6497e8e08aefc60e68bae027915e9b2912f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3416227 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 42c8b29d 2022-01-05T13:35:23 Tests: Add Dead By Daylight trace. Add GL_EXT_shader_framebuffer_fetch prerequisite. Ignore SYNC-HAZARD-READ_AFTER_WRITE validation error in RendererVk. Test: angle_perftests --gtest_filter="*dead_by_daylight*" Bug: angleproject:6870 Change-Id: I01f53ff8d26b704b75afe8c02ac12777b51fd5de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3372793 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Kyle Piddington c4a9d416 2022-01-05T15:28:11 Metal: Refactor to build without SPIR-V Refactor ShaderInterfaceInfoMap and constant names to thier own files, allowing Webkit to build without needing to compile SPIRV code via mtl_glslang_utils.cpp. Bug: angleproject:6782 Change-Id: I7a9c7e387145c95807f780e24bd2764e0efb5709 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3364970 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Charlie Lao 701d51b1 2022-01-25T15:44:39 Vulkan: Add SmallBufferPool for small allocations The small pool uses buddy algorithm that is much faster. The only downside is that it rounds size to power of two. For small allocations that rounding does not generate much waste and avoid fragmentation as well. This CL adds a small pool for host visible non-coherent pool. My testing with gardenscape shows that on top of other CLs, this reduces CPU overhead from 1.77ms to 1.55ms as measured with --minimize-gpu-work with offscreen. Bug: b/215768827 Change-Id: I68434931f238c4e980b77d3df46d762260ef1db5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3415211 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Robert Phillips 66e01ae5 2022-01-26T15:57:26 Expand error message on BindTexture validation failure Bug: chromium:1288391 Change-Id: I34098a64162c78c20a485ece1cd98178242c6864 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3417919 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 706e44b0 2021-12-23T19:36:44 Tests: Add PUBG Mobile launch trace Note: This isn't full representative of the shader compilation phase, since the glGetProgramBinary() calls are excluded from the trace due to missing functionality. The goal of this trace is to benchmark the compile/link/use program steps, so this trace is still useful from that perspective. Test: TracePerfTest.Run/*pubg_mobile_launch Bug: angleproject:6848 Bug: angleproject:6850 Change-Id: Ic0572b9fd1d0d26a53571c64446e577c7af7fa3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3355556 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Charlie Lao df19e35a 2022-01-24T17:47:58 Vulkan: Use queue for mGarbageQueue This variable is also acting exactly like queue as the name implies. This CL changes from vector to queue so that the very last erase() call will not actually move anything. Bug: b/215768827 Change-Id: Ieb39c3a1b3acb25f93bcda2a46737a6d009d71f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414355 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Jamie Madill 4e644b33 2022-01-22T16:17:46 Vulkan: Remove ProgramExecutableVk back-pointers. This removes the mProgram and mProgramPipeline back-pointers from ProgramExecutableVk. In order to fix this, we needed to refactor the VkPipeline init functions to call through ProgramExecutableVk only instead of passing through ProgramVk. We also needed to move the early fragment shader optimization boolean out from Program. This CL also fixes a few places where the early fragment test optimization boolean wasn't properly updated. Bug: angleproject:3570 Change-Id: Ie4c48087f6eb022e6f0a4dacc2710085165d49e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3408267 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Patrick To b3ed4780 2021-12-21T17:20:19 Change Windows display initialization from ANSI to wide version Bug: angleproject:6846 Change-Id: I2aee8f4b5b7546fc707705e435251fa9861e27d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352866 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 602b957b 2022-01-26T15:01:21 Enable robustnessEXT for SwiftShader. This is a reland of commit b803b60df1806f189c1b29ca77da47896241e0f1. The issue with webgl-oversized-printing.html crashes is supposed to be resolved by commit b1216bf1759ab23ffe2d6b6727f9ec10ddfa4d0f Failing test angle-instanced-arrays-out-of-bounds.html disabled by commit d235e032000d611d31e6fd8a8190e4425b4c0ecb I don't think we need to change the test expectations any more as that swiftshader issue is supposed to be already fixed http://anglebug.com/6906#c4 Bug: chromium:1287631 Bug: angleproject:6922 Change-Id: I0fdf806cac51d000088a029bbb3070906453dfb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3415875 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 2ad5f350 2022-01-25T12:15:16 Vulkan: Fix texture array level redefinition When a level of a texture is redefined, all staged updates to that level should be removed, not the ones specific to the new layers. The bug fixed was that if the texture was redefined to have its number of layers changed, the staged higher-layer-count update to the image was not removed. Bug: chromium:1289383 Change-Id: I9b90025f78af80ab19a280f90b58510716da31d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3413004 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
John Cunningham 45237a04 2022-01-11T00:14:01 Metal: Fix undefined behavior of depth write Writing to an unbound depth attachment is undefined behavior in Metal. Fix this by emitting a function constant to guard depth buffer use in fragment shaders. Bug: angleproject:6865 Change-Id: Id7c10d0aeb349aacfe09c397bc292a71199ab50a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380304 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Brandon Schade aadc6434 2022-01-24T18:28:19 Vulkan: Fix to correctly redefine gl_PerVertex in GS Angle translator structures were inconsistent of data lookup of gl_PerVertex data when it is user defined. Bug: angleproject:5579 Test: KHR-GLES32.core.geometry_shader.api.getProgramiv3 Test: GLSLTest_ES31.PerVertex* Change-Id: Ied9ea25ce86ade29261f4f75ce0b48af15061760 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2962352 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Charlie Lao a7970889 2022-01-24T11:50:27 Vulkan: Use queue instead of vector for mSharedGarbageList The garbage collector code is iterating the mSharedGarbageList from begin to end and if the garbage object is completed, we destroy it and erase it from the vector. This is done one by one. The problem with that is each erase call end up moving the remaining vector to ahead by one, and this process is repeated for each completed element. This is O(N^2) problem and really magnifies when you have many garbage objects. Since we only add garbage when it is GPU pending, so most of these garbages are in sort of fifo order anyway. This CL changes the garbage list from vector to queue so that erase becomes pop and this becomes a O(N) problem. This reduces CPU overhead as measured with minimize-gpu-work for gardenscapes from 10ms to 2ms due to suballocation generates lots of garbages. But this CL is a general improvement for the garbage collection performance. Bug: b/215768827 Change-Id: I002aadf75f958d8b79eb6281a2608597776e908d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414354 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 39f66a9c 2021-12-16T23:26:00 Vulkan: Support different SCBs for outside and inside RP The render pass command buffers are generally much larger than outside render pass command buffers, and their allocation sizes and frequencies differ. This change allows choosing between ANGLE and Vulkan secondary CBs independently for outside and inside render pass commands, as part of an investigation to understand which implementation performs best for each. Switching to Vulkan secondary command buffers is still slower. In the ball park, switching outside render pass SCBs doesn't seem to make much difference, while switching render pass SCBs duplicates the frame's CPU time. Bug: angleproject:6811 Change-Id: Ia8455fd19897a0eaeadf3d6db29286ea53df1f5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346341 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill cb96c236 2022-01-26T18:53:55 Revert "Vulkan: Enable framebuffer fetch on SwiftShader." This reverts commit 5107231939b5e04d3d5e4376176db42c3ae60193. Reason for revert: Fails new code paths in Chrome+Skia. Bug: angleproject:6947 Original change's description: > Vulkan: Enable framebuffer fetch on SwiftShader. > > This also fixes a bug with non-coherent fetch in the symbol table. > > Bug: angleproject:6947 > Bug: angleproject:6948 > Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6947 Bug: angleproject:6948 Change-Id: I8bd6c55598552b733547e45c854f6d55768d2b65 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3417503 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7c1346bd 2022-01-21T11:35:45 Vulkan: Consolidate uniforms code in ProgramExecutableVk. De-duplicates several methods. Refactoring change only. Bug: angleproject:3570 Change-Id: Ib68bc30b3e9b1087871bb268ea292677e0c9fe2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3408061 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b2d55742 2022-01-21T12:28:32 Program: Add generic uniform update methods. This will make it easier to make central changes to all the update methods. Otherwise we'd have to replicate changes in each separate member. Bug: angleproject:3570 Change-Id: Ia765720507642338d6e9777b7e38fb323800359b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3407734 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 374e0c43 2022-01-20T14:04:27 ProgramPipeline: Remove mHas members. These are no longer needed now that the excutable mirrors uniforms/ samplers/sahder buffers/etc.. Refactoring change only. Bug: angleproject:3570 Change-Id: I768381ac64a750f04180ab824302e3550030911c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403047 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0dc0dc2a 2021-12-30T11:35:40 Re-land: "Vulkan: Remove "fillProgramStateMap"." This copies additional shader info like uniforms from the Program to the Program Piplines. There is now a duplication between PPOs and Programs. There is no additional storage required for non-PPO Programs. Re-land fixes fragment in/out uniform updating with PPOs. Bug: angleproject:3570 Change-Id: I64b2db6fbc3a610f3b5e617301f94eb30d915939 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412999 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51072319 2022-01-25T10:41:25 Vulkan: Enable framebuffer fetch on SwiftShader. This also fixes a bug with non-coherent fetch in the symbol table. Bug: angleproject:6947 Bug: angleproject:6948 Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov aaac31b4 2022-01-25T18:27:11 Unskip dEQP.GLES3/functional_shaders_operator_unary_operator_minus_* Fixed in crrev.com/c/3407737 Bug: angleproject:6916, angleproject:6645 Change-Id: I9b7ee44aed7d77e581b48f871e0f0dd1195dabf0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3413009 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki c5498b95 2022-01-21T13:33:49 FrameCapture: Reset immutable buffers correctly. Restore immutable buffers using UpdateClientBufferData. Regenerate immutable buffers using CaptureBufferStorageEXT. Bug: angleproject:4599 Bug: angleproject:5857 Bug: angleproject:6774 Change-Id: I8e80e9e32633b1303855e5a6ba7ac62941929645 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406755 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 8474c8e1 2022-01-21T12:30:15 FrameCapture: Add Renderbuffers to mStartingResources. This prevents Renderbuffers being deleted in Reset when they were captured with MEC and added to the Setup function. Bug: angleproject:5857 Bug: angleproject:4599 Change-Id: Ie61f75f69e3a3846877b1e8f5d9c98d5d0cecb2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406754 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Roman Lavrov 5f0badf4 2022-01-18T20:05:55 Vulkan: Prevent out of bounds read in divisor emulation path. Split the replicated part of StreamVertexData out to StreamVertexDataWithDivisor, there is only a partial argument overlap between the two. Bug: chromium:1285885 Change-Id: Ibf6ab3efc6b12b430b1d391c6ae61bd9668b4407 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3398816 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Lubosz Sarnecki 526c93dd 2022-01-05T17:21:34 FrameCapture: Detect GL_MAP_COHERENT_BIT_EXT correctly. In MEC, look for GL_MAP_COHERENT_BIT_EXT in getStorageExtUsageFlags as it will never occur in getAccessFlags. GL_MAP_COHERENT_BIT_EXT will also never occur in glMapBuffer access flags, so just pass false. Bug: angleproject:5857 Change-Id: I9bc2a5d334d3b90653d33439d4055965593de5b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406753 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Gert Wollny d7585c22 2021-12-15T13:35:51 Capture/Replay: don't capture MS depth renderbuffer pixels Vulkan can't resolve depth textures and no emulation has been implemented todo so when required, therefore we hit an assertion in ImageHelper::readPixels if we try to read back the MS depth renderbuffer pixels. To work around this problem don't read back the data. Reorder the renderbuffer readback code a bit to make the code easier to follow. Bug: angleproject:6324 Change-Id: I6fb4d0f993b061393b249706efe4b2c9d44a6f96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jeff Vigil d6dd0cb5 2021-09-21T15:26:13 EGL: EGL_KHR_lock_surface3 backend Add vulkan implementation Add test: EGLLockSurface3Test Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test Bug: angleproject:6062 Change-Id: Id5bfe37895b550392d11e9e9cc1262c1f0288c42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174323 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 6a14e328 2022-01-25T00:49:45 Revert "Vulkan: Remove "fillProgramStateMap"." This reverts commit 38deffe40db83836588e0cd50864945a9ddba36b. Reason for revert: angle_end2end_tests failures on Pixel 6. Original change's description: > Vulkan: Remove "fillProgramStateMap". > > This copies additional shader info like uniforms from the Program > to the Program Piplines. There is now a duplication between PPOs > and Programs. There is no additional storage required for non-PPO > Programs. > > Bug: angleproject:3570 > Change-Id: I5ed6c946df945aaf2f65752f797b16e7649d5584 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3362297 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:3570 Change-Id: I3a4822c8a65d024070a9fe5df103b88a3c8333d3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414024 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>