src


Log

Author Commit Date CI Message
Chris Dalton c460c299 2022-06-21T11:20:45 Implement GLSL additions for ANGLE_shader_pixel_local_storage Specs out, implements, and thoroughly tests the GLSL additions for ANGLE_shader_pixel_local_storage. Adds a simple transformation that rewrites PLS directly into shader images. Updates the existing PLS tests to use the newly built-in PLS features and ensures they continue passing. For now, applications call glBindImageTexture to configure their pixel local storage. The OpenGL ES API side of this extension will follow shortly. Bug: angleproject:7279 Change-Id: I141183069b5cbfcca01cbb77b5b36d3e5f834bf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761876 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Roman Lavrov 992018c7 2022-07-20T17:31:47 Suppress VUID-VkGraphicsPipelineCreateInfo-pStages-06896. Bug: angleproject:7513 Change-Id: I2877c069e33d2ec5e92cf759dc3ab1d270e1a414 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3776759 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov 1e619503 2022-07-20T11:55:49 Skip TracePerfTest vulkan_car_chase on Linux Intel Flaky VK_ERROR_DEVICE_LOST on Intel UHD 630 Mesa 20.0.8 Bug: angleproject:7125 Change-Id: I7e99819a586e3f146728f49dfdeebf9e8ddcb219 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3777097 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang fc97b2da 2022-07-14T13:18:56 Vulkan: Always use depth<=256 AHB image siblings Android will sometimes use an uninitialized value for the layerCount, which results in huge, many-GB allocations down the line. If we see a big value there, force to 1. Bug: b/223456677 Change-Id: I201e9901d9c726a9af73d025ac33850d11a5a38a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764433 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang b860fa45 2022-07-14T13:14:06 Vulkan: account for yuvCscStandard in switch validation The previous condition only accounted for ints, but needs to account for yuvCscStandard in order to support the new emulated yuv<->rgb builtins. Bug: b/223456677 Change-Id: I25e0c88b9c8eb5f8caf3e7640fe391a9b9c10bf1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764431 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang be24acbd 2022-07-14T13:16:33 Vulkan: Support GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES This CL adds basic support for GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES to the Vulkan backend, and also allows the enum through validation. Bug: b/223456677 Change-Id: If0dcb467bb72bdfc9ced4862231a676eef471a6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764432 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Lingfeng Yang bd82a5e4 2022-07-07T17:03:27 Vulkan: __samplerExternal2DY2YEXT-aware ProgramExecutableVk This CL incorporates __samplerExternal2DY2YEXT into the Vulkan objects involved in ProgramExecutableVk. Specifically, we need: 1. TextureVk to create and return a VkSampler imbued with identity conversion model, so we can create an immutable sampler from it. 2. Access to the identity conversion desc so that it can be traced in mImmutableSamplerIndexMap. Bug: b/223456677 Change-Id: Ia302226a8aa4a97d4a42f79c79ce47af3abec37c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753294 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang 6c418f8c 2022-07-07T14:28:06 Vulkan: __samplerExternal2DY2YEXT-aware TextureVk This CL adds the ability for TextureVk to return an ImageView that is created with a VkSamplerYcbcrConversion object that uses an identity conversion model. This allows direct sampling of YUV values without RGB conversion, which is needed for __samplerExternal2DY2YEXT. Bug: b/223456677 Change-Id: Ie1d4e12375b7808a1f060747bc2d74baeda3fdea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751889 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 53d40aed 2022-07-15T15:03:25 Vulkan: Destroy descriptorSet cache when BufferHelper destroyed For atomic counter buffers or other cases, dynamic descriptor is not been used. Right now when such buffer is destroyed, the cache is still lingers around. With this CL, when a new cache entry has been created, we record the cache entry in the BufferHelper. When BufferHelper is destroyed, we also immediately destroy the cache entry since the cache will no longer reused. Bug: b/237686097 Change-Id: I26eee96318fbc003e65318c0b8263dc61092f350 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764044 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao c7459a46 2022-07-15T09:55:03 Vulkan: Destroy descriptorSet cache when BufferBlock destroyed When a new cache entry has been created, we record the cache entry in the BufferBlock. When BufferBlock is destroyed, we also immediately destroy the cache entry since the cache will no longer reused. This CL also removes DescriptorCacheResult from various APIs since it is now redundant with newSharedCacheKey argument. Bug: b/237686097 Change-Id: I14fa8906fdbe7d9226c8e8ecddef2beb05fbaa5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756694 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com>
Charlie Lao 8df0c53e 2022-07-11T16:56:26 Vulkan: Split suballocation out into it's own file Right now Suballocation and BufferBlock classes are in vk_utils.h, which is included by other header files. This made it difficult to have these two classes use variables defined in other headers. And vk_utils.h is really designed for utilities, it isn't the best place for bufferBlock/suballocation by definition. This CL split out suballocation code into its own file to make future CLs much easier. No functional change is expected other than move the code around. Bug: b/237686097 Change-Id: I36733468b4bed152a19d9c9bca8e7459c11c3b43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756761 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 45e5cf01 2022-06-03T14:29:23 Vulkan: Implement ASTC emulation. Implement ASTC emulation using the astc-encoder library. Add copy_image tests to deqp_gles31_test_expectations for desktop cards. Add emulatedAstc limitation. Don't expose emulated ASTC from WebGL contexts. Introduce ANGLE_HAS_ASTCENC define to check for build availability. Only build on angle_standalone configurations. DEPS: Add astc-encoder. image_util: Decode ASTC to RGBA. TracePerfTest: Skip car_chase and genshin_impact on NVIDIA. Bug: angleproject:7415 Change-Id: Ib2f3fd3f710164a2ecd5d5edf780227031bbfb84 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697999 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny a3899c53 2022-07-15T08:39:32 Capture/Replay: drop context capture call in EGL capture templ Using the context provided by the thread variable is not correct, it worked only by accident. The only call that uses a context is eglCreateImage and here we have to use the context passed into the call. Bug: angleproject:4964 Change-Id: I78250050cc8f7271be8c91c2d09d99210aaead21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762458 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Faye Zhang <ffz@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 645ee194 2022-07-18T21:48:59 Vulkan: Only modify input attachment images for FF MSAA fix up Previously all OpTypeImages were changed to MSAA, but only the ones with the SubpassData dimension should have been. Bug: angleproject:6195 Change-Id: I1caadd23420f0d9cffdee4e3b9d63cf6fa93982e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770645 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d4e54b81 2022-07-17T22:56:51 Vulkan: Clean up garbage of last completed submission too Due to an off-by-one error, the garbage of the very last completed submission was not actually cleaned up. Bug: b/172704839 Change-Id: I4fb6a77af4379568990853e4bf3fd945fcde657c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769547 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5f7e0e50 2022-07-15T21:58:11 Translator: Remove early fragment tests transformation We no longer add early_fragment_tests as an optimization. Bug: angleproject:7347 Change-Id: Ic12d8491a4d24d546b6b19257cd63c71074ba3a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769546 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Eddie Hatfield f1dac70d 2022-07-12T15:56:10 Remove platform skips for cookie_run and real_cricket These traces now work after being updated in restricted_traces.json. Bug: angleproject:7420 Change-Id: I57be700afb0a9232ce88bf2eed5f5104256b94f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759428 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3baa867c 2022-07-14T23:08:42 Vulkan: Fix image arguments passed to functions in GLSL It's impossible to provide the format qualifier to an image function parameter in GLSL, because `layout()` is not acceptable there. SPIR-V doesn't accept formatless image parameters without the StorageImageReadWithoutFormat and StorageImageWriteWithoutFormat capabilities, which are not universally available. Instead, this change monomorphizes functions with image parameters. Note that this was already previously done for R32F images for emulation purposes. Bug: angleproject:7484 Change-Id: Id287c4a93b32deb3fd8be982c32fa58fd2c848d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763074 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 2c3c45ee 2022-07-18T12:37:57 Roll VK-GL-CTS from ef9a6635208b to 692df061716d (12 revisions) Includes suppression of new render_sample_texture_array dEQP tests on Android. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/ef9a6635208b..692df061716d 2022-07-15 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-07-15 jan-harald.fredriksen@arm.com Avoid dependency on geometry shaders for VK_ARM_rasterization_order_attachment_access 2022-07-15 michal.jakubek@mobica.com Global Priority Queue Families Tests 2022-07-15 rgarcia@igalia.com Test resetting queries after copying results 2022-07-15 piotr.byszewski@mobica.com Remove some RT SkipTriangles tests 2022-07-15 piotr.byszewski@mobica.com Enable FSR basic tests for Vulkan SC 2022-07-15 toni.merilehti@siru.fi Add tests for array comparisons 2022-07-15 yiyfan01@arm.com Add Texture2D array test in which Texture2D array is rendered and sampled. 2022-07-15 michal.jakubek@mobica.com Fix for attachment count in EXT_color_write_enable tests. 2022-07-15 piotr.byszewski@mobica.com Fix maxImageView(MipLevels/ArrayLayers) bug in SC 2022-07-15 skirank@nvidia.com Fix vkwsi Display control tests 2022-07-15 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,romanl@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:7506 Change-Id: I0b674a424cc109126b5a590430546942c6db3740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769550 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Eddie Hatfield 466fc0c6 2022-06-30T15:47:14 Add new prerequisite type for GL_ENUM integers This check is not applied in this commit. Bug: angleproject:7420 Change-Id: Ie84600c21aa4829c8d8c798643719c3084597af4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759423 Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov bf369285 2022-07-18T15:12:13 Suppress SYNC-HAZARD-WRITE_AFTER_READ in vulkan_car_chase Bug: angleproject:7125 Change-Id: Ibebe363bcc98413f259db9cb959b0ef816ed5ee2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768935 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Kyle Piddington c4004751 2022-06-23T14:35:21 Metal: texture allocation failures handled incorrectly When allocating large textures, allocation may fail if textures exceed the Metal memory limit. When a nil texture is returned, we should check texture allocation before assigning it as a backing object ANGLE port of the following bug https://bugs.webkit.org/show_bug.cgi?id=240790 Bug: angleproject:7459 Change-Id: Ib94f42d25df28a31513ab78fc42c6523bfbc5f76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3722601 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org>
Amirali Abdolrashidi 496bddf3 2022-07-14T20:58:03 Skip mutable texture upload tests through feature * Added a condition in the mutable texture upload tests in VulkanPerformanceCounterTest.cpp, to skip the test if the feature `MutableMipmapTextureUpload` is disabled on that platform. Bug: angleproject:7308 Change-Id: Iff1985cabb463dc82ef15340cf3c485a0b680f0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3765180 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton 15cc0013 2022-07-14T23:32:05 Add a GL_ANGLE_shader_pixel_local_storage extension Plumbs through "GL_ANGLE_shader_pixel_local_storage" and "GL_ANGLE_shader_pixel_local_storage_coherent" extension strings advertised by ANGLE and stubs out an initial spec document. This change doesn't add any new procedures or shader constructs, but it does allow the PLS tests to start checking for the real extension strings and requiring the GL_ANGLE_shader_pixel_local_storage extension. Bug: angleproject:7279 Change-Id: I36877fe4117185a2121f803288123cd69a447cf3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739590 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Shahbaz Youssefi 1ae7a56c 2022-07-14T13:11:16 Vulkan: Fix double clear of AHBs Originally when deferred clears were implemented, it was assumed that it's impossible at glClear time to have a render pass open without any commends. This assumption was broken under two circumstances: - Clear of 3D attachments that don't include all layers - Clear of AHBs In these cases, the clear immediately opened a render pass with nothing but loadOp=CLEAR. If another clear followed, an assertion would fire. In this change, open render passes without commands are handled such that clears are accumulated in the loadOps. Bug: b/223456677 Change-Id: If99bcf9e24454b0c9e140cb93df7e7f76f175363 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763169 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Peng Huang 8f2fbbeb 2022-07-14T11:30:12 Inline all metal command buffer decoder methods It should improve command buffer decoding slightly. Bug: angleproject:7296 Change-Id: I2481d0760c937a26c7c998131b398dd83bd0eaf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763063 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Yuly Novikov ebf14fe3 2022-07-14T17:19:15 Return EXIT_FAILURE from run_perf_tests.py if any test failed Previosly EXIT_FAILURE was returned only for exceeding max_errors, which made Swarming erroneously believe that the task succeeded, even though some tests in it could have failed. Bug: angleproject:7498 Change-Id: I896fe97e7d24549202663351d5b61b206afbe6b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762456 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi ea138236 2022-07-12T15:51:05 Remove suppression for passing dEQP tests Numerous GLES3.2 tests are now passing. Bug: angleproject:5557 Bug: angleproject:5579 Bug: angleproject:5978 Bug: angleproject:6441 Change-Id: I6e42a3590390ff984432586c1cd642b20fcd758f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758704 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi d9763c60 2022-07-14T14:42:27 Disable mutable texture upload on Win/Intel devs After adding the mutable texture upload CL, we are experiencing some instances of flakiness in the form of lost context/device errors in the perf tests in Win/Intel cases. * Added mutableMipmapTextureUpload as an ANGLE feature, which is used to determine if onMutableTextureUpload() should be called. * It is disabled on Windows when using an Intel GPU. * Disabled the related unit tests on Win/Intel cases. Bug: angleproject:7308 Bug: b/202744914 Change-Id: Ib8c1bddc39cc4354468831a4a599a7c343d05f0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764460 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Brandon Schade 5911243c 2022-07-06T15:55:28 Fix linkValidateTransformFeedback for glLinkProgram From OpneGLES 3.2 spec. 11.1.2.1: A program will fail to link if the count specified by TransformFeedbackVaryings is non-zero, but the program object has no vertex, tessellation evaluation, or geometry shader. Add check in validation to account for this. Bug: angleproject:5557 Tests: ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying Change-Id: Ia86cbe8e85cb6a69fd35ddc4bc6ee37b9500c78f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723861 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 01092c48 2022-07-12T10:11:22 Vulkan: Destroy descriptorSet cache when shader image is destroyed Similar to texture descriptor set, this applies to images used as shader resource. When a texture is used in a shader resource descriptorSet, we record it. When texture is destroyed, we also destroy that shader resource descriptorSet cache. Bug: b/237686097 Change-Id: I475982fcec45535cc285a4aebca922d01efc7ed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758884 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao e25137c0 2022-06-29T09:57:50 Vulkan: Move DescriptorSet cache to DynamicDescriptorPool DynamicDescriptorPool has an array of DescriptorPoolHelper. Right now mDescriptorSetCache is stored in DescriptorPoolHelper. This means when you search cache for the match, you have to iterate over the array of DescriptorPoolHelper to decide to make conclusion if there is a match or not. Each hash map search means compute hash and do key comparison. I think this was done this way because of we used to not able to evict cache when we decide to reuse DescriptorSetPoolHelper object (when we call pool->init). But with recent changes of SharedDescriptorSetCacheKey, we are able to evict specific cache entries. This CL moves mDescriptorSetCache to DynamicDescriptorPool so that cache look up can be cheaper. This also made CacheStats simpler as well. With Gfxbench gl_driver2_off and cpu clock locked, this CL improves score by 2.16% (from 4019 before CL to 4105 after CL). See bug for detailed data. Bug: b/237686097 Change-Id: Ia6fa7a6b725974e0150bc21cdf0140d9198c8332 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735736 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 6cbf0c01 2022-07-14T11:35:46 Vulkan: Only apply MSAA FF fix up if executable has FF Due to the permanentlySwitchToFramebufferFetchMode feature, framebuffer fetch is permanently enabled on first use. Checking GraphicsPipelineDesc as previously done would thus always return true, even if the executable does not use framebuffer fetch. As a side effect, every multisampled draw turned into a per-sample shading draw. Bug: angleproject:6195 Change-Id: I748abddd2003297d6ff37a98e69cce4621697ad7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763064 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Kyle Piddington eaf77ef3 2022-07-07T10:25:16 Metal fails to compile uniform blocks in ternary statements When creating an intermediate type for type expansion, Metal was copying over information about which uniform block a type appeared in. This led to a later pass, RewriteNamelessUniformBlocks, failing. This patch helps address a compile failure in the Godot engine. Bug: angleproject:7487 Change-Id: If0724f93017e41260ff11e59a5c28e8578563891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751106 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Gregg Tavares <gman@chromium.org>
Yuly Novikov 5d59c0eb 2022-07-14T15:04:41 Skip EGLBufferAgeTest.QueryBufferAge on Linux Intel Vulkan Fails on Optiplex 7080 Mesa 20.0.8 Bug: angleproject:7497 Change-Id: I413c9dd7a1d97b4120f4d65de3b2b0107cde15ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762469 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Gert Wollny eb88a2ac 2022-07-11T17:16:49 Capture/Replay: Handle the case when there is no context in eglCreateImageKHR, when target is EGL_NATIVE_BUFFER_ANDROID then the context must be EGL_NO_CONTEXT, so handle this case. Bug: angleproject:4964 Change-Id: I945d2af546f3f3a14be966e5cac795b58aa3c89f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755785 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Faye Zhang <ffz@google.com>
Roman Lavrov 16e7226d 2022-07-13T17:56:36 Propagate device type in ReuseUnterminatedDisplay. Fixes the issue with SwiftShader from https://crrev.com/c/3717277 Bug: angleproject:7494 Change-Id: Icb83087caf789518b0c3f30b10b543b299a500bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759712 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b038605c 2022-07-13T17:45:49 Fix test dependency on EGL initialization elsewhere. The current implementation only works because RegisterContextCompatibilityTests in EGLContextCompatibilityTest.cpp initializes EGL beforehand. Bug: angleproject:7494 Change-Id: I739ea8cdcddb1d8ea37204f5a1fa6c3844620d1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761276 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi 32c5fd8a 2022-05-13T14:31:03 Reland "Vulkan: Flush texture updates more often" This is a reland of 8bb7c35c2159de2fa9e9a008679c692edd4402a6 * Added a condition to make sure the previous texture is not immutable when performing the optimization. * Fixed the issue where mipmap textures with unequal dimensions were not flushed. * Added related tests. * Added kEnableMutableMipmapTextureUpload, a flag to enable/disable the feature (enabled by default). Original change's description: > Vulkan: Flush texture updates more often > > * Added a pointer to the previous texture in ShareGroupVk so we can > flush the texture updates once we switch to a new texture. > > * We check if mip levels 0 and 1 are conformant in terms of > size, format and number of samples. > > * As a part of size check, we also check depths if the texture > target is either 3D, 2D array, or cube map array. For the former > two, they have to conform to mip scaling similar to width and > height. For the latter, the depth represents layer-faces and does > not change for mipmaps. > > * Added a test to ensure the pointer to the previous texture is > deleted when the corresponding texture is deleted, so the old value > is not accessed by a future mutable texture. > > * Added tests to make sure the mutable texture is uploaded with > the appropriate mip level attributes, and not uploaded in cases of > size/format inconsistencies, incompleteness, and no base level. > > Bug: b/202744914 > Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: b/202744914 Change-Id: I2bdbcd0182a57c18c1a18968396251a2e366731b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646959 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 0d3ecf46 2022-06-24T16:37:17 Vulkan: Multisample Framebuffer Fetch Implement Multisample Framebuffer Fetch. This should fix the deqp failure dEQP.GLES31/functional_blend_equation_advanced_msaa_colorburn Bug: angleproject:7351 Bug: angleproject:3586 Bug: angleproject:6195 Bug: b/234173199 Change-Id: Idd7559dcba3d91e36d8f253f1554fb931a7a6775 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3724165 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Mohan Maiya 12efe5b2 2022-06-21T15:43:42 Cleanup invalid EGL handles only if app called eglTermiate Maintain set of active threads instead of a global refCount and free display's invalid EGL resources iff - 1. app previously called eglTerminate on that display 2. there are no more active threads associated with that display Bug: angleproject:6723 Test: EGLMultiContextTest.RepeatedEglInitAndTerminate* Test: EGLMultiContextTest.ReuseUnterminatedDisplay* Change-Id: I868491bbbf0664e9129dcb0d1fa9e2243ef36d82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3717277 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Alexey Knyazev 5897d6f5 2022-07-07T00:00:00 GL: Add emulateCopyTexImage2D workaround Using texImage2D + copyTexSubImage2D seems to be more stable than using copyTexImage2D directly. Added missing HALF_FLOAT fix to the code path that requires target texture initialization. Fixed target texture dimensions when initialization is not required. Fixes Apple GPU crashes in: * CopyTexImageTest.DeleteAfterCopyingToTextures * conformance/textures/misc/texture-copying-and-deletion.html * conformance/textures/misc/texture-copying-feedback-loops.html Bug: angleproject:5038 Bug: angleproject:5360 Bug: chromium:1130703 Change-Id: I5cce087983601e768902f01b3462ec2106e2500a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749921 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Constantine Shablya b47603e0 2022-06-14T05:47:54 Implement GL_NV_read_depth_stencil The implementation will perform two readPixels calls, once for each aspect, and then interleave and pack the result. Bug: angleproject:4688 Change-Id: I46390df893de50b93e855e9333ffab567215a2bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702686 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Ian Elliott d88f7906 2022-07-01T12:57:09 Extra buffer logging/checking on Android Cuttlefish This adds a feature that will be enabled on Android Cuttlefish systems, to catch a rare crash. Test: Visual inspection of logcat output Bug: b/236098131 Change-Id: Ie35d7e017f69b36da9caf3e47c31fcc71846caed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726963 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 4f7d2d02 2022-07-12T11:55:19 Vulkan: SPIR-V Gen: Apply Flat to gl_ViewID_OVR in FS Follow up to https://chromium-review.googlesource.com/c/angle/angle/+/3756612 Bug: angleproject:7491 Change-Id: I0a5fdfba6474cf22b3cfcd56f02d7418f4928981 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758703 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 3622f147 2022-07-11T20:36:46 D3D: Fix compile after CreateTemporaryFile changes Test: Compiled with "angle_enable_trace = true" Bug: angleproject:5095 Change-Id: I0afce1ced5d83aabe1a5183434029e03bee22eff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756358 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Eddie Hatfield <eddiehatfield@google.com>
Shahbaz Youssefi c525ccf7 2022-07-11T17:07:09 Vulkan: SPIR-V Gen: Apply Flat to int inputs in FS Not directly specified by the spec itself, but required according to this more generic statement: > Fragment shader inputs that are, or contain, integral types must be > qualified with the interpolation qualifier flat. This was previously fixed for gl_Layer in https://chromium-review.googlesource.com/c/angle/angle/+/3652746, but applies to gl_SampleID and gl_PrimitiveID as well. Bug: angleproject:7491 Change-Id: Ideae78ba57fe927ad0aa39460a5940dd5313ce9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756612 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares 82ff27bf 2022-07-08T12:38:41 Add Metal to the perf tests Bug: angleproject:7296 Change-Id: I69cd17c464d48b933c51466bf9d21c278438c4e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753277 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 3b5b7a29 2022-07-03T00:00:00 Caps: Check if ANGLE_texture_multisample is enabled Updated RenderbufferMultisampleTest.IntegerInternalformat and adjusted getRenderbufferParameteriv validation. Bug: angleproject:7479 Change-Id: Ieaeda4e8a8c11c3d1023f40a90639f3ecfcba9bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738148 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 056c6c7c 2022-07-11T00:00:00 Metal: Skip invalidation of emulated formats Fixes SimpleStateChangeTestES3.InvalidateRGBThenDraw on Apple GPU. Bug: angleproject:7397 Change-Id: Ice5677004b38c3d67a9fc938d15dd64a20723380 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755782 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 94bbb40a 2022-07-04T00:00:00 GL: Enable pack skip emulation on all Apple drivers * conformance2/reading/read-pixels-pack-parameters.html is failing in WebKit on M1 without this workaround Bug: angleproject:4849 Change-Id: I710386d29c120e59338cd56fc9843cd6232ff96c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3743445 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao a1f8049a 2022-07-06T13:12:20 Vulkan: Remove VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT Some virtual machine drivers have performance cost with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT. This CL keeps the individually freed descriptorSet in the pool and try to reuse rather than free it. This CL also removes descriptorSetCount from some API since it always allocate one at a time. Bug: b/237848471 Change-Id: I029d651101fa1050770eba9e733a166e56a69684 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749797 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9931dfd5 2022-05-02T00:00:00 D3D9: Implement float sources for Image9::copyFromRTInternal Bug: angleproject:5038 Bug: angleproject:6257 Change-Id: I4f21fb1e37a985e2179d9c06101fa5bd2fedb100 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738143 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Alexey Knyazev 925ec6b5 2022-07-07T00:00:00 Clamp viewport dimensions on store Bug: angleproject:7486 Bug: chromium:1130759 Change-Id: I6131baacc940b5df7e33ba10fca8e6e148cb8670 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751056 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mark Lobodzinski fb3e2def 2022-05-24T15:47:01 Extend labelObject functionality Modify interface to fully support labelObject return codes. Fix issues with texture implementation, including handling deferred Vulkan object creation. Bug: b/229105865 Change-Id: I0c64b72dd0b54642fb643ee7f5ccbb2a134c6787 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3703184 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Alexey Knyazev a4e00c64 2022-06-30T00:00:00 Expose EXT_compressed_ETC1_RGB8_sub_texture on Metal and GL Updated the test to ensure that this extension is exposed on Apple GPUs when using Metal. Updated emulatedEtc1 limitation to hide this extension when the main ETC1 extension is hidden. Real WebGL apps cannot enable this extension because it is not exposed in WebIDL. Removed bogus entry from IsETC1Format and use the helper consistently in all validation functions. Simplified GetNativeCompressedFormat. Bug: angleproject:7471 Change-Id: I61321fadad7d962358d0fefecd08aaddaedd2ec2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3737762 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade afcca86c 2022-07-05T11:25:04 Fix ValidateCompressedTexSubImage3D compressed format check Fix the ValidateCompressedTexSubImage3D to perform compressed format validation only when we have a compressed format Bug: chromium:1341624 Change-Id: I5c8b3ef548cfa63b86e077f3c9e4c15e83dc7988 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3747203 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Quyen Le 0f688d62 2022-07-04T15:49:53 Metal: Allow Surfaces to be created without depth & stencil Previously, egl::Config with depthSize=0 & stencilSize=0 wasn't added to DisplayMtl's configSets. Thus every surface would be created with at least stencilSize=8 although users requested DONT_CARE. This led to wasteful memory being used to created stencil buffers even though they were not used. Fixes: - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_no_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_no_depth_stencil Bug: chromium:1329376 Change-Id: Iba13b527640a6b8ce6c4b3a63346b41730a83891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739868 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Quyen Le <le.hoang.q@gmail.com> Reviewed-by: Gregg Tavares <gman@chromium.org>
Shahbaz Youssefi 053d152d 2022-07-04T21:20:34 Vulkan: Resolve GoogleX MSRTSS conflict with EXT Now that the extension is public, rename the old symbols to GoogleX as they have shipped previously. This reverts defd99dc4. Bug: chromium:1088005 Change-Id: I5ac7f73e24084e26a8b2d9cf742c7ab9b3c80984 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3744362 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Mohan Maiya 81a69da6 2022-06-30T09:56:54 Vulkan: min/mag filters follow chroma filter value The Vulkan spec states that for those formats lacking support for VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT the min and mag filter must be equal to the sampler YCbCr conversion's chroma filter. Having the min/mag filters follow the chroma filter leads to simpler and more efficient code. Also update getPreferredFilterForYUV function to return existing filter value when preferLinearFilterForYUV feature is disabled. Bug: angleproject:7382 Bug: angleproject:7392 Tests: Texture2DTestES3YUV.TexStorage2DYuvFilterModes* Tests: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering/ES3_Vulkan Change-Id: I550ef8feede1dc6c3a0d8e32f790113e90ef7a4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739582 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Eddie Hatfield 916a35dd 2022-06-28T14:40:53 Merge getTempPath and CreateTemporaryFile Also includes moving these two (and some helpers) to common/system_utils.h Bug: angleproject:5095 Change-Id: I7d2fcbd27a67dc13215265ac5b5e8391b15a980b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733519 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Rafael Cintron 39e88e6e 2022-06-29T13:48:14 Handle OOM in SwapChain11::getRenderTargetShaderResource SwapChain11::getRenderTargetShaderResource has a code path where it allocates a new texture if the current one has insufficient flags. When this happens, the return value of the texture allocation is not checked, leading to a nullptr crash. Since texture allocation can fail in the case of OOM, we need to handle the failure and propogate the error to callers. Bug: angleproject:7442 Change-Id: I686d84ace669c461e8f7ef66bb0e6c4466f1c5ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736687 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Antonio Caggiano 007a4f06 2022-04-22T11:07:05 Vulkan: Wayland resize callback Handle client resize requests and resize the swapchain accordingly after next buffer swap. Bug: angleproject:6902 Change-Id: I8bd6b0d4efac041606f15eccb6befa28594905b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608089 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 3e5de4ac 2022-07-05T10:22:54 Add a test that passes image2D handles as function args Bug: angleproject:7484 Change-Id: I3565bd42deeefa22566d4556a25ec9778c6f8550 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3747098 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 9070e279 2022-06-30T09:35:59 Vulkan: Handle platforms that have imprecise float division issues Even when the dividend and divisor have the same value some platforms do not return 1.0f. We need to emit sepcial division code on such platforms. Bug: angleproject:3586 Tests: KHR-GLES31.core.blend_equation_advanced.blend*HSL* Change-Id: Ibb81f57c959ae2c8edb6d361bf6241c019dfb988 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738439 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 1154cc46 2022-07-04T14:45:25 Vulkan: Fix round-after-dither logic | was used instead of &, effectively enabling this on all platforms. Bug: angleproject:6953 Change-Id: I73846368c689d70ad9679e0caa47b7004177d678 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3744361 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Chris Dalton 86c735bf 2022-07-01T18:27:10 pls: Rename GL_DISABLED_ANGLE -> GL_DISABLE_ANGLE Match the other loadOps by using the imperative form. Bug: angleproject:7279 Change-Id: I9f3a33961f640ea5dff1da7dcea12517cfdcd461 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741221 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 44d8bf76 2022-03-16T14:38:37 Vulkan: Support EGL_EXT_platform_wayland Improve GetPlatformDisplay by supporting EGL_PLATFORM_WAYLAND_EXT. Bug: angleproject:6902 Change-Id: Ia4c342097f47b7c41778ac02517451f51a94d8be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3528758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 0c46c2d9 2022-05-19T16:16:54 Vulkan: Support DRM_FORMAT_MOD_LINEAR Fix a bug while checking for dmabuf image image format support. The value 0 is used for DRM_FORMAT_MOD_LINEAR, which is perfectly valid. DRM_FORMAT_MOD_INVALID could be used instead for bail out. Bug: angleproject:7065 Change-Id: If8eb366873b8f0fe2fd84de745a55171036093d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645124 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton da984303 2022-05-13T21:05:48 Add a pls test for in-shader coherency Stores and loads in a single shader invocation should be coherent. Bug: angleproject:7279 Change-Id: I1a4af6fdbef21f5506bb40c9eb8f5e76c12dd6cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654267 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Chris Dalton 85b05601 2022-06-08T14:05:47 Add a pls test for load-only storage It's conceivable that an implementation may need to be careful to preserve the pls contents when a shader doesn't call pixelLocalStore(). Bug: angleproject:7279 Change-Id: I7b7fb25dced49902fd68685d2f5aa82219ced686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696503 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 723cc880 2022-06-10T17:55:54 Reland "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"" This is a reland of commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c Original change's description: > Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" > > This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with > the fix for angleproject:7466. When DescriptorPoolhelper gets > release/destroyed, we ensure all sharedCacheKeys are destroyed. > > Original change's description: > > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > > > When a new texture descriptorSet is allocated, we store one reference of > > the cache key in ProgramExecutableVk and all TextureVks that it > > associated with. When any of the TextureVk is destroyed or its view > > destroyed, we immediately erase the descriptorSet from the cache and > > track GPU progress and free the descriptorSet when it's GPU completed. > > That way we delete the dead descriptorSet that will for sure never been > > reused ASAP so that its space is avialable for reuse. > > > > Bug: b/235523746 > > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > > Reviewed-by: Lingfeng Yang <lfy@google.com> > > Commit-Queue: Charlie Lao <cclao@google.com> > > Reviewed-by: Ian Elliott <ianelliott@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/235523746 > Bug: angleproject:7466 > Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: I6b88b884841c5dbc625ee7e0c52c45af09dec199 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741027 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Alexey Knyazev 7cb0622c 2022-06-30T00:00:00 BlitGL: Fix LUMAWorkaround for half-float copies Use desktop HALF_FLOAT enum when running on desktop OpenGL. Bug: angleproject:5038 Change-Id: I829f28ca51caa1f98b653d1a456ed775f8d362cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738261 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mike Schuchardt defd99dc 2022-06-30T16:18:30 Update MSRTSS vulkan struct to final version The public version of VK_EXT_multisampled_render_to_single_sampled released in the 1.3.219 header does not include resolve modes in the VkMultisampledRenderToSingleSampledInfoEXT struct. Remove them to unblock the Chromium auto-roller. Bug: None Change-Id: I9d185a486227edfd3276ccb0df7063ca5101797b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739583 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 4b745c2b 2022-07-01T01:25:36 Revert "Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid"" This reverts commit 551a26aeedbfd971d6199c8eddb433a4f4ff871c. Reason for revert: Blink test failures at: https://ci.chromium.org/ui/p/chromium/builders/ci/WebKit%20Linux%20MSAN/15546/overview Original change's description: > Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" > > This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with > the fix for angleproject:7466. When DescriptorPoolhelper gets > release/destroyed, we ensure all sharedCacheKeys are destroyed. > > Original change's description: > > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > > > When a new texture descriptorSet is allocated, we store one reference of > > the cache key in ProgramExecutableVk and all TextureVks that it > > associated with. When any of the TextureVk is destroyed or its view > > destroyed, we immediately erase the descriptorSet from the cache and > > track GPU progress and free the descriptorSet when it's GPU completed. > > That way we delete the dead descriptorSet that will for sure never been > > reused ASAP so that its space is avialable for reuse. > > > > Bug: b/235523746 > > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > > Reviewed-by: Lingfeng Yang <lfy@google.com> > > Commit-Queue: Charlie Lao <cclao@google.com> > > Reviewed-by: Ian Elliott <ianelliott@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/235523746 > Bug: angleproject:7466 > Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: Icdde2752c462b7ebbb51d46fd35ce749b5caf377 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739585 Reviewed-by: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 6cd08bc2 2022-06-28T22:04:07 Vulkan: Don't optimize away flush after clear for single buffer Bug: b/237449314 Change-Id: I04421398e2e68541d4713c7e8b80715be68672b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733808 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Geoff Lang 90edbd94 2022-06-30T11:49:33 Metal: Support GL_ANGLE_provoking_vertex This allows some users to get improved performance while using flat attributes by avoiding index buffer rewrites. Bug: chromium:1340620 Change-Id: Ic55dec27e51d8929d6781758104632defc6861c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738260 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 1e96beb9 2022-06-29T15:18:35 Suppress the new BestPractice VVL Error Suppress the new best practice VVL Error vkCmdBeginRenderPass-ClearValueWithoutLoadOpClear to unblock the vulken-deps roller. A potential fix is work in progress. Bug: angleproject:7470 Bug: b/237542876 Change-Id: Iaea0cef58984acae79210e72b75be527d98e8286 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3736698 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao 551a26ae 2022-06-10T17:55:54 Reland "Vulkan: Destroy DescriptorSet cache when it becomes invalid" This is a reland of commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993 with the fix for angleproject:7466. When DescriptorPoolhelper gets release/destroyed, we ensure all sharedCacheKeys are destroyed. Original change's description: > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > When a new texture descriptorSet is allocated, we store one reference of > the cache key in ProgramExecutableVk and all TextureVks that it > associated with. When any of the TextureVk is destroyed or its view > destroyed, we immediately erase the descriptorSet from the cache and > track GPU progress and free the descriptorSet when it's GPU completed. > That way we delete the dead descriptorSet that will for sure never been > reused ASAP so that its space is avialable for reuse. > > Bug: b/235523746 > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > Reviewed-by: Lingfeng Yang <lfy@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746 Bug: angleproject:7466 Change-Id: I4413bec27ea0ca830010e2ca15036c2e667141c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726964 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 4884e9de 2022-05-15T22:57:57 Add a pls test for maximum capacity Check that it works to render with the maximum supported data payload: GL_MAX_LOCAL_STORAGE_PLANES_ANGLE GL_MAX_LOCAL_STORAGE_BYTES_ANGLE GL_MAX_FRAGMENT_OUTPUTS_WITH_LOCAL_STORAGE_ANGLE Bug: angleproject:7279 Change-Id: Ifdaff726edee0378b06ce5562001ad3dfe29284b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654974 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Geoff Lang 785353fd 2022-05-24T12:40:16 Support Desktop OpenGL context creation in end2end tests Validation of Desktop GL versions and profile masks is unimplemented. Bug: angleproject:7360 Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Patrick To 45def3d4 2022-06-15T13:49:08 Remove non-negative offsets restriction in D3D extension The EGL_ANGLE_d3d_texture_client_buffer extension currently fails if either EGL_TEXTURE_OFFSET_[X|Y]_ANGLE offsets are negative. This restriction is unnecessary, as D3D allows for negative offsets. Bug: angleproject:7446 Change-Id: I2e258a3a558eae51794f6533e28a0c06532f156d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3715956 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 4298a54e 2022-06-23T23:17:12 Clean up OWNERS files Bug: None Change-Id: I93726b8e5226d4c3b40c7d3dc865cb7dbe7c17fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3721567 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Gert Wollny fd9301c1 2022-06-17T12:25:10 Capture/Replay: Capture egl surface related calls Creation from a pbuffer and generalized destruction are implemented, as well as binding and releasing a TexImage and making the context current with explicit draw and read surfaces given. Bug: angleproject:4964 Bug: angleproject:6180 Bug: angleproject:6512 Change-Id: Id8be6486125d45341905f3aabdbae4366cd568b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711741 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya d50b2276 2022-06-21T12:05:28 Reland "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh" This is a reland of commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6 There are no fixes as the revert itself was a speculative one Original change's description: > Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh > > Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute > and set swapchain present mode accordingly when recreating > swapchain in single buffer mode. > > Bug: angleproject:7224 > Tests: EGLAndroidAutoRefreshTest.Basic* > Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Bug: angleproject:7224 Bug: angleproject:7465 Change-Id: Ia876ea17169c0f1b3afdb7753570e0b1aca985f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733521 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Faye Zhang fd256b0d 2022-06-24T09:58:22 Tests: Add Uber trace Test: angle_perftests --gtest_filter="*uber*" Bug: angleproject:7462 Change-Id: Ie9a6f4c8afbb94e8484dba50b90bfbc7102a3c00 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723859 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi ba737f47 2022-06-27T11:04:21 Vulkan: Don't sync pipeline cache if warm up is effective If the pipeline cache is being warmed up at link time, the blobs corresponding to each program is individually retrieved and stored in the blob cache. This should be enabled only on platforms where draw time pipeline creation hits the cache due to said warm up. As a result, there's no need to store the aggregate cache (the one owned by RendererVk) in the blob cache too. Bug: angleproject:5881 Bug: b/215230983 Change-Id: I2da5de835e6667b0b2d5859e6804791671888947 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3727227 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
angle-autoroll bb373176 2022-06-24T14:19:05 Roll vulkan-deps from 11ad77222bfe to 137b026580e5 (1 revision) Suppress new SYNC-HAZARD-READ_AFTER_WRITE. https://chromium.googlesource.com/vulkan-deps.git/+log/11ad77222bfe..137b026580e5 Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/620b378993..a0e0e77a22 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC jonahr@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:7456 Tbr: jonahr@google.com,ynovikov@google.com Change-Id: I2ef42cccfabd575cd59c90e6f558b6a46202e028 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723547 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi b2683a3c 2022-06-28T11:30:50 Document angle_restricted_traces Bug: angleproject:7410 Change-Id: Iab02ca68d76fdd1d04804c85f76f5c251905907b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3732229 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jose Dapena Paz 1dc3385a 2022-06-27T18:13:33 libstdc++: move FramebufferHelper to cache utils vk_helper.h includes vk_cache_utils.h. FramebufferHelper was declared in vk_helper.h. And FramebufferCache, in vk_cache_utils.h, requires FramebufferHelper for its payload hashmap. This was solved with a forward declaration. But, with std::pair definition in libstdc++ this is not enough. Bug: chromium:957519 Change-Id: I32e3e247c3c8bef8b52806aa2601e4012e6aa79e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3727671 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 3a799ba5 2022-05-16T17:26:38 Fix ValidateES3TexImageParametersBase for glTexImage*D From the OpenGL ES 3.2 spec: GL_INVALID_VALUE error is generated if internalformat is not one of the valid formats in tables 8.2 or 8.3. glTexImage*D should not accept compressed format. Add check in validation to account for this. Bug: angleproject:6441 Tests: KHR-GLES31.core.compressed_format.api.invalid_teximage_with_compressed_format Change-Id: I7152aefa433f42dcc40cf693538639df26c31341 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648587 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny ce4e11d3 2022-06-17T12:21:01 libANGLE: Add a unique ID to the Surface This is needed when capturing Pbuffer calls. Bug: angleproject:4964 Change-Id: Id9f35683bf887f08f916de69bbab8c414e5e8872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711740 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 2a5193f6 2022-06-22T17:46:15 Textures: Allow compressed texture from PBO Apex Legends is using a pixel unpack buffer to populate a compressed 3D texture. We had an explicit check in validation that prevented it, possibly due to emulated formats. Rather than prevent it altogether, check whether the format is emulated and proceed if not. Also add a test that exposes the problem. Test: PBOCompressedTexture3DTest Bug: b/236478448 Bug: angleproject:7464 Change-Id: I90105a396bf0a465c62d67910aad2819ba7f8831 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719161 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 1ae9756e 2022-06-22T17:43:15 Textures: Centralize texture format emulation check Refactor in order to use the check in multiple places. Bug: b/236478448 Change-Id: I6df2e0d63c60fa3e8b2d65185fce164be0e7d961 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719160 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c775dd49 2022-02-03T16:51:03 Allow list of restricted traces to be overriden in gn args When focused on profiling a single or a few traces, this speeds up build and upload to Android. Bug: angleproject:7404 Change-Id: I5234a6fa7e8167f86b5b33b8db526662a7d65bd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3438425 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 2adb6327 2022-05-13T23:09:31 Add a pls test for memoryless storage Bug: angleproject:7279 Change-Id: I4a992d04efa06ac99472d5334a1ac50839a13d06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654973 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Yuly Novikov f8690429 2022-06-27T13:50:44 Revert "Vulkan: Destroy DescriptorSet cache when it becomes invalid" This reverts commit 0779ccbcd427dcb00e53afa6385fb4e8e2377993. Reason for revert: crashes in blink_web_tests on linux-rel https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1051045/overview Original change's description: > Vulkan: Destroy DescriptorSet cache when it becomes invalid > > When a new texture descriptorSet is allocated, we store one reference of > the cache key in ProgramExecutableVk and all TextureVks that it > associated with. When any of the TextureVk is destroyed or its view > destroyed, we immediately erase the descriptorSet from the cache and > track GPU progress and free the descriptorSet when it's GPU completed. > That way we delete the dead descriptorSet that will for sure never been > reused ASAP so that its space is avialable for reuse. > > Bug: b/235523746 > Change-Id: Ib1b9662a254eea5a3f410dc6d5d89fca6727a647 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700226 > Reviewed-by: Lingfeng Yang <lfy@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/235523746, angleproject:7466 Change-Id: I7e5067de2f2add08af1f9804cc2e952238b2e942 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726097 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov f5aef011 2022-06-27T13:11:16 Skip CreateFramebufferFetchMidRenderPass on Win SwANGLE Bug: angleproject:7419 Change-Id: I76b4d08f985abbd482ef1d14cde62bcd5bb41a86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726096 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 46ddcc44 2022-06-27T14:53:31 Revert "Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh" This reverts commit ef60d38ecf12d6663e9ecccacbff9803b1fba7c6. Reason for revert: crashes in end2end tests on Win Intel Vulkan Original change's description: > Vulkan: Support EGL_ANDROID_front_buffer_auto_refresh > > Cache value of EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID attribute > and set swapchain present mode accordingly when recreating > swapchain in single buffer mode. > > Bug: angleproject:7224 > Tests: EGLAndroidAutoRefreshTest.Basic* > Change-Id: I2dbb92ce5c3fa047e0b02ea9011725311f346027 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3707570 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Bug: angleproject:7224, angleproject:7465 Change-Id: Ia48a31124c8e0a3e4bcd4b7dc6f62b0782b42d97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726099 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Steven Noonan 10f065e2 2022-06-23T13:23:09 Vulkan: support QCOM_shading_rate on Intel graphics When querying fragment shading rates, we were limiting the result array to 6 elements, which was not enough on Intel's Windows graphics drivers. Those drivers report more than 6 fragment shading rates, including a bunch of strange ones like 4x1 and 1x4. Because we limited the list to 6 elements, and the Vulkan specification requires that the rates be listed in order from largest width to smallest, the feature check was missing the smaller shading rates (including 1x2 and 1x1). This caused the supportsFragmentShadingRate feature to be disabled. Bug: angleproject:7461 Bug: angleproject:7172 Change-Id: I1b9a2924f93fdb803c20cfa388749754691b6e92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720732 Auto-Submit: Steven Noonan <steven@valvesoftware.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>