Layers: Implement unique_objects layer using vk.xml
UniqueObjects was the final LVL layer not using vk.xml for codegen.
The new implementation follows the threading layer model which
(outside of safe_struct dependencies) is more tolerant of API
changes. Also updated for structure and style.
build-android/android-generate.bat - Updated for build
build-android/android-generate.sh - Updated for build
generator.py - Added Unique Objects Generator
genvk.py - Added call to U_O generator
layers/CMakeLists.txt - Updated for build
layers/unique_objects.cpp - New: manually generated code
layers/unique_objects.h - Now a true header file
vk-layer-generate.py - killed!
Change-Id: I0d57871dfd2600829502f0bffd7cf6f926b7d5e7
diff --git a/build-android/android-generate.bat b/build-android/android-generate.bat
index a70642e..8023742 100644
--- a/build-android/android-generate.bat
+++ b/build-android/android-generate.bat
@@ -24,11 +24,10 @@
python ../vk_helper.py --gen_enum_string_helper ../include/vulkan/vulkan.h --abs_out_dir generated/include
python ../vk_helper.py --gen_struct_wrappers ../include/vulkan/vulkan.h --abs_out_dir generated/include
-python ../vk-layer-generate.py Android unique_objects ../include/vulkan/vulkan.h > generated/include/unique_objects.cpp
-
cd generated/include
python ../../../genvk.py threading -registry ../../../vk.xml thread_check.h
python ../../../genvk.py paramchecker -registry ../../../vk.xml parameter_validation.h
+python ../../../genvk.py unique_objects -registry ../../../vk.xml unique_objects_wrappers.h
cd ../..
copy /Y ..\layers\vk_layer_config.cpp generated\common\
@@ -51,10 +50,7 @@
copy ..\layers\%%G.cpp generated\layer-src\%%G
echo apply from: "../common.gradle" > generated\gradle-build\%%G\build.gradle
)
-copy generated\include\unique_objects.cpp generated\layer-src\unique_objects
copy generated\common\descriptor_sets.cpp generated\layer-src\core_validation\descriptor_sets.cpp
copy generated\include\vk_safe_struct.cpp generated\layer-src\core_validation\vk_safe_struct.cpp
move generated\include\vk_safe_struct.cpp generated\layer-src\unique_objects\vk_safe_struct.cpp
echo apply from: "../common.gradle" > generated\gradle-build\unique_objects\build.gradle
-
-del /f /q generated\include\unique_objects.cpp
diff --git a/build-android/android-generate.sh b/build-android/android-generate.sh
index fb0e867..847828f 100755
--- a/build-android/android-generate.sh
+++ b/build-android/android-generate.sh
@@ -26,9 +26,9 @@
python ../vk_helper.py --gen_enum_string_helper ../include/vulkan/vulkan.h --abs_out_dir generated/include
python ../vk_helper.py --gen_struct_wrappers ../include/vulkan/vulkan.h --abs_out_dir generated/include
-python ../vk-layer-generate.py Android unique_objects ../include/vulkan/vulkan.h > generated/include/unique_objects.cpp
( cd generated/include; python ../../../genvk.py threading -registry ../../../vk.xml thread_check.h )
( cd generated/include; python ../../../genvk.py paramchecker -registry ../../../vk.xml parameter_validation.h )
+( cd generated/include; python ../../../genvk.py unique_objects -registry ../../../vk.xml unique_objects_wrappers.h )
cp -f ../layers/vk_layer_config.cpp generated/common/
cp -f ../layers/vk_layer_extension_utils.cpp generated/common/
@@ -40,7 +40,7 @@
# 1 to 1 correspondence -- one layer one source file; additional files are copied
# at fixup step
declare layers=(core_validation image object_tracker parameter_validation swapchain threading unique_objects)
-declare src_dirs=(../layers ../layers ../layers ../layers ../layers ../layers generated/include)
+declare src_dirs=(../layers ../layers ../layers ../layers ../layers ../layers ../layers)
SRC_ROOT=generated/layer-src
BUILD_ROOT=generated/gradle-build
@@ -63,7 +63,4 @@
cp generated/include/vk_safe_struct.cpp ${SRC_ROOT}/core_validation/vk_safe_struct.cpp
mv generated/include/vk_safe_struct.cpp ${SRC_ROOT}/unique_objects/vk_safe_struct.cpp
-# fixup - remove copied files from generated/include
-rm generated/include/unique_objects.cpp
-
exit 0