tests: Add dynamic function pointers to LVTs

Change-Id: I9ed5e5e7fb9643d58c0876458584b1c729836be0
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index f085a93..8706d84 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -62,8 +62,18 @@
 
 set(LIBGLM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libs)
 
-set(COMMON_CPP vklayertests_pipeline_shader.cpp vklayertests_buffer_image_memory_sampler.cpp vklayertests_others.cpp vklayertests_descriptor_renderpass_framebuffer.cpp
-				vklayertests_command.cpp vklayertests_imageless_framebuffer.cpp vkpositivelayertests.cpp vkrenderframework.cpp vktestbinding.cpp vktestframework.cpp test_environment.cpp)
+set(COMMON_CPP
+    vklayertests_pipeline_shader.cpp
+    vklayertests_buffer_image_memory_sampler.cpp
+    vklayertests_others.cpp
+    vklayertests_descriptor_renderpass_framebuffer.cpp
+    vklayertests_command.cpp
+    vklayertests_imageless_framebuffer.cpp
+    vkpositivelayertests.cpp
+    vkrenderframework.cpp
+    vktestbinding.cpp
+    vktestframework.cpp
+    test_environment.cpp)
 
 # ~~~
 # The vulkan loader search is:
@@ -101,6 +111,7 @@
                ../layers/vk_format_utils.cpp
                ../layers/convert_to_renderpass2.cpp
                ../layers/generated/vk_safe_struct.cpp
+               ../layers/generated/lvt_function_pointers.cpp
                ${COMMON_CPP})
 add_test(NAME vk_layer_validation_tests COMMAND vk_layer_validation_tests)
 add_dependencies(vk_layer_validation_tests Vulkan::Vulkan VkLayer_khronos_validation VkLayer_khronos_validation-json)
@@ -139,12 +150,14 @@
                                       ${X11_LIBRARIES}
                                       gtest
                                       gtest_main
+                                      dl
                                       ${GLSLANG_LIBRARIES})
     else()
         target_link_libraries(vk_layer_validation_tests
                               PRIVATE Vulkan::Vulkan
                                       gtest
                                       gtest_main
+                                      dl
                                       ${GLSLANG_LIBRARIES})
     endif()
 endif()
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index eaf45d8..46129bd 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -22,6 +22,8 @@
 #ifndef VKRENDERFRAMEWORK_H
 #define VKRENDERFRAMEWORK_H
 
+#include "lvt_function_pointers.h"
+
 #ifdef ANDROID
 #include "vktestframeworkandroid.h"
 class VkImageObj;
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index c970523..ef5ae06 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -131,6 +131,8 @@
     glslang::InitializeProcess();
 
     vk_testing::set_error_callback(test_error_callback);
+
+    vk::InitDispatchTable();
 }
 
 void TestEnvironment::TearDown() { glslang::FinalizeProcess(); }
diff --git a/tests/vktestframeworkandroid.cpp b/tests/vktestframeworkandroid.cpp
index 87724d7..5bd0ec0 100644
--- a/tests/vktestframeworkandroid.cpp
+++ b/tests/vktestframeworkandroid.cpp
@@ -47,7 +47,11 @@
 void VkTestFramework::InitArgs(int *argc, char *argv[]) {}
 void VkTestFramework::Finish() {}
 
-void TestEnvironment::SetUp() { vk_testing::set_error_callback(test_error_callback); }
+void TestEnvironment::SetUp() {
+    vk_testing::set_error_callback(test_error_callback);
+
+    vk::InitDispatchTable();
+}
 
 void TestEnvironment::TearDown() {}