diff --git a/guest/BUILD.gn b/guest/BUILD.gn
deleted file mode 100644
index 01f5865..0000000
--- a/guest/BUILD.gn
+++ /dev/null
@@ -1,301 +0,0 @@
-# Copyright (C) 2023 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import("//build/python/python_action.gni")
-import("//build/python/python_binary.gni")
-import("mesa-gn/mesa.gni")
-
-config("common_config") {
-  defines = [
-    "LOG_TAG=\"gfxstream_vulkan\"",
-    "GOLDFISH_NO_GL",
-    "VK_GFXSTREAM_STRUCTURE_TYPE_EXT",
-    "VK_USE_PLATFORM_FUCHSIA",
-    "PAGE_SIZE=4096",
-  ]
-
-  if (is_debug) {
-    defines += [ "DEBUG=1" ]
-  }
-
-  include_dirs = [
-    "../common/opengl/include",
-    "../common/vulkan/include",
-    "android-emu",
-    "GoldfishAddressSpace/include",
-    "iostream/include",
-    "gralloc_cb/include",
-    "qemupipe/include",
-    "qemupipe/include-types",
-    "OpenglCodecCommon",
-    "OpenglCodecCommon/include",
-    "OpenglSystemCommon",
-    "renderControl_enc",
-    "vulkan_enc",
-    "$mesa_source_root/include",
-    "platform/include",
-  ]
-
-  if (target_os == "fuchsia") {
-    include_dirs += [ "fuchsia/include" ]
-  }
-
-  cflags_cc = [
-    "-Wno-conversion",
-    "-Wno-newline-eof",
-    "-Wno-pessimizing-move",
-    "-Wno-sign-compare",
-    "-Wno-unused-function",
-    "-Wno-unused-value",
-    "-Wno-unused-variable",
-    "-Wno-unused-but-set-parameter",
-    "-Wno-unused-but-set-variable",
-  ]
-}
-
-python_binary("vk_entrypoints_gen_bin") {
-  main_source = "$mesa_source_root/src/vulkan/util/vk_entrypoints_gen.py"
-
-  sources = [
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-  ]
-  deps = [ "//third_party/mako" ]
-}
-
-config("gfxstream_vk_entrypoints_config") {
-  include_dirs = [ "$target_gen_dir" ]
-}
-
-python_action("gfxstream_vk_entrypoints") {
-  public_configs = [ ":gfxstream_vk_entrypoints_config" ]
-
-  binary_label = ":vk_entrypoints_gen_bin"
-
-  sources = [ mesa_vk_xml ]
-
-  h_file = "$target_gen_dir/gfxstream_vk_entrypoints.h"
-  c_file = "$target_gen_dir/gfxstream_vk_entrypoints.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml, root_build_dir),
-    "--proto",
-    "--weak",
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--prefix",
-    "gfxstream_vk",
-    "--beta",
-    "false",
-  ]
-}
-
-# These sources require access to the Fuchsia goldfish protocols.
-source_set("goldfish_srcs") {
-  configs += [ ":common_config" ]
-
-  sources = [
-    "vulkan/gfxstream_vk_fuchsia.cpp",
-    "vulkan_enc/ResourceTracker.cpp",
-    "vulkan_enc/ResourceTracker.h",
-  ]
-
-  public_deps = [
-    "$mesa_build_root/src/vulkan/runtime",
-    "$mesa_build_root/src/vulkan/util",
-    "//sdk/fidl/fuchsia.hardware.goldfish:fuchsia.hardware.goldfish_cpp",
-    "//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
-    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
-    "//sdk/lib/syslog/structured_backend",
-    "//third_party/Vulkan-Headers:vulkan_headers",
-    "//zircon/system/ulib/async:async-cpp",
-    "//zircon/system/ulib/async-loop:async-loop-cpp",
-    "//zircon/system/ulib/trace:trace-with-static-engine",
-    "//zircon/system/ulib/trace-provider:trace-provider-with-static-engine",
-    "//zircon/system/ulib/zx",
-    "//zircon/system/ulib/zxio",
-  ]
-
-  deps = [ ":gfxstream_vk_entrypoints" ]
-
-  defines = [
-    "QEMU_PIPE_PATH=\"/loader-gpu-devices/class/goldfish-pipe/000\"",
-    "GOLDFISH_ADDRESS_SPACE_DEVICE_NAME=\"/loader-gpu-devices/class/goldfish-address-space/000\"",
-  ]
-}
-
-loadable_module("libvulkan_gfxstream") {
-  configs += [ ":common_config" ]
-
-  deps = [
-    ":gfxstream_vk_entrypoints",
-    "$mesa_build_root/src/vulkan/runtime",
-  ]
-
-  sources = [
-    "$target_gen_dir/gfxstream_vk_entrypoints.c",
-    "GoldfishAddressSpace/AddressSpaceStream.cpp",
-    "GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp",
-    "OpenglCodecCommon/ChecksumCalculator.cpp",
-    "OpenglCodecCommon/ChecksumCalculator.h",
-    "OpenglCodecCommon/glUtils.cpp",
-    "OpenglCodecCommon/glUtils.h",
-    "OpenglSystemCommon/HostConnection.cpp",
-    "OpenglSystemCommon/HostConnection.h",
-    "OpenglSystemCommon/ProcessPipe.cpp",
-    "OpenglSystemCommon/ProcessPipe.h",
-    "OpenglSystemCommon/QemuPipeStream.cpp",
-    "OpenglSystemCommon/QemuPipeStream.h",
-    "OpenglSystemCommon/ThreadInfo.cpp",
-    "OpenglSystemCommon/ThreadInfo.h",
-    "OpenglSystemCommon/VirtioGpuPipeStream.cpp",
-    "android-emu/aemu/base/AlignedBuf.cpp",
-    "android-emu/aemu/base/AlignedBuf.h",
-    "android-emu/aemu/base/Allocator.h",
-    "android-emu/aemu/base/AndroidHealthMonitor.cpp",
-    "android-emu/aemu/base/AndroidHealthMonitor.h",
-    "android-emu/aemu/base/AndroidHealthMonitorConsumer.h",
-    "android-emu/aemu/base/AndroidHealthMonitorConsumerBasic.cpp",
-    "android-emu/aemu/base/AndroidHealthMonitorConsumerBasic.h",
-    "android-emu/aemu/base/Process.cpp",
-    "android-emu/aemu/base/Process.h",
-    "android-emu/aemu/base/Tracing.cpp",
-    "android-emu/aemu/base/Tracing.h",
-    "android-emu/aemu/base/files/MemStream.cpp",
-    "android-emu/aemu/base/files/MemStream.h",
-    "android-emu/aemu/base/files/Stream.cpp",
-    "android-emu/aemu/base/files/Stream.h",
-    "android-emu/aemu/base/files/StreamSerializing.cpp",
-    "android-emu/aemu/base/files/StreamSerializing.h",
-    "android-emu/aemu/base/fit/Defer.h",
-    "android-emu/aemu/base/fit/Function.h",
-    "android-emu/aemu/base/fit/FunctionInternal.h",
-    "android-emu/aemu/base/fit/Nullable.h",
-    "android-emu/aemu/base/fit/ThreadChecker.h",
-    "android-emu/aemu/base/fit/ThreadSafety.h",
-    "android-emu/aemu/base/fit/UtilityInternal.h",
-    "android-emu/aemu/base/ring_buffer.c",
-    "android-emu/aemu/base/synchronization/AndroidConditionVariable.h",
-    "android-emu/aemu/base/synchronization/AndroidLock.h",
-    "android-emu/aemu/base/synchronization/AndroidMessageChannel.cpp",
-    "android-emu/aemu/base/synchronization/AndroidMessageChannel.h",
-    "android-emu/aemu/base/testing/TestClock.h",
-    "android-emu/aemu/base/threads/AndroidFunctorThread.cpp",
-    "android-emu/aemu/base/threads/AndroidFunctorThread.h",
-    "android-emu/aemu/base/threads/AndroidThread.h",
-    "android-emu/aemu/base/threads/AndroidThreadStore.h",
-    "android-emu/aemu/base/threads/AndroidThreadTypes.h",
-    "android-emu/aemu/base/threads/AndroidThread_pthread.cpp",
-    "android-emu/aemu/base/threads/AndroidWorkPool.cpp",
-    "android-emu/aemu/base/threads/AndroidWorkPool.h",
-    "gralloc_cb/include/gralloc_cb_bp.h",
-    "platform/VirtGpu.cpp",
-    "platform/include/VirtGpu.h",
-    "qemupipe/include-types/qemu_pipe_types_bp.h",
-    "qemupipe/include/qemu_pipe_bp.h",
-    "qemupipe/qemu_pipe_common.cpp",
-    "qemupipe/qemu_pipe_guest.cpp",
-    "renderControl_enc/renderControl_enc.cpp",
-    "renderControl_enc/renderControl_enc.h",
-    "vulkan/gfxstream_vk_device.cpp",
-    "vulkan/gfxstream_vk_wsi_stub.cpp",
-    "vulkan_enc/CommandBufferStagingStream.cpp",
-    "vulkan_enc/CommandBufferStagingStream.h",
-    "vulkan_enc/DescriptorSetVirtualization.cpp",
-    "vulkan_enc/DescriptorSetVirtualization.h",
-    "vulkan_enc/HostVisibleMemoryVirtualization.cpp",
-    "vulkan_enc/HostVisibleMemoryVirtualization.h",
-    "vulkan_enc/Resources.cpp",
-    "vulkan_enc/Resources.h",
-    "vulkan_enc/Validation.cpp",
-    "vulkan_enc/Validation.h",
-    "vulkan_enc/VkEncoder.cpp",
-    "vulkan_enc/VkEncoder.h",
-    "vulkan_enc/VulkanHandleMapping.cpp",
-    "vulkan_enc/VulkanHandleMapping.h",
-    "vulkan_enc/VulkanStreamGuest.cpp",
-    "vulkan_enc/VulkanStreamGuest.h",
-    "vulkan_enc/func_table.cpp",
-    "vulkan_enc/gfxstream_vk_private.cpp",
-    "vulkan_enc/gfxstream_vk_private.h",
-    "vulkan_enc/goldfish_vk_counting_guest.cpp",
-    "vulkan_enc/goldfish_vk_counting_guest.h",
-    "vulkan_enc/goldfish_vk_deepcopy_guest.cpp",
-    "vulkan_enc/goldfish_vk_deepcopy_guest.h",
-    "vulkan_enc/goldfish_vk_extension_structs_guest.cpp",
-    "vulkan_enc/goldfish_vk_extension_structs_guest.h",
-    "vulkan_enc/goldfish_vk_marshaling_guest.cpp",
-    "vulkan_enc/goldfish_vk_marshaling_guest.h",
-    "vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp",
-    "vulkan_enc/goldfish_vk_reserved_marshaling_guest.h",
-    "vulkan_enc/goldfish_vk_transform_guest.cpp",
-    "vulkan_enc/goldfish_vk_transform_guest.h",
-    "vulkan_enc/vulkan_gfxstream.h",
-    "vulkan_enc/vulkan_gfxstream_structure_type.h",
-  ]
-
-  if (target_os == "fuchsia") {
-    sources -= [
-      "OpenglSystemCommon/QemuPipeStream.cpp",
-      "qemupipe/qemu_pipe_common.cpp",
-      "qemupipe/qemu_pipe_guest.cpp",
-    ]
-    sources += [
-      "OpenglSystemCommon/TraceProviderFuchsia.cpp",
-      "OpenglSystemCommon/TraceProviderFuchsia.h",
-      "fuchsia/fuchsia_stdio.cc",
-      "fuchsia/port.cc",
-      "fuchsia/service_connector.cc",
-      "platform/kumquat/VirtGpuKumquatStub.cpp",
-      "platform/fuchsia/FuchsiaVirtGpuBlob.cpp",
-      "platform/fuchsia/FuchsiaVirtGpuBlobMapping.cpp",
-      "platform/fuchsia/FuchsiaVirtGpuDevice.cpp",
-      "platform/fuchsia/os_dirent_fuchsia.cpp",
-    ]
-
-    include_dirs = [
-      "fuchsia/include",
-      "platform/include",
-      "//third_party/Vulkan-Headers/include",
-    ]
-
-    deps += [
-      ":goldfish_srcs",
-      "//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
-      "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
-      "//src/graphics/lib/magma/src/libmagma",
-      "//src/zircon/lib/zircon",
-      "//zircon/system/ulib/trace:trace-with-static-engine",
-      "//zircon/system/ulib/zx",
-      "//zircon/system/ulib/zxio",
-    ]
-
-    public_deps = [ "//third_party/Vulkan-Headers:vulkan_headers" ]
-
-    # Vulkan ICDs on Fuchsia are only allowed to depend on (parts of) libc
-    # and libzircon, and no other shared libraries.
-    assert_no_deps = [
-      "//sdk/lib/fdio",
-      "//zircon/system/ulib/async-default",
-    ]
-  }
-}
diff --git a/guest/mesa-gn/include/BUILD.gn b/guest/mesa-gn/include/BUILD.gn
deleted file mode 100644
index fbc4dea..0000000
--- a/guest/mesa-gn/include/BUILD.gn
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("../mesa.gni")
-
-config("include_config") {
-  include_dirs = [ "$mesa_source_root/include" ]
-}
-
-config("vulkan_public_config") {
-  defines = [ "VK_USE_PLATFORM_FUCHSIA=1" ]
-}
-
-mesa_source_set("vulkan") {
-  public_configs = [
-    ":include_config",
-    ":vulkan_public_config",
-  ]
-
-  # Don't bother listing all the Vulkan headers
-  sources = [ "vulkan/vulkan.h" ]
-}
-
-mesa_source_set("c_compat") {
-  public_configs = [ ":include_config" ]
-  sources = [
-    "c99_alloca.h",
-    "c99_compat.h",
-    "no_extern_c.h",
-  ]
-}
diff --git a/guest/mesa-gn/mesa.gni b/guest/mesa-gn/mesa.gni
deleted file mode 100644
index 0a83224..0000000
--- a/guest/mesa-gn/mesa.gni
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-mesa_build_root = "//third_party/gfxstream/src/guest/mesa-gn"
-mesa_source_root = "//third_party/gfxstream/src/guest/mesa"
-mesa_vk_xml = "$mesa_source_root/src/vulkan/registry/vk.xml"
-
-template("mesa_source_set") {
-  source_set(target_name) {
-    # Can't forward configs because doing so overwrites the default
-    # configs specified by the build system.
-    forward_variables_from(invoker, "*", [ "configs" ])
-    if (!defined(public_configs)) {
-      public_configs = []
-    }
-    public_configs += [ "$mesa_build_root/src:common_config" ]
-    if (defined(invoker.configs)) {
-      configs += invoker.configs
-    }
-  }
-}
diff --git a/guest/mesa-gn/src/BUILD.gn b/guest/mesa-gn/src/BUILD.gn
deleted file mode 100644
index 2b7312e..0000000
--- a/guest/mesa-gn/src/BUILD.gn
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("../mesa.gni")
-
-config("common_config") {
-  # Version file not present
-  mesa_version = "unknown"
-
-  defines = [
-    # Pretend to be Linux for now so we avoid the need to
-    # introduce DETECT_OS_FUCHSIA into mesa.
-    "DETECT_OS_LINUX=1",
-    "DETECT_OS_UNIX=1",
-    "HAVE_PROGRAM_INVOCATION_NAME=1",
-    "HAVE_ENDIAN_H=1",
-    "HAVE_PTHREAD=1",
-    "HAVE_STRUCT_TIMESPEC=1",
-    "HAVE_TIMESPEC_GET=1",
-    "HAVE_UNISTD_H=1",
-    "HAVE_DLFCN_H=1",
-    "HAVE___BUILTIN_BSWAP32=1",
-    "HAVE___BUILTIN_BSWAP64=1",
-    "HAVE___BUILTIN_CLZ=1",
-    "HAVE___BUILTIN_CLZLL=1",
-    "HAVE___BUILTIN_CTZ=1",
-    "HAVE___BUILTIN_EXPECT=1",
-    "HAVE___BUILTIN_FFS=1",
-    "HAVE___BUILTIN_FFSLL=1",
-    "HAVE___BUILTIN_POPCOUNT=1",
-    "HAVE___BUILTIN_POPCOUNTLL=1",
-    "HAVE___BUILTIN_UNREACHABLE=1",
-    "HAVE_FUNC_ATTRIBUTE_CONST=1",
-    "HAVE_FUNC_ATTRIBUTE_FLATTEN=1",
-    "HAVE_FUNC_ATTRIBUTE_FORMAT=1",
-    "HAVE_FUNC_ATTRIBUTE_MALLOC=1",
-    "HAVE_FUNC_ATTRIBUTE_PACKED=1",
-    "HAVE_FUNC_ATTRIBUTE_PURE=1",
-    "HAVE_FUNC_ATTRIBUTE_UNUSED=1",
-    "HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1",
-    "HAVE_FUNC_ATTRIBUTE_NORETURN=1",
-    "HAVE_DLADDR=1",
-    "HAVE_DL_ITERATE_PHDR=1",
-    "PACKAGE_VERSION=\"$mesa_version\" ",
-    "_DEFAULT_SOURCE",
-    "_GNU_SOURCE=1",
-  ]
-
-  if (is_debug) {
-    defines += [ "DEBUG=1" ]
-  }
-
-  cflags = [
-    "-Wno-sign-compare",
-    "-Wno-unused-function",
-    "-Wno-extra-semi",
-    "-Wno-newline-eof",
-    "-Wno-tautological-constant-out-of-range-compare",
-    "-Wno-unknown-pragmas",
-    "-Wno-int-in-bool-context",
-    "-Wno-conversion",
-    "-Wno-deprecated-anon-enum-enum-conversion",
-    "-Wno-strict-prototypes",
-  ]
-}
diff --git a/guest/mesa-gn/src/c11/BUILD.gn b/guest/mesa-gn/src/c11/BUILD.gn
deleted file mode 100644
index d893c49..0000000
--- a/guest/mesa-gn/src/c11/BUILD.gn
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("../../mesa.gni")
-
-c11 = "$mesa_source_root/src/c11"
-
-config("c11_config") {
-  include_dirs = [ "$mesa_source_root/src" ]
-}
-
-mesa_source_set("c11") {
-  configs = [ ":c11_config" ]
-  sources = [ "$c11/impl/time.c" ]
-}
diff --git a/guest/mesa-gn/src/util/BUILD.gn b/guest/mesa-gn/src/util/BUILD.gn
deleted file mode 100644
index 9c99c6e..0000000
--- a/guest/mesa-gn/src/util/BUILD.gn
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("../../mesa.gni")
-
-util = "$mesa_source_root/src/util"
-
-config("util_public_config") {
-  include_dirs = [
-    "$mesa_source_root/src",
-    "$mesa_source_root/src/util",
-  ]
-}
-
-mesa_source_set("util") {
-  public_configs = [ ":util_public_config" ]
-  public_deps = [
-    "$mesa_build_root/include:c_compat",
-    "format",
-  ]
-  deps = [ "$mesa_build_root/src/c11" ]
-  sources = [
-    "$util/hash_table.c",
-    "$util/hash_table.h",
-    "$util/log.c",
-    "$util/log.h",
-    "$util/os_misc.c",
-    "$util/os_misc.h",
-    "$util/os_time.c",
-    "$util/os_time.h",
-    "$util/ralloc.c",
-    "$util/ralloc.h",
-    "$util/simple_mtx.c",
-    "$util/simple_mtx.h",
-    "$util/sparse_array.c",
-    "$util/sparse_array.h",
-    "$util/u_call_once.c",
-    "$util/u_call_once.h",
-    "$util/u_debug.c",
-    "$util/u_debug.h",
-    "$util/u_dynarray.c",
-    "$util/u_dynarray.h",
-    "$util/u_printf.c",
-    "$util/u_printf.h",
-    "$util/u_process.c",
-    "$util/u_process.h",
-  ]
-}
diff --git a/guest/mesa-gn/src/util/format/BUILD.gn b/guest/mesa-gn/src/util/format/BUILD.gn
deleted file mode 100644
index 7d38599..0000000
--- a/guest/mesa-gn/src/util/format/BUILD.gn
+++ /dev/null
@@ -1,183 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("//build/python/python_binary.gni")
-import("../../../mesa.gni")
-
-format = "$mesa_source_root/src/util/format"
-
-config("format_config") {
-  include_dirs = [
-    "$format",
-    "$target_gen_dir",
-  ]
-}
-
-mesa_source_set("format") {
-  public_configs = [ "..:util_public_config" ]
-  configs = [ ":format_config" ]
-  public_deps = [ "$mesa_build_root/include:c_compat" ]
-  sources = [
-    "$format/u_format.c",
-    "$format/u_format.h",
-    "$format/u_format_bptc.c",
-    "$format/u_format_etc.c",
-    "$format/u_format_fxt1.c",
-    "$format/u_format_latc.c",
-    "$format/u_format_other.c",
-    "$format/u_format_rgtc.c",
-    "$format/u_format_s3tc.c",
-    "$format/u_format_tests.c",
-    "$format/u_format_yuv.c",
-    "$format/u_format_zs.c",
-    "$target_gen_dir/u_format_table.c",
-  ]
-  deps = [
-    ":u_format_pack_h",
-    ":u_format_table_c",
-  ]
-}
-
-# Executes a python script and writes its output to a file.
-#
-# Example
-#
-#   mesa_python_stdout_to_file_action("opcodes.c") {
-#     output = "opcodes.c"
-#     script = "opcodes_c.py"
-#     sources = [ "opcodes_lib.py" ]
-#     libraries = [ "//third_party/mako" ]
-#   }
-#
-# Parameters
-#
-#   script (required)
-#     The .py file that will be interpreted.
-#     Type: path
-#
-#   output (required)
-#     Path to the output file. Assumed to be relative to ${target_gen_dir}.
-#     Type: path
-#
-#   sources (optional)
-#     Extra .py source files script imports.
-#     Type: list(path)
-#     Default: empty list
-#
-#   libraries (optional)
-#     Paths to python_libraries script imports.
-#     Type: list(string)
-#     Default: empty list
-#
-#   args (optional)
-#     Arguments to pass to the script.
-#     Type: list(str)
-#     Default: empty list
-#
-#   deps
-#   inputs
-#   testonly
-#   visibility
-template("mesa_python_stdout_to_file_action") {
-  assert(defined(invoker.script), "script is required")
-  assert(defined(invoker.output), "output is required")
-
-  py_binary_target = "${target_name}_py_binary"
-  python_binary(py_binary_target) {
-    forward_variables_from(invoker,
-                           [
-                             "sources",
-                             "testonly",
-                           ])
-    main_source = invoker.script
-    if (defined(invoker.libraries)) {
-      deps = invoker.libraries
-    }
-    visibility = [ ":*" ]
-  }
-
-  action(target_name) {
-    forward_variables_from(invoker,
-                           [
-                             "testonly",
-                             "visibility",
-                             "inputs",
-                           ])
-
-    script = "gn_script_wrapper.sh"
-    outputs = [ "${target_gen_dir}/${invoker.output}" ]
-
-    py_binary = get_target_outputs(":${py_binary_target}")
-    assert(py_binary == [ py_binary[0] ],
-           "${py_binary_target} should only have one output")
-    py_binary = py_binary[0]
-    sources = [ py_binary ]
-
-    # Ensure scripts can import other scripts in the same directory
-    # Note - I'm not sure why the ../ is necessary.
-    python_path =
-        rebase_path(get_label_info(target_name, "dir") + "/..", root_build_dir)
-
-    args = [
-      rebase_path(python_exe_src, root_build_dir),
-
-      # TODO(jayzhuang): remove this arg after migrating mesa_python_action.
-      python_path,
-      rebase_path(outputs[0], root_build_dir),
-      rebase_path(py_binary, root_build_dir),
-    ]
-    if (defined(invoker.args)) {
-      args += invoker.args
-    }
-
-    deps = [ ":${py_binary_target}" ]
-    if (defined(invoker.deps)) {
-      deps += invoker.deps
-    }
-  }
-}
-
-u_format_csv = "$format/u_format.csv"
-
-mesa_python_stdout_to_file_action("u_format_pack_h") {
-  output = "u_format_pack.h"
-  script = "$format/u_format_table.py"
-  sources = [
-    "$format/u_format_pack.py",
-    "$format/u_format_parse.py",
-  ]
-  inputs = [ u_format_csv ]
-  args = [
-    rebase_path(u_format_csv, root_build_dir),
-    "--header",
-  ]
-}
-
-mesa_python_stdout_to_file_action("u_format_table_c") {
-  output = "u_format_table.c"
-  script = "$format/u_format_table.py"
-  sources = [
-    "$format/u_format_pack.py",
-    "$format/u_format_parse.py",
-  ]
-  inputs = [ u_format_csv ]
-  args = [ rebase_path(u_format_csv, root_build_dir) ]
-}
diff --git a/guest/mesa-gn/src/util/format/gn_script_wrapper.sh b/guest/mesa-gn/src/util/format/gn_script_wrapper.sh
deleted file mode 100755
index 0e4a98d..0000000
--- a/guest/mesa-gn/src/util/format/gn_script_wrapper.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2020 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.
-
-# Executes the given python executable with PYTHONPATH set and captures
-# its output in a file. The first PYTHON_ARG should probably be the path
-# to a python script that writes something to stdout.
-# This is to let GN use the mesa python scripts that write headers to stdout,
-# and to support a custom PYTHONPATH.
-
-USAGE="Usage: $0 PYTHON_EXE PYTHONPATH OUT_FILE [PYTHON_ARGS...]"
-
-if [[ "$#" -lt "3" ]]; then
-    echo "${USAGE}" 1>&2;
-    exit 1
-fi
-
-PYTHON_EXE=${1}
-shift
-PYTHONPATH=${1}
-shift
-OUT=${1}
-shift
-
-# -S to decrease start-up time by not looking for site packages.
-env PYTHONPATH="${PYTHONPATH}" "${PYTHON_EXE}" -S "$@" > ${OUT}
-exit $?
diff --git a/guest/mesa-gn/src/vulkan/runtime/BUILD.gn b/guest/mesa-gn/src/vulkan/runtime/BUILD.gn
deleted file mode 100644
index b646e38..0000000
--- a/guest/mesa-gn/src/vulkan/runtime/BUILD.gn
+++ /dev/null
@@ -1,397 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("//build/python/python_action.gni")
-import("//build/python/python_binary.gni")
-import("../../../mesa.gni")
-
-runtime = "$mesa_source_root/src/vulkan/runtime"
-
-config("config") {
-  include_dirs = [
-    "$target_gen_dir",
-    "$runtime",
-  ]
-
-  defines = [ "VK_NO_NIR=1" ]
-}
-
-mesa_source_set("runtime") {
-  public_configs = [ ":config" ]
-
-  public_deps = [
-    "$mesa_build_root/include:c_compat",
-    "$mesa_build_root/include:vulkan",
-  ]
-
-  deps = [
-    ":vk_cmd_enqueue_entrypoints",
-    ":vk_cmd_queue",
-    ":vk_common_entrypoints",
-    ":vk_dispatch_trampolines",
-    ":vk_format_info",
-    ":vk_physical_device_features",
-    ":vk_physical_device_properties",
-    "$mesa_build_root/src/util",
-    "$mesa_build_root/src/vulkan/util",
-  ]
-
-  sources = [
-    "$runtime/rmv/vk_rmv_common.c",
-    "$runtime/rmv/vk_rmv_common.h",
-    "$runtime/vk_buffer.c",
-    "$runtime/vk_buffer.h",
-    "$runtime/vk_buffer_view.c",
-    "$runtime/vk_buffer_view.h",
-    "$runtime/vk_cmd_copy.c",
-    "$runtime/vk_cmd_enqueue.c",
-    "$runtime/vk_command_buffer.c",
-    "$runtime/vk_command_buffer.h",
-    "$runtime/vk_command_pool.c",
-    "$runtime/vk_command_pool.h",
-    "$runtime/vk_debug_report.c",
-    "$runtime/vk_debug_report.h",
-    "$runtime/vk_debug_utils.c",
-    "$runtime/vk_debug_utils.h",
-    "$runtime/vk_deferred_operation.c",
-    "$runtime/vk_deferred_operation.h",
-    "$runtime/vk_descriptor_set_layout.c",
-    "$runtime/vk_descriptor_set_layout.h",
-    "$runtime/vk_descriptor_update_template.c",
-    "$runtime/vk_descriptor_update_template.h",
-    "$runtime/vk_descriptors.c",
-    "$runtime/vk_descriptors.h",
-    "$runtime/vk_device.c",
-    "$runtime/vk_device.h",
-    "$runtime/vk_device_memory.c",
-    "$runtime/vk_device_memory.h",
-    "$runtime/vk_fence.c",
-    "$runtime/vk_fence.h",
-    "$runtime/vk_framebuffer.c",
-    "$runtime/vk_framebuffer.h",
-    "$runtime/vk_graphics_state.c",
-    "$runtime/vk_graphics_state.h",
-    "$runtime/vk_image.c",
-    "$runtime/vk_image.h",
-    "$runtime/vk_instance.c",
-    "$runtime/vk_instance.h",
-    "$runtime/vk_log.c",
-    "$runtime/vk_log.h",
-    "$runtime/vk_object.c",
-    "$runtime/vk_object.h",
-    "$runtime/vk_physical_device.c",
-    "$runtime/vk_physical_device.h",
-    "$runtime/vk_query_pool.c",
-    "$runtime/vk_query_pool.h",
-    "$runtime/vk_queue.c",
-    "$runtime/vk_queue.h",
-    "$runtime/vk_render_pass.c",
-    "$runtime/vk_sampler.c",
-    "$runtime/vk_sampler.h",
-    "$runtime/vk_semaphore.c",
-    "$runtime/vk_semaphore.h",
-    "$runtime/vk_standard_sample_locations.c",
-    "$runtime/vk_standard_sample_locations.h",
-    "$runtime/vk_sync.c",
-    "$runtime/vk_sync.h",
-    "$runtime/vk_sync_binary.c",
-    "$runtime/vk_sync_binary.h",
-    "$runtime/vk_sync_dummy.c",
-    "$runtime/vk_sync_dummy.h",
-    "$runtime/vk_sync_timeline.c",
-    "$runtime/vk_sync_timeline.h",
-    "$runtime/vk_synchronization2.c",
-    "$target_gen_dir/vk_cmd_enqueue_entrypoints.c",
-    "$target_gen_dir/vk_cmd_enqueue_entrypoints.h",
-    "$target_gen_dir/vk_cmd_queue.c",
-    "$target_gen_dir/vk_cmd_queue.h",
-    "$target_gen_dir/vk_common_entrypoints.c",
-    "$target_gen_dir/vk_common_entrypoints.h",
-    "$target_gen_dir/vk_dispatch_trampolines.c",
-    "$target_gen_dir/vk_dispatch_trampolines.h",
-    "$target_gen_dir/vk_physical_device_features.c",
-  ]
-
-  configs = [ "//build/config:Wno-strict-prototypes" ]
-}
-
-python_binary("vk_cmd_queue_gen_bin") {
-  main_source = "$mesa_source_root/src/vulkan/util/vk_cmd_queue_gen.py"
-
-  sources = [
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-  ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_cmd_queue") {
-  binary_label = ":vk_cmd_queue_gen_bin"
-
-  h_file = "$target_gen_dir/vk_cmd_queue.h"
-  c_file = "$target_gen_dir/vk_cmd_queue.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  inputs = [
-    "$mesa_source_root/src/vulkan/util/vk_dispatch_table_gen.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_entrypoints_gen_bin") {
-  main_source = "$mesa_source_root/src/vulkan/util/vk_entrypoints_gen.py"
-
-  sources = [
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-  ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_common_entrypoints") {
-  binary_label = ":vk_entrypoints_gen_bin"
-
-  h_file = "$target_gen_dir/vk_common_entrypoints.h"
-  c_file = "$target_gen_dir/vk_common_entrypoints.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  inputs = [
-    "$mesa_source_root/src/vulkan/util/vk_dispatch_table_gen.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--proto",
-    "--weak",
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--prefix",
-    "vk_common",
-    "--beta",
-    "false",
-  ]
-}
-
-python_action("vk_cmd_enqueue_entrypoints") {
-  binary_label = ":vk_entrypoints_gen_bin"
-
-  h_file = "$target_gen_dir/vk_cmd_enqueue_entrypoints.h"
-  c_file = "$target_gen_dir/vk_cmd_enqueue_entrypoints.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  inputs = [
-    "$mesa_source_root/src/vulkan/util/vk_dispatch_table_gen.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--proto",
-    "--weak",
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--prefix",
-    "vk_cmd_enqueue",
-    "--prefix",
-    "vk_cmd_enqueue_unless_primary",
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_dispatch_trampolines_gen_bin") {
-  main_source =
-      "$mesa_source_root/src/vulkan/util/vk_dispatch_trampolines_gen.py"
-
-  sources = [
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-  ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_dispatch_trampolines") {
-  binary_label = ":vk_dispatch_trampolines_gen_bin"
-
-  h_file = "$target_gen_dir/vk_dispatch_trampolines.h"
-  c_file = "$target_gen_dir/vk_dispatch_trampolines.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  inputs = [
-    "$mesa_source_root/src/vulkan/util/vk_dispatch_table_gen.py",
-    "$mesa_source_root/src/vulkan/util/vk_extensions.py",
-    "$mesa_source_root/src/vulkan/util/vk_entrypoints.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_physical_device_features_gen_bin") {
-  main_source =
-      "$mesa_source_root/src/vulkan/util/vk_physical_device_features_gen.py"
-
-  sources = [ "$mesa_source_root/src/vulkan/util/vk_extensions.py" ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_physical_device_features") {
-  binary_label = ":vk_physical_device_features_gen_bin"
-
-  c_file = "$target_gen_dir/vk_physical_device_features.c"
-  h_file = "$target_gen_dir/vk_physical_device_features.h"
-
-  outputs = [
-    c_file,
-    h_file,
-  ]
-
-  inputs = [ mesa_vk_xml ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_physical_device_properties_gen_bin") {
-  main_source =
-      "$mesa_source_root/src/vulkan/util/vk_physical_device_properties_gen.py"
-
-  sources = [ "$mesa_source_root/src/vulkan/util/vk_extensions.py" ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_physical_device_properties") {
-  binary_label = ":vk_physical_device_properties_gen_bin"
-
-  c_file = "$target_gen_dir/vk_physical_device_properties.c"
-  h_file = "$target_gen_dir/vk_physical_device_properties.h"
-
-  outputs = [
-    c_file,
-    h_file,
-  ]
-
-  inputs = [ mesa_vk_xml ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_format_info_gen_bin") {
-  main_source = "$mesa_source_root/src/vulkan/runtime/vk_format_info_gen.py"
-
-  sources = [ "$mesa_source_root/src/vulkan/util/vk_extensions.py" ]
-
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_format_info") {
-  binary_label = ":vk_format_info_gen_bin"
-
-  c_file = "$target_gen_dir/vk_format_info.c"
-  h_file = "$target_gen_dir/vk_format_info.h"
-
-  outputs = [
-    c_file,
-    h_file,
-  ]
-
-  inputs = [ mesa_vk_xml ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-  ]
-}
diff --git a/guest/mesa-gn/src/vulkan/util/BUILD.gn b/guest/mesa-gn/src/vulkan/util/BUILD.gn
deleted file mode 100644
index 24b1a2e..0000000
--- a/guest/mesa-gn/src/vulkan/util/BUILD.gn
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 2024 Google, LLC
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import("//build/python/python_action.gni")
-import("//build/python/python_binary.gni")
-import("../../../mesa.gni")
-
-util = "$mesa_source_root/src/vulkan/util"
-
-config("config_util") {
-  include_dirs = [
-    target_gen_dir,
-    util,
-  ]
-
-  defines = [ "VK_NO_NIR=1" ]
-}
-
-mesa_source_set("util") {
-  public_configs = [ ":config_util" ]
-
-  public_deps = [
-    "$mesa_build_root/include:c_compat",
-    "$mesa_build_root/include:vulkan",
-    "$mesa_build_root/src/util",
-  ]
-
-  sources = [
-    "$target_gen_dir/vk_dispatch_table.c",
-    "$target_gen_dir/vk_dispatch_table.h",
-    "$target_gen_dir/vk_enum_to_str.c",
-    "$target_gen_dir/vk_extensions.c",
-    "$target_gen_dir/vk_extensions.h",
-    "$util/vk_alloc.c",
-    "$util/vk_alloc.h",
-    "$util/vk_enum_to_str.h",
-    "$util/vk_format.c",
-    "$util/vk_format.h",
-    "$util/vk_util.c",
-    "$util/vk_util.h",
-  ]
-
-  deps = [
-    ":gen_enum_to_str",
-    ":vk_dispatch_table",
-    ":vk_extensions",
-    ":vk_struct_type_cast_header",
-  ]
-}
-
-python_binary("gen_enum_to_str_gen_bin") {
-  main_source = "$util/gen_enum_to_str.py"
-
-  sources = [ "$util/vk_extensions.py" ]
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("gen_enum_to_str") {
-  binary_label = ":gen_enum_to_str_gen_bin"
-
-  outputs = [
-    "$target_gen_dir/vk_enum_to_str.h",
-    "$target_gen_dir/vk_enum_to_str.c",
-    "$target_gen_dir/vk_enum_defines.h",
-  ]
-
-  inputs = [ mesa_vk_xml ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml, root_build_dir),
-    "--outdir",
-    rebase_path(target_gen_dir, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_dispatch_table_gen_bin") {
-  main_source = "$util/vk_dispatch_table_gen.py"
-
-  sources = [
-    "$util/vk_entrypoints.py",
-    "$util/vk_extensions.py",
-  ]
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_dispatch_table") {
-  binary_label = ":vk_dispatch_table_gen_bin"
-
-  h_file = "$target_gen_dir/vk_dispatch_table.h"
-  c_file = "$target_gen_dir/vk_dispatch_table.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  script = "$util/vk_dispatch_table_gen.py"
-
-  inputs = [
-    "$util/vk_extensions.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml, root_build_dir),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
-
-python_binary("vk_extensions_gen_bin") {
-  main_source = "$util/vk_extensions_gen.py"
-
-  sources = [
-    "$util/vk_entrypoints.py",
-    "$util/vk_extensions.py",
-  ]
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_extensions") {
-  binary_label = ":vk_extensions_gen_bin"
-
-  h_file = "$target_gen_dir/vk_extensions.h"
-  c_file = "$target_gen_dir/vk_extensions.c"
-
-  outputs = [
-    h_file,
-    c_file,
-  ]
-
-  inputs = [
-    "$util/vk_extensions.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml, root_build_dir),
-    "--out-h",
-    rebase_path(h_file, root_build_dir),
-    "--out-c",
-    rebase_path(c_file, root_build_dir),
-  ]
-}
-
-python_binary("vk_struct_type_cast_gen_bin") {
-  main_source = "$util/vk_struct_type_cast_gen.py"
-
-  sources = [
-    "$util/vk_entrypoints.py",
-    "$util/vk_extensions.py",
-  ]
-  deps = [ "//third_party/mako" ]
-}
-
-python_action("vk_struct_type_cast_header") {
-  binary_label = ":vk_struct_type_cast_gen_bin"
-
-  outputs = [ "$target_gen_dir/vk_struct_type_cast.h" ]
-
-  inputs = [
-    "$util/vk_extensions.py",
-    mesa_vk_xml,
-  ]
-
-  args = [
-    "--xml",
-    rebase_path(mesa_vk_xml, root_build_dir),
-    "--outdir",
-    rebase_path("$target_gen_dir", root_build_dir),
-    "--beta",
-    "false",
-  ]
-}
