Implement submission of client semaphores passed to glWaitSemaphoreEXT &
glSignalSemaphoreEXT.
This also relaxes the expectation that we will not flush() if there are
no commands. Signaling semaphores in particular requires queue submission
irrespective of whether there are any command buffers to submit. If there
are neither commands nor semaphores, we can still skip queue submission.
WebGL runs in Chrome with ANGLE & Vulkan interop as of this patch, albeit
with incorrect synchronization due to texture barriers not being
implemented yet. Quite a few flags are needed to try this:
GN args: angle_vulkan_conformant_configs_only=true
chrome \
--enable-features=UseSkiaRenderer,UiGpuRasterization \
--enable-gpu-rasterization \
--enable-oop-rasterization \
--enable-vulkan \
--use-gl=angle \
--use-angle=vulkan
Bug: angleproject:3289
Change-Id: I3d49c230a2fbf0cd2a2b943b05ded0e4604cc313
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623815
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| BufferNULL.cpp | Loading commit data... | |
| BufferNULL.h | Loading commit data... | |
| CompilerNULL.cpp | Loading commit data... | |
| CompilerNULL.h | Loading commit data... | |
| ContextNULL.cpp | Loading commit data... | |
| ContextNULL.h | Loading commit data... | |
| DeviceNULL.cpp | Loading commit data... | |
| DeviceNULL.h | Loading commit data... | |
| DisplayNULL.cpp | Loading commit data... | |
| DisplayNULL.h | Loading commit data... | |
| FenceNVNULL.cpp | Loading commit data... | |
| FenceNVNULL.h | Loading commit data... | |
| FramebufferNULL.cpp | Loading commit data... | |
| FramebufferNULL.h | Loading commit data... | |
| ImageNULL.cpp | Loading commit data... | |
| ImageNULL.h | Loading commit data... | |
| PathNULL.cpp | Loading commit data... | |
| PathNULL.h | Loading commit data... | |
| ProgramNULL.cpp | Loading commit data... | |
| ProgramNULL.h | Loading commit data... | |
| ProgramPipelineNULL.cpp | Loading commit data... | |
| ProgramPipelineNULL.h | Loading commit data... | |
| QueryNULL.cpp | Loading commit data... | |
| QueryNULL.h | Loading commit data... | |
| RenderbufferNULL.cpp | Loading commit data... | |
| RenderbufferNULL.h | Loading commit data... | |
| SamplerNULL.cpp | Loading commit data... | |
| SamplerNULL.h | Loading commit data... | |
| ShaderNULL.cpp | Loading commit data... | |
| ShaderNULL.h | Loading commit data... | |
| SurfaceNULL.cpp | Loading commit data... | |
| SurfaceNULL.h | Loading commit data... | |
| SyncNULL.cpp | Loading commit data... | |
| SyncNULL.h | Loading commit data... | |
| TextureNULL.cpp | Loading commit data... | |
| TextureNULL.h | Loading commit data... | |
| TransformFeedbackNULL.cpp | Loading commit data... | |
| TransformFeedbackNULL.h | Loading commit data... | |
| VertexArrayNULL.cpp | Loading commit data... | |
| VertexArrayNULL.h | Loading commit data... |