src


Log

Author Commit Date CI Message
Amy Liu 572ee7b9 2020-04-26T13:58:22 Vulkan: Fix texture copy from texture3d to texture2d or cubemap In vulkan spec, if srcImage or dstImage parameters are of VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount members of the corresponding subresource must be 0 and 1. Bug: angleproject:4553 Change-Id: Iabdc9708c86606c0d78c095c9d44827951264180 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2166863 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 20e631fe 2020-05-05T12:19:58 Update VMA integration again. This time using a simpler integration and no template. Bug: chromium:1074162 Change-Id: Ia770f2bf724ffb9b8120dbdbc707133fc61e16c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182173 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 17545eae 2020-05-08T11:59:21 Vulkan: Initialize mReserved in SamplerDesc::update. The other initailization path SamplerDesc::reset updates sets this value. Make sure it's initialized in all paths. BUG= chromium:1079398 Change-Id: Ia39722ec905e75483acde0907e891e68badfa9ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2189913 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Brian Osman 25e21f9f 2020-05-07T16:57:37 Suppress HLSL warnings 3556 and 3571 These are both fairly common, and rarely actionable. Bug: chromium:765576 Change-Id: Ib067fcbb1d4ffe7fcd47b69dbe5defac81430a70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2188952 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5b35c7f6 2020-05-07T13:40:55 Fix up screenshot saving for trace tests. Now works when run in a sequence. Also saves RGB images to avoid issues with the alpha being inconsistent and also flips images vertically to fix the rendering. Bug: angleproject:4615 Change-Id: I8d3b38c5d914e0ca2227320ac42a0e28acd12c4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2187971 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 234ea5b1 2020-05-05T14:44:30 Vulkan: Wrap barrier data into PipelineBarrier class This is preparation CL without introducing any functional change. This Cl wraps barrier data into its own class and put necessary data structures in place. It still uses one vkCmdPipelineBarrier call. Bug: b/155341891 Change-Id: If9c70d24873bd9b89e598acfba2eeee364f0b6c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185149 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Michael Spang dae210e6 2020-05-04T00:44:16 Fix validation errors & re-enable VulkanExternalImageTest clear tests These tests previously encountered errors attempting to transfer images from VK_QUEUE_FAMILY_EXTERNAL back to itself (this is not valid because one of the queues families in a memory barrier must be the family of the queue that executes the barrier). These invalid transfers were made because our ownership tracking started all resources in the "externally owned" state, with the expectation that the first operation on the resource would be a call to glWaitSemaphoreEXT to acquire ownership. It is far from clear that a call to glWaitSemaphoreEXT is always required to gain ownership of a resource. The EXT_external_objects extension inherits Vulkan's semantics, and what the Vulkan spec says is that the first entity to access a resource implicitly assumes ownership (see 11.7.1 "External Resource Sharing"). Binding a resource to memory does not constitute an access to that resource, or affect its ownership. Allocations should not be accesses, either; they happen at a lower level and the entire discussion about determining initial ownership from first access would serve no purpose if the mere allocation of the underlying memory was sufficient to assume ownership. This patch therefore adjusts the initial queue family ownership of resources created in memory objects to be the ANGLE renderer's queue family, just like a locally allocated image would be. Since this ownership state may not be correct (an external API may have already accessed the image, and assumed ownership) we must relax our assertions to allow a call to glWaitSemaphoreEXT while in this state. For images, this is only permitted while the layout is undefined. An alternative would be to set the initial queue family to a sentinel value that indicates that we don't know, but that would require checking for this value before making any accesses, and only then asserting local ownership. There's no real upside to this; the net effect of the first access rule is that we must effectively assume ownership until proven otherwise. Besides appearing to be the spec's intent, this change simplifies some usage scenarios because a queue submission is not required in the source Vulkan instance in order to allocate resources that will be initially accessed from GL. This seems especially important since there's no mechanism to allocate an external memory object from inside GL. The only downside is that the initial ambiguity in ownership prevents us from diagnosing certain errors, but this limitation is temporary; ownership becomes clear as soon as there is at least one access or at least one synchronization operation affecting the resource. Bug: angleproject:4229 Change-Id: Ibca2bfe373810c55352b1d849d07733d5fcfe5f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178946 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d08f1d8d 2020-05-05T12:54:07 Perf tests: Add screenshot capture mode. This adds a "--screenshot-dir" argument to capture screenshots. If we're running with screenshot capture then the test will early exit after the first capture. The screenshots use the same naming pattern as the test name: TracePerfTest.Run/vulkan_trex_200 -> angle_vulkan_trex_200.png Note the screenshot dir is relative to the test binary directory, not the CWD. Also adds a PNG saving utility function. Bug: angleproject:4615 Change-Id: I1de8ae6a6e6892586bb0b743e7b9a842f90f98e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184834 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jiajie Hu e7d27705 2020-04-30T05:50:21 Fix corruption when changing the base level of a framebuffer texture attachment In the D3D renderer, changing the base level may trigger re-allocation of the texture storage, for example if the new base level has a different aspect ratio. During the process, image contents in the texture storage should be backed up properly. The D3D11 backend does this if an image has been associated with the texture storage, but it may happen such an association has never been established, and corruption will be observed then. The proposed patch mitigates the problem by introducing a new method named findRenderTarget(), with which one can tell if a mip level has been used as the render target. This works based on the fact that render targets are cached in the texture storage object. Hence all mip levels of interest can be found, without relying on the association between images and texture storage. Bug: angleproject:2291 Change-Id: Ic73af7b603be25c65760928f276bec16df003baf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158830 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 101da757 2020-05-06T16:10:29 Capture/Replay: Update gfxbench traces Incorporate fixes to get them running correctly on native. TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org Test: angle_perftests.exe --gtest_filter="*Trace*" Bug: angleproject:4598 Change-Id: I44e9401f1554cc89749ac398ebe46440abd8eeff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2186171 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 712fea9a 2020-05-06T15:45:25 Sync state when calling getTexImage ANGLE's mid-execution capture was failing after changes to defer clears. There were still textures with pending updates and dirty bits after SwapBuffers. This caused our calls to Texture::getTexImage to assert. This was due to a bug where getTexImage was not syncing state. This change makes the function non-const so that it can update state directly. TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org Test: Manhattan MEC Bug: angleproject:4517 Change-Id: I717ad44cfc60ae0d4483721f1c91e47c5dda3939 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2186170 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Patrick To a2ec926c 2020-01-02T19:07:38 Specify LUID in D3D11 Add an extension to provide the ability to specify the LUID of the GPU adapter to use when using D3D11. Corresponding chromium CL: https://chromium-review.googlesource.com/c/chromium/src/+/2096778 Bug: chromium:792657 Change-Id: Iefebea221a4b7a20f150b445ae1adf375444726d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096663 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Geoff Lang 36c938e0 2020-03-31T12:42:16 GL: Ignore warnings about requested extensions not being present. Some drivers emit warnings about enabled extensions not being present dispite the 'enable' flag only being a request. Supress these warnings to clean up the Chrome console. Also request GL_EXT_gpu_shader5 in addition to GL_ARB_gpu_shader5 to maximize reach. BUG=chromium:1066212 Change-Id: If48cc60b8533f6ffedb727e845a4ca784d98c07c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2129111 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Tim Van Patten 12b6a82e 2020-04-03T18:31:22 No-Op draws when no active VS and/or FS is present Re-land CL with WebGL fixes: This required some extra pointer checking during validation to handle the fact that a Program and/or ProgramExecutable may not be present when attempting to draw. This isn't an error, just undefined behavior, which we (eventually) treat as a no-op. According to the OpenGL ES 3.1 spec: 7.3. PROGRAM OBJECTS If there is no active program for the vertex or fragment shader stages, the results of vertex and fragment shader execution will respectively be undefined. However, this is not an error. To handle this, if no VS or FS is present in the active Program/PPO, we will no-op the draw command. Bug: angleproject:3570 Test: KHR-GLES31.core.sepshaderobjs.StateInteraction Change-Id: I70d688bf344a78cf3b4fd66c995ae03ce4b9b807 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185156 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Michael Spang e25af112 2020-05-06T13:35:08 Add spang to OWNERS for Fuchsia port Bug: angleproject:1058521 Change-Id: Ice420d68d409eaa2db7b1d71245c43d1f54c9f7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185192 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Geoff Lang 7e5d7dc3 2020-05-06T12:56:41 Vulkan: Initialize all members of VmaVulkanFunctions. VmaVulkanFunctions was passed to vmaCreateAllocator without initializing all members. This leads to potential reads of uninitialized variables. BUG=chromium:1078652 Change-Id: Id349c8fbb2dd3a5a2c64c6a017add3d6f97b78fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis 562602a3 2020-05-05T12:32:56 Vulkan: Move CommandBufferHelper to vk_helpers.h Pull CommandBufferHelper class out of ContextVk.h/cpp and move it to vk_helpers.h/cpp. This is the natural place for it as it's a helper class. Also, this class is planned to be the interface between the main and worker threads so moving it to vk_helpers makes it easy to share between Context and Renderer. Bug: b/154030403 Change-Id: Ie5eeb864164a3787f800905ae885027834bd1a08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182177 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jamie Madill bcd2c592 2020-05-06T15:49:41 Revert "Capture/Replay: Update traces to include Reset" This reverts commit 968bb06d94369b782eacb9b7c6a3f1f2171b5f85. Reason for revert: Broke angle_perftests on the P2 bots: https://ci.chromium.org/p/chromium/builders/ci/Android%20FYI%2064%20Perf%20(Pixel%202)/30223 Original change's description: > Capture/Replay: Update traces to include Reset > > Now that our traces can reset state back to how it started with MEC: > > * Update the code generation to include that call. > * Update existing traces to include that call. > * Add a capture of Temple Run. > > Test: angle_perftests.exe --gtest_filter="Trace*" > Bug: b/152512564 > Bug: angleproject:3662 > Bug: angleproject:4599 > Change-Id: I4062271b75b5c6fc9122b301d1af443d79770edc > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182911 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org Change-Id: Icea86c2fbfbabe4a1e7738954cecc176b5574a16 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b/152512564, angleproject:3662, angleproject:4599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184705 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 968bb06d 2020-05-05T12:38:40 Capture/Replay: Update traces to include Reset Now that our traces can reset state back to how it started with MEC: * Update the code generation to include that call. * Update existing traces to include that call. * Add a capture of Temple Run. Test: angle_perftests.exe --gtest_filter="Trace*" Bug: b/152512564 Bug: angleproject:3662 Bug: angleproject:4599 Change-Id: I4062271b75b5c6fc9122b301d1af443d79770edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182911 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Courtney Goeltzenleuchter 1ab55d96 2020-05-06T14:45:18 Revert "No-Op draws when no active VS and/or FS is present" This reverts commit a4b506f79e3286ffcf3a5d68f20aa97a63edab8e. Reason for revert: WebGL crash https://bugs.chromium.org/p/angleproject/issues/detail?id=4616 Original change's description: > No-Op draws when no active VS and/or FS is present > > According to the OpenGL ES 3.1 spec: > > 7.3. PROGRAM OBJECTS > If there is no active program for the vertex or fragment shader > stages, the results of vertex and fragment shader execution will > respectively be undefined. However, this is not an error. > > To handle this, if no VS or FS is present in the active Program/PPO, > we will no-op the draw command. > > Bug: angleproject:3570 > Test: KHR-GLES31.core.sepshaderobjs.StateInteraction > Change-Id: If19e9fbb1bc09fa0d490832079bb9f514eab6035 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136386 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=timvp@google.com,jmadill@chromium.org,cclao@google.com Change-Id: Ia24c4156ff7779b69c1f3f705f1a91cbb1c9684c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3570 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184849 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Mohan Maiya daed369c 2020-05-05T14:24:26 EGL: Add support for GL_EXT_EGL_image_array extension Add support for creating 2D array EGLImages. 2D array textures are core in GLES3.0. Enable the eglImageArray bool that controls exposure of the extension for all contexts >= GLES3.0 Bug: angleproject:4604 Tests: angle_end2end_tests --gtest_filter=ImageTest.*2DArray* Change-Id: Iebc1ad184fe7209ca89d620290337438ac251c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176109 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 930b2641 2020-03-23T14:47:03 Allow tests to run on native EGL. Adds support for Linux and Android native EGL testing. This can be useful for doing performance comparisons of ANGLE vs a native GL driver. Only enabled for the trace perf tests due to limitations in the test harness. Bug: angleproject:4596 Change-Id: Iba6d3ccd7c1275cf095893fab824a0ea33dc3a79 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2116254 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten a4b506f7 2020-04-03T18:31:22 No-Op draws when no active VS and/or FS is present According to the OpenGL ES 3.1 spec: 7.3. PROGRAM OBJECTS If there is no active program for the vertex or fragment shader stages, the results of vertex and fragment shader execution will respectively be undefined. However, this is not an error. To handle this, if no VS or FS is present in the active Program/PPO, we will no-op the draw command. Bug: angleproject:3570 Test: KHR-GLES31.core.sepshaderobjs.StateInteraction Change-Id: If19e9fbb1bc09fa0d490832079bb9f514eab6035 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136386 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 06ce17e0 2020-04-27T09:05:54 Capture/Replay: Reset buffers on replay loop This CL adds infrastructure for tracking whether resources need to be reset when looping back to the beginning of the frame sequence. A new function is generated on the last frame: ResetContext*Replay(). It will contain calls to gen, delete, and restore contents of resources. This CL only supports Buffer resets. Bug: b/152512564 Bug: angleproject:3662 Bug: angleproject:4599 Change-Id: I46672dd70dcb997967e3cc0897308144f2582e21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168121 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nico Weber c02cdff7 2020-05-05T19:52:17 Revert "Add -Wno-pointer-to-int-cast" This reverts commit 226bba3c755ec8105c895c87450c1ebb0d8159e1. Reason for revert: Should no longer be needed after https://chromium-review.googlesource.com/c/angle/angle/+/2168617 Original change's description: > Add -Wno-pointer-to-int-cast > > This is the last remaining instance of the warning across Chromium. It's > fixed upstream but I can't seem to figure out how to successfully roll > deqp. So suppressing it here for now. > > This can be removed once the deqp in Angle has > https://github.com/KhronosGroup/VK-GL-CTS/pull/199. > > Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8 > Bug: chromium:1054220 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365 > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,courtneygo@google.com,aeubanks@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1054220, angleproject:4588 Change-Id: Ib26534cbb48df6d51af137babb95f3aeb6825043 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182891 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Nico Weber <thakis@chromium.org>
Ian Elliott eba008ad 2020-05-05T10:46:21 Add end2end test for changing MAX_LEVEL with compressed texture This is a follow-on to https://chromium-review.googlesource.com/c/angle/angle/+/2180881. This adds a comment explaining part of that solution, and an end2end test that creates a compressed texture and then renders after decreasing MAX_LEVEL and then again after increasing MAX_LEVEL. Bug: b/155499736 Change-Id: I04bb0dc9ead2807f7121e4c6b95ffd3594d5dcc0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182174 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Cody Northrop a5829b2a 2020-04-27T15:41:37 deps: Roll VK-GL-CTS * Moved xexml files to a library * Added new waiver system to GN * Added new KHR GLES 3.x tests to GN for nearest sampling edge cases * Updated expectations for new tests * Manual roll of glslang to bring in new dependencies. Test: deqp Bug: angleproject:4588 Change-Id: I7b9bcc28e9c9ba6abe4fa4873f732677ed3d276d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168617 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 1e2109b9 2020-05-04T15:41:33 Vulkan: Merge Command Buffer Helpers Merge the outside and inside renderPass command buffer helpers to share the single CommandBufferHelper (CBH) class. This commom class is still used for separate outside and inside renderPass command buffer objects in the context. That's a bit wasteful since some functions and members are only relevant to one type of command buffer. However, this is a foundational change that will provide the immediate benefit of being able to use the CBH as the interface for passing commands to a worker thread. It also provides the long term benefit of starting the refactor to merge the outside and inside renderPass command buffers into a single command buffer object that can be used by the main thread to record all commands whether inside or outside of a renderpass. Bug: b/154030403 Change-Id: I83c63385fe9858bc05853c550d4fb2e13226d582 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180850 Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Courtney Goeltzenleuchter e8e12881 2020-05-05T08:47:28 Roll Vulkan headers, update ANGLE to match All the *_RANGE_SIZE enums were removed from vulkan_core.h Fix up ANGLE references. Bug: b/155750030 Change-Id: Idc4ee20d4a87f8cb3f46e105819af7257a7fea4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182577 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d657e1d7 2020-04-24T13:13:18 Vulkan: Defer framebuffer clears. This works by storing the deferred clears in the ImageHelper's staging buffers. We apply the deferred clears onto the RenderPass right before we begin to draw. Storing the clears in the ImageHelper solves problems where we clear GL Textures in a Framebuffer and then unbind the Textures and sample from them. Or do other commands like CopyTexImage. Note that because the staging buffer clears only handle full-image clears we need to immediately apply some scissored clears where before we would use the RP. This should be a pretty rare occurrence and it is possible to optimize that in the future. Reduces the RenderPass count in the Manhattan "frame 10" trace from max 22 to max 20. May improve perf slightly on Android or may have effects too small to measure. Should not regress performance. Bug: angleproject:4517 Change-Id: I02150d531022afb903f1058f070937ec6337bd88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2142711 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ian Elliott 2ad30d7a 2020-05-04T16:14:22 Vulkan: honor compressed texture block width/height When a texture's base or max mipmap level is changed, ANGLE creates a new VkTexture (and potentially copies lots of data old->staging buffer->new). However, ANGLE wasn't looking at the texture's format, and for a compressed format ANGLE wasn't looking at/using the texture format's compressed block width and height. Bug: b/155499736 Change-Id: I11a12028aee998fa23d503c2c0db39fbb49ae6ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180881 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Charlie Lao 41f7bcce 2020-04-30T16:09:36 Vulkan: Add missing cache flush DynamicBuffer are not cache coherent, thus requires flush. Also adds a few assertion to ensure implementation matches expectation. Bug: b/155432713 Change-Id: Iaf28786168a3bb5d746b43e030f882c4b6d005ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174269 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Jamie Madill ca50ad42 2020-05-01T16:37:00 Vulkan: Update VMA integration. This will allow ANGLE to share the same source location as Chromium. Bug: chromium:1074162 Change-Id: I3ea9820cc1fe9cd0bfec81d734168213e5c1bb0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176067 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexis Hetu 73bf99b7 2020-04-29T16:20:09 Fix clearing the program's validation-related cache too early When attempting to link a new program, the program must be marked as unlinked, but the validation-related caching should not be cleared yet, since we can still use the previously linked program if linking fails at this point. Added an angle end2end test which fails without this fix and passes with this fix. Fixes the following WebGL 1.0.4 test with SwANGLE: conformance/programs/program-test.html Bug: angleproject:3557 Change-Id: Ib6722ba88803979e8f292c9b7b81f85cc0304662 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2173538 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Michael Spang 4271443d 2020-03-04T20:33:36 Fix VulkanExternalImageTest on SwiftShader Check isSwiftShader() for whether to load swiftshader instead of the default ICD. The spec says we should query GL_DEVICE_UUID_EXT & co for this, but we haven't implemented those queries yet. Bug: angleproject:4092 Change-Id: Ifd74d6b6706f7b1fcbe5d82a33ecf70e631e26b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088660 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Michael Spang 605af42e 2020-03-04T21:52:53 Vulkan: Move ICD overrides to a common place We also need the bundled ICDs and selection logic for certain tests that create a vulkan instance. If we don't, the tests will use default vulkan even if ANGLE is using swiftshader-vulkan. Tests of driver specific handle types (e..g opaque fd) will fail in this case. Bug: angleproject:4092 Change-Id: Iff089c9341b8b533ee8634923d0177c5dbcd5cc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088659 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop f623bd2e 2020-04-14T10:35:13 Tests: Add program pipeline object tests This CL adds two program pipeline object (PPO) tests based on code inspection during review. They are both disabled awaiting fixes. * The first (DetachAndModifyShader) tests a bug that shaders aren't detached immediately on call. * The second (DifferentTextureTypes) tests PPOs with mismatched texture types. They should not link if the programs use a texture in non-matching ways. Test: ProgramPipelineTest31.DetachAndModifyShader* Test: ProgramPipelineTest31.DifferentTextureTypes* Bug: b/151462886 Bug: b/151449648 Bug: angleproject:3570 Change-Id: Ief0937397d31c972bf5e3a8d56b02d2dbd5a604b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2146997 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Courtney Goeltzenleuchter a48f3c38 2020-04-29T10:03:14 Implement setBinaryRetrievableHint Remove the UNIMPLEMENTED() macro. Doing nothing is an acceptable implementation at this time. Test: Angry Birds 2 Bug: b/154930384 Change-Id: Ie46c084feb2015aa5fecdbbf2295d46e5087e3dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172711 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 2071b5c3 2020-05-01T15:41:04 Expose EGL 1.5. This is helpful for figuring out if we can support the DEBUG property when initializing an EGL context. It also will be necessary down the line for Android. Bug: angleproject:4596 Bug: b/154921118 Bug: angleproject:4606 Change-Id: I01c2cbaa21495e3620b7858f2a309c9a884033ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176277 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Tobin Ehlis 040e4f6f 2020-05-01T14:50:59 Vulkan: Minor command buffer refactor Fix a couple minor nits with command buffer handling in ANGLE: 1. Make initialize() common CommandBufferHelper function 2. Reduce some common code when starting renderpass Bug: b/154030403 Change-Id: Ie9cfcd7c053c8605b16bc2dee7f8d69418922492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Ian Elliott 10ee839c 2020-04-30T16:15:41 Vulkan: Improve viewport and scissor for pre-rotation Handle all 4 rotations and non-full-screen viewports & scissors. Test: Running NBA 2K20 while flipping phone left and right (90 & 270) + watching it in Visual Studio and with Android logcat INFO messages Bug: b/150329969 Bug: angleproject:4431 Change-Id: Icd555dbc2419aac1413452c1b306d6227784dc27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174961 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 1c3e322c 2020-05-01T12:22:20 Work around strange git cl format issue. For some reason this line of code confused git cl format in that it would generate different results depending on when it was called: "PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC ANGLE_EGL_StreamConsumerGLTextureExternalAttribsNV;" I wasn't able to root cause the bug. Instead I worked around it by changing the signatures for this file. Bug: angleproject:4596 Change-Id: I4f18e03d27d378480b19831de51c4e85d815ca66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176157 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Geoff Lang c9e0edc2 2020-04-30T14:48:40 Handle 3D texture entire-mip initialization for FBO attachments FramebufferAttachmentObject::initializeContents clears the entire mip level for layered textures (not including cube map). This was done by special casing 2D array and 2D multisample array textures but did not work for 3D. Generalize the logic to work for all layered texture types. Handle clearing the entire 3D texture mip in Vulkan. TEST=conformance2/misc/uninitialized-test-2.html BUG=angleproject:4602 Change-Id: I35bb9fc3304f0553e8de68d205b0843845bf7549 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174264 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 5b16123d 2020-05-01T08:26:28 Capture/Replay: Refactor default uniform handling for arrays Instead of walking through uniform locations, walk through the uniforms themselves and emit arrayed uniforms, which consume multiple locations. Test: MEC capture of Manhattan on Windows Bug: angleproject:3662 Change-Id: Ifd25528721982847d4f0938f469a914a1cb908c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175994 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 428e4415 2020-04-27T12:27:00 Vulkan: Migrate trace events and occlusion queries Moved GPU trace event and occlusion query commands that were on the primary command buffer to the SecondaryCommandBuffer (SCB). Putting these commands on outside render pass SCB and flushing those commands to primary on-demand as needed to maintain ordering of commands. For resetQueryPool command used by occlusion query, allow the SCB to queue up that command for inside RenderPass SCB. This avoids ending a renderPass prematurely and allows all outstanding reset commands to be executed before the beginRenderPass command since the resets must occur outside of a renderPass. This is groundwork to simplify the hand-off of SCBs from the main thread to a worker thread. Long-term we'd like a single SCB that can handle both inside and outside renderPass commands at the same time to pass to the worker thread for processing into a primary CB. Bug: b/154030403 Bug: angleproject:4603 Change-Id: Ic1023ae27a9b14435743549ea9933edf1c4b318b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168114 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jamie Madill 942796f6 2020-04-30T16:55:28 Capture/Replay: Use BindAttribLocation to force MEC compat. In some cases we'd end up with attributes that are optimized out by the GL driver. BindAttribLocation forces the programs to use the same attribute indexing numbers so that the command stream works mostly the same even if some attributes aren't active in the shader. Bug: angleproject:4598 Change-Id: I2d02dd38d29a1489706ae70bcc0b262b1c076942 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174266 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill e09f7a14 2020-04-30T17:43:12 Validation: Fix some function types. These were slightly mismatching the header types. They seemed to link fine despite producing some warnings in a tool. Bug: angleproject:4598 Change-Id: I19cfe4d87eca409c82a7c8cf25fff6f8a4c83ca9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175057 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 57d95828 2020-04-30T17:35:50 Revert "Add type for attribute locations." This reverts commit 9349c14344b2d1fd6bc357063b602bc2626c140f and commit d43b057435e6c9e3194dd20627681ffca0c0808e. It's no longer needed after we bind attribute locations before link. Original CL message: This will allow the capture/replay tool to easily intercept and label attribute locations for remapping. There's some inconsistency in implementation in the GL desktop front- end. This is a quick fix and the full implementation is left for when we implement the full desktop GL API set. Bug: angleproject:4598 Change-Id: Ic510159d4d1982eff41560503cabf983a1be0381 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174076 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao df31624e 2020-04-30T13:28:24 Vulkan: Reduce the onBufferRead/onBufferWrite API verbosity a bit This adds helper functions to handle common use case for onBufferRead and onBufferWrite to reduce the API verbosity a little bit. Also fix the transform feedback bug that we are passing in wrong access/stage flags when it is emulated by vertex shader. Bug: b/155122200 Change-Id: Id2549ca00cad184a90c6230dc3665aaff44dda08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174265 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tobin Ehlis 67da0051 2020-04-30T17:53:58 Vulkan: Fix dbg util label bug Courtney noted this bug from a review. Should begin label on pushGroup instead of insert label. Bug: b/154030403 Change-Id: I5f4da5762e1ef03fe27b414740e34d2064af86b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171951 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jiajia Qin 85ae836f 2020-03-30T16:03:47 GL: Implement EGL_EXT_image_dma_buf_import Add support for the EGL_EXT_image_dma_buf_import on EGL implementations that support it natively. This extensin is used on ozone to import native compositing buffers. This patch also adds new tokens in EGL_EXT_image_dma_buf_import_modifiers which are used in eglCreateImageKHR. BUG=angleproject:4529 Change-Id: I49bff831b591fb19fcdcec1145c7a61f5d8020c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128190 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Qin Jiajia a56537a3 2020-04-29T11:14:03 Enable GL_BGRA_EXT for es backend It's required on Chrome OS. Based on spec EXT_texture_format_BGRA8888, this format is renderable. Bug: angleproject:4594 Change-Id: Ibde0f0de18f4b8079a23f4b13123c6b5c8794a89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172638 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Jamie Madill d43b0574 2020-04-30T14:17:21 Capture/Replay: Fix tool after parameter change. 'index' became 'indexPacked' for attribute locations. It also changed the type. Bug: angleproject:4598 Change-Id: I6393e09dd1d5c1a7c5d0e2ca8a67e4f7bbb05411 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174263 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9349c143 2020-04-29T16:36:17 Add type for attribute locations. This will allow the capture/replay tool to easily intercept and label attribute locations for remapping. There's some inconsistency in implementation in the GL desktop front- end. This is a quick fix and the full implementation is left for when we implement the full desktop GL API set. Bug: angleproject:4598 Change-Id: Ibf11bcb8669d27265ea376494a2e3124825cf3be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171933 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9cac3c58 2020-04-30T09:52:13 Capture/Replay: Disable default uniform updates for arrays We aren't properly handling them, were already firing UNIMPLEMENTED, but can't continue with the loop. Will follow up with real support. Test: MEC capture of Manhattan on Windows Bug: angleproject:3662 Change-Id: I7b77350b39971fda702eac8b19c6f29f36f78146 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171759 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao f07d0072 2020-04-27T16:51:05 Vulkan: use fine grain stage for buffer barriers We are using VK_PIPELINE_STAGE_ALL_COMMANDS_BIT for mGlobalMemoryBarrierStages, which is used for both src and dst. This will cause a full pipeline stall whenever a buffer object introduces a barrier. This CL will let the caller pass in the specific stage it will be used for, allowing us to track write and read stage dependencies separately and request the corresponding barriers. Bug: b/155122200 Change-Id: I8b8bd291a03b77d07cfbcbe7c3cda2d3771588b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2169014 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu 95741743 2020-04-27T18:09:42 Validation fix for draw with primcount <= 0 A buffer size validation check was returning an invalid operation error based on buffer size, even when primcount is <= 0 (so the buffer isn't used). Fixes the following WebGL 1.0.4 test with SwANGLE: conformance/extensions/angle-instanced-arrays-out-of-bounds.html Bug: b/154628007 Change-Id: Ibfe4eb57f17cd07100fb8dfbe8069e9ec7515160 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168546 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Jamie Madill 5540a307 2020-04-29T11:57:24 GL loaders: Add 'ANGLE' symbol prefix. This should prevent debuggers like RenderDoc from getting confused about symbol names. It's also generally good practice to avoid overloading names. Change-Id: Ie9fd3f77f45479bdf6925dae3e03fb4ac85bdb8a Bug: angleproject:4596 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171684 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ancheng Qiao 78f2e4b8 2020-03-24T16:21:40 Add gles1 covegl test compile Covegl test is hard to suit gtest, so just compile it without gtest (angle_gles1_covegl_no_gtest), we can get the test result by exit code. Bug: angleproject:2303 Change-Id: I67a930c91f23c02e72022329c712a0749e4a903c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2126587 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Schade fa03eb9d 2020-02-05T15:25:52 Vulkan: Use DynamicBuffer for BufferVk When there is glBufferData API call, if the current VkBuffer is in use, we copy to a staging buffer to be gpu copied later. Instead of doing this second copy, write directly to a new buffer that will be used for subsequent gpu operations. BufferVk now has a DynamicBuffer to handle the logic of acquiring a new/free buffer to be used. Bug: angleproject:4380 Change-Id: I207f334013ae944090eb48c26c692a09e8815f74 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040513 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill 92b3a720 2020-04-27T15:52:56 Capture/Replay: Generate code integration. This sources the trace list from a json file and uses that to make the "glue" that works with each individual trace test. Bug: angleproject:4590 Change-Id: I40808cbd0e00f9ed01f93c4cfbd678401db3fec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168539 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tobin Ehlis 45bb2b9c 2020-04-22T17:09:41 Vulkan: Add debug label commands to SecondaryCommandBuffer Add begin/end/insert DebugUtilsLabel commands to SecondaryCommandBuffer. Switch use of these commands to the outside renderpass command buffer instead of directly in the primary command buffer. This change should maintain the exact same sequence of commands but avoids some direct use of the primary command buffer. This is desirable for the threaded refactor where a worker thread will process the SecondaryCommandBuffer into a primary and the main thread will no longer use the primary command buffer directly. Note that because the debug utils label has an arbitrarily long string that we need to adjust the command allocation to allow for the string size exceeding the default allocation size. In this case we just make a single larger allocation to accommodate the command with the large string. Bug: b/154030403 Change-Id: Iab7832ffc3d38ce168da2d624bd5b5d5b33ec11b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2161955 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Xinghua Cao d93b9559 2020-04-16T16:16:27 Translate uniform block with large matrix array to StructuredBuffer There is a slow compiling issue if translate a uniform block with a large matrix array member to cbuffer, so translate the uniform block to StructuredBuffer. But pack_matrix pragma directive is invalid for matrix element of StructuredBuffer, so pack the matrix into a structure firstly, and then specifies packing alignment for the matrix in this structure, last the structure is used as StructuredBuffer element. Bug: angleproject:4206 Change-Id: I5a2a512e57b37dcdb88c3060d0d078b46f72eb5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154525 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Ian Elliott 718ae508 2020-04-28T08:42:07 Vulkan: Always query EGL_WIDTH and EGL_HEIGHT This fixes the failures of the dEQP EGL resize tests on Android. Those tests don't actually resize the window (which would allow the tests to pass), but do change internal Android Surface values that vkGetPhysicalDeviceSurfaceCapabilitiesKHR queries. Therefore, by freshly querying these values the test passes. Bug: b/153329980 Change-Id: Ie966f221bfaa14988c1503c7f5503f0b21476bcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165639 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill 448b14bb 2020-04-27T13:46:08 Vulkan: Apply binding size in updateBuffersDescriptorSet. Previously we would bind the full Vulkan buffer size in cases of unsized arrays in storage buffers. This then would lead to problems when binding a dynamic buffer that used sub-allocation or larger internal sizes. Instead use the GL binding size or GL buffer size as the size limits. Bug: angleproject:4380 Change-Id: Ia579bfeae3b8d068813336cbd5e1babee9f4f345 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168020 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
shrekshao d9268889 2020-04-22T20:24:16 Take into account baseVertex for drawElementsImpl D3D11 Also add test for GL_DYNAMIC_DRAW and GL_STREAM_DRAW with vertex color data updating before each draw call to make sure index range is retrieved correctly. Bug: angleproject:3402, angleproject:3911 Change-Id: I5f209292b6e316e4b50505a98b361eb8761a7d6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2162132 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shrek Shao <shrekshao@google.com> Commit-Queue: Shrek Shao <shrekshao@google.com>
Jamie Madill 1398080c 2020-04-27T16:16:15 Capture/Replay: Simplify .gni integration. Moves a lot of the code out of the gni file into tests/BUILD.gn. In preparation for auto-generating the gni file as a simple array of trace test names. Bug: angleproject:4590 Change-Id: Iaa2b7872dc6e705d59108fa7532594bdc65d365a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168359 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Xiaoxuan Liu 4262ea04 2020-01-31T22:59:13 Vulkan: Add gles1 conformance support. For Khnoros CTS1 support, ANGLE needs to add conformant and rendererType for OpenGL ES1 version. Bug: angleproject:4457 Change-Id: I58ac4672352d3d42e4b8403b80f86154b6a76edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160515 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fbc2f063 2020-04-24T13:00:11 Vulkan: Refactor AttachmentOpsArray. Will allow for more flexibly setting ops when we defer clears. Bug: angleproject:4517 Change-Id: I7d9116bc92e90eb41a1030fea242eadf1cc74562 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165629 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Alexey Knyazev 6193fd69 2020-03-07T21:19:05 OpenGL: Implement OES_draw_buffers_indexed OpenGL state sync issues as few GL commands as possible to update the blend state regardless of an application input. Enhanced ClearTestES3.MaskedIndexedClearMultipleAttachments regression test. Disabled OES_draw_buffers_indexed on Windows/AMD/OpenGL. Bug: angleproject:4394 Change-Id: I244ac2975678bc559634152cf4eb997d9dbe83d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2145874 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexis Hetu 6e7d7296 2020-04-24T15:40:57 Fix clearing compressed textures with Vulkan backend When making sure a texture's data is initialized in ANGLE, it is illegal to attempt to clear it when using the Vulkan backend. The Vulkan spec, regarding vkCmdClearColorImage, mentions that: "image must not have a compressed or depth/stencil format" The proper way of initializing the memory of a compressed image in Vulkan is to do a buffer to image copy instead. This was added to ImageHelper::stageRobustResourceClear() so that it may now handle compressed textures properly. Bug: angleproject:4092 Change-Id: I073ed0603d9e92e787b9be8992751dbc0c8978db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165636 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Alexey Knyazev d6c7bac9 2020-04-18T01:41:14 Add BlendStateExt helper structure It provides compact storage and comparison operations for per-drawbuffer blend states. Added BitSetT::Zero() static constexpr. Bug: angleproject:4394 Change-Id: I66d6275facb7b28022fc24ff9cc0d8c3c976c99d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154669 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Arthur Eubanks 226bba3c 2020-04-24T09:57:10 Add -Wno-pointer-to-int-cast This is the last remaining instance of the warning across Chromium. It's fixed upstream but I can't seem to figure out how to successfully roll deqp. So suppressing it here for now. This can be removed once the deqp in Angle has https://github.com/KhronosGroup/VK-GL-CTS/pull/199. Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8 Bug: chromium:1054220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jonah Ryan-Davis 3cb9c4be 2020-03-13T13:56:47 Statically link vulkan-loader on Mac Disable angle_shared_libvulkan on Mac since we are the only client. Re-add codepaths to support this. Bug: angleproject:4477 Change-Id: Ie128c83adaae741636541bbfd6105d160d874a8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102954 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill 0f2747e9 2020-04-24T13:10:14 Vulkan: Clean up ClipRectToScissor. Refactoring change only. Split off to make the main CL for deferring clears simpler. Bug: angleproject:4517 Change-Id: I5728a7dcf09de8952d5810061d1d8b135b625339 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165630 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 35e389cc 2020-04-24T13:33:36 Vulkan: Remove unicode character from error string. Will fix presubmit checks on Windows. Bug: angleproject:4586 Change-Id: I36cec3e850c88a015f33d8a0bb7cc8f8c26402d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165628 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 21c5af31 2020-04-20T10:29:13 Vulkan:Migrate events and queries to secondary Cmd Buffer Replace flushAndGetPrimaryCommandBuffer() function with endRenderPassAndGetCommandBuffer() for events and queries. The end result should be the same, but this allows a number of places that were putting commands directly into the primary to put the commands into ANGLE's custom SecondaryCommandBuffer (SCB) instead. This also fixes a couple of minor bugs related to command buffer ordering. flushAndBeginRenderPass() now flushes any outside RenderPass (RP) commands first. Also, when insideRP commands are flushed to the primary, set "mHasPrimaryCommands = true;" Bug: b/153666475 Change-Id: I68413f25d27175afed0a20bc49f22f4c8d01e4fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2156932 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Brandon Schade 5578fc84 2020-04-22T09:34:30 Vulkan: Disable EXT_texture_sRGB_R8 Due to a dEQP bug, EXT_texture_sRGB_R8 cannot be exposed before EXT_texture_sRGB_decode is available. This change disables EXT_texture_sRGB_R8 on the vulkan backend. Bug: angleproject:3609 Test: dEQP-GLES31.functional.srgb_texture_decode.skip_decode.sr8.* Change-Id: I261c80986484e489f6903eb54ac6865433050bfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2161985 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Tobin Ehlis 23621826 2020-04-23T10:09:03 Vulkan: Manual Validation Layer Roll Latest Vulkan validation layer roll is hitting new error so added exception and rolling manually. Bug: angleproject:4583 Change-Id: Id9f8be7d2e20156ad8397ee0ba7ea5fcc12f6d28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2163133 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jeff Vigil e20f36f4 2020-04-21T15:45:44 EGL: Implement EGL_ANDROID_native_fence_sync on vulkan Check the following - 1. Vulkan ICD supports VK_KHR_external_fence_fd 2. ExternalFenceProperties and ExternalSemaphoreProperties support Android FD. eglCreateSync - if FD was provided import to VkFence, else create VkFence with new FD and then flush and submit VkFence on next vkQueueSubmit. eglGetSyncAttrib - for status call vkGetFenceStatus. eglDupNativeFenceFdANDROID - return FD from vkGetFenceFD call. eglClientWaitSync - call vkWaitForFences. eglWaitSync - dup FD, create VkSemaphore and import FD, then flush() and add VkSemaphore to next vkQueueSubmit as a waiting semaphore. Extended end2end test suite with nativefence test cases. Bug: angleproject:2517 Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_* Change-Id: I8f6a6f4c3d71d83007f662b78377aa015a740035 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026177 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 963759a3 2020-04-21T15:14:56 Vulkan: Mask out implementation dirty bit in sync. This would needlessly create many redundant sampler objects. Bug: angleproject:4517 Change-Id: Ib8ef28b9bcbbeec804c493fbe677cbee7d9a750d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159296 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 492ec932 2020-04-21T13:38:41 Vulkan: Track allocated sampler counts. Helps to diagnose perf bugs where resources are over-allocated. Also can be useful to evaluate caching strategies. Bug: angleproject:4517 Change-Id: I48df5a09fbc394fa0b1712fa8cf28a179665e6e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159293 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill 6fc0066a 2020-04-21T17:40:54 Vulkan: Add a sampler cache. This uses a packed sampler description to re-use samplers for multliple VkImages. The samplers will persist for the lifetime of RendererVk. In the future we could look at doing cache eviction for large object counts. Reduces the active VkSampler cache in Manhattan from over 1200 to 9. Also should reduce the number of VkSamplers used with Chrome. Bug: angleproject:4491 Change-Id: Idca00e4ed8cb660a0865281544aaa57cf884bbdb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160771 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 4671bcf0 2020-04-21T18:12:46 Fix program interface queries for arrays and built-ins Program interface queries for arrays should return an invalid index value for indices with leading zeroes. Program interface queries should return invalid locations for built-in variables. Bug: angleproject:3596 Test: KHR-GLES31.core.program_interface_query.* Change-Id: I484ab6e21dbe0c8a984e135ac947c4583a3fbfa2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159646 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten 913f4f42 2020-04-15T00:54:37 Vulkan: Support VS, FS, and CS in the same PPO This CL adds support for a Program Pipeline Object to have a VS, FS, and CS attached to the same PPO and then using that PPO for both draw and dispatch calls. Bug: angleproject:3570 Test: KHR-GLES31.core.compute_shader.sso* Change-Id: I262cdbdfd442f6db5ba2b45d1308003102b237cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2150078 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jeff Vigil 78dcba58 2020-04-21T15:20:13 Refactor SyncHelper with vk::Resource Set SyncVk's SyncHelper to inherit from vk::Resource. Bug: angleproject:2517 Change-Id: I499414d97e611d029abc12622f19436cbdb3e1f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160126 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1fc354fa 2020-04-22T11:49:00 Re-land: "Vulkan: Forward RenderBuffer/Surface dirty messages." Re-land fixes ASSERT on Android GLES. Previously we were only forwarding Texture staging changes to the Framebuffer for re-sync. We could miss out on clears that were staged in Surfaces and Renderbuffer attachments. Complete the chain by making the SurfaceVk and RenderbufferVk forward notifications from the VkImage. Bug: angleproject:4517 Change-Id: I91d31213b115a58546b574caa574eebbb098266c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 0e1798d6 2020-04-20T11:25:32 Vulkan: PPO: Allocate uniform descriptor set if list is empty When a Program is used to draw, the buffers to hold uniforms are allocated as part of updateUniforms(), and then if a buffer is allocated, a corresponding descriptor set is allocated for each shader stage with uniforms. However, if that Program is later bound to a PPO, the PPO's descriptor set list is cleared as part of creating the pipeline layout. This means the uniform descriptor sets need to be re-allocated but using the previously allocated buffers so the 'anyNewBufferAllocated' flag isn't enough - we also need to check if the PPO's list of descriptor sets is empty. Bug: angleproject:3570 Test: KHR-GLES31.core.sepshaderobjs.StateInteraction Change-Id: Id8df587b4f5552012590a29d120b6899bbdf677b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2156936 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Le Hoang Quyen dadd1986 2020-04-21T01:50:00 Implement GL_APPLE_clip_distance - Built-in variable gl_ClipDistance has been added to compiler. - Desktop GL: gl_ClipDistance is supported since GL 3.0. Enable/Disable each gl_ClipDistances[i] works out of the box via glEnable(). - Vulkan/Metal: Use uniform variable to control writing to each gl_ClipDistance. One bit flag controls one element in the gl_ClipDistance array. The writing to the disabled element in vertex shader will be ignored, and turned into zero assignment instead. - Direct3D/Mobile GL: Not implemented yet. - Added ClipDistanceTest to gl_tests and compiler unittests. - GL_APPLE_clip_distance is a subset of GL_EXT_clip_cull_distance, so GL_EXT_clip_cull_distance could be implemented in future if needed. Bug: angleproject:4452 Change-Id: I571ac8b56826989808a680226a04bec4cf59988e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2084324 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 927ea225 2020-04-21T19:42:18 Vulkan: add vulkan error code in the error message If driver returns error code that we do not know, we simply output "unknown vulkan error code". Instead we should at least include the actual errorCode here so that people can search up to see what it is. Also remove the double period at the end of string and added a few other vulkan error strings. Bug: b/154665382 Change-Id: Ic4138e90534b4e7d97520fe10ac1477d2930d9c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2160130 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Courtney Goeltzenleuchter b5992a55 2020-04-21T07:58:47 Add capture support for FenceSync This allows us to capture Angry Birds 2 traces. Bug: b/153652100 Change-Id: I99a47f9e41a84218b3bb3d9740df4bb7fc2a01fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2144763 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Mohan Maiya b7d6949b 2020-04-17T13:36:14 Vulkan: Enable persistently mapped buffer objects The VMA allocator has a handy feature where during memory allocation we can request persistently mapped memory. This saves IOCTL overhead for apps that update buffers frequently. Bug: angleproject:2162 Change-Id: I870d880033beec343efae6de06f1c5935de4c2c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2155131 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Tobin Ehlis fe60973b 2020-04-21T11:21:03 Vulkan: Allow commands to completely fill allocation If the remaining allocation size for commands in the SecondaryCommandBuffer class is equal to the command allocation size and the follow-on header, then we can fill the allocation. Previously we were conservative and if the size needed exactly equals the size remaining, we would allocate a new block. Bug: b/154030403 Change-Id: Ie31f0f5d33782d12adbaea9e3b02598a004d7643 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158817 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Geoff Lang 9dc322d7 2020-04-21T11:41:43 GL: Make sure primitive restart emulation is disabled below GL 3.1 If the GL driver version is below 3.1, we cannot set the primitive restart fixed index (ES3 wont be supported anyway). Make sure the feature is disabled. Speculative fix for crbug.com/1073020 BUG=chromium:1073020 BUG=angleproject:3997 Change-Id: I67756b377aa951da2e70c26f7db978ede9010586 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159289 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 03c18fbd 2020-04-13T16:01:01 Vulkan: Skip load if depth/stencil value are undefined EGL1.5 spec says depth/stencil data are undefined after swap. This CL will track the depth/stencil data and mark it as undefined and skip the load if it is undefined. Bug: b/153885625 Change-Id: Ifb3d88d442da547fa78c1eae091cbae08a20d0ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2148179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Tobin Ehlis 764d572b 2020-04-21T11:15:41 Vulkan: Refactor SecondaryCommandBuffers class A strictly cosmetic change to move code into alphabetical order. In working with SecondaryCommandBuffer commands in separate CLs, it can be difficult/annoying to track which commands are already in place as some of them are out-of-order. This change puts the command enums, functions, and processing in alphabetical order to simplify searching and adding new commands. Bug: b/154030403 Change-Id: I6dba4cf48d6f27c056585ac633c694e083b1a263 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158816 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
Geoff Lang e5491253 2020-04-17T12:37:00 Don't redefine VMA_IMPLEMENTATION in build files and source VMA_IMPLEMENTATION is defined in the build files, it doesn't need to be redefined in vk_mem_alloc_wrapper.cpp. BUG=angleproject:2162 Change-Id: Ie4eceedd2dd3051f8431c7c8c86403250e93f98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154538 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 623d0443 2020-04-21T15:15:03 Revert "Vulkan: Forward RenderBuffer/Surface dirty messages." This reverts commit 3fb33ade6ec8f286797bff5645304df580b1a963. Reason for revert: Causing WebGL test failures on GLES/ANGLE/Android. Bug: chromium:1072739 Original change's description: > Vulkan: Forward RenderBuffer/Surface dirty messages. > > Previously we were only forwarding Texture staging changes to the > Framebuffer for re-sync. We could miss out on clears that were staged > in Surfaces and Renderbuffer attachments. Complete the chain by making > the SurfaceVk and RenderbufferVk forward notifications from the > VkImage. > > Bug: angleproject:4517 > Change-Id: I15f36c225517e915f656d0c2464a99631ef9f945 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2150699 > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=cnorthrop@google.com,timvp@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:4517 Change-Id: I4fd4d79dc11da0ba86065d3a80975de4c791a2a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2159288 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis 293c36c0 2020-04-20T17:35:19 Vulkan: Manual validation roll Manually roll validation layers to latest and ignore two more VUIDs that are being flagged with latest layers. Bug: angleproject:4578 Bug: angleproject:4579 Bug: angleproject:4580 Change-Id: I4fc46d9df3fa3be4be1f8b773eb2d63e6f4bbd92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158265 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Corentin Wallez 902b5587 2020-04-19T13:54:48 CGL/EAGL: Fix default FBO size on Retina displays This was found while trying to fix https://github.com/glfw/glfw/issues/1169 VulkanSurfaceMtl and metal/SurfaceMtl already handle contentsScale correctly. Change-Id: I234d7b0901dd7c075cf1e9d58466f52140ab1e2b Bug: None Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2154670 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>