diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-01-11 11:36:16 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-01-17 14:58:38 -0700 |
| commit | ae8d3b1c5982f64b581ab3489680ee247af4f1b3 (patch) | |
| tree | 3ce56d3a81a7b10abe779173ae19a64dcc11931f | |
| parent | 44f33c7105afa0963020fd347d26549554d1b7c4 (diff) | |
| download | usermoji-ae8d3b1c5982f64b581ab3489680ee247af4f1b3.tar.xz | |
layers: Move CreateImage recording to buf/img module
- Move source from core_validation.cpp into new module
- Add new module to layers cmake file
- Update android build scripts/makefiles for new files
Change-Id: Ia4000b26384d96a551d727f5e37997372f01764a
| -rw-r--r-- | build-android/android-generate.bat | 2 | ||||
| -rwxr-xr-x | build-android/android-generate.sh | 2 | ||||
| -rw-r--r-- | build-android/jni/Android.mk | 1 | ||||
| -rw-r--r-- | layers/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | layers/buffer_validation.cpp | 13 | ||||
| -rw-r--r-- | layers/buffer_validation.h | 5 | ||||
| -rw-r--r-- | layers/core_validation.cpp | 9 |
7 files changed, 26 insertions, 8 deletions
diff --git a/build-android/android-generate.bat b/build-android/android-generate.bat index 283be55c..257dedc9 100644 --- a/build-android/android-generate.bat +++ b/build-android/android-generate.bat @@ -36,6 +36,7 @@ copy /Y ..\layers\vk_layer_extension_utils.cpp generated\common\ copy /Y ..\layers\vk_layer_utils.cpp generated\common\
copy /Y ..\layers\vk_layer_table.cpp generated\common\
copy /Y ..\layers\descriptor_sets.cpp generated\common\
+copy /Y ..\layers\buffer_validation.cpp generated\common\
REM create build-script root directory
mkdir generated\gradle-build
@@ -52,6 +53,7 @@ for %%G in (core_validation image object_tracker parameter_validation swapchain echo apply from: "../common.gradle" > generated\gradle-build\%%G\build.gradle
)
copy generated\common\descriptor_sets.cpp generated\layer-src\core_validation\descriptor_sets.cpp
+copy generated\common\buffer_validation.cpp generated\layer-src\core_validation\buffer_validation.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
diff --git a/build-android/android-generate.sh b/build-android/android-generate.sh index 09022a39..662c4f01 100755 --- a/build-android/android-generate.sh +++ b/build-android/android-generate.sh @@ -36,6 +36,7 @@ cp -f ../layers/vk_layer_extension_utils.cpp generated/common/ cp -f ../layers/vk_layer_utils.cpp generated/common/ cp -f ../layers/vk_layer_table.cpp generated/common/ cp -f ../layers/descriptor_sets.cpp generated/common/ +cp -f ../layers/buffer_validation.cpp generated/common/ # layer names and their original source files directory # 1 to 1 correspondence -- one layer one source file; additional files are copied @@ -61,6 +62,7 @@ done # fixup - unique_objects need one more file cp generated/common/descriptor_sets.cpp ${SRC_ROOT}/core_validation/descriptor_sets.cpp +cp generated/common/buffer_validation.cpp ${SRC_ROOT}/core_validation/buffer_validation.cpp 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 diff --git a/build-android/jni/Android.mk b/build-android/jni/Android.mk index 4577d0b4..4d325941 100644 --- a/build-android/jni/Android.mk +++ b/build-android/jni/Android.mk @@ -33,6 +33,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := VkLayer_core_validation LOCAL_SRC_FILES += $(LAYER_DIR)/layer-src/core_validation/core_validation.cpp LOCAL_SRC_FILES += $(LAYER_DIR)/layer-src/core_validation/descriptor_sets.cpp +LOCAL_SRC_FILES += $(LAYER_DIR)/layer-src/core_validation/buffer_validation.cpp LOCAL_SRC_FILES += $(LAYER_DIR)/common/vk_layer_table.cpp LOCAL_C_INCLUDES += $(SRC_DIR)/include \ $(SRC_DIR)/layers \ diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt index b32cf6cb..295232ec 100644 --- a/layers/CMakeLists.txt +++ b/layers/CMakeLists.txt @@ -165,7 +165,7 @@ else() install(TARGETS VkLayer_utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -add_vk_layer(core_validation core_validation.cpp vk_layer_table.cpp descriptor_sets.cpp) +add_vk_layer(core_validation core_validation.cpp vk_layer_table.cpp descriptor_sets.cpp buffer_validation.cpp) add_vk_layer(object_tracker object_tracker.cpp vk_layer_table.cpp) add_vk_layer(image image.cpp vk_layer_table.cpp) add_vk_layer(swapchain swapchain.cpp vk_layer_table.cpp) diff --git a/layers/buffer_validation.cpp b/layers/buffer_validation.cpp index 4bcbf13a..0f47b301 100644 --- a/layers/buffer_validation.cpp +++ b/layers/buffer_validation.cpp @@ -22,3 +22,16 @@ #define NOMINMAX #include "buffer_validation.h" + +VK_LAYER_EXPORT void PostCallRecordCreateImage(std::unordered_map<VkImage, std::unique_ptr<IMAGE_STATE>> &imageMap, + std::unordered_map<VkImage, std::vector<ImageSubresourcePair>> &imageSubresourceMap, + std::unordered_map<ImageSubresourcePair, IMAGE_LAYOUT_NODE> &imageLayoutMap, + const VkImageCreateInfo *pCreateInfo, VkImage *pImage) { + IMAGE_LAYOUT_NODE image_state; + image_state.layout = pCreateInfo->initialLayout; + image_state.format = pCreateInfo->format; + imageMap.insert(std::make_pair(*pImage, std::unique_ptr<IMAGE_STATE>(new IMAGE_STATE(*pImage, pCreateInfo)))); + ImageSubresourcePair subpair{*pImage, false, VkImageSubresource()}; + imageSubresourceMap[*pImage].push_back(subpair); + imageLayoutMap[subpair] = image_state; +} diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h index 0e53bbfc..d99e5658 100644 --- a/layers/buffer_validation.h +++ b/layers/buffer_validation.h @@ -26,4 +26,9 @@ #include <unordered_map> #include <vector> +VK_LAYER_EXPORT void PostCallRecordCreateImage(std::unordered_map<VkImage, std::unique_ptr<IMAGE_STATE>> &imageMap, + std::unordered_map<VkImage, std::vector<ImageSubresourcePair>> &imageSubresourceMap, + std::unordered_map<ImageSubresourcePair, IMAGE_LAYOUT_NODE> &imageLayoutMap, + const VkImageCreateInfo *pCreateInfo, VkImage *pImage); + #endif // CORE_VALIDATION_BUFFER_VALIDATION_H_ diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index ade1ce7d..03429a1f 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -61,6 +61,7 @@ #pragma GCC diagnostic warning "-Wwrite-strings" #endif #include "core_validation.h" +#include "buffer_validation.h" #include "vk_layer_table.h" #include "vk_layer_data.h" #include "vk_layer_extension_utils.h" @@ -6482,13 +6483,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImage(VkDevice device, const VkImageCreateI if (VK_SUCCESS == result) { std::lock_guard<std::mutex> lock(global_lock); - IMAGE_LAYOUT_NODE image_state; - image_state.layout = pCreateInfo->initialLayout; - image_state.format = pCreateInfo->format; - dev_data->imageMap.insert(std::make_pair(*pImage, unique_ptr<IMAGE_STATE>(new IMAGE_STATE(*pImage, pCreateInfo)))); - ImageSubresourcePair subpair = {*pImage, false, VkImageSubresource()}; - dev_data->imageSubresourceMap[*pImage].push_back(subpair); - dev_data->imageLayoutMap[subpair] = image_state; + PostCallRecordCreateImage(dev_data->imageMap, dev_data->imageSubresourceMap, dev_data->imageLayoutMap, pCreateInfo, pImage); } return result; } |
