vulkan: Changes to 'debian-jessie-backports'
.gitignore | 6
.travis.yml | 9
BUILD.md | 161
CMakeLists.txt | 80
CONTRIBUTING.md | 2
README.md | 13
build_windows_targets.bat | 22
cmake/FindImageMagick.cmake | 153
cmake/FindMir.cmake | 37
common/android_util.cpp | 87
common/android_util.h | 32
debian/changelog | 30
debian/control | 1
debian/copyright | 4
debian/patches/demos-add-install-rule.diff | 9
debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff | 87
debian/patches/disable-mir.diff | 11
debian/patches/install-vulkan-intel-header.diff | 68
debian/patches/layers-install-to-cmake-install-libdir.diff | 26
debian/patches/loader-add-install-rule.diff | 14
debian/patches/series | 5
debian/patches/trim-build.diff | 2
debian/patches/use-mxgot-for-mips64.patch | 10
demos/CMakeLists.txt | 159
demos/android/AndroidManifest.xml.cube | 22
demos/android/AndroidManifest.xml.tri | 22
demos/android/cube-with-layers/AndroidManifest.xml | 27
demos/android/cube-with-layers/custom_rules.xml | 25
demos/android/cube-with-layers/res/values/strings.xml | 24
demos/android/cube/AndroidManifest.xml | 27
demos/android/cube/custom_rules.xml | 6
demos/android/cube/res/values/strings.xml | 24
demos/android/include/lunarg.ppm.h | 4776 -
demos/android/include/tri.frag.h | 95
demos/android/include/tri.vert.h | 128
demos/android/jni/Android.mk | 16
demos/android/jni/Application.mk | 2
demos/android/res/values/strings.xml | 24
demos/cube.c | 990
demos/cube.cpp | 2851 +
demos/cube.vert | 4
demos/lunarg.ppm | 248
demos/smoke/CMakeLists.txt | 5
demos/smoke/Game.cpp | 36
demos/smoke/Game.h | 36
demos/smoke/Main.cpp | 9
demos/smoke/Shell.cpp | 2
demos/smoke/ShellAndroid.cpp | 58
demos/smoke/ShellAndroid.h | 2
demos/smoke/ShellWayland.cpp | 2
demos/smoke/ShellWin32.cpp | 2
demos/smoke/ShellXcb.cpp | 2
demos/smoke/Smoke.cpp | 11
demos/smoke/android/build-and-install | 27
demos/smoke/android/build.gradle | 12
demos/smoke/android/gradle/wrapper/gradle-wrapper.properties | 2
demos/smoke/android/src/main/AndroidManifest.xml | 5
demos/smoke/generate-dispatch-table | 492
demos/smoke/generate-dispatch-table.py | 492
demos/tri.c | 2784 -
demos/tri.frag | 29
demos/tri.vcxproj.user | 11
demos/tri.vert | 33
demos/vulkaninfo.c | 471
determine_vs_version.py | 115
external_revisions/glslang_revision | 1
external_revisions/spirv-headers_revision | 1
external_revisions/spirv-tools_revision | 1
generator.py | 3668 -
genvk.py | 358
glslang_revert_a5c33d.patch.txt | 18
glslang_revision | 1
include/vulkan/vk_icd.h | 9
include/vulkan/vk_layer.h | 23
include/vulkan/vk_platform.h | 14
include/vulkan/vulkan.h | 452
include/vulkan/vulkan.hpp |22207 ++++++++
layers/CMakeLists.txt | 126
layers/README.md | 19
layers/VkLayer_core_validation.def | 29
layers/VkLayer_image.def | 29
layers/VkLayer_object_tracker.def | 29
layers/VkLayer_parameter_validation.def | 29
layers/VkLayer_swapchain.def | 29
layers/VkLayer_threading.def | 29
layers/VkLayer_unique_objects.def | 29
layers/core_validation.cpp | 7142 +-
layers/core_validation.h | 220
layers/core_validation_error_enums.h | 366
layers/core_validation_types.h | 391
layers/descriptor_sets.cpp | 621
layers/descriptor_sets.h | 67
layers/image.cpp | 607
layers/image.h | 4
layers/linux/VkLayer_core_validation.json | 2
layers/linux/VkLayer_image.json | 2
layers/linux/VkLayer_object_tracker.json | 2
layers/linux/VkLayer_parameter_validation.json | 2
layers/linux/VkLayer_swapchain.json | 2
layers/linux/VkLayer_threading.json | 2
layers/linux/VkLayer_unique_objects.json | 2
layers/object_tracker.cpp | 4432 +
layers/object_tracker.h | 1183
layers/parameter_name.h | 148
layers/parameter_validation.cpp | 3932 -
layers/parameter_validation_utils.h | 308
layers/spec.py | 552
layers/swapchain.cpp | 1824
layers/swapchain.h | 123
layers/threading.h | 10
layers/unique_objects.cpp | 751
layers/unique_objects.h | 589
layers/vk_layer_config.cpp | 60
layers/vk_layer_config.h | 2
layers/vk_layer_extension_utils.cpp | 8
layers/vk_layer_extension_utils.h | 8
layers/vk_layer_logging.h | 21
layers/vk_layer_settings.txt | 85
layers/vk_layer_table.cpp | 1
layers/vk_layer_utils.cpp | 539
layers/vk_layer_utils.h | 30
layers/vk_validation_error_database.txt | 2481
layers/vk_validation_error_messages.h | 4980 +
layers/vk_validation_layer_details.md | 378
layers/vk_validation_stats.py | 358
layers/windows/VkLayer_core_validation.json | 2
layers/windows/VkLayer_image.json | 2
layers/windows/VkLayer_object_tracker.json | 2
layers/windows/VkLayer_parameter_validation.json | 2
layers/windows/VkLayer_swapchain.json | 2
layers/windows/VkLayer_threading.json | 2
layers/windows/VkLayer_unique_objects.json | 2
libs/vkjson/CMakeLists.txt | 8
libs/vkjson/vkjson_instance.cc | 9
loader/CMakeLists.txt | 56
loader/LoaderAndLayerInterface.md | 214
loader/debug_report.c | 204
loader/dev_ext_trampoline.c | 1500
loader/extensions.c | 419
loader/extensions.h | 55
loader/gpa_helper.h | 4
loader/loader.c | 1277
loader/loader.h | 146
loader/loader.rc | 4
loader/table_ops.h | 89
loader/trampoline.c | 113
loader/vk-loader-generate.py | 464
loader/vk_loader_platform.h | 114
loader/vulkan-1.def | 182
loader/wsi.c | 1198
loader/wsi.h | 35
reg.py | 755
scripts/determine_vs_version.py | 115
scripts/dispatch_table_generator.py | 196
scripts/generator.py | 499
scripts/lvl_genvk.py | 304
scripts/parameter_validation_generator.py | 995
scripts/reg.py | 813
scripts/source_line_info.py | 39
scripts/threading_generator.py | 467
scripts/unique_objects_generator.py | 761
scripts/vk.xml | 4903 +
scripts/vk_helper.py | 1874
scripts/vulkan.py | 1536
source_line_info.py | 39
spirv-tools_revision | 1
tests/.clang-format | 6
tests/CMakeLists.txt | 40
tests/_run_all_tests.ps1 | 4
tests/_vkvalidatelayerdoc.ps1 | 10
tests/layer_validation_tests.cpp |28529 ++++++-----
tests/layers/CMakeLists.txt | 49
tests/layers/VkLayer_test.def | 32
tests/layers/VkLayer_wrap_objects.def | 32
tests/layers/linux/VkLayer_test.json | 17
tests/layers/test.cpp | 140
tests/layers/windows/VkLayer_test.json | 17
tests/layers/wrap_objects.cpp | 6
tests/layers/wrap_objects.h | 55
tests/loader_validation_tests.cpp | 653
tests/run_extra_loader_tests.sh | 106
tests/run_loader_tests.sh | 91
tests/run_wrap_objects_tests.sh | 17
tests/test_common.h | 162
tests/test_environment.cpp | 24
tests/vkrenderframework.cpp | 702
tests/vkrenderframework.h | 167
tests/vktestbinding.cpp | 304
tests/vktestbinding.h | 394
tests/vktestframework.cpp | 316
tests/vktestframework.h | 17
tests/vktestframeworkandroid.cpp | 59
tests/vktestframeworkandroid.h | 20
tests/vkvalidatelayerdoc.sh | 10
update_external_sources.bat | 68
update_external_sources.sh | 102
vk-generate.py | 264
vk-layer-generate.py | 1776
vk-layer-introspect | 399
vk.xml | 5520 --
vk_helper.py | 2233
vk_layer_documentation_generate.py | 405
vulkan.py | 1409
203 files changed, 88821 insertions(+), 49049 deletions(-)
New commits:
commit d066010dca940c57e80895952130d261f360a3af
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date: Tue Jan 10 15:20:51 2017 +0100
Rebuild for jessie-backports.
diff --git a/debian/changelog b/debian/changelog
index 452a1ac..d0f32f6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+vulkan (1.0.37.0+dfsg1-1~bpo8+1) jessie-backports; urgency=medium
+
+ * Rebuild for jessie-backports.
+
+ -- Andreas Boll <andreas.boll.dev@gmail.com> Tue, 10 Jan 2017 15:20:35 +0100
+
vulkan (1.0.37.0+dfsg1-1) unstable; urgency=medium
[ Andreas Boll ]
commit 74a9e7257329c84c361a664f813b83b029199219
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Fri Dec 23 08:39:24 2016 +0200
release to unstable
diff --git a/debian/changelog b/debian/changelog
index 865644f..b443a13 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-vulkan (1.0.37.0+dfsg1-1) UNRELEASED; urgency=medium
+vulkan (1.0.37.0+dfsg1-1) unstable; urgency=medium
[ Andreas Boll ]
* Ship vulkan_intel.h via libvulkan-dev (Imported from Mesa source
@@ -13,7 +13,7 @@ vulkan (1.0.37.0+dfsg1-1) UNRELEASED; urgency=medium
* disable-mir.diff: Don't try to build with Mir support, which Debian
doesn't have.
- -- Andreas Boll <andreas.boll.dev@gmail.com> Thu, 06 Oct 2016 11:59:16 +0200
+ -- Timo Aaltonen <tjaalton@debian.org> Fri, 23 Dec 2016 08:39:12 +0200
vulkan (1.0.26.0+dfsg1-1) unstable; urgency=medium
commit afa691c2a112906d2097f85d0d9536e2d9585873
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Fri Dec 23 08:38:51 2016 +0200
disable-mir.diff: Don't try to build with Mir support, which Debian doesn't have.
diff --git a/debian/changelog b/debian/changelog
index bf6415c..865644f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,8 @@ vulkan (1.0.37.0+dfsg1-1) UNRELEASED; urgency=medium
* demos-add-install-rule.diff, layers-install-to-cmake-install-libdir.diff,
loader-add-install-rule.diff: Dropped, upstream.
* control: Add libwayland-dev to build-depends.
+ * disable-mir.diff: Don't try to build with Mir support, which Debian
+ doesn't have.
-- Andreas Boll <andreas.boll.dev@gmail.com> Thu, 06 Oct 2016 11:59:16 +0200
diff --git a/debian/patches/disable-mir.diff b/debian/patches/disable-mir.diff
new file mode 100644
index 0000000..ad8942f
--- /dev/null
+++ b/debian/patches/disable-mir.diff
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,7 +20,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
+ option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
+ option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
+- option(BUILD_WSI_MIR_SUPPORT "Build Mir WSI support" ON)
++ option(BUILD_WSI_MIR_SUPPORT "Build Mir WSI support" OFF)
+ set(DEMOS_WSI_SELECTION XCB)
+
+ if (BUILD_WSI_XCB_SUPPORT)
diff --git a/debian/patches/series b/debian/patches/series
index 8c8f655..a86f6e7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ trim-build.diff
demos-dont-build-tri-or-cube-or-smoke.diff
use-mxgot-for-mips64.patch
install-vulkan-intel-header.diff
+disable-mir.diff
commit 67219da684b59cd93ca129c2fb1d8addb02bda65
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Fri Dec 23 08:35:46 2016 +0200
control: Add libwayland-dev to build-depends.
diff --git a/debian/changelog b/debian/changelog
index 34a572f..bf6415c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ vulkan (1.0.37.0+dfsg1-1) UNRELEASED; urgency=medium
* Refresh patches.
* demos-add-install-rule.diff, layers-install-to-cmake-install-libdir.diff,
loader-add-install-rule.diff: Dropped, upstream.
+ * control: Add libwayland-dev to build-depends.
-- Andreas Boll <andreas.boll.dev@gmail.com> Thu, 06 Oct 2016 11:59:16 +0200
diff --git a/debian/control b/debian/control
index afceef3..db10b2e 100644
--- a/debian/control
+++ b/debian/control
@@ -4,6 +4,7 @@ Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: Timo Aaltonen <tjaalton@debian.org>
Build-Depends: debhelper (>= 9),
cmake,
+ libwayland-dev,
libx11-dev,
libxcb1-dev,
pkg-config,
commit 6dbc52c853a116e6ab12ab8efe8a546beb8b830e
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Fri Dec 23 08:29:56 2016 +0200
refresh patches
diff --git a/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff b/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
index dfee487..87f417a 100644
--- a/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
+++ b/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
@@ -10,7 +10,7 @@ Date: Tue Feb 16 10:05:25 2016 -0500
--- a/demos/CMakeLists.txt
+++ b/demos/CMakeLists.txt
-@@ -25,46 +25,6 @@ elseif(UNIX)
+@@ -61,46 +61,6 @@ elseif(UNIX)
else()
endif()
@@ -55,9 +55,9 @@ Date: Tue Feb 16 10:05:25 2016 -0500
- endif()
-endif()
- if(NOT WIN32)
- if(BUILD_WSI_XCB_SUPPORT)
-@@ -95,43 +55,6 @@ endif()
+ if(WIN32)
+ include_directories (
+@@ -114,43 +74,6 @@ endif()
add_executable(${API_LOWERCASE}info vulkaninfo.c)
target_link_libraries(${API_LOWERCASE}info ${LIBRARIES})
@@ -94,7 +94,7 @@ Date: Tue Feb 16 10:05:25 2016 -0500
-endif()
-
-if ((${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}))
-- if (BUILD_WSI_XCB_SUPPORT OR BUILD_WSI_WAYLAND_SUPPORT OR WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Android"))
+- if ((DEMOS_WSI_SELECTION STREQUAL "XCB") OR (DEMOS_WSI_SELECTION STREQUAL "WAYLAND") OR WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Android"))
- add_subdirectory(smoke)
- endif()
-endif()
diff --git a/debian/patches/use-mxgot-for-mips64.patch b/debian/patches/use-mxgot-for-mips64.patch
index cf100e8..86c883d 100644
--- a/debian/patches/use-mxgot-for-mips64.patch
+++ b/debian/patches/use-mxgot-for-mips64.patch
@@ -3,7 +3,7 @@ Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
-@@ -113,6 +113,12 @@ else()
+@@ -140,6 +140,12 @@ else()
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wno-unused-function -Wno-sign-compare")
endif()
@@ -13,6 +13,6 @@ Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
+ endif()
+endif()
+
- add_custom_command(OUTPUT vk_dispatch_table_helper.h
- COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py AllPlatforms dispatch-table-ops layer > vk_dispatch_table_helper.h
- DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
+ run_vk_helper(gen_enum_string_helper vk_enum_string_helper.h)
+ run_vk_helper(gen_struct_wrappers
+ vk_struct_string_helper.h
commit 3d49124a67e96ace4da1caa347e81dbc7d55a488
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Fri Dec 23 08:24:09 2016 +0200
update changelog
diff --git a/debian/changelog b/debian/changelog
index 96aa9a7..34a572f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-vulkan (1.0.33.0+dfsg1-1) UNRELEASED; urgency=medium
+vulkan (1.0.37.0+dfsg1-1) UNRELEASED; urgency=medium
[ Andreas Boll ]
* Ship vulkan_intel.h via libvulkan-dev (Imported from Mesa source
commit 5b99166d38c86853cd5b744cdb13c08d7d9e0556
Author: Tony Barbour <tony@LunarG.com>
Date: Thu Dec 15 14:52:44 2016 -0700
tests: Remove test for nonCoherentAtomSize check
Change-Id: I7ba25d6e0b8bf0623e386d04041070fbc505a129
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index b194e98..81c8356 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -1484,6 +1484,7 @@ TEST_F(VkLayerTest, InvalidMemoryMapping) {
vkFlushMappedMemoryRanges(m_device->device(), 1, &mmr);
m_errorMonitor->VerifyFound();
+#if 0 // Planning discussion with working group on this validation check.
// Some platforms have an atomsize of 1 which makes the test meaningless
if (atom_size > 3) {
// Now with an offset NOT a multiple of the device limit
@@ -1506,7 +1507,7 @@ TEST_F(VkLayerTest, InvalidMemoryMapping) {
vkFlushMappedMemoryRanges(m_device->device(), 1, &mmr);
m_errorMonitor->VerifyFound();
}
-
+#endif
pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &alloc_info, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
if (!pass) {
commit dd09f79361eeaeb05469a96b596c06a9ef980041
Author: Tony Barbour <tony@LunarG.com>
Date: Thu Dec 15 12:12:29 2016 -0700
layers: Remove check for nonCoherentAtomSize
It's come to our attention that this check, while matching the spec,
may be a little overzealous and could cause a lot of existing code
to start failing validation. We plan to address this with the spec
working group, and we're removing the check for now.
Change-Id: I7159b72fe0a2e81bf75bccddc9939da7086992b7
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 43c767d..fa06308 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -11454,7 +11454,6 @@ static bool PreCallValidateFlushMappedMemoryRanges(layer_data *dev_data, uint32_
const VkMappedMemoryRange *mem_ranges) {
bool skip = false;
std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateMappedMemoryRangeDeviceLimits(dev_data, "vkFlushMappedMemoryRanges", mem_range_count, mem_ranges);
skip |= ValidateAndCopyNoncoherentMemoryToDriver(dev_data, mem_range_count, mem_ranges);
skip |= validateMemoryIsMapped(dev_data, "vkFlushMappedMemoryRanges", mem_range_count, mem_ranges);
return skip;
@@ -11475,7 +11474,6 @@ static bool PreCallValidateInvalidateMappedMemoryRanges(layer_data *dev_data, ui
const VkMappedMemoryRange *mem_ranges) {
bool skip = false;
std::lock_guard<std::mutex> lock(global_lock);
- skip |= ValidateMappedMemoryRangeDeviceLimits(dev_data, "vkInvalidateMappedMemoryRanges", mem_range_count, mem_ranges);
skip |= validateMemoryIsMapped(dev_data, "vkInvalidateMappedMemoryRanges", mem_range_count, mem_ranges);
return skip;
}
commit bbf22f9a04648bd8782eeba397a37a589615f31f
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Wed Dec 14 20:10:46 2016 +0200
refresh patches, drop upstreamed ones
diff --git a/debian/changelog b/debian/changelog
index 1fd3848..96aa9a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,9 @@ vulkan (1.0.33.0+dfsg1-1) UNRELEASED; urgency=medium
[ Timo Aaltonen ]
* New upstream release.
+ * Refresh patches.
+ * demos-add-install-rule.diff, layers-install-to-cmake-install-libdir.diff,
+ loader-add-install-rule.diff: Dropped, upstream.
-- Andreas Boll <andreas.boll.dev@gmail.com> Thu, 06 Oct 2016 11:59:16 +0200
diff --git a/debian/patches/demos-add-install-rule.diff b/debian/patches/demos-add-install-rule.diff
deleted file mode 100644
index 3347402..0000000
--- a/debian/patches/demos-add-install-rule.diff
+++ /dev/null
@@ -1,9 +0,0 @@
-Description: Add an install rule for vulkaninfo
---- a/demos/CMakeLists.txt
-+++ b/demos/CMakeLists.txt
-@@ -114,3 +114,5 @@ endif()
-
- add_executable(vulkaninfo vulkaninfo.c)
- target_link_libraries(vulkaninfo ${LIBRARIES})
-+install(TARGETS vulkaninfo RUNTIME DESTINATION /usr/bin)
-+
diff --git a/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff b/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
index 5c73929..dfee487 100644
--- a/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
+++ b/debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff
@@ -10,21 +10,62 @@ Date: Tue Feb 16 10:05:25 2016 -0500
--- a/demos/CMakeLists.txt
+++ b/demos/CMakeLists.txt
-@@ -114,27 +114,3 @@ endif()
+@@ -25,46 +25,6 @@ elseif(UNIX)
+ else()
+ endif()
- add_executable(vulkaninfo vulkaninfo.c)
- target_link_libraries(vulkaninfo ${LIBRARIES})
+-if(WIN32)
+- # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory.
+- # 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the
+- # appropriate data at build time.
+- if (CMAKE_CL_64)
+- set (BUILDTGT_DIR build)
+- else ()
+- set (BUILDTGT_DIR build32)
+- endif()
+-
+- # Use static MSVCRT libraries
+- foreach(configuration in CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
+- CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO)
+- if(${configuration} MATCHES "/MD")
+- string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}")
+- endif()
+- endforeach()
-
--if(UNIX)
-- add_executable(tri tri.c ${CMAKE_BINARY_DIR}/demos/tri-vert.spv ${CMAKE_BINARY_DIR}/demos/tri-frag.spv)
+- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+- COMMAND ${GLSLANG_VALIDATOR} -s -V -o ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert
+- DEPENDS cube.vert ${GLSLANG_VALIDATOR}
+- )
+- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+- COMMAND ${GLSLANG_VALIDATOR} -s -V -o ${CMAKE_BINARY_DIR}/demos/cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag
+- DEPENDS cube.frag ${GLSLANG_VALIDATOR}
+- )
+- file(COPY cube.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos)
+- file(COPY vulkaninfo.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos)
-else()
-- add_executable(tri WIN32 tri.c ${CMAKE_BINARY_DIR}/demos/tri-vert.spv ${CMAKE_BINARY_DIR}/demos/tri-frag.spv)
+- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
+- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv
+- COMMAND ${GLSLANG_VALIDATOR} -s -V -o cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert
+- DEPENDS cube.vert ${GLSLANG_VALIDATOR}
+- )
+- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv
+- COMMAND ${GLSLANG_VALIDATOR} -s -V -o cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag
+- DEPENDS cube.frag ${GLSLANG_VALIDATOR}
+- )
+- endif()
-endif()
--target_link_libraries(tri ${LIBRARIES})
--
+
+ if(NOT WIN32)
+ if(BUILD_WSI_XCB_SUPPORT)
+@@ -95,43 +55,6 @@ endif()
+ add_executable(${API_LOWERCASE}info vulkaninfo.c)
+ target_link_libraries(${API_LOWERCASE}info ${LIBRARIES})
+
-if(NOT WIN32)
-- add_executable(cube cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
-- target_link_libraries(cube ${LIBRARIES})
+- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
+- add_executable(cube cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
+- target_link_libraries(cube ${LIBRARIES})
+- endif()
-else()
- if (CMAKE_CL_64)
- set (LIB_DIR "Win64")
@@ -33,8 +74,30 @@ Date: Tue Feb 16 10:05:25 2016 -0500
- endif()
-
- add_executable(cube WIN32 cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
-- target_link_libraries(cube ${LIBRARIES} )
+- target_link_libraries(cube ${LIBRARIES})
-endif()
-
--add_subdirectory(smoke)
+-if(NOT WIN32)
+- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
+- add_executable(cubepp cube.cpp ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
+- target_link_libraries(cubepp ${LIBRARIES})
+- endif()
+-else()
+- if (CMAKE_CL_64)
+- set (LIB_DIR "Win64")
+- else()
+- set (LIB_DIR "Win32")
+- endif()
+-
+- add_executable(cubepp WIN32 cube.cpp ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv)
+- target_link_libraries(cubepp ${LIBRARIES})
+-endif()
-
+-if ((${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}))
+- if (BUILD_WSI_XCB_SUPPORT OR BUILD_WSI_WAYLAND_SUPPORT OR WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Android"))
+- add_subdirectory(smoke)
+- endif()
+-endif()
+
+ if(UNIX)
+ install(TARGETS ${API_LOWERCASE}info DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/debian/patches/layers-install-to-cmake-install-libdir.diff b/debian/patches/layers-install-to-cmake-install-libdir.diff
deleted file mode 100644
index 710144b..0000000
--- a/debian/patches/layers-install-to-cmake-install-libdir.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 991a05cc657345d24cb86658a2d3fbd25643bdb2
-Author: Adam Jackson <ajax@redhat.com>
-Date: Wed Feb 10 15:11:54 2016 -0500
-
- layers: Install to CMAKE_INSTALL_LIBDIR
-
---- a/layers/CMakeLists.txt
-+++ b/layers/CMakeLists.txt
-@@ -81,7 +81,7 @@ else()
- target_link_Libraries(VkLayer_${target} VkLayer_utils)
- add_dependencies(VkLayer_${target} generate_vk_layer_helpers)
- set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
-- install(TARGETS VkLayer_${target} DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
-+ install(TARGETS VkLayer_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
- endmacro()
- endif()
-
-@@ -146,7 +146,7 @@ if (WIN32)
- add_library(VkLayer_utils STATIC vk_layer_config.cpp vk_layer_extension_utils.cpp vk_layer_utils.cpp)
- else()
- add_library(VkLayer_utils SHARED vk_layer_config.cpp vk_layer_extension_utils.cpp vk_layer_utils.cpp)
-- install(TARGETS VkLayer_utils DESTINATION ${PROJECT_BINARY_DIR}/install_staging)
-+ install(TARGETS VkLayer_utils DESTINATION ${CMAKE_INSTALL_LIBDIR})
- endif()
-
- add_vk_layer(core_validation core_validation.cpp vk_layer_table.cpp vk_safe_struct.cpp descriptor_sets.cpp)
diff --git a/debian/patches/loader-add-install-rule.diff b/debian/patches/loader-add-install-rule.diff
deleted file mode 100644
index b7bf0f7..0000000
--- a/debian/patches/loader-add-install-rule.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-commit 68165bda903b68520c21dd132ebc23be0177b7f4
-Author: Adam Jackson <ajax@redhat.com>
-Date: Wed Feb 10 15:17:06 2016 -0500
-
- loader: Add install rule
-
---- a/loader/CMakeLists.txt
-+++ b/loader/CMakeLists.txt
-@@ -86,4 +86,5 @@ else()
- add_library(vulkan SHARED ${LOADER_SRCS})
- set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "1.0.26")
- target_link_libraries(vulkan -ldl -lpthread -lm)
-+ install(TARGETS vulkan DESTINATION ${CMAKE_INSTALL_LIBDIR})
- endif()
diff --git a/debian/patches/series b/debian/patches/series
index 611ed45..8c8f655 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,7 +1,4 @@
trim-build.diff
demos-dont-build-tri-or-cube-or-smoke.diff
-loader-add-install-rule.diff
-demos-add-install-rule.diff
-layers-install-to-cmake-install-libdir.diff
use-mxgot-for-mips64.patch
install-vulkan-intel-header.diff
diff --git a/debian/patches/trim-build.diff b/debian/patches/trim-build.diff
index 1992e09..40dfafd 100644
--- a/debian/patches/trim-build.diff
+++ b/debian/patches/trim-build.diff
@@ -1,6 +1,6 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -101,10 +101,10 @@ else()
+@@ -110,10 +110,10 @@ else()
endif()
option(BUILD_LOADER "Build loader" ON)
diff --git a/debian/patches/use-mxgot-for-mips64.patch b/debian/patches/use-mxgot-for-mips64.patch
index 2c1f17f..cf100e8 100644
--- a/debian/patches/use-mxgot-for-mips64.patch
+++ b/debian/patches/use-mxgot-for-mips64.patch
@@ -3,8 +3,8 @@ Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
-@@ -102,6 +102,12 @@ else()
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wno-unused-function -Wno-sign-compare -fvisibility=default")
+@@ -113,6 +113,12 @@ else()
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wno-unused-function -Wno-sign-compare")
endif()
+if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "mips64")
commit ffe6c122351d98175411cbc9944eb0f6e734e25b
Author: Timo Aaltonen <tjaalton@debian.org>
Date: Wed Dec 14 19:50:50 2016 +0200
update changelog
diff --git a/debian/changelog b/debian/changelog
index 7cb1345..1fd3848 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,12 @@
-vulkan (1.0.26.0+dfsg1-2) UNRELEASED; urgency=medium
+vulkan (1.0.33.0+dfsg1-1) UNRELEASED; urgency=medium
+ [ Andreas Boll ]
* Ship vulkan_intel.h via libvulkan-dev (Imported from Mesa source
package).
+ [ Timo Aaltonen ]
+ * New upstream release.
+
-- Andreas Boll <andreas.boll.dev@gmail.com> Thu, 06 Oct 2016 11:59:16 +0200
vulkan (1.0.26.0+dfsg1-1) unstable; urgency=medium
commit 685755cf38a9fc175f5a423e2d81d975fa8972c1
Author: Mark Young <marky@lunarg.com>
Date: Tue Dec 13 17:19:32 2016 -0700
loader: Removed some unnecessary code.
Now that all WSI paths need the ICD structs, I can get rid of
a code path no longer used.
Change-Id: Ib5073cd2074fcd66453dae5b6c89870c81f7f958
diff --git a/loader/wsi.c b/loader/wsi.c
index 9462b44..c577063 100644
--- a/loader/wsi.c
+++ b/loader/wsi.c
@@ -512,8 +512,7 @@ vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) {
static VkIcdSurface *AllocateIcdSurfaceStruct(struct loader_instance *instance,
size_t base_size,
- size_t platform_size,
- bool create_icd_surfs) {
+ size_t platform_size) {
// Next, if so, proceed with the implementation of this function:
VkIcdSurface *pIcdSurface = loader_instance_heap_alloc(
instance, sizeof(VkIcdSurface), VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
@@ -526,19 +525,15 @@ static VkIcdSurface *AllocateIcdSurfaceStruct(struct loader_instance *instance,
(uint8_t *)(&pIcdSurface->base_size) - (uint8_t *)pIcdSurface);
pIcdSurface->entire_size = sizeof(VkIcdSurface);
- if (create_icd_surfs) {
- pIcdSurface->real_icd_surfaces = loader_instance_heap_alloc(
- instance, sizeof(VkSurfaceKHR) * instance->total_icd_count,
- VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
- if (pIcdSurface->real_icd_surfaces == NULL) {
- loader_instance_heap_free(instance, pIcdSurface);
- pIcdSurface = NULL;
- } else {
- memset(pIcdSurface->real_icd_surfaces, 0,
- sizeof(VkSurfaceKHR) * instance->total_icd_count);
- }
+ pIcdSurface->real_icd_surfaces = loader_instance_heap_alloc(
+ instance, sizeof(VkSurfaceKHR) * instance->total_icd_count,
+ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
+ if (pIcdSurface->real_icd_surfaces == NULL) {
+ loader_instance_heap_free(instance, pIcdSurface);
+ pIcdSurface = NULL;
} else {
- pIcdSurface->real_icd_surfaces = NULL;
+ memset(pIcdSurface->real_icd_surfaces, 0,
+ sizeof(VkSurfaceKHR) * instance->total_icd_count);
}
}
return pIcdSurface;
@@ -584,7 +579,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWin32SurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface = AllocateIcdSurfaceStruct(ptr_instance,
sizeof(pIcdSurface->win_surf.base),
- sizeof(pIcdSurface->win_surf), true);
+ sizeof(pIcdSurface->win_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
@@ -716,7 +711,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateMirSurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface = AllocateIcdSurfaceStruct(ptr_instance,
sizeof(pIcdSurface->mir_surf.base),
- sizeof(pIcdSurface->mir_surf), true);
+ sizeof(pIcdSurface->mir_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
@@ -852,7 +847,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface = AllocateIcdSurfaceStruct(
ptr_instance, sizeof(pIcdSurface->wayland_surf.base),
- sizeof(pIcdSurface->wayland_surf), true);
+ sizeof(pIcdSurface->wayland_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
@@ -987,7 +982,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXcbSurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface = AllocateIcdSurfaceStruct(ptr_instance,
sizeof(pIcdSurface->xcb_surf.base),
- sizeof(pIcdSurface->xcb_surf), true);
+ sizeof(pIcdSurface->xcb_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
@@ -1123,7 +1118,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXlibSurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface = AllocateIcdSurfaceStruct(
ptr_instance, sizeof(pIcdSurface->xlib_surf.base),
- sizeof(pIcdSurface->xlib_surf), true);
+ sizeof(pIcdSurface->xlib_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
@@ -1531,7 +1526,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
// Next, if so, proceed with the implementation of this function:
pIcdSurface =
AllocateIcdSurfaceStruct(inst, sizeof(pIcdSurface->display_surf.base),
- sizeof(pIcdSurface->display_surf), true);
+ sizeof(pIcdSurface->display_surf));
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
commit 013e39a0873b11a0690de3c3aeb9686128cef01b
Author: Piers Daniell <pdaniell@nvidia.com>
Date: Tue Dec 13 16:51:49 2016 -0700
Allocate for real ICD surfaces for the VK_KHR_display extension
This was done for all the other WSI extensions, just not VK_KHR_display
diff --git a/loader/wsi.c b/loader/wsi.c
index c627026..9462b44 100644
--- a/loader/wsi.c
+++ b/loader/wsi.c
@@ -1528,11 +1528,10 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
goto out;
}
- // The VK_KHR_display path will continue to use the old path (hence the
- // false as the last parameter).
+ // Next, if so, proceed with the implementation of this function:
pIcdSurface =
AllocateIcdSurfaceStruct(inst, sizeof(pIcdSurface->display_surf.base),
- sizeof(pIcdSurface->display_surf), false);
+ sizeof(pIcdSurface->display_surf), true);
if (pIcdSurface == NULL) {
vkRes = VK_ERROR_OUT_OF_HOST_MEMORY;
goto out;
commit ccde29c12e76d93133ec01c8b297f83f99abb545
Author: Mark Lobodzinski <mark@lunarg.com>
Date: Mon Dec 12 08:33:13 2016 -0700
layers: Add some val/state-update todos
Couple of routines combine state updates and validation, adding a
note for future work.
Change-Id: I417025bbcabfd3e80ccefe166bc6ea3497222753
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 906a7b1..43c767d 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -3792,6 +3792,7 @@ static bool checkGraphicsOrComputeBit(const layer_data *my_data, VkQueueFlags fl
// Add specified CMD to the CmdBuffer in given pCB, flagging errors if CB is not
// in the recording state or if there's an issue with the Cmd ordering
+// TODO: Tease apart validation and CB state updates
static bool addCmd(layer_data *my_data, GLOBAL_CB_NODE *pCB, const CMD_TYPE cmd, const char *caller_name) {
bool skip_call = false;
auto pPool = getCommandPoolNode(my_data, pCB->createInfo.commandPool);
@@ -9022,6 +9023,7 @@ CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags
dev_data->dispatch_table.CmdResetEvent(commandBuffer, event, stageMask);
}
+// TODO: Separate validation and layout state updates
static bool TransitionImageLayouts(VkCommandBuffer cmdBuffer, uint32_t memBarrierCount,
const VkImageMemoryBarrier *pImgMemBarriers) {
layer_data *dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
commit 9f4d9dca546ec851f0d306e54dc0873411081098
Author: Mark Lobodzinski <mark@lunarg.com>
Date: Tue Dec 13 08:47:35 2016 -0700
layers: Update error database for new checks
Added 2510 and 2518.
Change-Id: I278bfe12d78c5239aa00f82ac4a1b35b5dcd58d0
diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt
index 21764d3..efec68f 100644
--- a/layers/vk_validation_error_database.txt
+++ b/layers/vk_validation_error_database.txt
@@ -2439,10 +2439,10 @@ VALIDATION_ERROR_02506~^~U~^~Unknown~^~vkCreateXcbSurfaceKHR~^~For more informat
VALIDATION_ERROR_02507~^~U~^~Unknown~^~vkCreateXlibSurfaceKHR~^~For more information refer to Vulkan Spec Section '30.2.6. Xlib Platform' which states 'window must be a valid Xlib Window.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkXlibSurfaceCreateInfoKHR)~^~
VALIDATION_ERROR_02508~^~U~^~Unknown~^~vkEnumerateDeviceExtensionProperties~^~For more information refer to Vulkan Spec Section '31.2. Extensions' which states 'If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a pointer to an array of pPropertyCount VkExtensionProperties structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkEnumerateDeviceExtensionProperties)~^~
VALIDATION_ERROR_02509~^~U~^~Unknown~^~vkQueueSubmit~^~For more information refer to Vulkan Spec Section '5.4. Command Buffer Submission' which states 'Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkQueueSubmit)~^~
-VALIDATION_ERROR_02510~^~U~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~
+VALIDATION_ERROR_02510~^~Y~^~InvalidBarriers~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~
VALIDATION_ERROR_02511~^~U~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Any given element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its srcAccessMask member if that bit is not supported by any of the pipeline stages in srcStageMask, as specified in the table of supported access types.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~
VALIDATION_ERROR_02512~^~U~^~Unknown~^~vkCmdWaitEvents~^~For more information refer to Vulkan Spec Section '6.4. Events' which states 'Any given element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its dstAccessMask member if that bit is not supported by any of the pipeline stages in dstStageMask, as specified in the table of supported access types.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdWaitEvents)~^~
-VALIDATION_ERROR_02513~^~U~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~
+VALIDATION_ERROR_02513~^~Y~^~InvalidBarriers~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'Any pipeline stage included in srcStageMask or dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~
VALIDATION_ERROR_02514~^~U~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'Any given element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its srcAccessMask member if that bit is not supported by any of the pipeline stages in srcStageMask, as specified in the table of supported access types.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~
VALIDATION_ERROR_02515~^~U~^~Unknown~^~vkCmdPipelineBarrier~^~For more information refer to Vulkan Spec Section '6.5. Pipeline Barriers' which states 'Any given element of pMemoryBarriers, pBufferMemoryBarriers or pImageMemoryBarriers must not have any access flag included in its dstAccessMask member if that bit is not supported by any of the pipeline stages in dstStageMask, as specified in the table of supported access types.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkDependencyFlagBits)~^~
VALIDATION_ERROR_02516~^~U~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#VkRenderPassCreateInfo)~^~
commit e85b48ac674f16ae53d9db0dc360a4eeaab2065e
Author: Mark Lobodzinski <mark@lunarg.com>
Date: Mon Dec 12 17:11:50 2016 -0700
tests: Add barrier/event queue compatibility tests
Change-Id: I2aa8635f50f2aecfa3e7c73be9be8b995a0420a1
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 05411f8..b194e98 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -8235,7 +8235,8 @@ TEST_F(VkLayerTest, InvalidBarriers) {
m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, "Buffer Barriers cannot be used during a render pass");
vk_testing::Buffer buffer;
- buffer.init(*m_device, 256);
+ VkMemoryPropertyFlags mem_reqs = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
+ buffer.init_as_src_and_dst(*m_device, 256, mem_reqs);
VkBufferMemoryBarrier buf_barrier = {};
buf_barrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
buf_barrier.pNext = NULL;
@@ -8339,6 +8340,66 @@ TEST_F(VkLayerTest, InvalidBarriers) {
vkCmdPipelineBarrier(m_commandBuffer->GetBufferHandle(), VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, 0, 0,
nullptr, 0, nullptr, 1, &img_barrier);
m_errorMonitor->VerifyFound();
+
+ // Attempt to mismatch barriers/waitEvents calls with incompatible queues
+
+ // Create command pool with incompatible queueflags
+ const std::vector<VkQueueFamilyProperties> queue_props = m_device->queue_props;
+ uint32_t queue_family_index = UINT32_MAX;
+ for (uint32_t i = 0; i < queue_props.size(); i++) {
+ if ((queue_props[i].queueFlags & VK_QUEUE_COMPUTE_BIT) == 0) {
+ queue_family_index = i;
+ break;
+ }
+ }
+ if (queue_family_index == UINT32_MAX) {
+ printf("No non-compute queue found; skipped.\n");
+ return;
+ }
+ m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, VALIDATION_ERROR_02513);
+
+ VkCommandPool command_pool;
+ VkCommandPoolCreateInfo pool_create_info{};
+ pool_create_info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
+ pool_create_info.queueFamilyIndex = queue_family_index;
+ pool_create_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
+ vkCreateCommandPool(m_device->device(), &pool_create_info, nullptr, &command_pool);
+
+ // Allocate a command buffer
+ VkCommandBuffer bad_command_buffer;
+ VkCommandBufferAllocateInfo command_buffer_allocate_info = {};
+ command_buffer_allocate_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
+ command_buffer_allocate_info.commandPool = command_pool;
+ command_buffer_allocate_info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
+ command_buffer_allocate_info.commandBufferCount = 1;
+ ASSERT_VK_SUCCESS(vkAllocateCommandBuffers(m_device->device(), &command_buffer_allocate_info, &bad_command_buffer));
+
+ VkCommandBufferBeginInfo cbbi = {};
+ cbbi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
+ vkBeginCommandBuffer(bad_command_buffer, &cbbi);
+ buf_barrier.offset = 0;
+ buf_barrier.size = VK_WHOLE_SIZE;
+ vkCmdPipelineBarrier(bad_command_buffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, 0, 0, nullptr, 1,
+ &buf_barrier, 0, nullptr);
Reply to: