diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index c62fa69..eee7ba6
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@
     
 - [*GLAVE Debugger*](tools/glave)
 
-    ![ScreenShot](docs/images/Glave-Small.png)
+    ![ScreenShot](docs/images/Vktrace-Small.png)
 
 - Core [*Validation Layers*](layers/)
 
diff --git a/docs/images/Glave-GenerateTraceFile.png b/docs/images/Glave-GenerateTraceFile.png
deleted file mode 100755
index a193188..0000000
--- a/docs/images/Glave-GenerateTraceFile.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Glave-LoadedAndPlaying.png b/docs/images/Glave-LoadedAndPlaying.png
deleted file mode 100755
index 3ba6c17..0000000
--- a/docs/images/Glave-LoadedAndPlaying.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Glave-Paused.png b/docs/images/Glave-Paused.png
deleted file mode 100755
index 5e1e495..0000000
--- a/docs/images/Glave-Paused.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Glave-SearchForMemory.png b/docs/images/Glave-SearchForMemory.png
deleted file mode 100755
index 5524742..0000000
--- a/docs/images/Glave-SearchForMemory.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Glave-Small.png b/docs/images/Glave-Small.png
deleted file mode 100644
index ea16dc6..0000000
--- a/docs/images/Glave-Small.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Glave.png b/docs/images/Glave.png
deleted file mode 100755
index 48e1137..0000000
--- a/docs/images/Glave.png
+++ /dev/null
Binary files differ
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index ee1c9ec..1d1803d 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -86,7 +86,7 @@
             COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_all_tests.sh
             COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_all_tests_with_layers.sh
             COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/layer_test_suite.py
-            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/vkglavetracereplay.sh
+            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/vktracereplay.sh
             VERBATIM
             )
     endif()
@@ -95,11 +95,11 @@
         FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/golden GOLDEN)
         FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_run_all_tests.ps1 RUN_ALL)
         FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_run_all_tests_with_layers.ps1 RUN_ALL_WITH_LAYERS)
-        FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_vkglavetracereplay.ps1 VKGLAVETRACEREPLAY)
+        FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_vktracereplay.ps1 VKGLAVETRACEREPLAY)
         add_custom_target(binary-dir-symlinks ALL
             COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL} run_all_tests.ps1
             COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL_WITH_LAYERS} run_all_tests_with_layers.ps1
-            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${VKGLAVETRACEREPLAY} vkglavetracereplay.ps1
+            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${VKGLAVETRACEREPLAY} vktracereplay.ps1
             COMMAND IF NOT EXIST golden mklink /J golden ${GOLDEN}
             VERBATIM
             )
diff --git a/tests/_vkglavetracereplay.ps1 b/tests/_vktracereplay.ps1
similarity index 73%
rename from tests/_vkglavetracereplay.ps1
rename to tests/_vktracereplay.ps1
index 1652437..4fbe7b1 100644
--- a/tests/_vkglavetracereplay.ps1
+++ b/tests/_vktracereplay.ps1
@@ -1,7 +1,7 @@
-# Powershell script for running the glave trace/replay auto test
+# Powershell script for running the vktrace trace/replay auto test
 # To run this test:
 #    cd <this-dir>
-#    powershell C:\src\LoaderAndTools\vkglavetracerepaly.ps1 [-Debug]
+#    powershell C:\src\LoaderAndTools\vktracereplay.ps1 [-Debug]
 
 if ($args[0] -eq "-Debug") {
     $dPath = "Debug"
@@ -10,9 +10,9 @@
 }
 
 write-host -background black -foreground green "[  RUN     ] " -nonewline
-write-host "vkglavetracereplay.ps1: Glave trace/replay"
+write-host "vktracereplay.ps1: Vktrace trace/replay"
 
-$gdir = "..\..\..\Glave\_out64"
+$gdir = "..\..\..\Vktrace"
 
 # Create a temp directory to run the test in
 rm -recurse -force vktracereplay_tmp  > $null 2> $null
@@ -21,13 +21,13 @@
 # Copy everything we need into the temp directory, so we
 # can make sure we are using the correct dll and exe files
 cd vktracereplay_tmp
-cp ..\$gdir\$dPath\glvreplay.exe .
-cp ..\$gdir\$dPath\glvtrace.exe .
-cp ..\$gdir\src\glv_extensions\$dPath\glvreplay_vk.dll .
-cp ..\$gdir\src\glv_extensions\$dPath\glvtrace_vk.dll .
+cp ..\$gdir\$dPath\vkreplay.exe .
+cp ..\$gdir\$dPath\vktrace.exe .
+cp ..\$gdir\$dPath\vkreplay.dll .
+cp ..\$gdir\$dPath\vktrace.dll .
 cp ..\..\demos\$dPath\cube.exe .
 cp ..\..\demos\*.png .
-cp ..\..\loader\$dPath\vulkan.dll .
+cp ..\..\loader\$dPath\vulkan.0.dll .
 cp ..\..\layers\$dPath\VKLayerScreenShot.dll .
 
 # Change PATH to the temp directory
@@ -36,9 +36,9 @@
 $Env:VK_LAYER_PATH = $pwd
 
 # Do a trace and replay
-& glvtrace -o c01.glv -s 1 -p cube -a "--c 10" -l0 glvtrace_vk.dll > trace.sout 2> trace.serr
+& vktrace -o c01.trace -s 1 -p cube -a "--c 10" -l0 vktrace.dll > trace.sout 2> trace.serr
 rename-item -path 1.ppm -newname 1-trace.ppm
-& glvreplay  -s 1 -t  c01.glv  > replay.sout 2> replay.serr
+& vkreplay  -s 1 -t  c01.trace  > replay.sout 2> replay.serr
 rename-item -path 1.ppm -newname 1-replay.ppm
 
 # Force a failure - for testing this script
@@ -65,7 +65,7 @@
         $exitstatus = 0
     }
 }
-write-host "vkglavetracereplay.ps1: Glave trace/replay"
+write-host "vktracereplay.ps1: Vktrace trace/replay"
 write-host
 if ($exitstatus) {
     echo '1 FAILED TEST'
diff --git a/tests/run_all_tests.sh b/tests/run_all_tests.sh
index 4a77f67..097b9c1 100755
--- a/tests/run_all_tests.sh
+++ b/tests/run_all_tests.sh
@@ -25,5 +25,5 @@
 # that are wrong
 ./vk_layer_validation_tests
 
-# vkglavetracereplay.sh tests glave trace and replay
-./vkglavetracereplay.sh
+# vktracereplay.sh tests vktrace trace and replay
+./vktracereplay.sh
diff --git a/tests/run_all_tests_with_layers.sh b/tests/run_all_tests_with_layers.sh
index 2d33a98..0e60ded 100755
--- a/tests/run_all_tests_with_layers.sh
+++ b/tests/run_all_tests_with_layers.sh
@@ -33,8 +33,8 @@
 # a saved "golden" image and will report an error if there is any difference
 ./vk_render_tests --compare-images 
 
-# vkglavetracereplay.sh tests glave trace and replay
-./vkglavetracereplay.sh
+# vktracereplay.sh tests vktrace trace and replay
+./vktracereplay.sh
 
 if [ -f ./vk_layer_settings.txt ];
 then
diff --git a/tests/vkglavetracereplay.sh b/tests/vktracereplay.sh
similarity index 90%
rename from tests/vkglavetracereplay.sh
rename to tests/vktracereplay.sh
index db6dc0b..797caf5 100755
--- a/tests/vkglavetracereplay.sh
+++ b/tests/vktracereplay.sh
@@ -26,13 +26,13 @@
 export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
 export VK_LAYER_PATH=`pwd`/../../layers
 (
-    ./vktrace -s 1 -p cube  -o c01.glv -l0 libvulkan_trace.so &
+    ./vktrace -s 1 -p cube  -o c01.trace -l0 libvulkan_trace.so &
     P=$!
     sleep 3
     kill $P
 ) >/dev/null 2>&1
 mv 1.ppm 1_trace.ppm
-./vkreplay -s 1 -t c01.glv >/dev/null 2>&1
+./vkreplay -s 1 -t c01.trace >/dev/null 2>&1
 #cp cube 1.ppm  # For testing this script -- force a failure
 #rm 1.ppm       # For testing this script -- force a failure
 cmp -s 1.ppm 1_trace.ppm
diff --git a/vktrace/CMakeLists.txt b/vktrace/CMakeLists.txt
index b60e698..825bd0e 100644
--- a/vktrace/CMakeLists.txt
+++ b/vktrace/CMakeLists.txt
@@ -1,4 +1,4 @@
-PROJECT(glave)
+PROJECT(vktrace_project)
 if (WIN32)
     # For Windows, we need CMake version 3.0+ in order to "find_package(Qt5)":
     cmake_minimum_required(VERSION 3.0)
@@ -26,7 +26,7 @@
 endif()
 
 
-#set(CODE_GEN_DIR "glv_extensions/glave_vk_gen")
+#set(CODE_GEN_DIR "vktrace_extensions/glave_vk_gen")
 
 #execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../../vk-helper.py --abs_out_dir ${CMAKE_CURRENT_SOURCE_DIR}/src/${CODE_GEN_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../include/vulkan.h)
 
@@ -43,9 +43,9 @@
 #
 set(GLV_VULKAN_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 
-add_subdirectory(src/glvcommon)
-add_subdirectory(src/glvtrace)
-add_subdirectory(src/glvreplay)
+add_subdirectory(src/vktrace_common)
+add_subdirectory(src/vktrace_trace)
+add_subdirectory(src/vktrace_replay)
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 add_subdirectory(src/thirdparty/mhook/mhook-lib)
 add_subdirectory(src/thirdparty/mhook/disasm-lib)
@@ -65,10 +65,10 @@
 ENDMACRO()
 
 # now generate the list and add each of the subdirectories
-SUBDIRLIST(SUBDIRS ${SRC_DIR}/glv_extensions)
+SUBDIRLIST(SUBDIRS ${SRC_DIR}/vktrace_extensions)
 message("Adding extensions: '${SUBDIRS}'")
 FOREACH(subdir ${SUBDIRS})
-    add_subdirectory(${SRC_DIR}/glv_extensions/${subdir})
+    add_subdirectory(${SRC_DIR}/vktrace_extensions/${subdir})
 ENDFOREACH()
 
 
diff --git a/vktrace/README.md b/vktrace/README.md
index 70c55da..2175dfc 100644
--- a/vktrace/README.md
+++ b/vktrace/README.md
@@ -9,27 +9,27 @@
 ###Open###
 Freshly opened tool.
 
-![ScreenShot1](docs/images/Glave.png "Open")
+![ScreenShot1](docs/images/Vktrace.png "Open")
 
 ###Generate Trace###
 Click on "Generate Trace" button to launch the application with the trace and save the trace file, then prompt user to load it.
 
-![ScreenShot2](docs/images/Glave-GenerateTraceFile.png "Generate Trace")
+![ScreenShot2](docs/images/Vktrace-GenerateTraceFile.png "Generate Trace")
 
 ###Play Trace###
 Click "Play" and you will see the Vulkan entrypoints being replayed.
 
-![ScreenShot3](docs/images/Glave-LoadedAndPlaying.png "Play Trace")
+![ScreenShot3](docs/images/Vktrace-LoadedAndPlaying.png "Play Trace")
 
 ###Pause###
 "Pause" the replay and the upcoming entrypoint will be highlighted.  The timeline shows progress in the tracefile.
 
-![ScreenShot4](docs/images/Glave-Paused.png "Pause")
+![ScreenShot4](docs/images/Vktrace-Paused.png "Pause")
 
 ###Search For Memory###
 Search the trace file for an entrypoint and parameter.  In this case we find all the calls to a specifc memory object.
 
-![ScreenShot5](docs/images/Glave-SearchForMemory.png "Search For Memory")
+![ScreenShot5](docs/images/Vktrace-SearchForMemory.png "Search For Memory")
 
 ##Glave Status for Tracing and Replay##
 Based on vulkan.h Version 90
@@ -138,7 +138,7 @@
 ```
 Example to trace the spinning cube demo (Note: see other files for how to configure your ICD):
 ```
-cd C:\\Users\developer\\Glave\\_out64\\Debug
+cd C:\\Users\developer\\Vktrace\\_out64\\Debug
 
 glvtrace -p C:\\Users\developer\\vulkan\\_out64\\demos\\cube.exe
            -l0 C:\\Users\developer\\vulkan\\_out64\\tools\\glave\\Debug\\glvtrace_xgl.dll
@@ -156,7 +156,7 @@
 ```
 Example to replay trace file captured above
 ```
-cd C:\\Users\developer\\Glave\\_out64\\Debug
+cd C:\\Users\developer\\Vktrace\\_out64\\Debug
 glvreplay -t glvtrace_cube.glv
 ```
 ###Running debugger on Windows###
diff --git a/vktrace/docs/images/Glave-GenerateTraceFile.png b/vktrace/docs/images/Glave-GenerateTraceFile.png
deleted file mode 100755
index a193188..0000000
--- a/vktrace/docs/images/Glave-GenerateTraceFile.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/docs/images/Glave-LoadedAndPlaying.png b/vktrace/docs/images/Glave-LoadedAndPlaying.png
deleted file mode 100755
index 3ba6c17..0000000
--- a/vktrace/docs/images/Glave-LoadedAndPlaying.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/docs/images/Glave-Paused.png b/vktrace/docs/images/Glave-Paused.png
deleted file mode 100755
index 5e1e495..0000000
--- a/vktrace/docs/images/Glave-Paused.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/docs/images/Glave-SearchForMemory.png b/vktrace/docs/images/Glave-SearchForMemory.png
deleted file mode 100755
index 5524742..0000000
--- a/vktrace/docs/images/Glave-SearchForMemory.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/docs/images/Glave-Small.png b/vktrace/docs/images/Glave-Small.png
deleted file mode 100644
index ea16dc6..0000000
--- a/vktrace/docs/images/Glave-Small.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/docs/images/Glave.png b/vktrace/docs/images/Glave.png
deleted file mode 100755
index 48e1137..0000000
--- a/vktrace/docs/images/Glave.png
+++ /dev/null
Binary files differ
diff --git a/vktrace/src/glv_extensions/glvtrace_gl_fps/CMakeLists.txt b/vktrace/src/glv_extensions/glvtrace_gl_fps/CMakeLists.txt
deleted file mode 100644
index 7d17fae..0000000
--- a/vktrace/src/glv_extensions/glvtrace_gl_fps/CMakeLists.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-# this project is only available on Windows
-if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-
-project(glvtrace_gl_fps)
-
-include("${SRC_DIR}/build_options.cmake")
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../../..)
-
-include_directories(${CMAKE_CURRENT_BINARY_DIR})
-
-set(SRC_LIST
-    ${SRC_LIST}
-    glvtrace_gl_fps.c
-)
-
-set_source_files_properties( ${SRC_LIST} PROPERTIES LANGUAGE C)
-
-include_directories(
-    ${SRC_DIR}
-    ${SRC_DIR}/glvcommon
-    ${SRC_DIR}/glvtrace
-    ${SRC_DIR}/thirdparty
-)
-
-add_library(${PROJECT_NAME} SHARED ${SRC_LIST})
-
-target_link_libraries(${PROJECT_NAME} 
-    glvcommon
-    mhook
-)
-
-build_options_finalize()
-
-set_target_properties(glvtrace_gl_fps PROPERTIES LINKER_LANGUAGE C)
-
-endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
diff --git a/vktrace/src/glv_extensions/glvtrace_gl_fps/glvtrace_gl_fps.c b/vktrace/src/glv_extensions/glvtrace_gl_fps/glvtrace_gl_fps.c
deleted file mode 100644
index c0c088c..0000000
--- a/vktrace/src/glv_extensions/glvtrace_gl_fps/glvtrace_gl_fps.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  * Neither the name of NVIDIA CORPORATION nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// this tracer is really only valid on windows, so ifdef the entire file.
-#if defined(WIN32)
-
-#include <stdio.h>
-#include "glv_common.h"
-#include "glv_filelike.h"
-#include "glv_interconnect.h"
-#include "glv_trace_packet_identifiers.h"
-#include "mhook/mhook-lib/mhook.h"
-
-#pragma comment(lib, "opengl32.lib")
-
-// this is needed to be loaded by glvtrace
-GLVTRACER_EXPORT GLV_TRACER_ID __cdecl GLV_GetTracerId(void)
-{
-    return GLV_TID_GL_FPS;
-}
-
-// Pointers to real functions
-BOOL(APIENTRY * gReal_SwapBuffers)(HDC hdc) = SwapBuffers;
-
-BOOL g_bDisabled = FALSE;
-
-double g_frequency = 0.0;
-unsigned long long g_startTime = 0;
-unsigned long long g_frameCount = 0;
-
-BOOL APIENTRY hooked_SwapBuffers(HDC hdc)
-{
-    BOOL result = gReal_SwapBuffers(hdc);
-    unsigned long long difference;
-    double seconds;
-    LARGE_INTEGER tmp;
-    g_frameCount++;
-    QueryPerformanceCounter(&tmp);
-    difference = tmp.QuadPart - g_startTime;
-    seconds = (double)(difference) / g_frequency;
-    if (seconds > 1.0)
-    {
-        // it's been more than a second, report the frame rate
-        double frameRate = (double)(g_frameCount) / seconds;
-        glv_LogAlways("FPS: %f", frameRate);
-
-        // update start time and reset frame count
-        g_startTime = tmp.QuadPart;
-        g_frameCount = 0;
-    }
-
-    return result;
-}
-void AttachHooks()
-{
-    BOOL hookSuccess;
-    // If you need to debug startup, build with this set to true, then attach and change it to false.
-#ifdef _DEBUG
-    BOOL debugStartup = FALSE;
-    while (debugStartup);
-#endif
-
-    Mhook_Initialize();
-    Mhook_BeginMultiOperation(FALSE);
-    hookSuccess = TRUE;
-    if (gReal_SwapBuffers != NULL)
-    {
-        hookSuccess = Mhook_SetHook((PVOID*)&gReal_SwapBuffers, hooked_SwapBuffers);
-    }
-
-    if (!hookSuccess)
-    {
-        glv_LogError("Failed to hook SwapBuffers.\n");
-    }
-
-    Mhook_EndMultiOperation();
-}
-
-GLVTRACER_EXIT TrapExit(void)
-{
-    int i = 0;
-    ++i;
-}
-
-void DetachHooks()
-{
-    BOOL unhookSuccess = TRUE;
-    if (gReal_SwapBuffers != NULL)
-    {
-        unhookSuccess = Mhook_Unhook((PVOID*)&gReal_SwapBuffers);
-    }
-
-    if (!unhookSuccess)
-    {
-        glv_LogError("Failed to unhook SwapBuffers.\n");
-    }
-}
-
-BOOL APIENTRY DllMain( HMODULE hModule,
-                       DWORD  ul_reason_for_call,
-                       LPVOID lpReserved
-                     )
-{
-    char exePath[MAX_PATH];
-    char* substr = ((sizeof(void*) == 4)? "glvtrace32.exe" : "glvtrace64.exe");
-    GetModuleFileName(NULL, exePath, MAX_PATH);
-    hModule;
-    lpReserved;
-
-    // only do the hooking and networking if the tracer is NOT being loaded by glvtrace
-    if (strstr(exePath, substr) == NULL)
-    {
-       switch (ul_reason_for_call)
-        {
-        case DLL_PROCESS_ATTACH:
-        {
-            LARGE_INTEGER tmp;
-            gMessageStream = glv_MessageStream_create(FALSE, "127.0.0.1", GLV_BASE_PORT + GLV_TID_GL_FPS);
-
-            glv_trace_set_trace_file(glv_FileLike_create_msg(gMessageStream));
-            glv_tracelog_set_tracer_id(GLV_TID_GL_FPS);
-
-            glv_LogAlways("glvtrace_gl_fps loaded.");
-            if (QueryPerformanceFrequency(&tmp) == FALSE)
-            {
-                glv_LogError("QueryPerformanceFrequency failed, disabling tracer.");
-                g_bDisabled = TRUE;
-            }
-            else
-            {
-                g_frequency = (double)tmp.QuadPart;
-
-                QueryPerformanceCounter(&tmp);
-                g_startTime = tmp.QuadPart;
-
-                atexit(TrapExit);
-                AttachHooks();
-            }
-
-            break;
-        }
-        case DLL_PROCESS_DETACH:
-        {
-            if (!g_bDisabled)
-            {
-                DetachHooks();
-            }
-
-            GLV_DELETE(glv_trace_get_trace_file());
-            break;
-        }
-        default:
-            break;
-        }
-    }
-    return TRUE;
-}
-#endif
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/CMakeLists.txt b/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/CMakeLists.txt
deleted file mode 100644
index 5d209e8..0000000
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/CMakeLists.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-project(vulkan_replay)
-
-include("${SRC_DIR}/build_options.cmake")
-
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/codegen)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-vk-funcs     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvreplay_vk_func_ptrs.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-c            vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvreplay_vk_replay_gen.cpp)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-obj-mapper-h vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvreplay_vk_objmapper.h)
-
-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-set(OS_REPLAYER_LIBS
-    xcb
-)
-endif()
-
-if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-set(OS_REPLAYER_LIBS  )
-endif()
-
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES")
-
-set(SRC_LIST
-    ${SRC_LIST}
-    glvreplay_vk.cpp
-    glvreplay_vk_settings.cpp
-    glvreplay_vk_vkreplay.cpp
-    glvreplay_vk_vkdisplay.cpp
-    codegen/glvreplay_vk_replay_gen.cpp
-)
-
-set (HDR_LIST
-    glvreplay_vk.h
-    glvreplay_vk_settings.h
-    glvreplay_vk_vkdisplay.h
-    glvreplay_vk_vkreplay.h
-    codegen/glvreplay_vk_func_ptrs.h
-    codegen/glvreplay_vk_objmapper.h
-    ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_enum_string_helper.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_packet_id.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_swapchain_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_device_swapchain_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_debug_report_lunarg_packets.h
-)
-
-include_directories(
-    codegen
-    ${SRC_DIR}/glvreplay
-    ${SRC_DIR}/glvcommon
-    ${SRC_DIR}/thirdparty
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CODEGEN_GLVVK_DIR}
-    ${GLV_VULKAN_INCLUDE_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils
-)
-
-add_library(${PROJECT_NAME} STATIC ${SRC_LIST} ${HDR_LIST})
-
-target_link_libraries(${PROJECT_NAME} 
-    ${OS_REPLAYER_LIBS}
-    ${GLV_VULKAN_LIB}
-    glvcommon
-)
-
-build_options_finalize()
diff --git a/vktrace/src/glvreplay/CMakeLists.txt b/vktrace/src/glvreplay/CMakeLists.txt
deleted file mode 100644
index 6cd1a40..0000000
--- a/vktrace/src/glvreplay/CMakeLists.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(vkreplay)
-
-include("${SRC_DIR}/build_options.cmake")
-
-set(SRC_LIST
-    ${SRC_LIST}
-    glvreplay_factory.h
-    glvreplay_seq.h
-    glvreplay_window.h
-    glvreplay_main.cpp
-    glvreplay_seq.cpp
-    glvreplay_factory.cpp
-)
-
-include_directories(
-    ${SRC_DIR}/glvreplay
-    ${SRC_DIR}/glvcommon
-    ${SRC_DIR}/thirdparty
-    ${CMAKE_CURRENT_SOURCE_DIR}/../glv_extensions/glvvulkan/glvreplay_vk/
-)
-
-set (LIBRARIES glvcommon vulkan_replay)
-
-add_executable(${PROJECT_NAME} ${SRC_LIST})
-
-target_link_libraries(${PROJECT_NAME} 
-    ${LIBRARIES}
-)
-
-build_options_finalize()
diff --git a/vktrace/src/thirdparty/mhook/disasm-lib/CMakeLists.txt b/vktrace/src/thirdparty/mhook/disasm-lib/CMakeLists.txt
index ac675a3..8668539 100644
--- a/vktrace/src/thirdparty/mhook/disasm-lib/CMakeLists.txt
+++ b/vktrace/src/thirdparty/mhook/disasm-lib/CMakeLists.txt
@@ -5,7 +5,7 @@
 
 include_directories(
     ${SRC_DIR}/thirdparty/mhook/disasm-lib
-    ${SRC_DIR}/glvcommon
+    ${SRC_DIR}/vktrace_common
 )
 
 set(SRC_LIST
diff --git a/vktrace/src/thirdparty/mhook/mhook-lib/CMakeLists.txt b/vktrace/src/thirdparty/mhook/mhook-lib/CMakeLists.txt
index bb84735..3e8b789 100644
--- a/vktrace/src/thirdparty/mhook/mhook-lib/CMakeLists.txt
+++ b/vktrace/src/thirdparty/mhook/mhook-lib/CMakeLists.txt
@@ -6,7 +6,7 @@
 include_directories(
     ${SRC_DIR}/thirdparty/mhook/mhook-lib
     ${SRC_DIR}/thirdparty/mhook/disasm-lib
-    ${SRC_DIR}/glvcommon
+    ${SRC_DIR}/vktrace_common
 )
 
 set(SRC_LIST
@@ -22,7 +22,7 @@
 
 
 add_library(${PROJECT_NAME} STATIC ${SRC_LIST})
-target_link_libraries(${PROJECT_NAME} 
+target_link_libraries(${PROJECT_NAME}
     disasm
 )
 
diff --git a/vktrace/src/glvcommon/CMakeLists.txt b/vktrace/src/vktrace_common/CMakeLists.txt
similarity index 71%
rename from vktrace/src/glvcommon/CMakeLists.txt
rename to vktrace/src/vktrace_common/CMakeLists.txt
index d085f96..94fb929 100644
--- a/vktrace/src/glvcommon/CMakeLists.txt
+++ b/vktrace/src/vktrace_common/CMakeLists.txt
@@ -1,10 +1,10 @@
-project(glvcommon)
+project(vktrace_common)
 cmake_minimum_required(VERSION 2.8)
 
 include("${SRC_DIR}/build_options.cmake")
 
 include_directories(
-    ${SRC_DIR}/glvcommon
+    ${SRC_DIR}/vktrace_common
     ${SRC_DIR}/thirdparty
 )
 
@@ -14,13 +14,13 @@
 
 set(SRC_LIST
     ${SRC_LIST}
-    glv_filelike.c
-    glv_interconnect.c
-    glv_platform.c
-    glv_process.c
-    glv_settings.c
-    glv_tracelog.c
-    glv_trace_packet_utils.c
+    vktrace_filelike.c
+    vktrace_interconnect.c
+    vktrace_platform.c
+    vktrace_process.c
+    vktrace_settings.c
+    vktrace_tracelog.c
+    vktrace_trace_packet_utils.c
 )
 
 set_source_files_properties( ${SRC_LIST} PROPERTIES LANGUAGE C)
@@ -47,4 +47,4 @@
 
 build_options_finalize()
 
-set_target_properties(glvcommon PROPERTIES LINKER_LANGUAGE C)
+set_target_properties(vktrace_common PROPERTIES LINKER_LANGUAGE C)
diff --git a/vktrace/src/glvcommon/glv_common.h b/vktrace/src/vktrace_common/vktrace_common.h
similarity index 95%
rename from vktrace/src/glvcommon/glv_common.h
rename to vktrace/src/vktrace_common/vktrace_common.h
index 781b8c3..0e6309a 100644
--- a/vktrace/src/glvcommon/glv_common.h
+++ b/vktrace/src/vktrace_common/vktrace_common.h
@@ -31,10 +31,10 @@
 #include <stdint.h>
 #include <stdlib.h>
 
-#include "glv_platform.h"
+#include "vktrace_platform.h"
 
-#include "glv_memory.h"
-#include "glv_tracelog.h"
+#include "vktrace_memory.h"
+#include "vktrace_tracelog.h"
 
 #ifndef STRINGIFY
 #define STRINGIFY(x) #x
diff --git a/vktrace/src/glvcommon/glv_filelike.c b/vktrace/src/vktrace_common/vktrace_filelike.c
similarity index 98%
rename from vktrace/src/glvcommon/glv_filelike.c
rename to vktrace/src/vktrace_common/vktrace_filelike.c
index d727fff..c2fa590 100644
--- a/vktrace/src/glvcommon/glv_filelike.c
+++ b/vktrace/src/vktrace_common/vktrace_filelike.c
@@ -27,9 +27,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "glv_filelike.h"
-#include "glv_common.h"
-#include "glv_interconnect.h"
+#include "vktrace_filelike.h"
+#include "vktrace_common.h"
+#include "vktrace_interconnect.h"
 #include <assert.h>
 #include <stdlib.h>
 
diff --git a/vktrace/src/glvcommon/glv_filelike.h b/vktrace/src/vktrace_common/vktrace_filelike.h
similarity index 97%
rename from vktrace/src/glvcommon/glv_filelike.h
rename to vktrace/src/vktrace_common/vktrace_filelike.h
index bec2f8d..c48cc82 100644
--- a/vktrace/src/glvcommon/glv_filelike.h
+++ b/vktrace/src/vktrace_common/vktrace_filelike.h
@@ -35,8 +35,8 @@
 #pragma comment (lib, "Ws2_32.lib")
 #endif
 
-#include "glv_common.h"
-#include "glv_interconnect.h"
+#include "vktrace_common.h"
+#include "vktrace_interconnect.h"
 
 typedef struct MessageStream MessageStream;
 
diff --git a/vktrace/src/glvcommon/glv_interconnect.c b/vktrace/src/vktrace_common/vktrace_interconnect.c
similarity index 99%
rename from vktrace/src/glvcommon/glv_interconnect.c
rename to vktrace/src/vktrace_common/vktrace_interconnect.c
index 25aa56c..869d439 100644
--- a/vktrace/src/glvcommon/glv_interconnect.c
+++ b/vktrace/src/vktrace_common/vktrace_interconnect.c
@@ -27,10 +27,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "glv_interconnect.h"
-#include "glv_common.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_common.h"
 
-#include "glv_filelike.h"
+#include "vktrace_filelike.h"
 
 const size_t kSendBufferSize = 1024 * 1024;
 
diff --git a/vktrace/src/glvcommon/glv_interconnect.h b/vktrace/src/vktrace_common/vktrace_interconnect.h
similarity index 98%
rename from vktrace/src/glvcommon/glv_interconnect.h
rename to vktrace/src/vktrace_common/vktrace_interconnect.h
index d7677c4..a314f59 100644
--- a/vktrace/src/glvcommon/glv_interconnect.h
+++ b/vktrace/src/vktrace_common/vktrace_interconnect.h
@@ -30,7 +30,7 @@
 #pragma once
 
 #include <errno.h>
-#include "glv_common.h"
+#include "vktrace_common.h"
 
 #if defined(PLATFORM_POSIX)
     #include <arpa/inet.h>
diff --git a/vktrace/src/glvcommon/glv_memory.h b/vktrace/src/vktrace_common/vktrace_memory.h
similarity index 100%
rename from vktrace/src/glvcommon/glv_memory.h
rename to vktrace/src/vktrace_common/vktrace_memory.h
diff --git a/vktrace/src/glvcommon/glv_mhook.h b/vktrace/src/vktrace_common/vktrace_mhook.h
similarity index 97%
rename from vktrace/src/glvcommon/glv_mhook.h
rename to vktrace/src/vktrace_common/vktrace_mhook.h
index a1dc615..6341547 100644
--- a/vktrace/src/glvcommon/glv_mhook.h
+++ b/vktrace/src/vktrace_common/vktrace_mhook.h
@@ -25,7 +25,7 @@
 #pragma once
 
 #include "mhook/mhook-lib/mhook.h"
-#include "glv_tracelog.h"
+#include "vktrace_tracelog.h"
 #include <stdio.h>
 
 #define GLV_MHOOK_SETHOOK(entrypoint) Mhook_SetHook((PVOID*)&real_##entrypoint, hooked_##entrypoint); \
diff --git a/vktrace/src/glvcommon/glv_platform.c b/vktrace/src/vktrace_common/vktrace_platform.c
similarity index 99%
rename from vktrace/src/glvcommon/glv_platform.c
rename to vktrace/src/vktrace_common/vktrace_platform.c
index b5d5d1a..c4812ad 100644
--- a/vktrace/src/glvcommon/glv_platform.c
+++ b/vktrace/src/vktrace_common/vktrace_platform.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  *
  **************************************************************************/
-#include "glv_platform.h"
+#include "vktrace_platform.h"
 
 #if defined(PLATFORM_LINUX)
-#include "glv_common.h"
+#include "vktrace_common.h"
 #include <pthread.h>
 #endif
 
diff --git a/vktrace/src/glvcommon/glv_platform.h b/vktrace/src/vktrace_common/vktrace_platform.h
similarity index 98%
rename from vktrace/src/glvcommon/glv_platform.h
rename to vktrace/src/vktrace_common/vktrace_platform.h
index 55de23b..64087cb 100644
--- a/vktrace/src/glvcommon/glv_platform.h
+++ b/vktrace/src/vktrace_common/vktrace_platform.h
@@ -71,7 +71,7 @@
 #endif
 
 #if defined(WIN32)
-#include "glv_common.h"
+#include "vktrace_common.h"
 #endif
 
 // return the process ID of current process
diff --git a/vktrace/src/glvcommon/glv_process.c b/vktrace/src/vktrace_common/vktrace_process.c
similarity index 98%
rename from vktrace/src/glvcommon/glv_process.c
rename to vktrace/src/vktrace_common/vktrace_process.c
index 6586d42..7991cc1 100644
--- a/vktrace/src/glvcommon/glv_process.c
+++ b/vktrace/src/vktrace_common/vktrace_process.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  *
  **************************************************************************/
-#include "glv_process.h"
+#include "vktrace_process.h"
 
 
 BOOL glv_process_spawn(glv_process_info* pInfo)
diff --git a/vktrace/src/glvcommon/glv_process.h b/vktrace/src/vktrace_common/vktrace_process.h
similarity index 96%
rename from vktrace/src/glvcommon/glv_process.h
rename to vktrace/src/vktrace_common/vktrace_process.h
index 1b4f06f..467ef55 100644
--- a/vktrace/src/glvcommon/glv_process.h
+++ b/vktrace/src/vktrace_common/vktrace_process.h
@@ -24,8 +24,8 @@
  **************************************************************************/
 #pragma once
 
-#include "glv_platform.h"
-#include "glv_trace_packet_identifiers.h"
+#include "vktrace_platform.h"
+#include "vktrace_trace_packet_identifiers.h"
 
 typedef struct glv_process_capture_trace_thread_info glv_process_capture_trace_thread_info;
 
diff --git a/vktrace/src/glvcommon/glv_settings.c b/vktrace/src/vktrace_common/vktrace_settings.c
similarity index 99%
rename from vktrace/src/glvcommon/glv_settings.c
rename to vktrace/src/vktrace_common/vktrace_settings.c
index 59030ab..b5bd23c 100644
--- a/vktrace/src/glvcommon/glv_settings.c
+++ b/vktrace/src/vktrace_common/vktrace_settings.c
@@ -23,7 +23,7 @@
  *
  **************************************************************************/
 
-#include "glv_settings.h"
+#include "vktrace_settings.h"
 
 // ------------------------------------------------------------------------------------------------
 void glv_SettingInfo_print(const glv_SettingInfo* pSetting)
diff --git a/vktrace/src/glvcommon/glv_settings.h b/vktrace/src/vktrace_common/vktrace_settings.h
similarity index 98%
rename from vktrace/src/glvcommon/glv_settings.h
rename to vktrace/src/vktrace_common/vktrace_settings.h
index 572c7f5..97a0d47 100644
--- a/vktrace/src/glvcommon/glv_settings.h
+++ b/vktrace/src/vktrace_common/vktrace_settings.h
@@ -24,7 +24,7 @@
  **************************************************************************/
 #pragma once
 
-#include "glv_common.h"
+#include "vktrace_common.h"
 
 typedef enum GLV_SETTING_TYPE
 {
diff --git a/vktrace/src/glvcommon/glv_trace_packet_identifiers.h b/vktrace/src/vktrace_common/vktrace_trace_packet_identifiers.h
similarity index 99%
rename from vktrace/src/glvcommon/glv_trace_packet_identifiers.h
rename to vktrace/src/vktrace_common/vktrace_trace_packet_identifiers.h
index 250f37d..d1fff98 100644
--- a/vktrace/src/glvcommon/glv_trace_packet_identifiers.h
+++ b/vktrace/src/vktrace_common/vktrace_trace_packet_identifiers.h
@@ -24,7 +24,7 @@
  **************************************************************************/
 #pragma once
 
-#include "glv_common.h"
+#include "vktrace_common.h"
 
 #define GLV_TRACE_FILE_VERSION_2 0x0002
 #define GLV_TRACE_FILE_VERSION_3 0x0003
diff --git a/vktrace/src/glvcommon/glv_trace_packet_utils.c b/vktrace/src/vktrace_common/vktrace_trace_packet_utils.c
similarity index 98%
rename from vktrace/src/glvcommon/glv_trace_packet_utils.c
rename to vktrace/src/vktrace_common/vktrace_trace_packet_utils.c
index e7fc527..9414bf6 100644
--- a/vktrace/src/glvcommon/glv_trace_packet_utils.c
+++ b/vktrace/src/vktrace_common/vktrace_trace_packet_utils.c
@@ -22,9 +22,9 @@
  * THE SOFTWARE.
  *
  **************************************************************************/
-#include "glv_trace_packet_utils.h"
-#include "glv_interconnect.h"
-#include "glv_filelike.h"
+#include "vktrace_trace_packet_utils.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_filelike.h"
 #ifdef WIN32
 #include <rpc.h>
 #pragma comment (lib, "Rpcrt4.lib")
diff --git a/vktrace/src/glvcommon/glv_trace_packet_utils.h b/vktrace/src/vktrace_common/vktrace_trace_packet_utils.h
similarity index 97%
rename from vktrace/src/glvcommon/glv_trace_packet_utils.h
rename to vktrace/src/vktrace_common/vktrace_trace_packet_utils.h
index b8e0076..5897edb 100644
--- a/vktrace/src/glvcommon/glv_trace_packet_utils.h
+++ b/vktrace/src/vktrace_common/vktrace_trace_packet_utils.h
@@ -24,10 +24,10 @@
  **************************************************************************/
 #pragma once
 
-#include "glv_trace_packet_identifiers.h"
-#include "glv_filelike.h"
-#include "glv_memory.h"
-#include "glv_process.h"
+#include "vktrace_trace_packet_identifiers.h"
+#include "vktrace_filelike.h"
+#include "vktrace_memory.h"
+#include "vktrace_process.h"
 
 // pUuid is expected to be an array of 4 unsigned ints
 void glv_gen_uuid(uint32_t* pUuid);
diff --git a/vktrace/src/glvcommon/glv_tracelog.c b/vktrace/src/vktrace_common/vktrace_tracelog.c
similarity index 97%
rename from vktrace/src/glvcommon/glv_tracelog.c
rename to vktrace/src/vktrace_common/vktrace_tracelog.c
index f5ea6a0..51dbbc9 100644
--- a/vktrace/src/glvcommon/glv_tracelog.c
+++ b/vktrace/src/vktrace_common/vktrace_tracelog.c
@@ -27,10 +27,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "glv_platform.h"
+#include "vktrace_platform.h"
 
-#include "glv_tracelog.h"
-#include "glv_trace_packet_utils.h"
+#include "vktrace_tracelog.h"
+#include "vktrace_trace_packet_utils.h"
 
 #include <assert.h>
 #include <stdio.h>
diff --git a/vktrace/src/glvcommon/glv_tracelog.h b/vktrace/src/vktrace_common/vktrace_tracelog.h
similarity index 100%
rename from vktrace/src/glvcommon/glv_tracelog.h
rename to vktrace/src/vktrace_common/vktrace_tracelog.h
diff --git a/vktrace/src/glvcommon/wintypes.h b/vktrace/src/vktrace_common/wintypes.h
similarity index 100%
rename from vktrace/src/glvcommon/wintypes.h
rename to vktrace/src/vktrace_common/wintypes.h
diff --git a/vktrace/src/glv_extensions/glvvulkan/CMakeLists.txt b/vktrace/src/vktrace_extensions/vktracevulkan/CMakeLists.txt
similarity index 91%
rename from vktrace/src/glv_extensions/glvvulkan/CMakeLists.txt
rename to vktrace/src/vktrace_extensions/vktracevulkan/CMakeLists.txt
index cd7bcf3..128731d 100644
--- a/vktrace/src/glv_extensions/glvvulkan/CMakeLists.txt
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/CMakeLists.txt
@@ -1,4 +1,4 @@
-PROJECT(glvvulkan)
+PROJECT(vktracevulkan)
 cmake_minimum_required(VERSION 2.8)
 
 #include(FindPkgConfig)
@@ -70,15 +70,15 @@
 #execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DRIVER_DIR}/vk_helper.py --gen_enum_string_helper ${GLV_VULKAN_DEBUG_REPORT_LUNARG_HEADER} --abs_out_dir ${CMAKE_CURRENT_SOURCE_DIR}/${GLV_VULKAN_CODEGEN_UTILS})
 
 # Run a codegen script to generate glave-specific vulkan utils
-set(CODEGEN_GLVVK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/codegen_glvvk_utils")
+set(CODEGEN_GLVVK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/codegen_vktrace_utils")
 file(MAKE_DIRECTORY ${CODEGEN_GLVVK_DIR})
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-packet-id vk_core OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/glv_vk_packet_id.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-core-trace-packets vk_core OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/glv_vk_vk_packets.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_wsi_swapchain OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_swapchain_packets.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_wsi_device_swapchain OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_device_swapchain_packets.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_debug_report_lunarg OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/glv_vk_vk_debug_report_lunarg_packets.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-packet-id vk_core OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/vktrace_vk_packet_id.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-core-trace-packets vk_core OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_packets.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_wsi_swapchain OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_swapchain_packets.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_wsi_device_swapchain OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_device_swapchain_packets.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-packets vk_debug_report_lunarg OUTPUT_FILE ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_debug_report_lunarg_packets.h)
 
 # Directories which actually contain vulkan-specific glave plugins.
-add_subdirectory(glvreplay_vk/)
-add_subdirectory(glvtrace_vk/)
+add_subdirectory(vkreplay/)
+add_subdirectory(vktrace/)
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/layers/layers_config.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/layers/layers_config.cpp
similarity index 100%
rename from vktrace/src/glv_extensions/glvvulkan/layers/layers_config.cpp
rename to vktrace/src/vktrace_extensions/vktracevulkan/layers/layers_config.cpp
diff --git a/vktrace/src/glv_extensions/glvvulkan/layers/layers_config.h b/vktrace/src/vktrace_extensions/vktracevulkan/layers/layers_config.h
similarity index 100%
rename from vktrace/src/glv_extensions/glvvulkan/layers/layers_config.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/layers/layers_config.h
diff --git a/vktrace/src/glv_extensions/glvvulkan/layers/glave_snapshot.c b/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
similarity index 99%
rename from vktrace/src/glv_extensions/glvvulkan/layers/glave_snapshot.c
rename to vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
index 8416ba5..a4bb7c4 100644
--- a/vktrace/src/glv_extensions/glvvulkan/layers/glave_snapshot.c
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.c
@@ -26,7 +26,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "loader_platform.h"
-#include "glave_snapshot.h"
+#include "vktrace_snapshot.h"
 #include "vk_struct_string_helper.h"
 
 #define LAYER_NAME_STR "GlaveSnapshot"
diff --git a/vktrace/src/glv_extensions/glvvulkan/layers/glave_snapshot.h b/vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.h
similarity index 100%
rename from vktrace/src/glv_extensions/glvvulkan/layers/glave_snapshot.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/layers/vktrace_snapshot.h
diff --git a/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/CMakeLists.txt b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/CMakeLists.txt
new file mode 100644
index 0000000..3c49909
--- /dev/null
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/CMakeLists.txt
@@ -0,0 +1,67 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(vulkan_replay)
+
+include("${SRC_DIR}/build_options.cmake")
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/codegen)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-vk-funcs     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vkreplay_vk_func_ptrs.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-c            vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vkreplay_vk_replay_gen.cpp)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-replay-obj-mapper-h vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vkreplay_vk_objmapper.h)
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+set(OS_REPLAYER_LIBS
+    xcb
+)
+endif()
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+set(OS_REPLAYER_LIBS  )
+endif()
+
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES")
+
+set(SRC_LIST
+    ${SRC_LIST}
+    vkreplay.cpp
+    vkreplay_settings.cpp
+    vkreplay_vkreplay.cpp
+    vkreplay_vkdisplay.cpp
+    codegen/vkreplay_vk_replay_gen.cpp
+)
+
+set (HDR_LIST
+    vkreplay.h
+    vkreplay_settings.h
+    vkreplay_vkdisplay.h
+    vkreplay_vkreplay.h
+    codegen/vkreplay_vk_func_ptrs.h
+    codegen/vkreplay_vk_objmapper.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_enum_string_helper.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_packet_id.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_swapchain_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_device_swapchain_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_debug_report_lunarg_packets.h
+)
+
+include_directories(
+    codegen
+    ${SRC_DIR}/vktrace_replay
+    ${SRC_DIR}/vktrace_common
+    ${SRC_DIR}/thirdparty
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CODEGEN_GLVVK_DIR}
+    ${GLV_VULKAN_INCLUDE_DIR}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils
+)
+
+add_library(${PROJECT_NAME} STATIC ${SRC_LIST} ${HDR_LIST})
+
+target_link_libraries(${PROJECT_NAME} 
+    ${OS_REPLAYER_LIBS}
+    ${GLV_VULKAN_LIB}
+    vktrace_common
+)
+
+build_options_finalize()
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.cpp
similarity index 97%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.cpp
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.cpp
index 573d80f..1be1645 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.cpp
@@ -23,13 +23,13 @@
  *
  **************************************************************************/
 #include <inttypes.h>
-#include "glvreplay_vk.h"
-#include "glvreplay_vk_vkreplay.h"
+#include "vkreplay.h"
+#include "vkreplay_vkreplay.h"
 
 extern "C"
 {
-#include "glv_vk_packet_id.h"
-#include "glv_tracelog.h"
+#include "vktrace_vk_packet_id.h"
+#include "vktrace_tracelog.h"
 }
 
 vkReplay* g_pReplayer = NULL;
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.h b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.h
similarity index 95%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.h
index 15029b6..66f4866 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk.h
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay.h
@@ -23,9 +23,9 @@
  *
  **************************************************************************/
 #pragma once
-#include "glvreplay_window.h"
-#include "glvreplay_factory.h"
-#include "glvreplay_vk_settings.h"
+#include "vkreplay_window.h"
+#include "vkreplay_factory.h"
+#include "vkreplay_settings.h"
 #include "vk_debug_report_lunarg.h"
 
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.cpp
similarity index 89%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.cpp
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.cpp
index 2678646..6f9f8ad 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.cpp
@@ -24,13 +24,13 @@
  **************************************************************************/
 #include "vk_layer.h"
 
-#include "glvreplay_vk_settings.h"
+#include "vkreplay_settings.h"
 // declared as extern in header
-static glvreplay_vk_settings s_defaultVkReplaySettings = { 1, "",
-                                                            STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK),
-                                                            STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK),
-                                                            STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK)};
-glvreplay_vk_settings g_vkReplaySettings;
+static vkreplay_settings s_defaultVkReplaySettings = { 1, "",
+                                                       STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK),
+                                                       STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK),
+                                                       STRINGIFY(VK_DBG_LAYER_LEVEL_ERROR), STRINGIFY(VK_DBG_LAYER_ACTION_CALLBACK)};
+vkreplay_settings g_vkReplaySettings;
 
 glv_SettingInfo g_vk_settings_info[] =
 {
@@ -44,7 +44,7 @@
     { "dsda", "ObjectTrackerDebugAction", GLV_SETTING_STRING, &g_vkReplaySettings.objectTrackerDebugAction, &s_defaultVkReplaySettings.objectTrackerDebugAction, TRUE, "ObjectTracker Layer debug action"},};
 glv_SettingGroup g_vkReplaySettingGroup =
 {
-    "glvreplay_vk",
+    "vkreplay_vk",
     sizeof(g_vk_settings_info) / sizeof(g_vk_settings_info[0]),
     &g_vk_settings_info[0]
 };
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.h b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.h
similarity index 92%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.h
index 4d1badf..b78286c 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_settings.h
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_settings.h
@@ -27,12 +27,12 @@
 
 extern "C"
 {
-#include "glv_settings.h"
+#include "vktrace_settings.h"
 }
 
 #include <vulkan.h>
 
-typedef struct glvreplay_vk_settings
+typedef struct vkreplay_settings
 {
     uint32_t debugLevel;
     const char* enableLayers;
@@ -42,9 +42,9 @@
     const char* memTrackerDebugAction;
     const char* objectTrackerReportLevel;
     const char* objectTrackerDebugAction;
-} glvreplay_vk_settings;
+} vkreplay_settings;
 
-extern glvreplay_vk_settings g_vkReplaySettings;
+extern vkreplay_settings g_vkReplaySettings;
 extern glv_SettingGroup g_vkReplaySettingGroup;
 
 void apply_layerSettings_overrides();
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
similarity index 98%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.cpp
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
index 0eecab5..cf61357 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.cpp
@@ -23,9 +23,9 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include "glvreplay_vk_vkreplay.h"
+#include "vkreplay_vkreplay.h"
 
-#define APP_NAME "glvreplay_vk"
+#define APP_NAME "vkreplay_vk"
 #define IDI_ICON 101
 
 vkDisplay::vkDisplay()
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.h b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.h
similarity index 98%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.h
index 15f1edc..2f3ec6b 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkdisplay.h
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkdisplay.h
@@ -25,7 +25,7 @@
 
 #pragma once
 
-#include "glvreplay_vk_vkreplay.h"
+#include "vkreplay_vkreplay.h"
 
 class vkDisplay: public glv_replay::DisplayImp {
 friend class vkReplay;
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.cpp b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
similarity index 99%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.cpp
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
index 12802ba..3a11a26 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.cpp
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.cpp
@@ -24,15 +24,15 @@
  */
 
 #include "vulkan.h"
-#include "glvreplay_vk_vkreplay.h"
-#include "glvreplay_vk.h"
-#include "glvreplay_vk_settings.h"
+#include "vkreplay_vkreplay.h"
+#include "vkreplay.h"
+#include "vkreplay_settings.h"
 
 #include <algorithm>
 #include <queue>
 
 extern "C" {
-#include "glv_vk_vk_packets.h"
+#include "vktrace_vk_vk_packets.h"
 #include "vk_enum_string_helper.h"
 }
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.h b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.h
similarity index 94%
rename from vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.h
index 6b1d8da..8bb9e74 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvreplay_vk/glvreplay_vk_vkreplay.h
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vkreplay/vkreplay_vkreplay.h
@@ -32,15 +32,15 @@
 #include <xcb/xcb.h>
 
 #endif
-#include "glvreplay_window.h"
-#include "glvreplay_factory.h"
-#include "glv_trace_packet_identifiers.h"
+#include "vkreplay_window.h"
+#include "vkreplay_factory.h"
+#include "vktrace_trace_packet_identifiers.h"
 
 extern "C" {
-#include "glv_vk_vk_packets.h"
-#include "glv_vk_vk_wsi_swapchain_packets.h"
-#include "glv_vk_vk_wsi_device_swapchain_packets.h"
-#include "glv_vk_vk_debug_report_lunarg_packets.h"
+#include "vktrace_vk_vk_packets.h"
+#include "vktrace_vk_vk_wsi_swapchain_packets.h"
+#include "vktrace_vk_vk_wsi_device_swapchain_packets.h"
+#include "vktrace_vk_vk_debug_report_lunarg_packets.h"
 // TODO138 : Need to add packets files for new wsi headers
 }
 
@@ -48,10 +48,9 @@
 #include "vk_debug_report_lunarg.h"
 #include "vk_wsi_swapchain.h"
 #include "vk_wsi_device_swapchain.h"
-//#include "glave_snapshot.h"
-#include "glvreplay_vk_vkdisplay.h"
-#include "glvreplay_vk_func_ptrs.h"
-#include "glvreplay_vk_objmapper.h"
+#include "vkreplay_vkdisplay.h"
+#include "vkreplay_vk_func_ptrs.h"
+#include "vkreplay_vk_objmapper.h"
 
 #define CHECK_RETURN_VALUE(entrypoint) returnValue = handle_replay_errors(#entrypoint, replayResult, pPacket->result, returnValue);
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/CMakeLists.txt b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/CMakeLists.txt
similarity index 69%
rename from vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/CMakeLists.txt
rename to vktrace/src/vktrace_extensions/vktracevulkan/vktrace/CMakeLists.txt
index 61a87b2..21e7713 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/CMakeLists.txt
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/CMakeLists.txt
@@ -5,14 +5,14 @@
 include("${SRC_DIR}/build_options.cmake")
 
 file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/codegen)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-trace-h     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-trace-c     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk.c)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_wsi_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_wsi_swapchain.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_wsi_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_wsi_swapchain.c)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_wsi_device_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_wsi_device_swapchain.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_wsi_device_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_wsi_device_swapchain.c)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_debug_report_lunarg OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_debug_report_lunarg.h)
-execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_debug_report_lunarg OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/glvtrace_vk_vk_debug_report_lunarg.c)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-trace-h     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-trace-c     vk_core OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk.c)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_wsi_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_wsi_swapchain.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_wsi_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_wsi_swapchain.c)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_wsi_device_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_wsi_device_swapchain.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_wsi_device_swapchain OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_wsi_device_swapchain.c)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-h vk_debug_report_lunarg OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_debug_report_lunarg.h)
+execute_process(COMMAND ${PYTHON_EXECUTABLE} ${GLV_VULKAN_DIR}/vktrace_generate.py glave-ext-trace-c vk_debug_report_lunarg OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/codegen/vktrace_vk_vk_debug_report_lunarg.c)
 
 if (WIN32)
     # Put vulkan_trace.dll in the same directory as vktrace.exe
@@ -23,12 +23,12 @@
 
 set(SRC_LIST
     ${SRC_LIST}
-    glvtrace_vk.c
-    glvtrace_vk_trace.c
-    codegen/glvtrace_vk_vk.c
-    codegen/glvtrace_vk_vk_debug_report_lunarg.c
-    codegen/glvtrace_vk_vk_wsi_swapchain.c
-    codegen/glvtrace_vk_vk_wsi_device_swapchain.c
+    vktrace_lib.c
+    vktrace_lib_trace.c
+    codegen/vktrace_vk_vk.c
+    codegen/vktrace_vk_vk_debug_report_lunarg.c
+    codegen/vktrace_vk_vk_wsi_swapchain.c
+    codegen/vktrace_vk_vk_wsi_device_swapchain.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_struct_size_helper.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_wsi_swapchain_struct_size_helper.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_wsi_device_swapchain_struct_size_helper.c
@@ -38,16 +38,16 @@
 set_source_files_properties( ${SRC_LIST} PROPERTIES LANGUAGE C)
 
 set (HDR_LIST
-    glvtrace_vk_helpers.h
-    codegen/glvtrace_vk_vk.h
-    codegen/glvtrace_vk_vk_debug_report_lunarg.h
-    codegen/glvtrace_vk_vk_wsi_swapchain.h
-    codegen/glvtrace_vk_vk_wsi_device_swapchain.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_packet_id.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_debug_report_lunarg_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_swapchain_packets.h
-    ${CODEGEN_GLVVK_DIR}/glv_vk_vk_wsi_device_swapchain_packets.h
+    vktrace_lib_helpers.h
+    codegen/vktrace_vk_vk.h
+    codegen/vktrace_vk_vk_debug_report_lunarg.h
+    codegen/vktrace_vk_vk_wsi_swapchain.h
+    codegen/vktrace_vk_vk_wsi_device_swapchain.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_packet_id.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_debug_report_lunarg_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_swapchain_packets.h
+    ${CODEGEN_GLVVK_DIR}/vktrace_vk_vk_wsi_device_swapchain_packets.h
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_struct_size_helper.h
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_wsi_swapchain_struct_size_helper.h
     ${CMAKE_CURRENT_SOURCE_DIR}/../vulkan/codegen_utils/vk_wsi_device_swapchain_struct_size_helper.h
@@ -56,8 +56,8 @@
 
 include_directories(
     codegen
-    ${SRC_DIR}/glvcommon
-    ${SRC_DIR}/glvtrace
+    ${SRC_DIR}/vktrace_common
+    ${SRC_DIR}/vktrace_trace
     ${SRC_DIR}/thirdparty
     ${CMAKE_CURRENT_SOURCE_DIR}
     ${CODEGEN_GLVVK_DIR}
@@ -84,7 +84,7 @@
 endif()
 
 target_link_libraries(${PROJECT_NAME}
-    glvcommon
+    vktrace_common
     ${GLV_VULKAN_LIB}
     ${OS_TRACER_LIBS}
 )
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk.c b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib.c
similarity index 97%
rename from vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk.c
rename to vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib.c
index 0dae939..82486bb 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk.c
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib.c
@@ -26,10 +26,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "glv_common.h"
-#include "glv_filelike.h"
-#include "glv_interconnect.h"
-#include "glvtrace_vk_vk.h"
+#include "vktrace_common.h"
+#include "vktrace_filelike.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_vk_vk.h"
 
 // this is needed to be loaded by glvtrace
 GLVTRACER_EXPORT GLV_TRACER_ID GLVTRACER_CDECL GLV_GetTracerId(void)
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_helpers.h b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_helpers.h
similarity index 98%
rename from vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_helpers.h
rename to vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_helpers.h
index 6507ff7..67948d7 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_helpers.h
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_helpers.h
@@ -24,11 +24,11 @@
  */
 #pragma once
 
-#include "glv_platform.h"
-#include "glvtrace_vk_vk.h"
+#include "vktrace_platform.h"
+#include "vktrace_vk_vk.h"
 #include "vk_struct_size_helper.h"
 
-// defined in generated file: glvtrace_vk_vk.c
+// defined in generated file: vktrace_vk_vk.c
 extern BOOL isHooked;
 
 // Support for shadowing CPU mapped memory
@@ -50,7 +50,7 @@
     unsigned int capacity;
 } VKMemInfo;
 
-// defined in manually written file: glvtrace_vk_trace.c
+// defined in manually written file: vktrace_vk_trace.c
 extern VKMemInfo g_memInfo;
 extern GLV_CRITICAL_SECTION g_memInfoLock;
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_trace.c b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_trace.c
similarity index 98%
rename from vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_trace.c
rename to vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_trace.c
index e42d2ec..aa9de47 100644
--- a/vktrace/src/glv_extensions/glvvulkan/glvtrace_vk/glvtrace_vk_trace.c
+++ b/vktrace/src/vktrace_extensions/vktracevulkan/vktrace/vktrace_lib_trace.c
@@ -25,22 +25,22 @@
 #include <stdbool.h>
 
 #include "vulkan.h"
-#include "glv_platform.h"
-#include "glv_common.h"
-#include "glvtrace_vk_vk_wsi_swapchain.h"
-#include "glvtrace_vk_vk_wsi_device_swapchain.h"
+#include "vktrace_platform.h"
+#include "vktrace_common.h"
+#include "vktrace_vk_vk_wsi_swapchain.h"
+#include "vktrace_vk_vk_wsi_device_swapchain.h"
 #include "vk_wsi_device_swapchain_struct_size_helper.h"
-#include "glvtrace_vk_helpers.h"
-#include "glvtrace_vk_vk.h"
-#include "glv_interconnect.h"
-#include "glv_filelike.h"
+#include "vktrace_lib_helpers.h"
+#include "vktrace_vk_vk.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_filelike.h"
 #ifdef WIN32
 #include "mhook/mhook-lib/mhook.h"
 #endif
-#include "glv_trace_packet_utils.h"
+#include "vktrace_trace_packet_utils.h"
 #include <stdio.h>
 
-// declared as extern in glvtrace_vk_helpers.h
+// declared as extern in vktrace_lib_helpers.h
 GLV_CRITICAL_SECTION g_memInfoLock;
 VKMemInfo g_memInfo = {0, NULL, NULL, 0};
 
diff --git a/vktrace/src/glv_extensions/glvvulkan/vulkan/__init__.py b/vktrace/src/vktrace_extensions/vktracevulkan/vulkan/__init__.py
similarity index 100%
rename from vktrace/src/glv_extensions/glvvulkan/vulkan/__init__.py
rename to vktrace/src/vktrace_extensions/vktracevulkan/vulkan/__init__.py
diff --git a/vktrace/src/vktrace_replay/CMakeLists.txt b/vktrace/src/vktrace_replay/CMakeLists.txt
new file mode 100644
index 0000000..5bc1807
--- /dev/null
+++ b/vktrace/src/vktrace_replay/CMakeLists.txt
@@ -0,0 +1,31 @@
+cmake_minimum_required(VERSION 2.8)
+project(vkreplay)
+
+include("${SRC_DIR}/build_options.cmake")
+
+set(SRC_LIST
+    ${SRC_LIST}
+    vkreplay_factory.h
+    vkreplay_seq.h
+    vkreplay_window.h
+    vkreplay_main.cpp
+    vkreplay_seq.cpp
+    vkreplay_factory.cpp
+)
+
+include_directories(
+    ${SRC_DIR}/vktrace_replay
+    ${SRC_DIR}/vktrace_common
+    ${SRC_DIR}/thirdparty
+    ${CMAKE_CURRENT_SOURCE_DIR}/../vktrace_extensions/vktracevulkan/vkreplay/
+)
+
+set (LIBRARIES vktrace_common vulkan_replay)
+
+add_executable(${PROJECT_NAME} ${SRC_LIST})
+
+target_link_libraries(${PROJECT_NAME}
+    ${LIBRARIES}
+)
+
+build_options_finalize()
diff --git a/vktrace/src/glvreplay/glvreplay_factory.cpp b/vktrace/src/vktrace_replay/vkreplay_factory.cpp
similarity index 97%
rename from vktrace/src/glvreplay/glvreplay_factory.cpp
rename to vktrace/src/vktrace_replay/vkreplay_factory.cpp
index 843a83a..cb0b2ca 100644
--- a/vktrace/src/glvreplay/glvreplay_factory.cpp
+++ b/vktrace/src/vktrace_replay/vkreplay_factory.cpp
@@ -23,9 +23,9 @@
  *
  **************************************************************************/
 
-#include "glvreplay_factory.h"
-#include "glv_trace_packet_identifiers.h"
-#include "glvreplay_vk.h"
+#include "vkreplay_factory.h"
+#include "vktrace_trace_packet_identifiers.h"
+#include "vkreplay.h"
 
 namespace glv_replay {
 
diff --git a/vktrace/src/glvreplay/glvreplay_factory.h b/vktrace/src/vktrace_replay/vkreplay_factory.h
similarity index 95%
rename from vktrace/src/glvreplay/glvreplay_factory.h
rename to vktrace/src/vktrace_replay/vkreplay_factory.h
index 4186965..4944a7e 100644
--- a/vktrace/src/glvreplay/glvreplay_factory.h
+++ b/vktrace/src/vktrace_replay/vkreplay_factory.h
@@ -25,12 +25,12 @@
 #pragma once
 
 extern "C" {
-#include "glv_common.h"
-#include "glv_settings.h"
-#include "glv_trace_packet_identifiers.h"
+#include "vktrace_common.h"
+#include "vktrace_settings.h"
+#include "vktrace_trace_packet_identifiers.h"
 }
-#include "glvreplay_window.h"
-#include "glvreplay_main.h"
+#include "vkreplay_window.h"
+#include "vkreplay_main.h"
 
 namespace glv_replay {
 
diff --git a/vktrace/src/glvreplay/glvreplay_main.cpp b/vktrace/src/vktrace_replay/vkreplay_main.cpp
similarity index 97%
rename from vktrace/src/glvreplay/glvreplay_main.cpp
rename to vktrace/src/vktrace_replay/vkreplay_main.cpp
index d5c722f..4fa9a5e 100644
--- a/vktrace/src/glvreplay/glvreplay_main.cpp
+++ b/vktrace/src/vktrace_replay/vkreplay_main.cpp
@@ -26,15 +26,15 @@
 #include <stdio.h>
 #include <string>
 extern "C" {
-#include "glv_common.h"
-#include "glv_tracelog.h"
-#include "glv_filelike.h"
-#include "glv_trace_packet_utils.h"
+#include "vktrace_common.h"
+#include "vktrace_tracelog.h"
+#include "vktrace_filelike.h"
+#include "vktrace_trace_packet_utils.h"
 }
-#include "glvreplay_main.h"
-#include "glvreplay_factory.h"
-#include "glvreplay_seq.h"
-#include "glvreplay_window.h"
+#include "vkreplay_main.h"
+#include "vkreplay_factory.h"
+#include "vkreplay_seq.h"
+#include "vkreplay_window.h"
 
 glvreplay_settings replaySettings = { NULL, 1, NULL };
 
diff --git a/vktrace/src/glvreplay/glvreplay_main.h b/vktrace/src/vktrace_replay/vkreplay_main.h
similarity index 100%
rename from vktrace/src/glvreplay/glvreplay_main.h
rename to vktrace/src/vktrace_replay/vkreplay_main.h
diff --git a/vktrace/src/glvreplay/glvreplay_seq.cpp b/vktrace/src/vktrace_replay/vkreplay_seq.cpp
similarity index 96%
rename from vktrace/src/glvreplay/glvreplay_seq.cpp
rename to vktrace/src/vktrace_replay/vkreplay_seq.cpp
index bf9e012..af6f988 100644
--- a/vktrace/src/glvreplay/glvreplay_seq.cpp
+++ b/vktrace/src/vktrace_replay/vkreplay_seq.cpp
@@ -22,16 +22,16 @@
  * THE SOFTWARE.
  *
  **************************************************************************/
-#include "glvreplay_seq.h"
+#include "vkreplay_seq.h"
 
 extern "C" {
-#include "glv_trace_packet_utils.h"
+#include "vktrace_trace_packet_utils.h"
 }
 
 namespace glv_replay {
 
 glv_trace_packet_header * Sequencer::get_next_packet()
-{    
+{
     glv_free(m_lastPacket);
     if (!m_pFile)
         return (NULL);
diff --git a/vktrace/src/glvreplay/glvreplay_seq.h b/vktrace/src/vktrace_replay/vkreplay_seq.h
similarity index 96%
rename from vktrace/src/glvreplay/glvreplay_seq.h
rename to vktrace/src/vktrace_replay/vkreplay_seq.h
index c211e08..f79c7ee 100644
--- a/vktrace/src/glvreplay/glvreplay_seq.h
+++ b/vktrace/src/vktrace_replay/vkreplay_seq.h
@@ -25,8 +25,8 @@
 #pragma once
 
 extern "C" {
-#include "glv_filelike.h"
-#include "glv_trace_packet_identifiers.h"
+#include "vktrace_filelike.h"
+#include "vktrace_trace_packet_identifiers.h"
 }
 
 /* Class to handle fetching and sequencing packets from a tracefile.
diff --git a/vktrace/src/glvreplay/glvreplay_window.h b/vktrace/src/vktrace_replay/vkreplay_window.h
similarity index 98%
rename from vktrace/src/glvreplay/glvreplay_window.h
rename to vktrace/src/vktrace_replay/vkreplay_window.h
index 396adc8..77c32d3 100644
--- a/vktrace/src/glvreplay/glvreplay_window.h
+++ b/vktrace/src/vktrace_replay/vkreplay_window.h
@@ -25,7 +25,7 @@
 #pragma once
 
 extern "C"{
-#include "glv_platform.h"
+#include "vktrace_platform.h"
 }
 
 #if defined(PLATFORM_LINUX) || defined(XCB_NVIDIA)
diff --git a/vktrace/src/glvtrace/CMakeLists.txt b/vktrace/src/vktrace_trace/CMakeLists.txt
similarity index 70%
rename from vktrace/src/glvtrace/CMakeLists.txt
rename to vktrace/src/vktrace_trace/CMakeLists.txt
index 27928a3..63ba576 100644
--- a/vktrace/src/glvtrace/CMakeLists.txt
+++ b/vktrace/src/vktrace_trace/CMakeLists.txt
@@ -7,21 +7,21 @@
 
 set(SRC_LIST
     ${SRC_LIST}
-    glvtrace.cpp
-    glvtrace_process.h
-    glvtrace_process.cpp
+    vktrace.cpp
+    vktrace_process.h
+    vktrace_process.cpp
 )
 
 include_directories(
     ${SRC_DIR}
-    ${SRC_DIR}/glvcommon
-    ${SRC_DIR}/glvtrace
+    ${SRC_DIR}/vktrace_common
+    ${SRC_DIR}/vktrace_trace
 )
 
 add_executable(${PROJECT_NAME} ${SRC_LIST})
 
 target_link_libraries(${PROJECT_NAME}
-    glvcommon
+    vktrace_common
 )
 
 build_options_finalize()
diff --git a/vktrace/src/glvtrace/glvtrace.cpp b/vktrace/src/vktrace_trace/vktrace.cpp
similarity index 97%
rename from vktrace/src/glvtrace/glvtrace.cpp
rename to vktrace/src/vktrace_trace/vktrace.cpp
index 267f486..61f057e 100644
--- a/vktrace/src/glvtrace/glvtrace.cpp
+++ b/vktrace/src/vktrace_trace/vktrace.cpp
@@ -22,16 +22,16 @@
  * THE SOFTWARE.
  *
  **************************************************************************/
-#include "glvtrace.h"
+#include "vktrace.h"
 
-#include "glvtrace_process.h"
+#include "vktrace_process.h"
 
 extern "C" {
-#include "glv_common.h"
-#include "glv_filelike.h"
-#include "glv_interconnect.h"
-#include "glv_trace_packet_identifiers.h"
-#include "glv_trace_packet_utils.h"
+#include "vktrace_common.h"
+#include "vktrace_filelike.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_trace_packet_identifiers.h"
+#include "vktrace_trace_packet_utils.h"
 }
 
 #include <sys/types.h>
@@ -266,7 +266,7 @@
 
     // setup defaults
     memset(&g_default_settings, 0, sizeof(glvtrace_settings));
-    g_default_settings.output_trace = glv_copy_and_append(execDir, GLV_PATH_SEPARATOR, "glvtrace_out.glv");
+    g_default_settings.output_trace = glv_copy_and_append(execDir, GLV_PATH_SEPARATOR, "vktrace_out.trace");
     g_default_settings.print_trace_messages = FALSE;
     g_default_settings.unique_output = FALSE;
     g_default_settings.screenshotList = NULL;
@@ -327,10 +327,10 @@
         else
         {
             size_t len = strlen(g_settings.output_trace);
-            if (strncmp(&g_settings.output_trace[len-4], ".glv", 4) != 0)
+            if (strncmp(&g_settings.output_trace[len-6], ".trace", 6) != 0)
             {
-                // output trace filename does not end in .glv
-                glv_LogError("Output trace file specified with -o parameter must have a '.glv' extension.");
+                // output trace filename does not end in .trace
+                glv_LogError("Output trace file specified with -o parameter must have a '.trace' extension.");
                 validArgs = FALSE;
             }
         }
diff --git a/vktrace/src/glvtrace/glvtrace.h b/vktrace/src/vktrace_trace/vktrace.h
similarity index 98%
rename from vktrace/src/glvtrace/glvtrace.h
rename to vktrace/src/vktrace_trace/vktrace.h
index 2f26ff7..ee23c8e 100644
--- a/vktrace/src/glvtrace/glvtrace.h
+++ b/vktrace/src/vktrace_trace/vktrace.h
@@ -25,7 +25,7 @@
 #pragma once
 
 extern "C" {
-#include "glv_settings.h"
+#include "vktrace_settings.h"
 }
 
 
diff --git a/vktrace/src/glvtrace/glvtrace_process.cpp b/vktrace/src/vktrace_trace/vktrace_process.cpp
similarity index 97%
rename from vktrace/src/glvtrace/glvtrace_process.cpp
rename to vktrace/src/vktrace_trace/vktrace_process.cpp
index 1b3688d..ae26154 100644
--- a/vktrace/src/glvtrace/glvtrace_process.cpp
+++ b/vktrace/src/vktrace_trace/vktrace_process.cpp
@@ -28,8 +28,8 @@
  */
 
 #include <string>
-#include "glvtrace_process.h"
-#include "glvtrace.h"
+#include "vktrace_process.h"
+#include "vktrace.h"
 
 #if defined(PLATFORM_LINUX)
 #include <sys/prctl.h>
@@ -38,9 +38,9 @@
 #endif
 
 extern "C" {
-#include "glv_filelike.h"
-#include "glv_interconnect.h"
-#include "glv_trace_packet_utils.h"
+#include "vktrace_filelike.h"
+#include "vktrace_interconnect.h"
+#include "vktrace_trace_packet_utils.h"
 }
 
 const unsigned long kWatchDogPollTime = 250;
diff --git a/vktrace/src/glvtrace/glvtrace_process.h b/vktrace/src/vktrace_trace/vktrace_process.h
similarity index 94%
rename from vktrace/src/glvtrace/glvtrace_process.h
rename to vktrace/src/vktrace_trace/vktrace_process.h
index 2446dec..92032a4 100644
--- a/vktrace/src/glvtrace/glvtrace_process.h
+++ b/vktrace/src/vktrace_trace/vktrace_process.h
@@ -30,9 +30,9 @@
 #pragma once
 
 extern "C" {
-#include "glv_common.h"
-#include "glv_process.h"
-#include "glv_interconnect.h"
+#include "vktrace_common.h"
+#include "vktrace_process.h"
+#include "vktrace_interconnect.h"
 }
 
 GLV_THREAD_ROUTINE_RETURN_TYPE Process_RunRecordTraceThread(LPVOID);
diff --git a/vktrace/vktrace_generate.py b/vktrace/vktrace_generate.py
index 537e2d5..87f75e2 100755
--- a/vktrace/vktrace_generate.py
+++ b/vktrace/vktrace_generate.py
@@ -195,7 +195,7 @@
 
     def _generate_attach_hooks(self):
         hooks_txt = []
-        hooks_txt.append('// declared as extern in glvtrace_vk_helpers.h')
+        hooks_txt.append('// declared as extern in vktrace_lib_helpers.h')
         hooks_txt.append('BOOL isHooked = FALSE;\n')
         hooks_txt.append('void AttachHooks()\n{\n   BOOL hookSuccess = TRUE;\n#if defined(WIN32)')
         hooks_txt.append('    Mhook_BeginMultiOperation(FALSE);')
@@ -501,7 +501,7 @@
             if ext.name.lower() == extName.lower():
                 for proto in ext.protos:
                     if proto.name in manually_written_hooked_funcs:
-                        func_body.append( '// __HOOKED_vk%s is manually written. Look in glvtrace_vk_trace.c\n' % proto.name)
+                        func_body.append( '// __HOOKED_vk%s is manually written. Look in vktrace_vk_trace.c\n' % proto.name)
                     else:
                         raw_packet_update_list = [] # non-ptr elements placed directly into packet
                         ptr_packet_update_list = [] # ptr elements to be updated into packet
@@ -805,7 +805,7 @@
         return "\n".join(pid_enum)
 
     # Interpret functions used on replay to read in packets and interpret their contents
-    #  This code gets generated into glv_vk_vk_packets.h file
+    #  This code gets generated into vktrace_vk_vk_packets.h file
     def _generate_interp_funcs(self):
         # Custom txt for given function and parameter.  First check if param is NULL, then insert txt if not
         # First some common code used by both CmdWaitEvents & CmdPipelineBarrier
@@ -1834,8 +1834,8 @@
 class GlaveTraceHeader(Subcommand):
     def generate_header(self, extName):
         header_txt = []
-        header_txt.append('#include "glv_vk_vk_packets.h"')
-        header_txt.append('#include "glv_vk_packet_id.h"\n')
+        header_txt.append('#include "vktrace_vk_vk_packets.h"')
+        header_txt.append('#include "vktrace_vk_packet_id.h"\n')
         header_txt.append('void AttachHooks();')
         header_txt.append('void DetachHooks();')
         header_txt.append('void InitTracer(void);\n')
@@ -1851,22 +1851,22 @@
 class GlaveTraceC(Subcommand):
     def generate_header(self, extName):
         header_txt = []
-        header_txt.append('#include "glv_platform.h"')
-        header_txt.append('#include "glv_common.h"')
-        header_txt.append('#include "glvtrace_vk_helpers.h"')
-        header_txt.append('#include "glvtrace_vk_vk.h"')
-        header_txt.append('#include "glvtrace_vk_vk_debug_report_lunarg.h"')
-        header_txt.append('#include "glvtrace_vk_vk_wsi_swapchain.h"')
-        header_txt.append('#include "glvtrace_vk_vk_wsi_device_swapchain.h"')
-        header_txt.append('#include "glv_interconnect.h"')
-        header_txt.append('#include "glv_filelike.h"')
+        header_txt.append('#include "vktrace_platform.h"')
+        header_txt.append('#include "vktrace_common.h"')
+        header_txt.append('#include "vktrace_lib_helpers.h"')
+        header_txt.append('#include "vktrace_vk_vk.h"')
+        header_txt.append('#include "vktrace_vk_vk_debug_report_lunarg.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_swapchain.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_device_swapchain.h"')
+        header_txt.append('#include "vktrace_interconnect.h"')
+        header_txt.append('#include "vktrace_filelike.h"')
         header_txt.append('#include "vk_struct_size_helper.h"')
         header_txt.append('#ifdef WIN32')
         header_txt.append('#include "mhook/mhook-lib/mhook.h"')
         header_txt.append('#else')
         header_txt.append('#include <pthread.h>\n')
         header_txt.append('#endif')
-        header_txt.append('#include "glv_trace_packet_utils.h"')
+        header_txt.append('#include "vktrace_trace_packet_utils.h"')
         header_txt.append('#include <stdio.h>')
         return "\n".join(header_txt)
 
@@ -1883,14 +1883,14 @@
     def generate_header(self, extName):
         header_txt = []
         header_txt.append('#pragma once\n')
-        header_txt.append('#include "glv_trace_packet_utils.h"')
-        header_txt.append('#include "glv_trace_packet_identifiers.h"')
-        header_txt.append('#include "glv_interconnect.h"')
-        header_txt.append('#include "glv_vk_vk_packets.h"')
-        header_txt.append('#include "glv_vk_vk_debug_report_lunarg_packets.h"')
-        #header_txt.append('#include "glv_vk_vk_wsi_lunarg_packets.h"')
-        header_txt.append('#include "glv_vk_vk_wsi_swapchain_packets.h"')
-        header_txt.append('#include "glv_vk_vk_wsi_device_swapchain_packets.h"')
+        header_txt.append('#include "vktrace_trace_packet_utils.h"')
+        header_txt.append('#include "vktrace_trace_packet_identifiers.h"')
+        header_txt.append('#include "vktrace_interconnect.h"')
+        header_txt.append('#include "vktrace_vk_vk_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_debug_report_lunarg_packets.h"')
+        #header_txt.append('#include "vktrace_vk_vk_wsi_lunarg_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_swapchain_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_device_swapchain_packets.h"')
         #header_txt.append('#include "vk_enum_string_helper.h"')
         header_txt.append('#ifndef _WIN32')
         header_txt.append(' #pragma GCC diagnostic ignored "-Wwrite-strings"')
@@ -1931,7 +1931,7 @@
         header_txt = []
         header_txt.append('#pragma once\n')
         header_txt.append('#include "vulkan.h"')
-        header_txt.append('#include "glv_trace_packet_utils.h"\n')
+        header_txt.append('#include "vktrace_trace_packet_utils.h"\n')
         return "\n".join(header_txt)
 
     def generate_body(self):
@@ -1957,13 +1957,13 @@
 class GlaveExtTraceC(Subcommand):
     def generate_header(self, extName):
         header_txt = []
-        header_txt.append('#include "glv_platform.h"')
-        header_txt.append('#include "glv_common.h"')
+        header_txt.append('#include "vktrace_platform.h"')
+        header_txt.append('#include "vktrace_common.h"')
         if extName == "vk_wsi_device_swapchain":
             header_txt.append('#include "vk_wsi_swapchain.h"')
-        header_txt.append('#include "glvtrace_vk_%s.h"' % extName.lower())
-        header_txt.append('#include "glv_vk_%s_packets.h"' % extName.lower())
-        header_txt.append('#include "glv_vk_packet_id.h"')
+        header_txt.append('#include "vktrace_vk_%s.h"' % extName.lower())
+        header_txt.append('#include "vktrace_vk_%s_packets.h"' % extName.lower())
+        header_txt.append('#include "vktrace_vk_packet_id.h"')
         header_txt.append('#include "vk_struct_size_helper.h"')
         header_txt.append('#include "%s_struct_size_helper.h"' % extName.lower())
         header_txt.append('#ifdef WIN32')
@@ -1982,7 +1982,7 @@
         header_txt = []
         header_txt.append('#pragma once\n')
         header_txt.append('#include "%s.h"' % extName.lower())
-        header_txt.append('#include "glv_trace_packet_utils.h"\n')
+        header_txt.append('#include "vktrace_trace_packet_utils.h"\n')
         return "\n".join(header_txt)
 
     def generate_body(self):
@@ -2027,19 +2027,19 @@
 class GlaveReplayC(Subcommand):
     def generate_header(self, extName):
         header_txt = []
-        header_txt.append('#include "glvreplay_vk_vkreplay.h"\n')
-        header_txt.append('#include "glvreplay_vk.h"\n')
-        header_txt.append('#include "glvreplay_main.h"\n')
+        header_txt.append('#include "vkreplay_vkreplay.h"\n')
+        header_txt.append('#include "vkreplay.h"\n')
+        header_txt.append('#include "vkreplay_main.h"\n')
         header_txt.append('#include <algorithm>')
         header_txt.append('#include <queue>')
         header_txt.append('\n')
         header_txt.append('extern "C" {')
-        header_txt.append('#include "glv_vk_vk_packets.h"')
-        header_txt.append('#include "glv_vk_vk_debug_report_lunarg_packets.h"')
-        #header_txt.append('#include "glv_vk_vk_wsi_lunarg_packets.h"')
-        header_txt.append('#include "glv_vk_vk_wsi_swapchain_packets.h"')
-        header_txt.append('#include "glv_vk_vk_wsi_device_swapchain_packets.h"')
-        header_txt.append('#include "glv_vk_packet_id.h"')
+        header_txt.append('#include "vktrace_vk_vk_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_debug_report_lunarg_packets.h"')
+        #header_txt.append('#include "vktrace_vk_vk_wsi_lunarg_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_swapchain_packets.h"')
+        header_txt.append('#include "vktrace_vk_vk_wsi_device_swapchain_packets.h"')
+        header_txt.append('#include "vktrace_vk_packet_id.h"')
         #header_txt.append('#include "vk_enum_string_helper.h"\n}\n')
 
         return "\n".join(header_txt)
