src/libANGLE


Log

Author Commit Date CI Message
Geoff Lang d670b5a3 2022-06-07T11:43:02 GL: Disable texture border clamp on imagination. IMG GPUs generate INVALID_ENUM when setting the texture border color. Bug: angleproject:7405 Change-Id: I04a28d36943c143ad5e18bf80e618230b116a632 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692265 Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Antonio Caggiano 68634d5c 2022-01-05T20:33:32 Vulkan: Enable VK_EXT_platform_wayland Bug: angleproject:6902 Change-Id: I6a27e3f610bd48dd31937255b287b11fe84c05ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3528756 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 35839293 2022-05-19T16:18:10 Vulkan: Fix mutable format check Check directly with enum instead of using boolean logical operator. Bug: angleproject:7065 Change-Id: I98b077c9ab18690d915ed3387a4f19404925daaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645123 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 3b988fef 2022-06-01T10:54:03 Vulkan: Remove enableLineRasterEmulation * Removed the Bresenham line raster emulation specialization constant, along with related variables and functions. Bug: angleproject:7366 Change-Id: If17c8ce9b459ad801bae8e887e5674bd9a3ff2bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3680860 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop aac68adc 2022-05-21T22:27:22 Capture/Replay: Track dirty state per EntryPoint for Reset This CL introduces a new concept of tracking whether an entry point has been called. If so, emit Reset calls designed specifically for that entrypoint. This will likely only be useful for one dimensional state binding calls that can easily be tracked and set back. Only support for EntryPoint::GLUseProgram is added at the moment, but any entry point can be added. Reset will now set the active program back to what it was in Setup. For example: void ResetReplay() { ... glUseProgram(gShaderProgramMap[2]); UpdateCurrentProgram(2); } Test: Animal Crossing MEC, Star Wars KOTOR MEC Bug: angleproject:7307 Bug: angleproject:7353 Change-Id: I19d238ca13bbfb619e1cf8ed86f15ed6c4255a61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656827 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Stephen White cb9e1235 2022-06-06T14:34:53 D3D11: fix UAV handling. For setting UAVs, Microsoft has provided two APIs: ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews() for pixel and vertex, and ID3D11DeviceContext::CSSetUnorderedAccessViews() for compute. They both take very similar arguments, perform similar functions, but have one crucial difference: the former will clobber any existing UAV bindings that are not specified in the call, while the latter will not. The initial implementation of non-compute UAVs in ANGLE didn't accomodate this, and sets UAVs individually, as is done for compute, which clobbers any UAVs set in a previous call. The fix is to collect all UAVs required for a draw or compute pass, and set them all at once. This required reworking the internal dirty bits to reflect the actual D3D requirements (SRV and/or UAV usage), and to split the sync functions to set only SRV or UAV state. Also add a two-SSBO fragment shader test. Bug: angleproject:7385 Change-Id: I0c98e1506d56eccf1db446c0be808f2f3020ae1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690735 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Rohit Rao 4b911686 2022-06-06T22:25:37 Converts from sprintf() to snprintf(). sprintf() is deprecated in Xcode 14, so update to safer equivalents in order to keep the compiler happy on iOS and macOS. Bug: chromium:1331345 Change-Id: Id5348088bf69cbd360d9251e6323596cb710666d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690747 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ce3c0fe9 2022-06-06T12:09:45 Vulkan: Make depth-correction uniform controlled This change makes sure SPIR-V transformations are not required for depth correction, having the number of potential pipelines. Bug: angleproject:5881 Change-Id: If3f66b34bdd1127ae588cbc822ea7cf01fa8621f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691801 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Geoff Lang 4868e5a7 2022-06-06T15:29:44 Log the fully formatted message for internal errors. The formatted message is generated but not used. This is critical to know the file and line that generated the error. Bug: chromium:983167 Change-Id: Id4bb1c5b49fa1004728948d87e0270687b82992c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690738 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Charlie Lao b186991a 2022-05-26T11:50:56 Vulkan: Remove non-current vertex array from buffer's observer list When app binds a buffer to many VAOs, any buffer modification have to loop over all VAOs that uses that buffer, even though all these VAOs are not current except one VAO. That causes significant CPU overhead. black_desert_mobile has this type of usage. This CL checks number of observers on each binding and if there are excessive observers, it removes VAO from the buffer's observer list when it becomes non-current and adds back to observer list when it becomes current. This CL reduces CPU overhead of black_desert_mobile (as measured with --offset --minimumgpuwork) from 21ms to 3.69ms, on par with native GLES driver. Note that this CL only touches glBindVertexArrayObject call code path, so no impact to apps not using VAOs. There is also no measurable CPU time regression on a few other app traces that uses VAOs. Bug: angleproject:6371 Change-Id: I6b1589f3e3c768d56c1c95cebdb577e3e256737f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669603 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Antonio Caggiano 28c59d63 2022-05-24T17:32:33 Vulkan: Fix Wayland Display DRM formats Check whether relevant renderer feature is enabled before querying supported DRM formats. Bug: angleproject:6902 Change-Id: Ib6fa28c75f2b7e4c8a750babe97bdeddd2fa1059 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664477 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 7fb021b0 2022-05-12T16:19:14 Reland "Add Vulkan backend support for texture labels" This is a reland of commit 1afb80587e302e2ce9a901a69fd66e5ef98a73b6 Added check to ensure vkSetDebugUtilsObjectName fcn ptr is valid before use. Fixes failures on mac-swangle-chromium-try-x64. Original change's description: > Add Vulkan backend support for texture labels > > Add onLableUpdate support for textures in the Vulkan backend. > > Bug: b/229105865 > Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Ian Elliott <ianelliott@google.com> Bug: b/229105865 Change-Id: I994da6db2771671c204e4ab01c69912c1be4a48f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3674296 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Charlie Lao 2fec519f 2022-06-02T15:17:28 Avoid dirty texture swizzle state when there is no change Some applications (for example surfaceflinger on Android) may set texture swizzle at every call even though there is no actual swizzle change. But we are not checking against redundant state calls and is always setting texture's DIRTY_BIT_SWIZZLE_* bits. This caused vulkan backend free image views which in turn forces VkFramebuffer recreation. This CL check the swizzle state and only set dirty bits if it actually changes. Bug: b/234602034 Change-Id: I7fab96a957c0b7a7ed318eaccea2d42146ca23cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3688732 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao d655ad29 2022-05-31T14:20:16 Vulkan: Add tests for FramebufferCache growth bugs When texture attached to FBO gets respecified, we shouldn't keep growing FramebufferCache. When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R) call with the same value, we should also not destroy/recreate framebuffers (in fact should not recreate VkImageView). We ran into this usage pattern on surfaceflinger. When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R) call with different value, we should also not destroy/recreate framebuffers (in fact should not recreate VkImageView). We ran into this usage pattern on surfaceflinger. Bug: b/234769934 Bug: b/234602034 Change-Id: I9fc881486f95cc3da843f50fa0a8cdcbfd4fc625 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3681081 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi a9516865 2022-06-01T22:48:04 Vulkan: Output cache look up feedback in pipeline graph Bug: angleproject:6565 Change-Id: I12bb9ab5756860de9ba26d6b4a9429a78b65df39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3686029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang bfab7e60 2022-06-01T11:22:42 Ignore eglBind/ReleaseTexImage calls for lost contexts. eglBindTexImage and eglReleaseTexImage no-op when no context is current. Extend this to lost contexts to match the behaviour of making a GL call on a lost context. This avoids potential unexpected bad accesses in the backends. Bug: chromium:1316578 Change-Id: I7b309c297e0c803019720733dee2950abb4c4b5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3683869 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Alexis Hétu <sugoi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 415ff51b 2021-12-17T17:20:25 Metal: Remove use of ANGLE_MTL_AUTORELEASE from mtl_state_cache The code doesn't use autoreleasepool, instead all instances are subsequently retained. Use AutoObjCPtr to adopt the reference and maintain ownership explicitly. This is work towards minimizing memory leaks by minimizing the use of autoreleasepool and accounting for the references explicitly. Bug: angleproject:6833 Change-Id: I77fe323683e4abb9b4ab17723949c56dd636ae32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347643 Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: John Cunningham <johncunningham@apple.com>
Shahbaz Youssefi 53ec886e 2022-05-30T16:49:11 Vulkan: Externally synchronize the pipeline cache In preparation for a future change that requires this as it may perform pipeline cache merges during creation of pipelines. Bug: angleproject:5881 Change-Id: Ic7921b781aa773ae23b60a0bb6fa2111b1fc401e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679479 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade eb282de0 2022-05-20T18:36:46 Vulkan: Add feature to use VK_FILTER_LINEAR for YUVConversionInfo VK_FILTER_NEAREST is default for chromaFilter in ConversionInfo. Add feature to allow VK_FILTER_LINEAR to be used instead. This feature controls the quality when sampling YUV images. Bug: angleproject:7382 Change-Id: I3f67d7620d94b5b33c42754adfef84b97c798637 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684351 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor Black <vantablack@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny bbf67e2e 2022-05-16T12:04:34 Capture/Replay: support capturing eglCreateImage/eglDestroyImage Because we support only a few functions the supporting code is not autogenerated. We don't capture the actual value of the display variable, because we assume that there is only one display, and the actual pointer to it is provided by the EGLWindow. The rest of the capturing works just like with the GLES calls. Bug: angleproject:4964 Bug: angleproject:5822 Bug: angleproject:6180 Bug: angleproject:6286 Bug: angleproject:6578 Bug: angleproject:7111 Change-Id: I385aa9648f93bf74706e9860e2aee5775eeba220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636062 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gregg Tavares 94320a83 2022-05-27T17:41:29 Metal: Validate total bits used in color attachments Metal has 2 limits for color attachments. 1 the number of attachments supported. 2 the total number of bits it can write per pixel. So for example Apple4 through Apple8 GPUs can have 8 attachments but only 512bits of output. That means you can attach 8 RGBA8 textures (256bits), but you can't attach 8 RGBA32UI textures (1024bits). If there are too many bits then return FRAMEBUFFER_UNSUPPORTED from checkFramebufferStatus and INVALID_FRAMEBUFFER_OPERATION from draws Bug: angleproject:7280 Change-Id: I935aebad4d57664f59a60be20a927d6b69afb4ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3674322 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Kenneth Russell 6a0c779e 2022-06-01T14:43:41 Uptream Vivante and VMWare vendor ID recognition. Case-insensitively alphabetize the IDs and helper functions. Bug: angleproject:6839 Change-Id: Ib6746b3e6a8858e85b70c04424093ddbd02285fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684955 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org>
Shahbaz Youssefi e04314fd 2022-05-30T01:09:31 Vulkan: Include state in pipeline graph dump Each program generates a group of nodes. The group's description is the common state among all nodes. Each node contains the diff with the shared state. Arrows between nodes indicate the GraphicsPipelineTransitionBits that have caused the transition. State that is 0 is not output for brevity. Bug: angleproject:6565 Change-Id: I7b6a95efcee63f1d7d368d8e062c5c1d221fb8b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3673829 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gregg Tavares 8a0351a5 2022-05-26T14:29:21 Metal:Dynamically choose max draw buffers. The code was hard coded to 4 which is lower than OpenGL's 8. This implementation keeps a hard coded array of size 8 in rx::mtl::RenderPassDesc and rx::mtl::RenderPipelineOutputDesc but only uses up to the display's limit. Bug: angleproject:7280 Bug: angleproject:5730 Change-Id: Idd7e64dc47697882b44540804159566158e1e924 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671695 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 17f9e941 2022-06-01T15:22:29 Metal: Upstream clear performance fix Restricts in-flight render passes per command buffer a predefined limit. The goal is to reduce the number of active render passes on the system at any one time. Patch is from: https://bugs.webkit.org/show_bug.cgi?id=234008 Bug: angleproject:7386 Change-Id: I6712bf38722e2685ed7d21f12ed0a680779b7a41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3685190 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares e70bea8a 2022-06-01T12:30:56 Metal: Update MAX_LOD_BIAS The Metal implementation set MAX_LOD_BIAS to 2.0 which is the minimum the spec requires but setting a limit requires the implementation to actually respect that limit. AFAIK the limit on most GPUs, including Metal, is however many mips are allowed thereby letting you select any mip level. Note that as far as I can tell, MAX_LOD_BIAS can be larger than the maxiumum number of mip levels but there's no way to observe that behavior. There is a WebGL test for this here https://github.com/KhronosGroup/WebGL/pull/3419 It passes on OpenGL and fails on Metal without this CL. Bug: angleproject:7280 Change-Id: I365cb5b3f872cd5036765f4eec932be1e2c07f8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684356 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Faye Zhang 32a0ee92 2022-05-31T10:51:06 Code Cleanup In validationES.cpp, the framebuffer is required to have 0 depth bits (to conform to OpenGL ES 3.2 specifications). That is, ImageHelper::copyImageDataToBuffer() will not be called on a buffer with combined depth and stencil format. Replacing the lines relating to testing combined depth and stencil format ImageHelper::copyImageDataToBuffer() with an assert. Bug: angleproject:6856 Change-Id: I911500910b2065eb21c72d7f2d8ff481f4afa304 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3680862 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Faye Zhang <ffz@google.com>
Stephen White 6c0d4658 2022-05-27T15:32:42 D3D11: implement stencil texturing. When GL_DEPTH_STENCIL_TEXTURE_MODE is set to GL_STENCIL_INDEX, GL requires the stencil value to be in the R component. However, when sampling a depth24stencil8 texture in D3D11, the stencil ends up in the G component. So in this mode, swizzle the result from G to R. In order to sample stencil, use the appropriate stencil-only format for the SRV: X24_TYPELESS_G8_UINT for d24s8, X32_TYPELESS_G8X24_UINT for d32fs8. This required adding a new field to D3D11 Format. Bug: angleproject:7303 Change-Id: I7cf70efaaf6c833fa0b2497e4080618dfd7103ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679485 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 28b4c378 2022-05-27T15:45:59 Vulkan: Pipeline creation feedback in perf counters Bug: angleproject:5881 Change-Id: I42917cab3c97abb50a14035972a96728dcb990b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3672851 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b0d75fb5 2022-05-31T16:55:23 Vulkan: Use 64-bit counters Some upcoming counters don't fit in 32 bits. Bug: angleproject:5881 Change-Id: I2de8a603cabdb5f7417c29d5f37a50899485d6d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679488 Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 53fb57a6 2022-05-31T12:13:59 Vulkan: Fix xfb emulation bug w.r.t array elements This change handles corner cases where the 0th element of the array is not captured. Bug: angleproject:7376 Change-Id: I358f064abe5e1702985ab0faf7465cef178e7b87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679484 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 5a2cc71c 2022-06-01T12:06:07 Update extension support (June 1, 2022). Now includes data for Pixel 6 on Android 13. Bug: angleproject:7375 Change-Id: I115f8ead1cbfeb55b7314164409b262f58078ca5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684029 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill da30caec 2022-05-26T13:35:24 Vulkan: Switch resource tracking. CommandBufferHelpers now determine if a Resource is busy by looking at the "ResourceCommandBuffers" list in each ResourceUse. This reduces CPU overhead in the Aztec Ruins trace by up to 3%. Bug: angleproject:5664 Change-Id: I8d927af7f39db38c98d746ca4cc01f343d0df2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668836 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1ce69722 2022-05-18T13:05:22 Vulkan: Track used command buffers in ResourceUse. The list of command buffers to ResourceUse will replace tracking resources in a CommandBufferHelper. Currently the two tracking methods live side-by-side, and the old method will be removed in a future CL. Bug: angleproject:5664 Change-Id: Ia04d77e72c508e10b549db8c8dd5f0472e4edc83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656069 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Stephen White 43b5311f 2022-05-31T12:03:23 D3D11: minor cleanup to getSRVLevel(). Change getSRVLevel() to take an enum rather than a bool. Bug: angleproject:7303 Change-Id: I5b39b1b6e4f2f3f8a6bc8dd3f5690368f427f574 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Geoff Lang b6a93d75 2022-05-31T12:20:37 GL: Temporarily enable validation for all GL calls. Turn on error checks after each GL call to catch potential driver errors in the wild. Bug: chromium:983167 Change-Id: Ie8b394384223155cd033baca19306396f406cdbb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679483 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Peng Huang <penghuang@chromium.org>
SeongHwan Park d96cee66 2022-05-31T02:41:32 Fix to invalidate cache when binding Transform Feedback. Bug: chromium:1330379 Change-Id: I091116286ac511c50f9abcffa4d3cf350be920b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3677115 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 31c13df5 2022-05-30T15:06:26 Revert "Initialize buffer contents separately from BufferImpl::setData" This reverts commit 34cff1a14b635c76a9063b8710e948d04ef98a79. Reason for revert: Speculative revert for Mac M1 WebGL failures. Bug: chromium:1330314 Original change's description: > Initialize buffer contents separately from BufferImpl::setData > > Some backends can initialize buffer data faster than allocating a > zero-filled scratch buffer (GL can map and memset for example). > Allow those backends the opportunity to make these optimizations. > > Verified that GL, D3D and VK backends do not regress by using a > separate set data call. > > Bug: chromium:983167 > Change-Id: Ibcbe6016059434dc36ab3c754df6a24f0a6e5e72 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039778 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Peng Huang <penghuang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: chromium:983167 Change-Id: Id1bfa76b832c35fd0b3ade04da16735aa089fdd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3677335 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill 9f4b9c65 2022-05-18T14:39:18 Vulkan: Refactor command buffer retain calls. This removes "getResourceUseList" from the command buffers, and instead we pass around the command buffer helpers. Since future CLs will change the way we track resources, this provides for a more stable interface for tracking. Bug: angleproject:5664 Change-Id: I7118788570eaa3c0ddb6d5ef523e050ad7be00ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645814 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 33b254fe 2022-05-28T00:00:00 Fix ValidateFragmentShaderColorBufferMaskMatch for indexed masks Adjust WebGL-specific validation, add test. Bug: angleproject:4394 Change-Id: I4d51d6d7639a4ec3115025c858434491845440a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3673298 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 23f213d1 2022-05-26T23:43:44 Vulkan: Make drawable size uniform As a specialization constant, it's impossible to predict the value the drawable size may take, which in turn makes it impossible to warm up the Vulkan pipeline cache at link time. Bug: angleproject:7366 Change-Id: Ia3d1860a4fcb8e3078fdcb8d02a2e0cd173ea028 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671976 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a2fe4445 2022-05-26T12:42:39 Vulkan: Sync pipeline cache only when truly changed The Vulkan pipeline cache was considered dirty when ANGLE added a new pipeline. However, a new pipeline doesn't necessarily translate to new blobs in the pipeline cache. With this change, the cache is synced only if its size has changed. Bug: angleproject:5881 Change-Id: I0226426680f1e6b0e2bfde66ea6409362b8e72c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668835 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Mohan Maiya 9ea3967d 2022-05-22T13:06:18 Bug fix in GL_EXT_YUV_target Shaders with multiple samplers need to account for conflicting YUV sampler states and accordingly reevaluate them when sampler uniforms are updated. Tests: ImageTestES3.ProgramWithBothExternalY2YAndExternalOESSampler* Bug: angleproject:4852 Change-Id: Ie633e62f0bbb89f217183623d4fc6ab5b3acfd81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661211 Reviewed-by: Trevor Black <vantablack@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 34cff1a1 2021-07-19T14:29:35 Initialize buffer contents separately from BufferImpl::setData Some backends can initialize buffer data faster than allocating a zero-filled scratch buffer (GL can map and memset for example). Allow those backends the opportunity to make these optimizations. Verified that GL, D3D and VK backends do not regress by using a separate set data call. Bug: chromium:983167 Change-Id: Ibcbe6016059434dc36ab3c754df6a24f0a6e5e72 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039778 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 2df17a12 2022-05-25T16:18:37 Vulkan: Pack driver uniforms Previously 5 vec4s were used for driver uniforms + 2 vec4s if specialization constants couldn't be supported. The driver uniforms are rearranged and packed such that only 2 vec4s are normally used, which include fallback for specialization constants as well. In the future, most of the specialization constants may turn into uniforms, and this change prepares for that. Additional uniforms are used (3 vec4s) only if common extensions are missing; transform feedback and bresenham lines. This change makes it more practical for driver uniforms to be turned into push constants. Additionally, these uniforms could potentially be loaded and cached at the beginning of the shader for more efficient memory access. On Pixel6, with this change, the traces show no difference in wall time. On most traces, CPU time shows up to ~7% improvement. Bug: angleproject:7366 Change-Id: I0f47f863955af06a19c69d1f1d7c45b97d95476e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668151 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 98c2e169 2022-05-20T16:17:49 Vulkan: Reduce pre-rotation spec const to bool The specialization constant now only dictates whether x and y should be swapped. The complete 8 possible states of rotation and y-flip are achieved by using this swap in combination with a driver uniform for x and y flip. Swapping is still a specialization constant to avoid degrading performance of dFdx/dFdy which otherwise would need both to be evaluated instead of one. On platforms which don't support pre-rotation, the specialization constant will never change and driver uniforms entirely govern y-flip. On platforms that do support pre-rotation, only two variations of the pipeline are needed. Bug: angleproject:7366 Change-Id: I73f84e89fa9349d2098fa5b21573aee57d93a30c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3663151 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Stephen White ee023e6a 2022-05-26T15:23:18 D3D11: fix constant buffer cache lookup. The code was accessing the constant buffer cache by the buffer index, but storing it by the register index. The fix is to use the register index in both cases. Bug: angleproject:7304 Change-Id: I750ba2911140660b42db8e0035984da5e94b14e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668840 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gregg Tavares cd80b511 2022-05-26T12:00:13 Metal: Upstream uniform limits from WebKit Increases the limit from 4k to 16k which matches OpenGL. Patches are from: https://bugs.webkit.org/show_bug.cgi?id=238914 https://bugs.webkit.org/show_bug.cgi?id=240896 Bug: angleproject:7280 Change-Id: I404adce0066680513e3eaa56bd4b1079c39a7f03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669602 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 757b8497 2022-05-25T21:58:29 Vulkan: Fix reserve varying for xfb (take 2) When the xfb extension is used, anything that might result in gl_Position being modified at the end of the shader should cause a varying to be reserved for capturing it. Previously, pre-rotation support was added to the condition (incorrectly, which is fixed in this change), but emulated pre-rotation and no-negative-viewport-support also results in modifications to gl_Position, so they are added to the condition as well. Bug: angleproject:5421 Bug: angleproject:7364 Change-Id: Ieba39b3e9f9de68ca97e94bfc3b75d787e69315b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668828 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 891dd5b3 2022-05-25T23:05:49 Vulkan: Fix mid-RP draw clear w.r.t growing scissor UtilsVk::clearFramebuffer didn't grow the render area if scissor had grown. FramebufferVk::clearWithCommand does that and is unaffected by the bug. Normally, ContextVk::updateScissor grows the render area automatically, but clear is special in that it's not affected by the viewport while ContextVk::updateScissor is. Bug: b/232298034 Change-Id: I260a1948ba1b043e5e331e0e5c60d41e5b4cc192 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668830 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Kai Ninomiya 7ad48b84 2022-05-26T00:23:35 Revert "Add Vulkan backend support for texture labels" This reverts commit 1afb80587e302e2ce9a901a69fd66e5ef98a73b6. Reason for revert: Null-dereference crash starting here: https://ci.chromium.org/ui/p/chromium/builders/ci/mac-swangle-chromium-x64/26323/blamelist (see angle blamelist) Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS Crash address: 0x0 Process uptime: 24 seconds Thread 0 (crashed) 0 0x0 rax = 0x0000011c0113c000 rdx = 0x0000011c09094590 rcx = 0x0000000000000006 rbx = 0x0000011c0e2a0000 rsi = 0x00007ffedfc11500 rdi = 0x0000011c01378010 rbp = 0x00007ffedfc11540 rsp = 0x00007ffedfc114f8 r8 = 0x0000000000000006 r9 = 0x0000000123a6ccc4 r10 = 0x0000011c011018d0 r11 = 0x00007ffdbc1a4834 r12 = 0x0000000000000006 r13 = 0x0000011c090944b0 r14 = 0x0000011c0e34c000 r15 = 0x00007ffedfc11550 rip = 0x0000000000000000 Found by: given as instruction pointer in context 1 libGLESv2.dylib!gl::Context::objectLabel(unsigned int, unsigned int, int, char const*) + 0x156 rbp = 0x00007ffedfc116a0 rsp = 0x00007ffedfc11550 rip = 0x00000001357b38e6 Found by: previous frame's frame pointer 2 libGLESv2.dylib!_GL_ObjectLabelKHR + 0xa5 rbp = 0x00007ffedfc116f0 rsp = 0x00007ffedfc116b0 rip = 0x000000013578e7e5 Found by: previous frame's frame pointer 3 Chromium Framework!gpu::gles2::GLES2DecoderPassthroughImpl::DoBindTexture(unsigned int, unsigned int) + 0x1ea rbp = 0x00007ffedfc11780 rsp = 0x00007ffedfc11700 rip = 0x000000011e7dcd4a Found by: previous frame's frame pointer Original change's description: > Add Vulkan backend support for texture labels > > Add onLableUpdate support for textures in the Vulkan backend. > > Bug: b/229105865 > Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854 > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Ian Elliott <ianelliott@google.com> Bug: b/229105865 Change-Id: I5a5e00084e1320a486c43fec9d41b9ae6cb2b1db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669657 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Amirali Abdolrashidi fea19567 2022-05-17T17:44:06 Vulkan: Remove removeEarlyFragmentTestsOpt flag * Removed removeEarlyFragmentTestsOptimization and the related SPIRV transformation and variables. * Removed mUsesEarlyFragmentTestsOptimization. * Removed SH_EARLY_FRAGMENT_TESTS_OPTIMIZATION. * Merged updateUsesEarlyFragmentTestsOptimization() into updateFragmentInoutRange(). Bug: angleproject:7347 Change-Id: I7299bd4e8ab5363e5cf06eb48419d4f469106e12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648217 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 7b880204 2022-05-25T10:09:15 Vulkan: Remove invalid ASSERT in DescriptorSetDesc. This invalid ASSERT somehow was undetected pre-commit when landing the descriptor set cache CLs. It was code from before a refactor that broke the ASSERT's invariant condition. Bug: angleproject:7354 Change-Id: I4e84c78911e4c6aad826b1acabcd87216884509c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3666250 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 4aa0975e 2022-05-24T17:34:31 Vulkan: Support Wayland EGL_DEFAULT_DISPLAY If native display is EGL_DEFAULT_DISPLAY, then DisplayVkWayland will create a new wl_display structure by connecting to the default Wayland socket. Bug: angleproject:6902 Change-Id: I0765d126f8e809426deaed5d0fb1eb0f7439164b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664478 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4a20c914 2022-05-20T10:26:15 D3D: Fix race condition with parallel shader compile. Bug: chromium:1317673 Change-Id: I0fb7c9a66248852e41e8700e80c295393ef941e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651153 Reviewed-by: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny ccca0c25 2022-05-22T00:18:41 libANGLE: Fix evaluating the sample count OpenGL deals with the maximum number of samples, but Vulkan provides a mask of supported sample counts, so extract and limit the maximum sample count accordingly. Bug: angleproject:7328 Change-Id: If4867b2a5104062ec863eb6eb1e0c8e78e7a9c00 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652422 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Faye Zhang c608df69 2022-05-23T17:19:02 Code Cleanup In Debug.h, we unconditionally set UNREACHABLE_IS_NORETURN to 0. Since UNREACHABLE_IS_NORETURN is only used in #if directives and it is always false, we can remove all uses of UNREACHABLE_IS_NORETURN. Bug: angleproject:6134 Change-Id: I3aa88d802099d70990eae697d4f056a3f650b48d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661376 Commit-Queue: Faye Zhang <ffz@google.com> Auto-Submit: Faye Zhang <ffz@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Faye Zhang <ffz@google.com>
Alexey Knyazev 8291f2d3 2022-05-20T00:00:00 Fix ValidCompressedSubImageSize for 3D uploads Add CompressedTexSubImage3DValidation* tests Bug: angleproject:4056 Change-Id: I088273b6349729fadf2c21ca7b349e44dc9ce5f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3657408 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 84a0b462 2022-05-20T15:51:11 Vulkan: Bug fix in GL_QCOM_shading_rate A default value of _1x1 for mShadingRate interacts badly with sample shading state on some vendors. Instead set the default to Undefined and return early in such cases. Bug: angleproject:7172 Change-Id: If0a280090e6611817d2f5d75929ef2b654ddb186 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3658245 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mark Lobodzinski 1afb8058 2022-05-12T16:19:14 Add Vulkan backend support for texture labels Add onLableUpdate support for textures in the Vulkan backend. Bug: b/229105865 Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop 7a243dbe 2022-05-22T19:48:34 Capture/Replay: Allow repeated Gen-on-Bind for resources We aren't clearing items from the map of resource IDs used to track Gen-on-Bind. Before this CL, an app could Gen-on-Bind, delete the resource it genned, then Gen-on-Bind again to trigger this error. The options are to add tracking to remove items from the map when they are deleted, or just remove the error and allow it to happen. Since this happens so rarely, going with the simple approach of removing the error. Test: Star Wars: KOTOR MEC Bug: angleproject:7353 Change-Id: I320771692e1c01e254fc977f5eef99284cc95f67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3659505 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 11e9c835 2022-05-22T23:52:35 Vulkan: Dump graphics pipeline cache graph Bug: angleproject:6565 Change-Id: Ica8fdc40ece3e1c66fae8a4f8f70a3d33374fdb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656639 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hailin Zhang 35e54dbb 2022-05-20T17:24:11 Vulkan: Fix EXT_texture_buffer support condition More formats than necessary where required to have the STORAGE_TEXEL_BUFFER feature. This was based on the table in the EXT_texture_buffer spec, but that only applies to sampler buffers. Support for image buffer formats is based on acceptable formats to glBindImageTexture. Bug: b/206367167 Change-Id: I0c94c3d5a99c1e99ee1f9b05b1accdfaa38101af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3658000 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Antonio Caggiano 6e258863 2022-05-09T18:45:02 Vulkan: Use packed enum for present modes This will be useful for cases where ANGLE would need a non-Vulkan present mode. Bug: angleproject:7217 Change-Id: I3428ac9fb20788543cb24a0aa5f140e992e94001 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636057 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e4a517c9 2022-05-17T23:58:23 Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint Bits for VK_EXT_extended_dynamic_state2 are moved to the end of the desc. Some bits are also rearranged and some paddings removed for a total of 4 bytes of reduction in desc size. Bug: angleproject:7328 Change-Id: I48f20408a8a2cb7bce0d8e2d0d2ccd8a121f7894 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652747 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi bb3afdf4 2022-05-17T16:08:06 Drop support for 64xMSAA+ Hardware that supports anything more than 32xMSAA is rare (practically only Nvidia). That high number of samples is hardly useful either way. This change reduces the number of words for the sample mask to 1, reducing the amount of state needed to track it. Bug: angleproject:7328 Change-Id: Iea9add1cbeef494ff9bb383b10c82b839d1e53a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652738 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 688553c0 2022-05-16T23:27:29 Vulkan: Dynamic state for primitive restart enable Bug: angleproject:5906 Change-Id: Ida2cbe904604c638fd3a8ab498d49584dfd9c860 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651593 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sunny Sachanandani c76fb2d8 2022-05-18T15:29:19 Enable EXT_texture_norm16 on ES2/D3D11 Windows HDR regressed recently due to format checks added in Skia: crbug.com/1324371 Skia thinks R16/RG16 texturing is not supported, which it bases on GL_EXT_texture_norm16 not being reported on its ES2 context. Migrating to ES3 for the compositor context is a large project, and reverting the format checks in Skia is also not desirable because it helps catch bugs in ANGLE-Metal. Enable texture_norm16 on ES2 for R16/RG16 texturing since Chromium needs it for HDR video playback for P010 textures. This used to work before even though the extension wasn't advertised. Also, enable the P010 test on ES2/D3D11 which was previously ES3/D3D11 only. Bug: angleproject:7322, chromium:1324371 Change-Id: I4c2527996e37ba5365bb94b5764413e5a9fdda7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645892 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 3b78e0d5 2022-05-16T23:13:57 Vulkan: Dynamic state for depth bias enable Bug: angleproject:5906 Change-Id: I679a764e0a9ef74cc8a58f9061b42c0aaef56df2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651592 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7c83a363 2022-05-16T22:22:44 Vulkan: Dynamic state for rasterizer discard enable Interaction with primitives generated query are tested by those tests added in https://chromium-review.googlesource.com/c/angle/angle/+/2976181 Bug: angleproject:5906 Change-Id: I0ab9f54995504be770a93bf13337a5ffe20bf7eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651582 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2faabfe5 2022-05-16T16:19:03 Vulkan: Optimize pipeline desc w.r.t dynamic state State corresponding to VK_EXT_extended_dynamic_state is moved to the back of the description and is excluded from the hash. Bug: angleproject:5906 Change-Id: I3b6efb2674e955eed6e12b6c7096a7fea63748a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651581 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya ee1894e5 2022-05-18T16:39:22 Account for GL_ANGLE_yuv_internal_format when setting yuv state With the introduction of GL_ANGLE_yuv_internal_format an EGLImage source can be a YUV texture. Account for this possiblity when setting up EGLImage's state related to YUV. Bug: angleproject:5773 Test: ImageTestES3.SourceYUVTextureTargetExternalRGBSampleYUVSample* Change-Id: I7d06befa27dd6bd3408bda4d3f0cbe7cc21cd59a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3655129 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 58fd3157 2022-05-12T00:01:19 Vulkan: Dynamic state for vertex stride Bug: angleproject:5906 Change-Id: I73b7e004fc25bf3777982736412adc1ca57504b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644856 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gregg Tavares 118a6484 2022-05-19T15:11:31 Metal: Upstream buffer cache fix from WebKit Patch is from: https://bugs.webkit.org/show_bug.cgi?id=239015 BufferMtl::getRestartIndices() would recalculate restart indices on each draw because RestartRangeCache::operator bool() would return m_isDirty instead of the intended !m_isDirty. Use std::optional to hold the RestartRangeCache instead of maintaining m_isDirty. This allows the type system to contribute to the correctness of the code. Dirty restart range cache is not useful and takes up memory. Bug: angleproject:7340 Change-Id: I6e3ce527700780b5fea59af405bfe06d3714e79f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656450 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Yuxin Hu 728dea2b 2022-05-19T13:04:58 Suppress Vulkan Validation Error Suppress Vulkan Validation Error to unblock the vulkan-deps roller. We should remove the suppression when the VVL issue in the commit e23f82fc84c891b3a34e6e8787913b335cbe3934 in Vulkan-ValidationLayers.git is resolved Bug: angleproject:7338 Change-Id: I3322a5b10d271dcd95da9354328facf7e3b9113d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651531 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c7182af2 2022-05-18T15:35:30 Vulkan: Reserve varying for xfb if pre-rotation is enabled In https://chromium-review.googlesource.com/c/angle/angle/+/3562379, the varying was no longer reserved when VK_EXT_depth_clip_control is present. This is incomplete, as pre-rotation support still requires a varying to be reserved for capturing gl_Position. Bug: angleproject:5421 Change-Id: I87feea6ed738fa685b037c14c0a24349ce496cc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645816 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan 6ae0c321 2022-05-15T18:18:47 Vulkan: clamp dynamic line width to supported values On my Apple M1, MoltenVK reports wide lines are not supported. Trying to use vkCmdSetLineWidth with any value other than 1.0f will cause MoltenVK to throw an exception and stop accepting render commands. I originally tried making this a change in the frontend Context class, by clamping the value to the supported line width range. But that approach failed the WebGL conformance tests, because queries of of GL_LINE_WIDTH must match the value specified by glLineWidth. OpenGL ES docs state: The line width specified by glLineWidth is always returned when GL_LINE_WIDTH is queried. Clamping and rounding have no effect on the specified value. Bug: angleproject:7317 Change-Id: I7a3c3454e1483f9124fd70b7e9f2138bd717e1de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654264 Auto-Submit: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hailin Zhang b7474d0a 2022-04-28T14:44:54 D3D11: Add GL_EXT_texture_buffer support tested: deqp-gles31.exe --deqp-gl-context-type=egl --deqp-case=dEQP-GLES31.functional.texture.texture_buffer.* passed Bug: b/206367167 Change-Id: I31a6f84bd701a737735a6bac2f4eef780c24a979 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3639722 Commit-Queue: Hailin Zhang <hailinzhang@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 8701f53a 2022-05-17T13:54:53 Vulkan: Fix clear value for incomplete MS textures * Added initializeContentsWithBlack() for the cases we wish to use opaque black. * Added stageResourceClearWithFormat(), which also takes an initial clear value. stageRobustResourceClearWithFormat() is included as a special case. Bug: angleproject:7151 Change-Id: I32d7a9af53b51499fe46d6e397301744dbf3c236 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652995 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares dbeba900 2022-05-17T16:52:23 Reland "CGL, MTL: pbuffer for IOSurface fails for some formats" Fixed iOS compiler error https://chromium-review.googlesource.com/c/angle/angle/+/3568380 Bug: angleproject:7175 Change-Id: I1d15ecf0081891db31470abc305e6780c81ab574 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648215 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Stephen White b4ec8eac 2022-04-12T12:16:40 D3D11: implement image load/store for non-compute shaders. Output image metadata and image2d replacement string in other shader types. Implement the actual HLSL transform for fragment shaders. Re-enable problematic test. Bug: angleproject:7121 Change-Id: I49b815695757e822e6fdfe599e07ceb5b1d6a75c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550544 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 2fdd7bfd 2022-05-17T13:31:58 Vulkan: Support binding 2D slice of a 3D texture to an image unit Support binding a 3d texture as a 2d texture by specifying that it is non-layered during glBindImageTexture and expose support for EGL_KHR_gl_texture_3D_image when VK_EXT_image_2d_view_of_3d vulkan extension is supported. Tests: ComputeShaderTest.BindImageTexture3D dEQP-GLES31.functional.image_load_store.3d.*single_layer Bug: angleproject:7320 Change-Id: Ie2f0dfcdf302a4aa58990f74329ca36e62cd3902 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648586 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao ff011779 2022-05-13T12:36:24 Vulkan: Let texture buffer handle BufferVk's storage change When buffer's storage changed due to glBufferData call, texture buffer code should also respond to this and update the texture descriptor set. This CL merges BufferVkStorageChanged message into InternalMemoryAllocationChanged and removed BufferVkStorageChanged all together. Bug: angleproject:7283 Change-Id: I230ee7268634e747d06eab1954f5a76ecf84c9d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646955 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 2abf9adf 2022-05-17T12:06:02 Vulkan: Bug fix in YUV descriptor pool allocation The commit d8d396dbc0c88 refactored descriptor set and pool logic but introduced a bug where it did not account for multiple immutable sampler descriptor count. Tests: Texture2DTestES3*Yuv*Vulkan Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Bug: angleproject:6141 Bug: angleproject:6776 Change-Id: I8f5d88ff829b8d0be4c73ff7aa33a76931581f1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652249 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Trevor Black <vantablack@google.com>
Peng Huang c649979b 2022-05-17T20:53:16 Create EGLImage from VkImage correctly with non sized format Sometime, client may pass in non-sized internal formats (GL_BGRA, GL_RED and GL_RG) for creating EGLImage from VkImage. For those formats, angle::Format::InternalFormatToID(internalFormat) can not return valid result. Fix the problem, by converting internalFormat to sized format first. Bug: chromium:1326658 Change-Id: Id88e0614a2a9f55aabac116ea95ed8cec02672a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652741 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Antonio Caggiano a277f1bc 2022-04-13T15:47:10 Vulkan: Fix Wayland surface size queries On Wayland, VkSurfaceCapabilitiesKHR currentExtent is the special value (0xFFFFFFFF, 0xFFFFFFFF), so we can not use it to query its size. Bug: angleproject:6902 Change-Id: Icf350bfc41577f2b95da08a8dbb7773318a3e568 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583986 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Stephen White 6136ba27 2022-05-16T12:35:43 D3D: minor cleanup of gl::RangeUI usage. Bug: angleproject:7121 Change-Id: I444f1e5e96dab84315afc290d6044d0dee560d6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651055 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano 4ece3b08 2022-02-24T15:07:25 Vulkan: Multiple DRM formats A DRM format may be converted into more than one Vulkan format, therefore we try to create a dmabuf image with all candidate Vulkan formats until we succeed. Bug: angleproject:7065 Change-Id: I376d10a596ce81347c8ae21464c2c2db048f01d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516018 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny d75bf9ad 2022-04-29T09:15:35 Capture/Replay: Also limit the number of per shader SSBOs The compiler checks these values, so they should be in sync with the global limits. Fixes test not yet listed in the expectations: ProgramPipelineTest31.MaxFragmentShaderStorageBufferObjects/* Bug: angleproject:7252 Change-Id: Ie967ded15434cf7144d322b6fd4ee5fc7175f8dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 891a4682 2022-05-12T22:32:07 Vulkan: Dynamic state for stencil test/op Bug: angleproject:5906 Change-Id: I436c6c238a15e54919a74d2a697d1f114bb3eaf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3647207 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 66dcca5e 2022-05-12T11:14:27 Vulkan: Dynamic state for depth test/write/op Bug: angleproject:5906 Change-Id: Ie48a0780406c6dbbdd47639f2e185dc854879140 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646429 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peng Huang bedb3075 2022-05-16T09:46:11 Do not call RendererVK::handleDeviceLost() for device lost RendererVK::handleDeviceLost() need to hold the mCommandQueueMutex for releasing some resources. For some cases, Locking mCommandQueueMutex may cause deadlock, because the same lock has been acquired by the same thread. Fix the problem by not calling RendererVK::handleDeviceLost() for device lost. It is OK, because RendererVK::onDestroy() will call handleDeviceLost() if the device is lost already. Bug: chromium:1273643 Change-Id: Iaaa77bdf429b703363d4155323b91baf5947d95e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644641 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 15ecf068 2022-05-12T10:33:00 Vulkan: Dynamic state for depth bounds This state is actually unused. EXT_depth_bounds_test (which can set this state) is a desktop GL extension. If ever implemented, it should be implemented as a dynamic state. Bug: angleproject:5906 Change-Id: If613008952bb80cd98858f33eac7cdf31267ca29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646428 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 459c367e 2022-01-21T10:02:33 D3D: Initialize storage after generating mipmap images. When TextureD3D generates mipmaps without a storage present, it initializes all the images and then generates mipmaps on the CPU. Attempt to generate a storage after initializing all the mip images so that the mipmap generation can be done on the GPU. Fix several edge cases where texture storage was not copied back to images when redefining for mipmap generation. This resulted in the newly generated mipmaps not using the correct data. Bug: chromium:1256340 Change-Id: I76122d36385450d973bf00f7d07402a1f975492c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406643 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 48b1f07b 2022-05-11T15:20:24 Vulkan: Dynamic state for front face Bug: angleproject:5906 Change-Id: I649b9d2ab10daac6831f0ecb23f8211d3963c8c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3643098 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 4e5da2d2 2022-05-11T13:58:07 Vulkan: Dynamic state for cull mode Bug: angleproject:5906 Change-Id: I3d7b888e7999d4892ff71d636ea16a2edcf7a27f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3642800 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4b95ac7d 2022-05-12T11:29:11 Vulkan: Don't invalidate pipeline on dynamic state change Bug: angleproject:5906 Change-Id: I3a959dc5b1f62869ff77d62dce82555d00bd18e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646427 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 81c84292 2022-05-13T14:44:45 Do not do cleanup for Vulkan device lost When vulkan device lost happens caused by some gl calls, the GL calls may hold a lock in RendererVk. And ANGLE will try to cleanup resources in RendererVk. Those cleanup needs to hold the same lock as well. Since the lock is not recursive lock, acquiring the same lock again will cause deadlock. Fix the problem by not cleanup resources for device lost. It should be fine, all resource should be released when client destroy the lost context. Bug: chromium:1273643 Change-Id: I93ab0c966c8e9f3579b4e6742503d8588f16ebb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645497 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 808192a7 2022-05-09T16:39:45 Code Cleanup In Context::initCaps(), we first read the compressedTextureFormats from the contextImpl::getNativeCaps(), then we are clearing the retrieved compressedTextureFormats array in Context::updateCaps() immediately. We shouldn't need to fill the same array twice. Removing the first array value assignments in all backend. Bug: angleproject:3408 Change-Id: Iea85d367d2c5792de4780995d8d03bcf14af484e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3635275 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Min Zhang e56f227d 2022-05-13T08:50:12 Vulkan: Add case: TextureSampleByDrawDispatchDraw This case is used to verify the implicit synchronization when GL executables switch from draw to dispatch. Besides, suppress a VVL on it. Bug: angleproject:7031 Change-Id: Idab68cfd0d4b17685f5eb5b3eec7f2cad12e5877 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646927 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>