tests: Add dynamic function pointers to LVTs
Change-Id: I9ed5e5e7fb9643d58c0876458584b1c729836be0
diff --git a/build-android/jni/Android.mk b/build-android/jni/Android.mk
index f59304f..d8f6d8b 100644
--- a/build-android/jni/Android.mk
+++ b/build-android/jni/Android.mk
@@ -77,6 +77,7 @@
$(SRC_DIR)/tests/vkrenderframework.cpp \
$(SRC_DIR)/layers/convert_to_renderpass2.cpp \
$(SRC_DIR)/layers/generated/vk_safe_struct.cpp \
+ $(SRC_DIR)/layers/generated/lvt_function_pointers.cpp \
$(THIRD_PARTY)/Vulkan-Tools/common/vulkan_wrapper.cpp
LOCAL_C_INCLUDES += $(VULKAN_INCLUDE) \
$(LOCAL_PATH)/$(SRC_DIR)/layers/generated \
@@ -87,7 +88,7 @@
LOCAL_STATIC_LIBRARIES := googletest_main layer_utils shaderc
LOCAL_CPPFLAGS += -std=c++11 -DVK_PROTOTYPES -Wall -Werror -Wno-unused-function -Wno-unused-const-variable
LOCAL_CPPFLAGS += -DVK_USE_PLATFORM_ANDROID_KHR -DNV_EXTENSIONS -DAMD_EXTENSIONS -fvisibility=hidden --include=$(THIRD_PARTY)/Vulkan-Tools/common/vulkan_wrapper.h
-LOCAL_LDLIBS := -llog -landroid
+LOCAL_LDLIBS := -llog -landroid -ldl
LOCAL_LDFLAGS += -Wl,-Bsymbolic
LOCAL_LDFLAGS += -Wl,--exclude-libs,ALL
include $(BUILD_EXECUTABLE)
@@ -107,6 +108,7 @@
$(SRC_DIR)/tests/vkrenderframework.cpp \
$(SRC_DIR)/layers/convert_to_renderpass2.cpp \
$(SRC_DIR)/layers/generated/vk_safe_struct.cpp \
+ $(SRC_DIR)/layers/generated/lvt_function_pointers.cpp \
$(THIRD_PARTY)/Vulkan-Tools/common/vulkan_wrapper.cpp
LOCAL_C_INCLUDES += $(VULKAN_INCLUDE) \
$(LOCAL_PATH)/$(SRC_DIR)/layers/generated \
@@ -118,7 +120,7 @@
LOCAL_CPPFLAGS += -std=c++11 -DVK_PROTOTYPES -Wall -Werror -Wno-unused-function -Wno-unused-const-variable
LOCAL_CPPFLAGS += -DVK_USE_PLATFORM_ANDROID_KHR -DNV_EXTENSIONS -DAMD_EXTENSIONS -fvisibility=hidden -DVALIDATION_APK --include=$(THIRD_PARTY)/Vulkan-Tools/common/vulkan_wrapper.h
LOCAL_WHOLE_STATIC_LIBRARIES += android_native_app_glue
-LOCAL_LDLIBS := -llog -landroid
+LOCAL_LDLIBS := -llog -landroid -ldl
LOCAL_LDFLAGS := -u ANativeActivity_onCreate
include $(BUILD_SHARED_LIBRARY)
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() {}