diff --git a/Android.bp b/Android.bp
index cf44e07..09c58d4 100644
--- a/Android.bp
+++ b/Android.bp
@@ -52,12 +52,12 @@
     header_libs: [
         "aemu_common_headers",
         "gfxstream_magma_headers",
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
     ],
     export_header_lib_headers: [
         "aemu_common_headers",
         "gfxstream_magma_headers",
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
     ],
     apex_available: [
         "//apex_available:platform",
@@ -147,16 +147,16 @@
             cflags: [
                 "-U__ANDROID__",
                 "-UANDROID",
-            ]
+            ],
         },
         android: {
             compile_multilib: "64",
-            shared_libs: [ "libnativewindow", ],
+            shared_libs: ["libnativewindow"],
         },
         linux_bionic_arm64: {
             enabled: true,
-            cflags: [ "-Dandroidbionic", ],
-        }
+            cflags: ["-Dandroidbionic"],
+        },
     },
     host_supported: true,
     vendor_available: true,
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index ff962c3..00e6638 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -1,3 +1,4 @@
 add_subdirectory(detector)
 add_subdirectory(etc)
+add_subdirectory(utils)
 add_subdirectory(vulkan)
\ No newline at end of file
diff --git a/common/detector/Android.bp b/common/detector/Android.bp
index ef2eb1a..7b137b4 100644
--- a/common/detector/Android.bp
+++ b/common/detector/Android.bp
@@ -30,7 +30,7 @@
         "Vulkan.cpp",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
     ],
     static_libs: [
         "libgfxstream_graphics_detector_proto",
diff --git a/common/end2end/Android.bp b/common/end2end/Android.bp
index 6e293c5..aa83a91 100644
--- a/common/end2end/Android.bp
+++ b/common/end2end/Android.bp
@@ -1,4 +1,3 @@
-
 package {
     // See: http://go/android-license-faq
     default_applicable_licenses: ["hardware_google_gfxstream_license"],
@@ -7,7 +6,7 @@
 // Run with `atest --host GfxstreamEnd2EndTests`
 cc_test_host {
     name: "GfxstreamEnd2EndTests",
-    defaults: [ "gfxstream_cc_defaults" ],
+    defaults: ["gfxstream_cc_defaults"],
     srcs: [
         "GfxstreamEnd2EndTests.cpp",
         "GfxstreamEnd2EndGlTests.cpp",
@@ -23,20 +22,20 @@
         "libGLESv2_emulation_with_host",
         "libEGL_emulation_with_host",
         "libgfxstream_guest_vulkan_with_host",
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
     ],
     shared_libs: [
         "libandroidemu",
         "libOpenglSystemCommonWithHost",
         "libbase",
         "liblog",
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
     ],
     static_libs: [
         "libc++fs",
         "libgfxstream_guest_android_with_host",
         "libgmock",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     cflags: [
         // TODO: remove
diff --git a/common/meson.build b/common/meson.build
index 2763692..c1bebf2 100644
--- a/common/meson.build
+++ b/common/meson.build
@@ -2,3 +2,4 @@
 # SPDX-License-Identifier: MIT
 
 subdir('etc')
+subdir('utils')
diff --git a/common/opengl/Android.bp b/common/opengl/Android.bp
index df3556f..de250a3 100644
--- a/common/opengl/Android.bp
+++ b/common/opengl/Android.bp
@@ -14,4 +14,4 @@
         "//apex_available:platform",
         "com.android.virt",
     ],
-}
\ No newline at end of file
+}
diff --git a/common/utils/Android.bp b/common/utils/Android.bp
new file mode 100644
index 0000000..9d8040b
--- /dev/null
+++ b/common/utils/Android.bp
@@ -0,0 +1,16 @@
+
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["hardware_google_gfxstream_license"],
+}
+
+cc_library_static {
+    name: "libgfxstream_common_utils",
+    defaults: ["gfxstream_defaults"],
+    export_include_dirs: [
+        "include",
+    ],
+    srcs: [
+        "Strings.cpp",
+    ],
+}
diff --git a/common/utils/CMakeLists.txt b/common/utils/CMakeLists.txt
new file mode 100644
index 0000000..6e877b4
--- /dev/null
+++ b/common/utils/CMakeLists.txt
@@ -0,0 +1,14 @@
+add_library(
+    gfxstream_common_utils.headers
+    INTERFACE)
+target_include_directories(
+    gfxstream_common_utils.headers
+    INTERFACE
+    include)
+add_library(
+    gfxstream_common_utils
+    Strings.cpp)
+target_link_libraries(
+    gfxstream_common_utils
+    PUBLIC
+    gfxstream_common_utils.headers)
\ No newline at end of file
diff --git a/common/utils/Strings.cpp b/common/utils/Strings.cpp
new file mode 100644
index 0000000..0389b08
--- /dev/null
+++ b/common/utils/Strings.cpp
@@ -0,0 +1,38 @@
+// Copyright (C) 2024 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.
+
+#include "gfxstream/Strings.h"
+
+namespace gfxstream {
+
+std::vector<std::string> Split(const std::string& s, const std::string& delimiters) {
+    if (delimiters.empty()) {
+        return {};
+    }
+
+    std::vector<std::string> result;
+
+    size_t base = 0;
+    size_t found;
+    while (true) {
+        found = s.find_first_of(delimiters, base);
+        result.push_back(s.substr(base, found - base));
+        if (found == s.npos) break;
+        base = found + 1;
+    }
+
+    return result;
+}
+
+}  // namespace gfxstream
diff --git a/common/utils/include/gfxstream/Strings.h b/common/utils/include/gfxstream/Strings.h
new file mode 100644
index 0000000..f7a017e
--- /dev/null
+++ b/common/utils/include/gfxstream/Strings.h
@@ -0,0 +1,24 @@
+// Copyright 2024 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.
+
+#pragma once
+
+#include <string>
+#include <vector>
+
+namespace gfxstream {
+
+std::vector<std::string> Split(const std::string& s, const std::string& delimiters);
+
+}  // namespace gfxstream
diff --git a/common/utils/meson.build b/common/utils/meson.build
new file mode 100644
index 0000000..040300f
--- /dev/null
+++ b/common/utils/meson.build
@@ -0,0 +1,14 @@
+# Copyright 2024 Android Open Source Project
+# SPDX-License-Identifier: MIT
+
+inc_common_utils = include_directories('include')
+
+files_lib_common_utils = files(
+  'Strings.cpp',
+)
+
+lib_common_utils = static_library(
+  'common_utils',
+  files_lib_common_utils,
+  include_directories: [inc_common_utils],
+)
\ No newline at end of file
diff --git a/common/vulkan/Android.bp b/common/vulkan/Android.bp
index a35a506..900d858 100644
--- a/common/vulkan/Android.bp
+++ b/common/vulkan/Android.bp
@@ -1,5 +1,5 @@
 cc_library_headers {
-    name: "gfxstream_vulkan_headers",
+    name: "libgfxstream_vulkan_headers",
     export_include_dirs: ["include"],
     host_supported: true,
     vendor_available: true,
diff --git a/guest/GoldfishAddressSpace/Android.bp b/guest/GoldfishAddressSpace/Android.bp
index 018ff9a..5600e5e 100644
--- a/guest/GoldfishAddressSpace/Android.bp
+++ b/guest/GoldfishAddressSpace/Android.bp
@@ -19,7 +19,7 @@
         "liblog",
     ],
     static_libs: [
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
         "libplatform",
     ],
     export_include_dirs: [
diff --git a/guest/OpenglCodecCommon/Android.bp b/guest/OpenglCodecCommon/Android.bp
index 2b7b838..f745c9d 100644
--- a/guest/OpenglCodecCommon/Android.bp
+++ b/guest/OpenglCodecCommon/Android.bp
@@ -53,11 +53,11 @@
         "liblog",
     ],
     export_static_lib_headers: [
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
     ],
     static_libs: [
         "libgfxstream_etc",
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
         "libqemupipe.ranchu",
     ],
     cflags: [
diff --git a/guest/OpenglSystemCommon/Android.bp b/guest/OpenglSystemCommon/Android.bp
index 3cb00d6..e08fcce 100644
--- a/guest/OpenglSystemCommon/Android.bp
+++ b/guest/OpenglSystemCommon/Android.bp
@@ -52,7 +52,7 @@
         "libgfxstream_guest_cc_defaults",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
         "libgfxstream_guest_graphics_headers",
         "libgfxstream_guest_iostream",
         "libhardware_headers",
@@ -134,7 +134,7 @@
                 "libnativewindow",
                 "libsync",
             ],
-        }
+        },
     },
 }
 
@@ -145,16 +145,16 @@
     ],
     shared_libs: [
         "libandroidemu",
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
     ],
     static_libs: [
         "libgfxstream_guest_android_with_host",
         "libgfxstream_guest_vulkan_encoder_with_host",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     export_static_lib_headers: [
         "libgfxstream_guest_android_with_host",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     target: {
         host: {
@@ -175,7 +175,7 @@
         "vulkan_enc_headers",
     ],
     static_libs: [
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
         "libgfxstream_guest_android",
         "libplatform",
     ],
@@ -194,16 +194,16 @@
         "vulkan_enc_headers",
     ],
     shared_libs: [
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
     ],
     static_libs: [
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
         "libgfxstream_guest_android_with_host",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     export_static_lib_headers: [
         "libgfxstream_guest_android_with_host",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     target: {
         host: {
diff --git a/guest/android-emu/Android.bp b/guest/android-emu/Android.bp
index 96d7ef6..f510d2a 100644
--- a/guest/android-emu/Android.bp
+++ b/guest/android-emu/Android.bp
@@ -47,7 +47,7 @@
 }
 
 cc_library_static {
-    name: "libandroidemu_static",
+    name: "libgfxstream_androidemu_static",
     defaults: [
         "libgfxstream_guest_cc_defaults",
     ],
diff --git a/guest/android/Android.bp b/guest/android/Android.bp
index 4846597..c2d06cc 100644
--- a/guest/android/Android.bp
+++ b/guest/android/Android.bp
@@ -39,7 +39,7 @@
         "libdrm",
     ],
     export_include_dirs: [
-        "include"
+        "include",
     ],
     local_include_dirs: [
         ".",
@@ -88,7 +88,7 @@
         "libgfxstream_guest_android_defaults",
     ],
     static_libs: [
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     target: {
         host: {
@@ -102,4 +102,4 @@
         "ANativeWindowEmulated.cpp",
         "GrallocEmulated.cpp",
     ],
-}
\ No newline at end of file
+}
diff --git a/guest/gralloc_cb/Android.bp b/guest/gralloc_cb/Android.bp
index 9565d00..7fa1b97 100644
--- a/guest/gralloc_cb/Android.bp
+++ b/guest/gralloc_cb/Android.bp
@@ -30,6 +30,6 @@
     ],
     export_header_lib_headers: [
         "libcutils_headers",
-        "libqemupipe-types.ranchu"
+        "libqemupipe-types.ranchu",
     ],
 }
diff --git a/guest/magma/Android.bp b/guest/magma/Android.bp
index 12d8e6a..17cdd85 100644
--- a/guest/magma/Android.bp
+++ b/guest/magma/Android.bp
@@ -36,7 +36,7 @@
         "libplatform",
         "libgfxstream_guest_android",
         "libGoldfishAddressSpace",
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
     ],
     srcs: [
         "magma.cpp",
diff --git a/guest/platform/Android.bp b/guest/platform/Android.bp
index 9fdd009..1905bc2 100644
--- a/guest/platform/Android.bp
+++ b/guest/platform/Android.bp
@@ -61,7 +61,7 @@
 }
 
 cc_library_shared {
-    name: "libplatform_rutabaga_server",
+    name: "libgfxstream_platform_rutabaga_server",
     host_supported: true,
     vendor_available: true,
     srcs: [
@@ -93,7 +93,7 @@
 }
 
 cc_library_static {
-    name: "libplatform_rutabaga",
+    name: "libgfxstream_platform_rutabaga",
     host_supported: true,
     vendor_available: true,
     srcs: [
@@ -106,7 +106,7 @@
     shared_libs: [
         "libcutils",
         "libdrm",
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
         "liblog",
         "libutils",
     ],
@@ -138,7 +138,7 @@
 }
 
 cc_library_static {
-    name: "libplatform_stub",
+    name: "libgfxstream_platform_stub",
     host_supported: true,
     vendor: true,
     srcs: [
diff --git a/guest/vulkan/Android.bp b/guest/vulkan/Android.bp
index 16047ae..806a77c 100644
--- a/guest/vulkan/Android.bp
+++ b/guest/vulkan/Android.bp
@@ -33,7 +33,7 @@
         "vk_physical_device_properties_header_gfxstream",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
         "mesa_common_headers_gfxstream",
         "libnativewindow_headers",
         "vulkan_enc_headers",
@@ -50,7 +50,7 @@
         "libringbuffer",
         "libqemupipe.ranchu",
         "libarect",
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
     ],
     shared_libs: [
         "liblog",
@@ -124,12 +124,12 @@
         "libgfxstream_guest_vulkan_defaults",
     ],
     shared_libs: [
-        "libplatform_rutabaga_server",
+        "libgfxstream_platform_rutabaga_server",
     ],
     static_libs: [
         "libgfxstream_guest_android_with_host",
         "libgfxstream_guest_system_common_with_host",
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     cflags: [
         "-DEND2END_TESTS",
diff --git a/guest/vulkan_enc/Android.bp b/guest/vulkan_enc/Android.bp
index 96c922f..f06d7b8 100644
--- a/guest/vulkan_enc/Android.bp
+++ b/guest/vulkan_enc/Android.bp
@@ -112,7 +112,7 @@
         "libgfxstream_guest_cc_defaults",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
         "libOpenglSystemCommonHeaders",
         "libgfxstream_guest_iostream",
         "libnativewindow_headers",
@@ -132,7 +132,7 @@
     static_libs: [
         "libarect",
         "libdrm",
-        "libandroidemu_static",
+        "libgfxstream_androidemu_static",
         "libGoldfishAddressSpace",
         "libmesa_vulkan_util_gfxstream",
         "libmesa_vulkan_runtime_gfxstream",
@@ -198,10 +198,10 @@
         "libgfxstream_guest_vulkan_encoder_defaults",
     ],
     static_libs: [
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     export_static_lib_headers: [
-        "libplatform_rutabaga",
+        "libgfxstream_platform_rutabaga",
     ],
     target: {
         host: {
diff --git a/guest/vulkan_enc_unit_tests/Android.bp b/guest/vulkan_enc_unit_tests/Android.bp
index c586bbb..8e3751d 100644
--- a/guest/vulkan_enc_unit_tests/Android.bp
+++ b/guest/vulkan_enc_unit_tests/Android.bp
@@ -30,7 +30,7 @@
         "CommandBufferStagingStream_test.cpp",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
         "libgfxstream_guest_iostream",
     ],
     shared_libs: [
diff --git a/host/Android.bp b/host/Android.bp
index b2e37dc..426193f 100644
--- a/host/Android.bp
+++ b/host/Android.bp
@@ -29,39 +29,40 @@
     ],
     header_libs: [
         "gfxstream_opengl_headers",
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     static_libs: [
         "gfxstream_base",
         "gfxstream_host_common",
-        "gfxstream_gl_host_common",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_gl_server",
-        "gfxstream_gles1_dec",
-        "gfxstream_gles2_dec",
-        "gfxstream_glsnapshot",
-        "gfxstream_magma_dec",
-        "gfxstream_magma_server",
-        "gfxstream_translator_glcommon",
-        "gfxstream_translator_egl",
-        "gfxstream_translator_glescm",
-        "gfxstream_translator_glesv2",
-        "gfxstream_vulkan_cereal_host",
-        "gfxstream_vulkan_server",
-        "gfxstream_renderControl_dec",
-        "gfxstream_dispatch",
-        "gfxstream_glm",
-        "gfxstream_compressedTextures",
-        "gfxstream_emulated_textures",
+        "libgfxstream_common_utils",
         "libgfxstream_etc",
+        "libgfxstream_glestranslator_egl",
+        "libgfxstream_glestranslator_glescm",
+        "libgfxstream_glestranslator_glesv2",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_compressedtextures",
+        "libgfxstream_host_dispatch",
+        "libgfxstream_host_gl_host_common",
+        "libgfxstream_host_gl_server",
+        "libgfxstream_host_gles1_dec",
+        "libgfxstream_host_gles2_dec",
+        "libgfxstream_host_glestranslator_glcommon",
+        "libgfxstream_host_glsnapshot",
+        "libgfxstream_host_magma_dec",
+        "libgfxstream_host_magma_server",
+        "libgfxstream_host_rendercontrol_dec",
+        "libgfxstream_host_vulkan_cereal",
+        "libgfxstream_host_vulkan_emulatedtextures",
+        "libgfxstream_host_vulkan_server",
+        "libgfxstream_thirdparty_glm",
     ],
     export_static_lib_headers: [
         "gfxstream_base",
-        "gfxstream_gl_host_common",
-        "gfxstream_gles2_dec",
-        "gfxstream_glsnapshot",
-        "gfxstream_magma_server",
-        "gfxstream_vulkan_cereal_host",
+        "libgfxstream_host_gl_host_common",
+        "libgfxstream_host_gles2_dec",
+        "libgfxstream_host_glsnapshot",
+        "libgfxstream_host_magma_server",
+        "libgfxstream_host_vulkan_cereal",
     ],
     shared_libs: [
         "liblog", // gfxstream_base uses this via perfetto-libperfettobase
@@ -126,22 +127,22 @@
     ],
     header_libs: [
         "gfxstream_opengl_headers",
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     shared_libs: [
         "libbase",
         "libgfxstream_backend",
     ],
     export_static_lib_headers: [
-        "gfxstream_oswindow_test_support",
+        "libgfxstream_oswindow_test_support",
     ],
     static_libs: [
-        "gfxstream_apigen_codec_common",
+        "libgfxstream_host_apigen_codec_common",
         "gfxstream_base",
         "gfxstream_base_test_support",
         "gfxstream_host_common_test_support",
         "gfxstream_snapshot",
-        "gfxstream_oswindow_test_support",
+        "libgfxstream_oswindow_test_support",
         "libgmock",
         "liblz4",
     ],
@@ -155,7 +156,7 @@
         "libbase",
     ],
     static_libs: [
-        "libgfxstream_stb",
+        "libgfxstream_thirdparty_stb",
     ],
     srcs: [
         "tests/ImageUtils.cpp",
@@ -167,7 +168,7 @@
     name: "gfxstream_compositorvk_test",
     defaults: ["gfxstream_defaults"],
     header_libs: [
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     srcs: [
         "tests/CompositorVk_unittest.cpp",
@@ -207,8 +208,8 @@
         "libgfxstream_test_image_utils",
     ],
     static_libs: [
-        "gfxstream_vulkan_server",
-        "gfxstream_glm",
+        "libgfxstream_host_vulkan_server",
+        "libgfxstream_thirdparty_glm",
         "libc++fs",
     ],
     test_options: {
@@ -225,7 +226,7 @@
     name: "gfxstream_framebuffer_tests",
     defaults: ["gfxstream_defaults"],
     header_libs: [
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     srcs: [
         "tests/FrameBuffer_unittest.cpp",
@@ -239,11 +240,11 @@
         "gfxstream_backend_test_support",
         "gfxstream_base",
         "gfxstream_base_test_support",
-        "gfxstream_glm",
+        "libgfxstream_thirdparty_glm",
         "gfxstream_host_common_test_support",
-        "gfxstream_oswindow_test_support",
+        "libgfxstream_oswindow_test_support",
         "gfxstream_snapshot",
-        "gfxstream_vulkan_server",
+        "libgfxstream_host_vulkan_server",
         "libgmock",
         "liblz4",
     ],
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index 3e280f1..f19f51c 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -129,6 +129,7 @@
 target_link_libraries(
     gfxstream_backend
     PUBLIC
+    gfxstream_common_utils
     gfxstream_backend_static
     PRIVATE
     )
diff --git a/host/apigen-codec-common/Android.bp b/host/apigen-codec-common/Android.bp
index 808ab78..ec741f5 100644
--- a/host/apigen-codec-common/Android.bp
+++ b/host/apigen-codec-common/Android.bp
@@ -16,11 +16,14 @@
 }
 
 cc_library_static {
-    name: "gfxstream_apigen_codec_common",
-    defaults: [ "gfxstream_defaults" ],
-    static_libs: [ "gfxstream_base", "gfxstream_host_common", ],
-    cflags: [ "-fvisibility=hidden" ],
-    export_include_dirs: [ "." ],
+    name: "libgfxstream_host_apigen_codec_common",
+    defaults: ["gfxstream_defaults"],
+    static_libs: [
+        "gfxstream_base",
+        "gfxstream_host_common",
+    ],
+    cflags: ["-fvisibility=hidden"],
+    export_include_dirs: ["."],
     srcs: [
         "ChecksumCalculator.cpp",
         "ChecksumCalculatorThreadInfo.cpp",
@@ -28,7 +31,7 @@
     ],
     target: {
         host: {
-            srcs: [ "X11Support.cpp", ],
-        }
-    }
+            srcs: ["X11Support.cpp"],
+        },
+    },
 }
diff --git a/host/compressedTextureFormats/Android.bp b/host/compressedTextureFormats/Android.bp
index 1e50124..e811381 100644
--- a/host/compressedTextureFormats/Android.bp
+++ b/host/compressedTextureFormats/Android.bp
@@ -8,8 +8,8 @@
 }
 
 cc_library_static {
-    name: "gfxstream_compressedTextures",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_compressedtextures",
+    defaults: ["gfxstream_defaults"],
     srcs: [
         "AstcCpuDecompressorNoOp.cpp",
     ],
diff --git a/host/gl/Android.bp b/host/gl/Android.bp
index 36e2566..65dd9f9 100644
--- a/host/gl/Android.bp
+++ b/host/gl/Android.bp
@@ -9,8 +9,8 @@
 }
 
 cc_library_static {
-    name: "gfxstream_gl_server",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_gl_server",
+    defaults: ["gfxstream_defaults"],
     srcs: [
         "BufferGl.cpp",
         "ColorBufferGl.cpp",
@@ -35,8 +35,8 @@
         "gfxstream_opengl_headers",
     ],
     static_libs: [
-        "gfxstream_gles1_dec",
-        "gfxstream_gles2_dec",
-        "gfxstream_glsnapshot",
+        "libgfxstream_host_gles1_dec",
+        "libgfxstream_host_gles2_dec",
+        "libgfxstream_host_glsnapshot",
     ],
-}
\ No newline at end of file
+}
diff --git a/host/gl/OpenGLESDispatch/Android.bp b/host/gl/OpenGLESDispatch/Android.bp
index 99369a4..4c045aa 100644
--- a/host/gl/OpenGLESDispatch/Android.bp
+++ b/host/gl/OpenGLESDispatch/Android.bp
@@ -8,18 +8,18 @@
 }
 
 cc_library_static {
-    name: "gfxstream_dispatch",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_dispatch",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
     static_libs: [
         "gfxstream_base",
-        "gfxstream_glm",
-        "gfxstream_gles1_dec",
-        "gfxstream_gles2_dec",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_translator_egl",
+        "libgfxstream_thirdparty_glm",
+        "libgfxstream_host_gles1_dec",
+        "libgfxstream_host_gles2_dec",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_glestranslator_egl",
     ],
     cflags: [
         "-fvisibility=default",
diff --git a/host/gl/gl-host-common/Android.bp b/host/gl/gl-host-common/Android.bp
index de12c1a..1675504 100644
--- a/host/gl/gl-host-common/Android.bp
+++ b/host/gl/gl-host-common/Android.bp
@@ -9,15 +9,15 @@
 
 cc_library_headers {
     name: "gfxstream_gl_host_common_headers",
-    defaults: [ "gfxstream_defaults" ],
+    defaults: ["gfxstream_defaults"],
     export_include_dirs: [
         "include",
     ],
 }
 
 cc_library_static {
-    name: "gfxstream_gl_host_common",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_gl_host_common",
+    defaults: ["gfxstream_defaults"],
     static_libs: [
         "gfxstream_base",
         "gfxstream_host_common",
@@ -42,4 +42,3 @@
         "opengl/NativeGpuInfo_linux.cpp",
     ],
 }
-
diff --git a/host/gl/gles1_dec/Android.bp b/host/gl/gles1_dec/Android.bp
index 6bd3c0c..2f9da63 100644
--- a/host/gl/gles1_dec/Android.bp
+++ b/host/gl/gles1_dec/Android.bp
@@ -8,14 +8,14 @@
 }
 
 cc_library_static {
-    name: "gfxstream_gles1_dec",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_gles1_dec",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
     static_libs: [
-        "gfxstream_apigen_codec_common",
-        "gfxstream_glsnapshot",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_glsnapshot",
     ],
     srcs: [
         "gles1_dec.cpp",
diff --git a/host/gl/gles2_dec/Android.bp b/host/gl/gles2_dec/Android.bp
index 93e99d6..71a2982 100644
--- a/host/gl/gles2_dec/Android.bp
+++ b/host/gl/gles2_dec/Android.bp
@@ -8,14 +8,14 @@
 }
 
 cc_library_static {
-    name: "gfxstream_gles2_dec",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_gles2_dec",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
     static_libs: [
-        "gfxstream_apigen_codec_common",
-        "gfxstream_glsnapshot",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_glsnapshot",
     ],
     srcs: [
         "gles2_dec.cpp",
diff --git a/host/gl/glestranslator/EGL/Android.bp b/host/gl/glestranslator/EGL/Android.bp
index edc282e..f612102 100644
--- a/host/gl/glestranslator/EGL/Android.bp
+++ b/host/gl/glestranslator/EGL/Android.bp
@@ -8,18 +8,18 @@
 }
 
 cc_library_static {
-    name: "gfxstream_translator_egl",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_glestranslator_egl",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_gl_host_common_headers",
         "gfxstream_opengl_headers",
     ],
     static_libs: [
         "gfxstream_base",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_translator_glcommon",
-        "gfxstream_translator_glescm",
-        "gfxstream_translator_glesv2",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_glestranslator_glcommon",
+        "libgfxstream_glestranslator_glescm",
+        "libgfxstream_glestranslator_glesv2",
     ],
     cflags: [
         "-fvisibility=hidden",
@@ -48,6 +48,6 @@
                 "EglOsApi_glx.cpp",
                 "X11ErrorHandler.cpp",
             ],
-        }
-    }
+        },
+    },
 }
diff --git a/host/gl/glestranslator/GLES_CM/Android.bp b/host/gl/glestranslator/GLES_CM/Android.bp
index 018faaa..9ba8e65 100644
--- a/host/gl/glestranslator/GLES_CM/Android.bp
+++ b/host/gl/glestranslator/GLES_CM/Android.bp
@@ -8,16 +8,16 @@
 }
 
 cc_library_static {
-    name: "gfxstream_translator_glescm",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_glestranslator_glescm",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
     static_libs: [
         "gfxstream_base",
-        "gfxstream_glm",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_translator_glcommon",
+        "libgfxstream_thirdparty_glm",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_glestranslator_glcommon",
     ],
     cflags: [
         "-fvisibility=hidden",
diff --git a/host/gl/glestranslator/GLES_V2/Android.bp b/host/gl/glestranslator/GLES_V2/Android.bp
index c969c1e..0b1ad3b 100644
--- a/host/gl/glestranslator/GLES_V2/Android.bp
+++ b/host/gl/glestranslator/GLES_V2/Android.bp
@@ -8,15 +8,15 @@
 }
 
 cc_library_static {
-    name: "gfxstream_translator_glesv2",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_glestranslator_glesv2",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
     static_libs: [
         "gfxstream_base",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_translator_glcommon",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_glestranslator_glcommon",
     ],
     cflags: [
         "-fvisibility=hidden",
diff --git a/host/gl/glestranslator/GLcommon/Android.bp b/host/gl/glestranslator/GLcommon/Android.bp
index 765103b..5929319 100644
--- a/host/gl/glestranslator/GLcommon/Android.bp
+++ b/host/gl/glestranslator/GLcommon/Android.bp
@@ -8,8 +8,8 @@
 }
 
 cc_library_static {
-    name: "gfxstream_translator_glcommon",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_glestranslator_glcommon",
+    defaults: ["gfxstream_defaults"],
     cflags: [
         "-fvisibility=hidden",
         "-Wno-inconsistent-missing-override",
diff --git a/host/gl/glsnapshot/Android.bp b/host/gl/glsnapshot/Android.bp
index 0218431..a93c9b9 100644
--- a/host/gl/glsnapshot/Android.bp
+++ b/host/gl/glsnapshot/Android.bp
@@ -11,8 +11,8 @@
 }
 
 cc_library_static {
-    name: "gfxstream_glsnapshot",
-    defaults: [ "gfxstream_defaults" ],
-    srcs: [ "GLSnapshot.cpp", ],
-    export_include_dirs: [ "." ],
+    name: "libgfxstream_host_glsnapshot",
+    defaults: ["gfxstream_defaults"],
+    srcs: ["GLSnapshot.cpp"],
+    export_include_dirs: ["."],
 }
diff --git a/host/include/gfxstream/virtio-gpu-gfxstream-renderer-unstable.h b/host/include/gfxstream/virtio-gpu-gfxstream-renderer-unstable.h
index 952718e..f913f07 100644
--- a/host/include/gfxstream/virtio-gpu-gfxstream-renderer-unstable.h
+++ b/host/include/gfxstream/virtio-gpu-gfxstream-renderer-unstable.h
@@ -54,6 +54,10 @@
     int64_t result_code, uint32_t op_code, const char* function, uint32_t line,
     uint64_t allocation_size, bool is_host_side_result, bool is_allocation);
 
+// STREAM_RENDERER_PARAM_RENDERER_FEATURES: stream_renderer_param::value is a pointer to a null
+// terminated string of the form "<feature1 name>:[enabled|disabled],<feature 2 ...>".
+#define STREAM_RENDERER_PARAM_RENDERER_FEATURES 11
+
 #define STREAM_RENDERER_PARAM_METRICS_CALLBACK_SET_ANNOTATION 1028
 typedef void (*stream_renderer_param_metrics_callback_set_annotation)(const char* key,
                                                                       const char* value);
diff --git a/host/include/gfxstream/virtio-gpu-gfxstream-renderer.h b/host/include/gfxstream/virtio-gpu-gfxstream-renderer.h
index 081befc..9e8d280 100644
--- a/host/include/gfxstream/virtio-gpu-gfxstream-renderer.h
+++ b/host/include/gfxstream/virtio-gpu-gfxstream-renderer.h
@@ -86,22 +86,23 @@
     uint32_t handle_type;
 };
 
-// Log level of gfxstream
-#ifndef STREAM_RENDERER_LOG_LEVEL
-#define STREAM_RENDERER_LOG_LEVEL 1
-#endif
-
 // @user_data: custom user data passed during `stream_renderer_init`
 // @type: one of STREAM_RENDERER_DEBUG_*
 // @string: null-terminated C-string
 #define STREAM_RENDERER_DEBUG_ERROR 0x1
 #define STREAM_RENDERER_DEBUG_WARN 0x2
 #define STREAM_RENDERER_DEBUG_INFO 0x3
+#define STREAM_RENDERER_DEBUG_DEBUG 0x4
 struct stream_renderer_debug {
     uint32_t debug_type;
     const char* message;
 };
 
+// Log level of gfxstream
+#ifndef STREAM_RENDERER_LOG_LEVEL
+#define STREAM_RENDERER_LOG_LEVEL STREAM_RENDERER_DEBUG_INFO
+#endif
+
 // Callback for writing a fence.
 typedef void (*stream_renderer_fence_callback)(void* user_data,
                                                struct stream_renderer_fence* fence_data);
diff --git a/host/magma/Android.bp b/host/magma/Android.bp
index 1ce98fb..bc64fd6 100644
--- a/host/magma/Android.bp
+++ b/host/magma/Android.bp
@@ -3,14 +3,14 @@
 }
 
 cc_library_static {
-    name: "gfxstream_magma_server",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_magma_server",
+    defaults: ["gfxstream_defaults"],
     static_libs: [
         "gfxstream_base",
         "gfxstream_host_common",
-        "gfxstream_magma_dec",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_vulkan_cereal_host",
+        "libgfxstream_host_magma_dec",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_vulkan_cereal",
     ],
     srcs: [
         "Decoder.cpp",
@@ -49,6 +49,6 @@
             cflags: [
                 "-DGFXSTREAM_MAGMA_USE_INTEL_DRM=1",
             ],
-        }
-    }
+        },
+    },
 }
diff --git a/host/magma/magma_dec/Android.bp b/host/magma/magma_dec/Android.bp
index f679bb5..7f98fae 100644
--- a/host/magma/magma_dec/Android.bp
+++ b/host/magma/magma_dec/Android.bp
@@ -3,10 +3,10 @@
 }
 
 cc_library_static {
-    name: "gfxstream_magma_dec",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_magma_dec",
+    defaults: ["gfxstream_defaults"],
     static_libs: [
-        "gfxstream_apigen_codec_common",
+        "libgfxstream_host_apigen_codec_common",
     ],
     srcs: [
         "magma_dec.cpp",
diff --git a/host/meson.build b/host/meson.build
index 060bbf7..c78142c 100644
--- a/host/meson.build
+++ b/host/meson.build
@@ -153,9 +153,9 @@
 subdir('gl/gl-host-common')
 
 inc_gfxstream_backend = [inc_root, inc_gfxstream_include, inc_include, inc_apigen_codec, inc_utils,
-                         inc_gl_host_common, inc_host_include]
+                         inc_gl_host_common, inc_host_include, inc_common_utils]
 
-link_gfxstream_backend = [lib_gl_host_common, lib_apigen_codec]
+link_gfxstream_backend = [lib_gl_host_common, lib_apigen_codec, lib_common_utils]
 
 files_lib_gfxstream_backend = files(
   'Buffer.cpp',
diff --git a/host/renderControl_dec/Android.bp b/host/renderControl_dec/Android.bp
index c123fec..6cf0ca7 100644
--- a/host/renderControl_dec/Android.bp
+++ b/host/renderControl_dec/Android.bp
@@ -8,8 +8,8 @@
 }
 
 cc_library_static {
-    name: "gfxstream_renderControl_dec",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_rendercontrol_dec",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
@@ -17,7 +17,7 @@
         "gfxstream_opengl_headers",
     ],
     static_libs: [
-        "gfxstream_apigen_codec_common",
+        "libgfxstream_host_apigen_codec_common",
     ],
     srcs: [
         "renderControl_dec.cpp",
diff --git a/host/testlibs/Android.bp b/host/testlibs/Android.bp
index b7279fd..47e881d 100644
--- a/host/testlibs/Android.bp
+++ b/host/testlibs/Android.bp
@@ -13,8 +13,8 @@
 }
 
 cc_test_library {
-    name: "gfxstream_oswindow_test_support",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_oswindow_test_support",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_opengl_headers",
     ],
diff --git a/host/virtio-gpu-gfxstream-renderer.cpp b/host/virtio-gpu-gfxstream-renderer.cpp
index 1d9706d..fabe6cb 100644
--- a/host/virtio-gpu-gfxstream-renderer.cpp
+++ b/host/virtio-gpu-gfxstream-renderer.cpp
@@ -30,6 +30,7 @@
 #include "aemu/base/Tracing.h"
 #include "aemu/base/memory/SharedMemory.h"
 #include "aemu/base/synchronization/Lock.h"
+#include "gfxstream/Strings.h"
 #include "host-common/AddressSpaceService.h"
 #include "host-common/GfxstreamFatalError.h"
 #include "host-common/address_space_device.h"
@@ -71,7 +72,7 @@
 void* globalUserData = nullptr;
 stream_renderer_debug_callback globalDebugCallback = nullptr;
 
-void stream_renderer_debug(uint32_t type, const char* format, ...) {
+void stream_renderer_log(uint32_t type, const char* format, ...) {
     char buf[MAX_DEBUG_BUFFER_SIZE];
     va_list args;
     va_start(args, format);
@@ -89,26 +90,46 @@
     }
 }
 
-#if STREAM_RENDERER_LOG_LEVEL >= 1
-#define stream_renderer_error(format, ...)                                                         \
-    do {                                                                                           \
-        stream_renderer_debug(STREAM_RENDERER_DEBUG_ERROR, "[%s(%d)] %s " format,                  \
-                              __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__);             \
+#if STREAM_RENDERER_LOG_LEVEL >= STREAM_RENDERER_DEBUG_ERROR
+#define stream_renderer_error(format, ...)                                                \
+    do {                                                                                  \
+        stream_renderer_log(STREAM_RENDERER_DEBUG_ERROR, "[%s(%d)] %s " format, __FILE__, \
+                            __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__);                \
     } while (0)
 #else
 #define stream_renderer_error(format, ...)
 #endif
 
-#if STREAM_RENDERER_LOG_LEVEL >= 3
-#define stream_renderer_info(format, ...)                                                         \
-    do {                                                                                          \
-        stream_renderer_debug(STREAM_RENDERER_DEBUG_INFO, "[%s(%d)] %s " format,                  \
-                              __FILE__, __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__);            \
+#if STREAM_RENDERER_LOG_LEVEL >= STREAM_RENDERER_DEBUG_WARN
+#define stream_renderer_warn(format, ...)                                                          \
+    do {                                                                                           \
+        stream_renderer_log(STREAM_RENDERER_DEBUG_WARN, "[%s(%d)] %s " format, __FILE__, __LINE__, \
+                            __PRETTY_FUNCTION__, ##__VA_ARGS__);                                   \
+    } while (0)
+#else
+#define stream_renderer_warn(format, ...)
+#endif
+
+#if STREAM_RENDERER_LOG_LEVEL >= STREAM_RENDERER_DEBUG_INFO
+#define stream_renderer_info(format, ...)                                                          \
+    do {                                                                                           \
+        stream_renderer_log(STREAM_RENDERER_DEBUG_INFO, "[%s(%d)] %s " format, __FILE__, __LINE__, \
+                            __FUNCTION__, ##__VA_ARGS__);                                          \
     } while (0)
 #else
 #define stream_renderer_info(format, ...)
 #endif
 
+#if STREAM_RENDERER_LOG_LEVEL >= STREAM_RENDERER_DEBUG_DEBUG
+#define stream_renderer_debug(format, ...)                                                \
+    do {                                                                                  \
+        stream_renderer_log(STREAM_RENDERER_DEBUG_DEBUG, "[%s(%d)] %s " format, __FILE__, \
+                            __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__);                \
+    } while (0)
+#else
+#define stream_renderer_debug(format, ...)
+#endif
+
 // Virtio Goldfish Pipe: Overview-----------------------------------------------
 //
 // Virtio Goldfish Pipe is meant for running goldfish pipe services with a
@@ -488,9 +509,9 @@
 
 static int sync_iov(PipeResEntry* res, uint64_t offset, const stream_renderer_box* box,
                     IovSyncDir dir) {
-    stream_renderer_info("offset: 0x%llx box: %u %u %u %u size %u x %u iovs %u linearSize %zu",
-                         (unsigned long long)offset, box->x, box->y, box->w, box->h,
-                         res->args.width, res->args.height, res->numIovs, res->linearSize);
+    stream_renderer_debug("offset: 0x%llx box: %u %u %u %u size %u x %u iovs %u linearSize %zu",
+                          (unsigned long long)offset, box->x, box->y, box->w, box->h,
+                          res->args.width, res->args.height, res->numIovs, res->linearSize);
 
     if (box->x > res->args.width || box->y > res->args.height) {
         stream_renderer_error("Box out of range of resource");
@@ -575,7 +596,7 @@
     PipeVirglRenderer() = default;
 
     int init(void* cookie, int flags, stream_renderer_fence_callback fence_callback) {
-        stream_renderer_info("cookie: %p", cookie);
+        stream_renderer_debug("cookie: %p", cookie);
         mCookie = cookie;
         mFenceCallback = fence_callback;
         mVirtioGpuOps = android_getVirtioGpuOps();
@@ -599,7 +620,7 @@
     }
 
     int resetPipe(GoldfishHwPipe* hwPipe, GoldfishHostPipe* hostPipe) {
-        stream_renderer_info("Want to reset hwpipe %p to hostpipe %p", hwPipe, hostPipe);
+        stream_renderer_debug("Want to reset hwpipe %p to hostpipe %p", hwPipe, hostPipe);
         VirtioGpuCtxId asCtxId = (VirtioGpuCtxId)(uintptr_t)hwPipe;
         auto it = mContexts.find(asCtxId);
         if (it == mContexts.end()) {
@@ -608,9 +629,9 @@
         }
 
         auto& entry = it->second;
-        stream_renderer_info("ctxid: %u prev hostpipe: %p", asCtxId, entry.hostPipe);
+        stream_renderer_debug("ctxid: %u prev hostpipe: %p", asCtxId, entry.hostPipe);
         entry.hostPipe = hostPipe;
-        stream_renderer_info("ctxid: %u next hostpipe: %p", asCtxId, entry.hostPipe);
+        stream_renderer_debug("ctxid: %u next hostpipe: %p", asCtxId, entry.hostPipe);
 
         // Also update any resources associated with it
         auto resourcesIt = mContextResources.find(asCtxId);
@@ -639,13 +660,13 @@
                       uint32_t context_init) {
         std::string contextName(name, nlen);
 
-        stream_renderer_info("ctxid: %u len: %u name: %s", ctx_id, nlen, contextName.c_str());
+        stream_renderer_debug("ctxid: %u len: %u name: %s", ctx_id, nlen, contextName.c_str());
         auto ops = ensureAndGetServiceOps();
         auto hostPipe = ops->guest_open_with_flags(reinterpret_cast<GoldfishHwPipe*>(ctx_id),
                                                    0x1 /* is virtio */);
 
         if (!hostPipe) {
-            stream_renderer_error("failed to create hw pipe!\n");
+            stream_renderer_error("failed to create hw pipe!");
             return -EINVAL;
         }
         std::unordered_map<uint32_t, uint32_t> map;
@@ -661,18 +682,18 @@
             map,                     // resourceId --> ASG handle map
         };
 
-        stream_renderer_info("initial host pipe for ctxid %u: %p", ctx_id, hostPipe);
+        stream_renderer_debug("initial host pipe for ctxid %u: %p", ctx_id, hostPipe);
         mContexts[ctx_id] = res;
         android_onGuestGraphicsProcessCreate(ctx_id);
         return 0;
     }
 
     int destroyContext(VirtioGpuCtxId handle) {
-        stream_renderer_info("ctxid: %u", handle);
+        stream_renderer_debug("ctxid: %u", handle);
 
         auto it = mContexts.find(handle);
         if (it == mContexts.end()) {
-            stream_renderer_error("could not find context handle %u\n", handle);
+            stream_renderer_error("could not find context handle %u", handle);
             return -EINVAL;
         }
 
@@ -799,16 +820,16 @@
         void* buffer = reinterpret_cast<void*>(cmd->cmd);
 
         VirtioGpuRing ring = VirtioGpuRingGlobal{};
-        stream_renderer_info("ctx: % u, ring: %s buffer: %p dwords: %d", cmd->ctx_id,
-                             to_string(ring).c_str(), buffer, cmd->cmd_size);
+        stream_renderer_debug("ctx: % u, ring: %s buffer: %p dwords: %d", cmd->ctx_id,
+                              to_string(ring).c_str(), buffer, cmd->cmd_size);
 
         if (!buffer) {
-            stream_renderer_error("error: buffer null\n");
+            stream_renderer_error("error: buffer null");
             return -EINVAL;
         }
 
         if (cmd->cmd_size < 4) {
-            stream_renderer_error("error: not enough bytes (got %d)\n", cmd->cmd_size);
+            stream_renderer_error("error: not enough bytes (got %d)", cmd->cmd_size);
             return -EINVAL;
         }
 
@@ -827,7 +848,7 @@
                 uint64_t sync_handle =
                     convert32to64(exportSync.syncHandleLo, exportSync.syncHandleHi);
 
-                stream_renderer_info("wait for gpu ring %s", to_string(ring).c_str());
+                stream_renderer_debug("wait for gpu ring %s", to_string(ring).c_str());
                 auto taskId = mVirtioGpuTimelines->enqueueTask(ring);
                 mVirtioGpuOps->async_wait_for_gpu_with_cb(sync_handle, [this, taskId] {
                     mVirtioGpuTimelines->notifyTaskCompletion(taskId);
@@ -853,7 +874,7 @@
                 uint64_t fence_handle =
                     convert32to64(exportSyncVK.fenceHandleLo, exportSyncVK.fenceHandleHi);
 
-                stream_renderer_info("wait for gpu ring %s", to_string(ring).c_str());
+                stream_renderer_debug("wait for gpu ring %s", to_string(ring).c_str());
                 auto taskId = mVirtioGpuTimelines->enqueueTask(ring);
                 mVirtioGpuOps->async_wait_for_gpu_vulkan_with_cb(
                     device_handle, fence_handle,
@@ -875,8 +896,8 @@
                 uint64_t image_handle =
                     convert32to64(exportQSRI.imageHandleLo, exportQSRI.imageHandleHi);
 
-                stream_renderer_info("wait for gpu vk qsri ring %u image 0x%llx",
-                                     to_string(ring).c_str(), (unsigned long long)image_handle);
+                stream_renderer_debug("wait for gpu vk qsri ring %u image 0x%llx",
+                                      to_string(ring).c_str(), (unsigned long long)image_handle);
                 auto taskId = mVirtioGpuTimelines->enqueueTask(ring);
                 mVirtioGpuOps->async_wait_for_gpu_vulkan_qsri_with_cb(image_handle, [this, taskId] {
                     mVirtioGpuTimelines->notifyTaskCompletion(taskId);
@@ -895,8 +916,8 @@
     }
 
     int createFence(uint64_t fence_id, const VirtioGpuRing& ring) {
-        stream_renderer_info("fenceid: %llu ring: %s", (unsigned long long)fence_id,
-                             to_string(ring).c_str());
+        stream_renderer_debug("fenceid: %llu ring: %s", (unsigned long long)fence_id,
+                              to_string(ring).c_str());
 
         struct {
             FenceCompletionCallback operator()(const VirtioGpuRingGlobal&) {
@@ -1004,8 +1025,8 @@
 
     void handleCreateResourceColorBuffer(struct stream_renderer_resource_create_args* args) {
         // corresponds to allocation of gralloc buffer in minigbm
-        stream_renderer_info("w h %u %u resid %u -> CreateColorBufferWithHandle", args->width,
-                             args->height, args->handle);
+        stream_renderer_debug("w h %u %u resid %u -> CreateColorBufferWithHandle", args->width,
+                              args->height, args->handle);
 
         const uint32_t glformat = virgl_format_to_gl(args->format);
         const uint32_t fwkformat = virgl_format_to_fwk_format(args->format);
@@ -1017,7 +1038,7 @@
 
     int createResource(struct stream_renderer_resource_create_args* args, struct iovec* iov,
                        uint32_t num_iovs) {
-        stream_renderer_info("handle: %u. num iovs: %u", args->handle, num_iovs);
+        stream_renderer_debug("handle: %u. num iovs: %u", args->handle, num_iovs);
 
         const auto resType = getResourceType(*args);
         switch (resType) {
@@ -1047,7 +1068,7 @@
     }
 
     void unrefResource(uint32_t toUnrefId) {
-        stream_renderer_info("handle: %u", toUnrefId);
+        stream_renderer_debug("handle: %u", toUnrefId);
 
         auto it = mResources.find(toUnrefId);
         if (it == mResources.end()) return;
@@ -1096,16 +1117,16 @@
     }
 
     int attachIov(int resId, iovec* iov, int num_iovs) {
-        stream_renderer_info("resid: %d numiovs: %d", resId, num_iovs);
+        stream_renderer_debug("resid: %d numiovs: %d", resId, num_iovs);
 
         auto it = mResources.find(resId);
         if (it == mResources.end()) return ENOENT;
 
         auto& entry = it->second;
-        stream_renderer_info("res linear: %p", entry.linear);
+        stream_renderer_debug("res linear: %p", entry.linear);
         if (!entry.linear) allocResource(entry, iov, num_iovs);
 
-        stream_renderer_info("done");
+        stream_renderer_debug("done");
         return 0;
     }
 
@@ -1117,9 +1138,9 @@
 
         if (num_iovs) {
             *num_iovs = entry.numIovs;
-            stream_renderer_info("resid: %d numIovs: %d", resId, *num_iovs);
+            stream_renderer_debug("resid: %d numIovs: %d", resId, *num_iovs);
         } else {
-            stream_renderer_info("resid: %d numIovs: 0", resId);
+            stream_renderer_debug("resid: %d numIovs: 0", resId);
         }
 
         entry.numIovs = 0;
@@ -1132,7 +1153,7 @@
         }
 
         allocResource(entry, entry.iov, entry.numIovs);
-        stream_renderer_info("done");
+        stream_renderer_debug("done");
     }
 
     int handleTransferReadPipe(PipeResEntry* res, uint64_t offset, stream_renderer_box* box) {
@@ -1178,12 +1199,12 @@
         // Do the pipe service op here, if there is an associated hostpipe.
         auto hostPipe = res->hostPipe;
         if (!hostPipe) {
-            stream_renderer_info("No hostPipe");
+            stream_renderer_error("No hostPipe");
             return -EINVAL;
         }
 
-        stream_renderer_info("resid: %d offset: 0x%llx hostpipe: %p", res->args.handle,
-                             (unsigned long long)offset, hostPipe);
+        stream_renderer_debug("resid: %d offset: 0x%llx hostpipe: %p", res->args.handle,
+                              (unsigned long long)offset, hostPipe);
 
         auto ops = ensureAndGetServiceOps();
 
@@ -1434,7 +1455,7 @@
     }
 
     void attachResource(uint32_t ctxId, uint32_t resId) {
-        stream_renderer_info("ctxid: %u resid: %u", ctxId, resId);
+        stream_renderer_debug("ctxid: %u resid: %u", ctxId, resId);
 
         auto resourcesIt = mContextResources.find(ctxId);
 
@@ -1468,18 +1489,18 @@
 
         if (ctxEntryIt == mContexts.end() || resEntryIt == mResources.end()) return;
 
-        stream_renderer_info("hostPipe: %p", ctxEntryIt->second.hostPipe);
+        stream_renderer_debug("hostPipe: %p", ctxEntryIt->second.hostPipe);
         resEntryIt->second.hostPipe = ctxEntryIt->second.hostPipe;
         resEntryIt->second.ctxId = ctxId;
     }
 
     void detachResource(uint32_t ctxId, uint32_t toUnrefId) {
-        stream_renderer_info("ctxid: %u resid: %u", ctxId, toUnrefId);
+        stream_renderer_debug("ctxid: %u resid: %u", ctxId, toUnrefId);
         detachResourceLocked(ctxId, toUnrefId);
     }
 
     int getResourceInfo(uint32_t resId, struct stream_renderer_resource_info* info) {
-        stream_renderer_info("resid: %u", resId);
+        stream_renderer_debug("resid: %u", resId);
         if (!info) return EINVAL;
 
         auto it = mResources.find(resId);
@@ -1565,8 +1586,8 @@
     int createBlob(uint32_t ctx_id, uint32_t res_handle,
                    const struct stream_renderer_create_blob* create_blob,
                    const struct stream_renderer_handle* handle) {
-        stream_renderer_info("ctx:%u res:%u blob-id:%u blob-size:%u",
-                             ctx_id, res_handle, create_blob->blob_id, create_blob->size);
+        stream_renderer_debug("ctx:%u res:%u blob-id:%u blob-size:%u", ctx_id, res_handle,
+                              create_blob->blob_id, create_blob->size);
 
         PipeResEntry e;
         struct stream_renderer_resource_create_args args = {0};
@@ -1762,17 +1783,17 @@
 #endif  // CONFIG_AEMU
    private:
     void allocResource(PipeResEntry& entry, iovec* iov, int num_iovs) {
-        stream_renderer_info("entry linear: %p", entry.linear);
+        stream_renderer_debug("entry linear: %p", entry.linear);
         if (entry.linear) free(entry.linear);
 
         size_t linearSize = 0;
         for (uint32_t i = 0; i < num_iovs; ++i) {
-            stream_renderer_info("iov base: %p", iov[i].iov_base);
+            stream_renderer_debug("iov base: %p", iov[i].iov_base);
             linearSize += iov[i].iov_len;
-            stream_renderer_info("has iov of %zu. linearSize current: %zu", iov[i].iov_len,
-                                 linearSize);
+            stream_renderer_debug("has iov of %zu. linearSize current: %zu", iov[i].iov_len,
+                                  linearSize);
         }
-        stream_renderer_info("final linearSize: %zu", linearSize);
+        stream_renderer_debug("final linearSize: %zu", linearSize);
 
         void* linear = nullptr;
 
@@ -1786,7 +1807,7 @@
     }
 
     void detachResourceLocked(uint32_t ctxId, uint32_t toUnrefId) {
-        stream_renderer_info("ctxid: %u resid: %u", ctxId, toUnrefId);
+        stream_renderer_debug("ctxid: %u resid: %u", ctxId, toUnrefId);
 
         auto it = mContextResources.find(ctxId);
         if (it == mContextResources.end()) return;
@@ -2137,9 +2158,9 @@
 };
 
 static int stream_renderer_opengles_init(uint32_t display_width, uint32_t display_height,
-                                         int renderer_flags) {
-    stream_renderer_info("start. display dimensions: width %u height %u, renderer flags: 0x%x",
-                         display_width, display_height, renderer_flags);
+                                         int renderer_flags, const std::string& renderer_features) {
+    stream_renderer_debug("start. display dimensions: width %u height %u, renderer flags: 0x%x",
+                          display_width, display_height, renderer_flags);
 
     // Flags processing
 
@@ -2187,12 +2208,12 @@
 
     if (useSystemBlob) {
         if (!useExternalBlob) {
-            stream_renderer_info("USE_EXTERNAL_BLOB must be on with USE_SYSTEM_BLOB");
+            stream_renderer_error("USE_EXTERNAL_BLOB must be on with USE_SYSTEM_BLOB");
             return -EINVAL;
         }
 
 #ifndef _WIN32
-        stream_renderer_info("Warning: USE_SYSTEM_BLOB has only been tested on Windows");
+        stream_renderer_warn("Warning: USE_SYSTEM_BLOB has only been tested on Windows");
 #endif
     }
 
@@ -2224,6 +2245,36 @@
         feature_set_enabled_override(kFeature_VulkanSnapshots, true);
     }
 
+    for (const std::string& renderer_feature : gfxstream::Split(renderer_features, ",")) {
+        if (renderer_feature.empty()) continue;
+
+        const std::vector<std::string>& parts = gfxstream::Split(renderer_feature, ":");
+        if (parts.size() != 2) {
+            stream_renderer_error("Error: invalid renderer features: %s",
+                                  renderer_features.c_str());
+            return -EINVAL;
+        }
+
+        const std::string& feature_name = parts[0];
+        const Feature feature = feature_from_name(feature_name.c_str());
+        if (feature == kFeature_unknown) {
+            stream_renderer_error("Error: invalid renderer feature: '%s'", feature_name.c_str());
+            return -EINVAL;
+        }
+
+        const std::string& feature_status = parts[1];
+        if (feature_status != "enabled" && feature_status != "disabled") {
+            stream_renderer_error("Error: invalid option %s for renderer feature: %s",
+                                  feature_status.c_str(), feature_name.c_str());
+            return -EINVAL;
+        }
+
+        feature_set_enabled_override(feature, feature_status == "enabled");
+
+        stream_renderer_error("Gfxstream feature %s %s", feature_name.c_str(),
+                              feature_status.c_str());
+    }
+
     android::featurecontrol::productFeatureOverride();
 
     if (useVulkanNativeSwapchain && !enableVk) {
@@ -2273,7 +2324,7 @@
 
     android_getOpenglesHardwareStrings(&vendor, &renderer, &version);
 
-    stream_renderer_info("GL strings; [%s] [%s] [%s].\n", vendor, renderer, version);
+    stream_renderer_info("GL strings; [%s] [%s] [%s].", vendor, renderer, version);
 
     auto openglesRenderer = android_getOpenglesRenderer();
 
@@ -2341,11 +2392,12 @@
     uint32_t display_height = 0;
     void* renderer_cookie = nullptr;
     int renderer_flags = 0;
+    std::string renderer_features;
     stream_renderer_fence_callback fence_callback = nullptr;
     bool skip_opengles = false;
 
     // Iterate all parameters that we support.
-    stream_renderer_info("Reading stream renderer parameters:");
+    stream_renderer_debug("Reading stream renderer parameters:");
     for (uint64_t i = 0; i < num_params; ++i) {
         stream_renderer_param& param = stream_renderer_params[i];
 
@@ -2353,11 +2405,11 @@
         // adding new prints.
         if (printed_param_values.find(param.key) != printed_param_values.end() ||
             param.value <= 4096) {
-            stream_renderer_info("%s - %llu", get_param_string(param.key).c_str(),
-                                 static_cast<unsigned long long>(param.value));
+            stream_renderer_debug("%s - %llu", get_param_string(param.key).c_str(),
+                                  static_cast<unsigned long long>(param.value));
         } else {
             // If not full value, print that it was passed.
-            stream_renderer_info("%s", get_param_string(param.key).c_str());
+            stream_renderer_debug("%s", get_param_string(param.key).c_str());
         }
 
         // Removing every param we process will leave required_params empty if all provided.
@@ -2419,6 +2471,11 @@
                     static_cast<uintptr_t>(param.value));
                 break;
             }
+            case STREAM_RENDERER_PARAM_RENDERER_FEATURES: {
+                renderer_features =
+                    std::string(reinterpret_cast<const char*>(static_cast<uintptr_t>(param.value)));
+                break;
+            }
             case STREAM_RENDERER_PARAM_METRICS_CALLBACK_SET_ANNOTATION: {
                 MetricsLogger::set_crash_annotation_callback =
                     reinterpret_cast<stream_renderer_param_metrics_callback_set_annotation>(
@@ -2440,7 +2497,7 @@
             }
         }
     }
-    stream_renderer_info("Finished reading parameters");
+    stream_renderer_debug("Finished reading parameters");
 
     // Some required params not found.
     if (required_params.size() > 0) {
@@ -2481,7 +2538,8 @@
     if (!skip_opengles) {
         // aemu currently does its own opengles initialization in
         // qemu/android/android-emu/android/opengles.cpp.
-        int ret = stream_renderer_opengles_init(display_width, display_height, renderer_flags);
+        int ret = stream_renderer_opengles_init(display_width, display_height, renderer_flags,
+                                                renderer_features);
         if (ret) {
             return ret;
         }
@@ -2490,7 +2548,7 @@
     sRenderer()->init(renderer_cookie, renderer_flags, fence_callback);
     gfxstream::FrameBuffer::waitUntilInitialized();
 
-    stream_renderer_info("Started renderer");
+    stream_renderer_info("Gfxstream initialized successfully!");
     return 0;
 }
 
diff --git a/host/vulkan/Android.bp b/host/vulkan/Android.bp
index f8e9d12..b40cb90 100644
--- a/host/vulkan/Android.bp
+++ b/host/vulkan/Android.bp
@@ -10,21 +10,21 @@
 }
 
 cc_library_static {
-    name: "gfxstream_vulkan_server",
+    name: "libgfxstream_host_vulkan_server",
     defaults: ["gfxstream_defaults"],
     header_libs: [
         "gfxstream_gl_host_common_headers",
         "gfxstream_opengl_headers",
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     static_libs: [
         "gfxstream_base",
-        "gfxstream_glm",
-        "gfxstream_compressedTextures",
-        "gfxstream_emulated_textures",
+        "libgfxstream_thirdparty_glm",
+        "libgfxstream_host_compressedtextures",
+        "libgfxstream_host_vulkan_emulatedtextures",
         "gfxstream_host_common",
-        "gfxstream_apigen_codec_common",
-        "gfxstream_vulkan_cereal_host",
+        "libgfxstream_host_apigen_codec_common",
+        "libgfxstream_host_vulkan_cereal",
     ],
     cflags: [
         "-fvisibility=hidden",
@@ -84,9 +84,9 @@
         "liblog",
     ],
     static_libs: [
-        "gfxstream_glm",
+        "libgfxstream_thirdparty_glm",
         "gfxstream_host_common",
-        "gfxstream_vulkan_server",
+        "libgfxstream_host_vulkan_server",
         "libgtest",
         "libgmock",
     ],
diff --git a/host/vulkan/VkDecoderGlobalState.cpp b/host/vulkan/VkDecoderGlobalState.cpp
index 28298ad..2536720 100644
--- a/host/vulkan/VkDecoderGlobalState.cpp
+++ b/host/vulkan/VkDecoderGlobalState.cpp
@@ -3868,6 +3868,7 @@
 
         VkImportMemoryHostPointerInfoEXT importHostInfo;
         std::optional<SharedMemory> sharedMemory = std::nullopt;
+        std::shared_ptr<PrivateMemory> privateMemory = {};
 
         // TODO(b/261222354): Make sure the feature exists when initializing sVkEmulation.
         if (hostVisible && feature_is_enabled(kFeature_SystemBlob)) {
@@ -3902,6 +3903,22 @@
             vk_append_struct(&structChainIter, &importHostInfo);
         }
 
+        VkImportMemoryHostPointerInfoEXT importHostInfoPrivate{};
+        if (hostVisible && feature_is_enabled(kFeature_VulkanAllocateHostMemory) &&
+            localAllocInfo.pNext == nullptr) {
+            VkDeviceSize alignedSize = __ALIGN(localAllocInfo.allocationSize, kPageSizeforBlob);
+            localAllocInfo.allocationSize = alignedSize;
+            privateMemory =
+                std::make_shared<PrivateMemory>(kPageSizeforBlob, localAllocInfo.allocationSize);
+            mappedPtr = privateMemory->getAddr();
+            importHostInfoPrivate = {
+                .sType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
+                .pNext = NULL,
+                .handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
+                .pHostPointer = mappedPtr};
+            vk_append_struct(&structChainIter, &importHostInfoPrivate);
+        }
+
         VkResult result = vk->vkAllocateMemory(device, &localAllocInfo, pAllocator, pMemory);
 
         if (result != VK_SUCCESS) {
@@ -3992,6 +4009,8 @@
             // Always assign the shared memory into memoryInfo. If it was used, then it will have
             // ownership transferred.
             memoryInfo.sharedMemory = std::exchange(sharedMemory, std::nullopt);
+
+            memoryInfo.privateMemory = privateMemory;
         }
 
         *pMemory = new_boxed_non_dispatchable_VkDeviceMemory(*pMemory);
diff --git a/host/vulkan/VkDecoderInternalStructs.h b/host/vulkan/VkDecoderInternalStructs.h
index 6a90923..bf1e55f 100644
--- a/host/vulkan/VkDecoderInternalStructs.h
+++ b/host/vulkan/VkDecoderInternalStructs.h
@@ -16,6 +16,11 @@
 
 #include <vulkan/vulkan.h>
 
+#ifdef _WIN32
+#include <malloc.h>
+#endif
+
+#include <stdlib.h>
 #include <set>
 #include <string>
 
@@ -100,6 +105,32 @@
     int mMaxSize;
 };
 
+class PrivateMemory {
+public:
+    PrivateMemory(size_t alignment, size_t size) {
+#ifdef _WIN32
+        mAddr = _aligned_malloc(size, alignment);
+#else
+        mAddr = aligned_alloc(alignment, size);
+#endif
+    }
+    ~PrivateMemory() {
+        if (mAddr) {
+#ifdef _WIN32
+            _aligned_free(mAddr);
+#else
+            free(mAddr);
+#endif
+            mAddr = nullptr;
+        }
+    }
+    void* getAddr() {
+        return mAddr;
+    }
+private:
+    void* mAddr{nullptr};
+};
+
 // We always map the whole size on host.
 // This makes it much easier to implement
 // the memory map API.
@@ -126,6 +157,7 @@
     // Set if the memory is backed by shared memory.
     std::optional<android::base::SharedMemory> sharedMemory;
 
+    std::shared_ptr<PrivateMemory> privateMemory;
     // virtio-gpu blobs
     uint64_t blobId = 0;
 
@@ -307,4 +339,4 @@
     VkDevice device;
 };
 }  // namespace vk
-}  // namespace gfxstream
\ No newline at end of file
+}  // namespace gfxstream
diff --git a/host/vulkan/cereal/Android.bp b/host/vulkan/cereal/Android.bp
index a8072a5..1f90cfb 100644
--- a/host/vulkan/cereal/Android.bp
+++ b/host/vulkan/cereal/Android.bp
@@ -8,7 +8,7 @@
 }
 
 cc_library_static {
-    name: "gfxstream_vulkan_cereal_host",
+    name: "libgfxstream_host_vulkan_cereal",
     defaults: ["gfxstream_defaults"],
     static_libs: ["gfxstream_base"],
     srcs: [
@@ -20,11 +20,11 @@
         "common/goldfish_vk_transform.cpp",
     ],
     header_libs: [
-        "gfxstream_vulkan_headers",
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_vulkan_headers",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     export_header_lib_headers: [
-        "gfxstream_vulkan_headers",
+        "libgfxstream_vulkan_headers",
     ],
     cflags: [
         "-DVK_ANDROID_native_buffer",
diff --git a/host/vulkan/cereal/common/Android.bp b/host/vulkan/cereal/common/Android.bp
index b05f0c3..0ba0643 100644
--- a/host/vulkan/cereal/common/Android.bp
+++ b/host/vulkan/cereal/common/Android.bp
@@ -8,7 +8,7 @@
 }
 
 cc_library_headers {
-    name: "gfxstream_vulkan_cereal_common",
+    name: "libgfxstream_host_vulkan_cereal_common",
     vendor_available: true,
     host_supported: true,
     export_include_dirs: [
diff --git a/host/vulkan/emulated_textures/Android.bp b/host/vulkan/emulated_textures/Android.bp
index 053b7da..4b24604 100644
--- a/host/vulkan/emulated_textures/Android.bp
+++ b/host/vulkan/emulated_textures/Android.bp
@@ -8,10 +8,10 @@
 }
 
 cc_library_static {
-    name: "gfxstream_emulated_textures",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_host_vulkan_emulatedtextures",
+    defaults: ["gfxstream_defaults"],
     header_libs: [
-        "gfxstream_vulkan_cereal_common",
+        "libgfxstream_host_vulkan_cereal_common",
     ],
     srcs: [
         "AstcTexture.cpp",
diff --git a/third-party/astc-encoder/Android.bp b/third-party/astc-encoder/Android.bp
index 2c5baac..9c02c41 100644
--- a/third-party/astc-encoder/Android.bp
+++ b/third-party/astc-encoder/Android.bp
@@ -31,4 +31,4 @@
     ],
 }
 
-// TODO(gregschlom) Write the rules to actually build this library
\ No newline at end of file
+// TODO(gregschlom) Write the rules to actually build this library
diff --git a/third-party/glm/Android.bp b/third-party/glm/Android.bp
index 2c6af2f..6eb20bb 100644
--- a/third-party/glm/Android.bp
+++ b/third-party/glm/Android.bp
@@ -8,7 +8,7 @@
 }
 
 cc_library_static {
-    name: "gfxstream_glm",
+    name: "libgfxstream_thirdparty_glm",
     defaults: ["gfxstream_defaults"],
-    export_include_dirs: [ "include" ],
+    export_include_dirs: ["include"],
 }
diff --git a/third-party/renderdoc/Android.bp b/third-party/renderdoc/Android.bp
index 725ee2d..ebfdc36 100644
--- a/third-party/renderdoc/Android.bp
+++ b/third-party/renderdoc/Android.bp
@@ -16,9 +16,12 @@
 }
 
 cc_library_headers {
-    name: "gfxstream_renderdoc_headers",
+    name: "libgfxstream_thirdparty_renderdoc_headers",
     defaults: ["gfxstream_defaults"],
     vendor_available: true,
     host_supported: true,
-    export_include_dirs: [ ".", "include" ],
+    export_include_dirs: [
+        ".",
+        "include",
+    ],
 }
diff --git a/third-party/stb/Android.bp b/third-party/stb/Android.bp
index e50cd85..034f32a 100644
--- a/third-party/stb/Android.bp
+++ b/third-party/stb/Android.bp
@@ -15,13 +15,13 @@
 }
 
 cc_library {
-    name: "libgfxstream_stb",
-    defaults: [ "gfxstream_defaults" ],
+    name: "libgfxstream_thirdparty_stb",
+    defaults: ["gfxstream_defaults"],
     srcs: [
         "src/stb_image.cpp",
         "src/stb_image_write.cpp",
     ],
     export_include_dirs: [
         "include",
-    ]
+    ],
 }
