Revert "Vulkan: Port renderer to Fuchsia"

This reverts commit 991d1cfb5e5a2f20a46961da3ad85b95da30b88a.

Reason for revert: Failing compile on the fuchsia bots on the ANGLE
auto-roller.

https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198

In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10:
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13:
In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5:
In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12:
../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi]
    };
     ^
1 error generated.

Original change's description:
> Vulkan: Port renderer to Fuchsia
> 
> Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
> renderer, as well as an implementation of OSWindow that renders
> fullscreen for the test suite.
> 
> Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
> of the loader and has not sent those changes upstream yet.
> 
> Add a small wayland-inspired library libfuchsia-egl to provide a type
> "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
> combines a zx_handle_t to an image pipe channel and a surface size.
> 
> Image pipes can only be used once to create a VkSurfaceKHR. This means we
> have to recreate the pipe in tests that call eglCreateWindowSurface more
> than once with a single OSWindow, or the second call will fail. Add a
> resetNativeWindow() method to accomplish this.
> 
> BUG=angleproject:2475
> TEST=angle_end2end_tests on Fuchsia
> 
> Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
> Reviewed-on: https://chromium-review.googlesource.com/c/1446496
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org

Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/1465761
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/common/fuchsia_egl/BUILD.gn b/src/common/fuchsia_egl/BUILD.gn
deleted file mode 100644
index 84a1231..0000000
--- a/src/common/fuchsia_egl/BUILD.gn
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2019 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("../../../gni/angle.gni")
-
-assert(is_fuchsia)
-
-config("config") {
-  include_dirs = [ "." ]
-}
-
-angle_shared_library("fuchsia_egl") {
-  sources = [
-    "fuchsia_egl.c",
-  ]
-  public = [
-    "fuchsia_egl.h",
-  ]
-  public_configs = [":config"]
-  deps = [
-    ":backend",
-  ]
-}
-
-angle_source_set("backend") {
-  public = [
-    "fuchsia_egl_backend.h",
-  ]
-}
diff --git a/src/common/fuchsia_egl/fuchsia_egl.c b/src/common/fuchsia_egl/fuchsia_egl.c
deleted file mode 100644
index d22f1b5..0000000
--- a/src/common/fuchsia_egl/fuchsia_egl.c
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2019 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "fuchsia_egl.h"
-#include "fuchsia_egl_backend.h"
-
-#include <zircon/assert.h>
-#include <zircon/syscalls.h>
-
-#define FUCHSIA_EGL_WINDOW_MAGIC 0x80738870  // "FXIP"
-
-struct fuchsia_egl_window
-{
-    uint32_t magic;
-    zx_handle_t image_pipe_handle;
-    int32_t width;
-    int32_t height;
-};
-
-fuchsia_egl_window *fuchsia_egl_window_create(zx_handle_t image_pipe_handle,
-                                              int32_t width,
-                                              int32_t height)
-{
-    if (width <= 0 || height <= 0)
-        return NULL;
-
-    fuchsia_egl_window *egl_window = malloc(sizeof(*egl_window));
-    egl_window->magic              = FUCHSIA_EGL_WINDOW_MAGIC;
-    egl_window->image_pipe_handle  = image_pipe_handle;
-    egl_window->width              = width;
-    egl_window->height             = height;
-    return egl_window;
-}
-
-void fuchsia_egl_window_destroy(fuchsia_egl_window *egl_window)
-{
-    ZX_ASSERT(egl_window->magic == FUCHSIA_EGL_WINDOW_MAGIC);
-    if (egl_window->image_pipe_handle != ZX_HANDLE_INVALID)
-    {
-        zx_handle_close(egl_window->image_pipe_handle);
-        egl_window->image_pipe_handle = ZX_HANDLE_INVALID;
-    }
-    egl_window->magic = -1U;
-    free(egl_window);
-}
-
-void fuchsia_egl_window_resize(fuchsia_egl_window *egl_window, int32_t width, int32_t height)
-{
-    ZX_ASSERT(egl_window->magic == FUCHSIA_EGL_WINDOW_MAGIC);
-    if (width <= 0 || height <= 0)
-        return;
-    egl_window->width  = width;
-    egl_window->height = height;
-}
-
-int32_t fuchsia_egl_window_get_width(fuchsia_egl_window *egl_window)
-{
-    ZX_ASSERT(egl_window->magic == FUCHSIA_EGL_WINDOW_MAGIC);
-    return egl_window->width;
-}
-
-int32_t fuchsia_egl_window_get_height(fuchsia_egl_window *egl_window)
-{
-    ZX_ASSERT(egl_window->magic == FUCHSIA_EGL_WINDOW_MAGIC);
-    return egl_window->height;
-}
-
-zx_handle_t fuchsia_egl_window_release_image_pipe(fuchsia_egl_window *egl_window)
-{
-    ZX_ASSERT(egl_window->magic == FUCHSIA_EGL_WINDOW_MAGIC);
-    zx_handle_t image_pipe_handle = egl_window->image_pipe_handle;
-    egl_window->image_pipe_handle = ZX_HANDLE_INVALID;
-    return image_pipe_handle;
-}
diff --git a/src/common/fuchsia_egl/fuchsia_egl.h b/src/common/fuchsia_egl/fuchsia_egl.h
deleted file mode 100644
index 068b87d..0000000
--- a/src/common/fuchsia_egl/fuchsia_egl.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2019 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef FUCHSIA_EGL_H_
-#define FUCHSIA_EGL_H_
-
-#include <inttypes.h>
-#include <zircon/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(FUCHSIA_EGL_EXPORT)
-#    define FUCHSIA_EGL_EXPORT __attribute__((__visibility__("default")))
-#endif
-
-typedef struct fuchsia_egl_window fuchsia_egl_window;
-
-FUCHSIA_EGL_EXPORT
-fuchsia_egl_window *fuchsia_egl_window_create(zx_handle_t image_pipe_handle,
-                                              int32_t width,
-                                              int32_t height);
-
-FUCHSIA_EGL_EXPORT
-void fuchsia_egl_window_destroy(fuchsia_egl_window *egl_window);
-
-FUCHSIA_EGL_EXPORT
-void fuchsia_egl_window_resize(fuchsia_egl_window *egl_window, int32_t width, int32_t height);
-
-FUCHSIA_EGL_EXPORT
-int32_t fuchsia_egl_window_get_width(fuchsia_egl_window *egl_window);
-
-FUCHSIA_EGL_EXPORT
-int32_t fuchsia_egl_window_get_height(fuchsia_egl_window *egl_window);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // FUCHSIA_EGL_H_
diff --git a/src/common/fuchsia_egl/fuchsia_egl_backend.h b/src/common/fuchsia_egl/fuchsia_egl_backend.h
deleted file mode 100644
index dcbc3f7..0000000
--- a/src/common/fuchsia_egl/fuchsia_egl_backend.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2019 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef FUCHSIA_EGL_BACKEND_H_
-#define FUCHSIA_EGL_BACKEND_H_
-
-#include <zircon/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(FUCHSIA_EGL_EXPORT)
-#    define FUCHSIA_EGL_EXPORT __attribute__((__visibility__("default")))
-#endif
-
-FUCHSIA_EGL_EXPORT
-zx_handle_t fuchsia_egl_window_release_image_pipe(fuchsia_egl_window *egl_window);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // FUCHSIA_EGL_BACKEND_H_
diff --git a/src/common/platform.h b/src/common/platform.h
index acb2157..144b5b0 100644
--- a/src/common/platform.h
+++ b/src/common/platform.h
@@ -11,9 +11,6 @@
 
 #if defined(_WIN32)
 #    define ANGLE_PLATFORM_WINDOWS 1
-#elif defined(__Fuchsia__)
-#    define ANGLE_PLATFORM_FUCHSIA 1
-#    define ANGLE_PLATFORM_POSIX 1
 #elif defined(__APPLE__)
 #    define ANGLE_PLATFORM_APPLE 1
 #    define ANGLE_PLATFORM_POSIX 1
diff --git a/src/libANGLE/Display.cpp b/src/libANGLE/Display.cpp
index 7cc97a7..f830c88 100644
--- a/src/libANGLE/Display.cpp
+++ b/src/libANGLE/Display.cpp
@@ -70,8 +70,6 @@
 #        include "libANGLE/renderer/vulkan/xcb/DisplayVkXcb.h"
 #    elif defined(ANGLE_PLATFORM_ANDROID)
 #        include "libANGLE/renderer/vulkan/android/DisplayVkAndroid.h"
-#    elif defined(ANGLE_PLATFORM_FUCHSIA)
-#        include "libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h"
 #    else
 #        error Unsupported Vulkan platform.
 #    endif
@@ -191,8 +189,6 @@
             impl = new rx::DisplayGLX(state);
 #elif defined(ANGLE_PLATFORM_APPLE)
             impl = new rx::DisplayCGL(state);
-#elif defined(ANGLE_PLATFORM_FUCHSIA)
-            impl = new rx::DisplayVkFuchsia(state);
 #elif defined(ANGLE_USE_OZONE)
             impl = new rx::DisplayOzone(state);
 #elif defined(ANGLE_PLATFORM_ANDROID)
@@ -265,8 +261,6 @@
             impl = new rx::DisplayVkXcb(state);
 #    elif defined(ANGLE_PLATFORM_ANDROID)
             impl = new rx::DisplayVkAndroid(state);
-#    elif defined(ANGLE_PLATFORM_FUCHSIA)
-            impl = new rx::DisplayVkFuchsia(state);
 #    else
 #        error Unsupported Vulkan platform.
 #    endif
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index 3aca00e..ec830a7 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -355,7 +355,7 @@
 // Changing CWD and setting environment variables makes no sense on Android,
 // since this code is a part of Java application there.
 // Android Vulkan loader doesn't need this either.
-#if !defined(ANGLE_PLATFORM_ANDROID) && !defined(ANGLE_PLATFORM_FUCHSIA)
+#if !defined(ANGLE_PLATFORM_ANDROID)
         if (enableMockICD)
         {
             // Override environment variable to use built Mock ICD
diff --git a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
index 7921e75..792d480 100644
--- a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
@@ -363,8 +363,7 @@
 
     // TODO(jmadill): Support devices which don't support copy. We use this for ReadPixels.
     ANGLE_VK_CHECK(displayVk,
-                   (mSurfaceCaps.supportedUsageFlags & kSurfaceVKColorImageUsageFlags) ==
-                       kSurfaceVKColorImageUsageFlags,
+                   (mSurfaceCaps.supportedUsageFlags & VK_IMAGE_USAGE_TRANSFER_SRC_BIT) != 0,
                    VK_ERROR_INITIALIZATION_FAILED);
 
     EGLAttrib attribWidth  = mState.attributes.get(EGL_WIDTH, 0);
diff --git a/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp b/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp
deleted file mode 100644
index 19d08e8..0000000
--- a/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// Copyright 2019 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// DisplayVkFuchsia.h:
-//    Implements methods from DisplayVkFuchsia
-//
-
-#include "libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h"
-
-#include "libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h"
-#include "libANGLE/renderer/vulkan/vk_caps_utils.h"
-
-namespace rx
-{
-
-DisplayVkFuchsia::DisplayVkFuchsia(const egl::DisplayState &state) : DisplayVk(state) {}
-
-bool DisplayVkFuchsia::isValidNativeWindow(EGLNativeWindowType window) const
-{
-    return WindowSurfaceVkFuchsia::isValidNativeWindow(window);
-}
-
-SurfaceImpl *DisplayVkFuchsia::createWindowSurfaceVk(const egl::SurfaceState &state,
-                                                     EGLNativeWindowType window,
-                                                     EGLint width,
-                                                     EGLint height)
-{
-    ASSERT(isValidNativeWindow(window));
-    return new WindowSurfaceVkFuchsia(state, window, width, height);
-}
-
-egl::ConfigSet DisplayVkFuchsia::generateConfigs()
-{
-    constexpr GLenum kColorFormats[] = {GL_BGRA8_EXT, GL_BGRX8_ANGLEX};
-    constexpr EGLint kSampleCounts[] = {0};
-    return egl_vk::GenerateConfigs(kColorFormats, egl_vk::kConfigDepthStencilFormats, kSampleCounts,
-                                   this);
-}
-
-bool DisplayVkFuchsia::checkConfigSupport(egl::Config *config)
-{
-    // TODO(geofflang): Test for native support and modify the config accordingly.
-    // anglebug.com/2692
-    return true;
-}
-
-const char *DisplayVkFuchsia::getWSIExtension() const
-{
-    return VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME;
-}
-
-const char *DisplayVkFuchsia::getWSILayer() const
-{
-    return "VK_LAYER_FUCHSIA_imagepipe_swapchain";
-}
-
-}  // namespace rx
diff --git a/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h b/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h
deleted file mode 100644
index c6f3c6c..0000000
--- a/src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// Copyright 2019 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// DisplayVkFuchsia.h:
-//    Subclasses DisplayVk for the Fuchsia platform.
-//
-
-#ifndef LIBANGLE_RENDERER_VULKAN_FUCHSIA_DISPLAYVKFUCHSIA_H_
-#define LIBANGLE_RENDERER_VULKAN_FUCHSIA_DISPLAYVKFUCHSIA_H_
-
-#include "libANGLE/renderer/vulkan/DisplayVk.h"
-
-namespace rx
-{
-
-class DisplayVkFuchsia : public DisplayVk
-{
-  public:
-    DisplayVkFuchsia(const egl::DisplayState &state);
-
-    bool isValidNativeWindow(EGLNativeWindowType window) const override;
-
-    SurfaceImpl *createWindowSurfaceVk(const egl::SurfaceState &state,
-                                       EGLNativeWindowType window,
-                                       EGLint width,
-                                       EGLint height) override;
-
-    egl::ConfigSet generateConfigs() override;
-    bool checkConfigSupport(egl::Config *config) override;
-
-    const char *getWSIExtension() const override;
-    const char *getWSILayer() const override;
-};
-
-}  // namespace rx
-
-#endif  // LIBANGLE_RENDERER_VULKAN_FUCHSIA_DISPLAYVKFUCHSIA_H_
diff --git a/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp b/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp
deleted file mode 100644
index fa8f4e2..0000000
--- a/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright 2019 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// WindowSurfaceVkFuchsia.cpp:
-//    Implements methods from WindowSurfaceVkFuchsia.
-//
-
-#include "libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h"
-
-#include <fuchsia_egl.h>
-#include <fuchsia_egl_backend.h>
-#include <zircon/syscalls.h>
-#include <zircon/syscalls/object.h>
-
-#include "libANGLE/renderer/vulkan/RendererVk.h"
-#include "libANGLE/renderer/vulkan/vk_utils.h"
-
-namespace rx
-{
-
-WindowSurfaceVkFuchsia::WindowSurfaceVkFuchsia(const egl::SurfaceState &surfaceState,
-                                               EGLNativeWindowType window,
-                                               EGLint width,
-                                               EGLint height)
-    : WindowSurfaceVk(surfaceState, window, width, height)
-{}
-
-WindowSurfaceVkFuchsia::~WindowSurfaceVkFuchsia() {}
-
-// static
-bool WindowSurfaceVkFuchsia::isValidNativeWindow(EGLNativeWindowType window)
-{
-    fuchsia_egl_window *egl_window = reinterpret_cast<fuchsia_egl_window *>(window);
-    return fuchsia_egl_window_get_width(egl_window) >= 0;
-}
-
-angle::Result WindowSurfaceVkFuchsia::createSurfaceVk(vk::Context *context, gl::Extents *extentsOut)
-{
-    InitImagePipeSurfaceFUCHSIAFunctions(context->getRenderer()->getInstance());
-    fuchsia_egl_window *egl_window = reinterpret_cast<fuchsia_egl_window *>(mNativeWindowType);
-
-    VkImagePipeSurfaceCreateInfoFUCHSIA createInfo = {};
-    createInfo.sType           = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
-    createInfo.imagePipeHandle = fuchsia_egl_window_release_image_pipe(egl_window);
-    ANGLE_VK_TRY(context, vkCreateImagePipeSurfaceFUCHSIA(context->getRenderer()->getInstance(),
-                                                          &createInfo, nullptr, &mSurface));
-
-    return getCurrentWindowSize(context, extentsOut);
-}
-
-angle::Result WindowSurfaceVkFuchsia::getCurrentWindowSize(vk::Context *context,
-                                                           gl::Extents *extentsOut)
-{
-    fuchsia_egl_window *egl_window = reinterpret_cast<fuchsia_egl_window *>(mNativeWindowType);
-
-    int32_t width  = fuchsia_egl_window_get_width(egl_window);
-    int32_t height = fuchsia_egl_window_get_height(egl_window);
-
-    *extentsOut = gl::Extents(width, height, 0);
-
-    return angle::Result::Continue;
-}
-
-}  // namespace rx
diff --git a/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h b/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h
deleted file mode 100644
index e9ce818..0000000
--- a/src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// Copyright 2019 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// WindowSurfaceVkFuchsia.h:
-//    Subclasses WindowSurfaceVk for the Fuchsia platform.
-//
-
-#ifndef LIBANGLE_RENDERER_VULKAN_FUCHSIA_WINDOWSURFACEVKFUCHSIA_H_
-#define LIBANGLE_RENDERER_VULKAN_FUCHSIA_WINDOWSURFACEVKFUCHSIA_H_
-
-#include "libANGLE/renderer/vulkan/SurfaceVk.h"
-
-namespace rx
-{
-
-class WindowSurfaceVkFuchsia : public WindowSurfaceVk
-{
-  public:
-    WindowSurfaceVkFuchsia(const egl::SurfaceState &surfaceState,
-                           EGLNativeWindowType window,
-                           EGLint width,
-                           EGLint height);
-    ~WindowSurfaceVkFuchsia() override;
-
-    static bool isValidNativeWindow(EGLNativeWindowType window);
-
-  private:
-    angle::Result createSurfaceVk(vk::Context *context, gl::Extents *extentsOut) override;
-    angle::Result getCurrentWindowSize(vk::Context *context, gl::Extents *extentsOut) override;
-};
-
-}  // namespace rx
-
-#endif  // LIBANGLE_RENDERER_VULKAN_FUCHSIA_WINDOWSURFACEVKFUCHSIA_H_
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.cpp b/src/libANGLE/renderer/vulkan/vk_utils.cpp
index 37d0c7c..b4f4f69 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_utils.cpp
@@ -480,11 +480,6 @@
 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT   = nullptr;
 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = nullptr;
 
-#if defined(ANGLE_PLATFORM_FUCHSIA)
-// VK_FUCHSIA_imagepipe_surface
-PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = nullptr;
-#endif
-
 #define GET_FUNC(vkName)                                                                   \
     do                                                                                     \
     {                                                                                      \
@@ -504,13 +499,6 @@
     GET_FUNC(vkDestroyDebugReportCallbackEXT);
 }
 
-#if defined(ANGLE_PLATFORM_FUCHSIA)
-void InitImagePipeSurfaceFUCHSIAFunctions(VkInstance instance)
-{
-    GET_FUNC(vkCreateImagePipeSurfaceFUCHSIA);
-}
-#endif
-
 #undef GET_FUNC
 
 namespace gl_vk
diff --git a/src/libANGLE/renderer/vulkan/vk_utils.h b/src/libANGLE/renderer/vulkan/vk_utils.h
index 3416750..70c12b7 100644
--- a/src/libANGLE/renderer/vulkan/vk_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_utils.h
@@ -391,12 +391,6 @@
 void InitDebugUtilsEXTFunctions(VkInstance instance);
 void InitDebugReportEXTFunctions(VkInstance instance);
 
-#if defined(ANGLE_PLATFORM_FUCHSIA)
-// VK_FUCHSIA_imagepipe_surface
-extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA;
-void InitImagePipeSurfaceFUCHSIAFunctions(VkInstance instance);
-#endif
-
 namespace gl_vk
 {
 VkRect2D GetRect(const gl::Rectangle &source);
diff --git a/src/libGLESv2.gni b/src/libGLESv2.gni
index 9e813a7..d667596 100644
--- a/src/libGLESv2.gni
+++ b/src/libGLESv2.gni
@@ -835,13 +835,6 @@
   "src/libANGLE/renderer/vulkan/xcb/WindowSurfaceVkXcb.h",
 ]
 
-libangle_vulkan_fuchsia_sources = [
-  "src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.cpp",
-  "src/libANGLE/renderer/vulkan/fuchsia/DisplayVkFuchsia.h",
-  "src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.cpp",
-  "src/libANGLE/renderer/vulkan/fuchsia/WindowSurfaceVkFuchsia.h",
-]
-
 libangle_null_sources = [
   "src/libANGLE/renderer/null/BufferNULL.cpp",
   "src/libANGLE/renderer/null/BufferNULL.h",
diff --git a/src/tests/BUILD.gn b/src/tests/BUILD.gn
index 89ed860..274f859 100644
--- a/src/tests/BUILD.gn
+++ b/src/tests/BUILD.gn
@@ -39,12 +39,6 @@
     ]
     public_configs += [ ":angle_internal_gtest_config" ]
     configs -= [ "${angle_root}:extra_warnings" ]
-    if (is_fuchsia) {
-      deps = [
-        "//third_party/fuchsia-sdk/sdk:fdio",
-        "//third_party/fuchsia-sdk/sdk:zx",
-      ]
-    }
   }
 
   config("angle_internal_gmock_config") {
@@ -73,14 +67,10 @@
       "//src/tests:angle_end2end_tests",
       "//src/tests:angle_perftests",
       "//src/tests:angle_unittests",
+      "//src/tests:angle_white_box_perftests",
+      "//src/tests:angle_white_box_tests",
     ]
-    if (!is_fuchsia) {
-      deps += [
-        "//src/tests:angle_white_box_perftests",
-        "//src/tests:angle_white_box_tests",
-      ]
-    }
-    if (build_angle_deqp_tests && !is_fuchsia) {
+    if (build_angle_deqp_tests) {
       deps += [
         "//src/tests:angle_deqp_egl_no_gtest",
         "//src/tests:angle_deqp_egl_tests",
@@ -151,7 +141,7 @@
          ]
 }
 
-if (is_win || is_linux || is_mac || is_android || is_fuchsia) {
+if (is_win || is_linux || is_mac || is_android) {
   import("angle_end2end_tests.gni")
 
   angle_test("angle_end2end_tests") {
@@ -197,9 +187,7 @@
       use_native_activity = true
     }
   }
-}
 
-if (is_win || is_linux || is_mac || is_android) {
   import("angle_white_box_tests.gni")
 
   angle_test("angle_white_box_tests") {
@@ -271,10 +259,6 @@
       use_native_activity = true
     }
   }
-}
-
-if (is_win || is_linux || is_android || is_mac || is_fuchsia) {
-  import("angle_perftests.gni")
 
   # This test suite is designed to run against a generic GL implementation.
   angle_test("angle_perftests") {
@@ -533,7 +517,7 @@
 ### dEQP tests
 ###-----------------------------------------------------
 
-if (build_angle_deqp_tests && !is_fuchsia) {
+if (build_angle_deqp_tests) {
   import("deqp.gni")
 
   angle_tests_main("angle_deqp_tests_main") {
diff --git a/src/tests/test_utils/angle_test_instantiate.cpp b/src/tests/test_utils/angle_test_instantiate.cpp
index 9c32ad1..1f0bde5 100644
--- a/src/tests/test_utils/angle_test_instantiate.cpp
+++ b/src/tests/test_utils/angle_test_instantiate.cpp
@@ -122,15 +122,6 @@
 #endif
 }
 
-bool IsFuchsia()
-{
-#if defined(ANGLE_PLATFORM_FUCHSIA)
-    return true;
-#else
-    return false;
-#endif
-}
-
 bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param)
 {
     VendorID vendorID = systemInfo.gpus[systemInfo.primaryGPUIndex].vendorId;
@@ -200,17 +191,6 @@
         return (param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE);
     }
 
-    if (IsFuchsia())
-    {
-        // Currently we only support the Vulkan back-end on Fuchsia.
-        if (param.driver != GLESDriverType::AngleEGL)
-        {
-            return false;
-        }
-
-        return (param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE);
-    }
-
     if (IsOzone())
     {
         // Currently we only support the GLES back-end on Ozone.
diff --git a/src/tests/test_utils/angle_test_instantiate.h b/src/tests/test_utils/angle_test_instantiate.h
index b73bd85..86618ab 100644
--- a/src/tests/test_utils/angle_test_instantiate.h
+++ b/src/tests/test_utils/angle_test_instantiate.h
@@ -23,7 +23,6 @@
 bool IsOSX();
 bool IsOzone();
 bool IsWindows();
-bool IsFuchsia();
 
 bool IsPlatformAvailable(const PlatformParameters &param);