[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

vulkan: Changes to 'debian-unstable'



 CMakeLists.txt                                             |   10 
 build_windows_targets.bat                                  |   12 
 cmake/FindWayland.cmake                                    |   66 
 debian/changelog                                           |   16 
 debian/control                                             |   12 
 debian/libvulkan1.install                                  |    2 
 debian/libvulkan1.postinst                                 |   13 
 debian/libvulkan1.postrm                                   |   13 
 debian/patches/demos-add-install-rule.diff                 |    2 
 debian/patches/demos-dont-build-tri-or-cube-or-smoke.diff  |    2 
 debian/patches/layers-install-to-cmake-install-libdir.diff |    4 
 debian/patches/loader-add-install-rule.diff                |    4 
 debian/patches/series                                      |    1 
 debian/patches/trim-build.diff                             |    3 
 debian/patches/use-mxgot-for-mips64.patch                  |   18 
 demos/CMakeLists.txt                                       |   32 
 demos/android/include/lunarg.ppm.h                         |    4 
 demos/cube.c                                               |  228 
 demos/smoke/CMakeLists.txt                                 |   19 
 demos/smoke/Helpers.h                                      |    9 
 demos/smoke/Main.cpp                                       |   15 
 demos/smoke/Shell.cpp                                      |   25 
 demos/smoke/Shell.h                                        |    1 
 demos/smoke/ShellWayland.cpp                               |  290 
 demos/smoke/ShellWayland.h                                 |   69 
 demos/smoke/generate-dispatch-table                        |    1 
 demos/tri.c                                                |  183 
 demos/vulkaninfo.c                                         |    2 
 generator.py                                               |   17 
 glslang_revert_a5c33d.patch.txt                            |   18 
 glslang_revision                                           |    2 
 include/vulkan/vulkan.h                                    |   34 
 layers/CMakeLists.txt                                      |    2 
 layers/README.md                                           |    5 
 layers/core_validation.cpp                                 | 3810 +++++++------
 layers/core_validation.h                                   |   65 
 layers/core_validation_error_enums.h                       |   20 
 layers/core_validation_types.h                             |   86 
 layers/descriptor_sets.cpp                                 |   98 
 layers/descriptor_sets.h                                   |   14 
 layers/device_limits.cpp                                   |  816 --
 layers/device_limits.h                                     |   70 
 layers/linux/VkLayer_core_validation.json                  |    2 
 layers/linux/VkLayer_device_limits.json                    |   17 
 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.h                                    |  122 
 layers/parameter_validation.cpp                            |  235 
 layers/parameter_validation_utils.h                        |    4 
 layers/swapchain.cpp                                       |  377 +
 layers/swapchain.h                                         |   10 
 layers/threading.cpp                                       |   94 
 layers/threading.h                                         |   52 
 layers/unique_objects.h                                    |  203 
 layers/vk_layer_config.cpp                                 |    4 
 layers/vk_layer_settings.txt                               |    4 
 layers/vk_validation_layer_details.md                      |   80 
 layers/windows/VkLayer_core_validation.json                |    2 
 layers/windows/VkLayer_device_limits.json                  |   17 
 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/vkjson_info.cc                                 |    2 
 loader/CMakeLists.txt                                      |    3 
 loader/LoaderAndLayerInterface.md                          |  155 
 loader/cJSON.c                                             |    4 
 loader/cJSON.h                                             |    2 
 loader/debug_report.c                                      |   83 
 loader/dirent_on_windows.c                                 |   16 
 loader/loader.c                                            | 1104 ++-
 loader/loader.h                                            |   61 
 loader/trampoline.c                                        |  338 -
 loader/vk_loader_platform.h                                |   29 
 loader/wsi.c                                               |  152 
 spirv-tools_revision                                       |    2 
 tests/CMakeLists.txt                                       |    5 
 tests/layer_validation_tests.cpp                           | 2784 ++++++++-
 tests/layers/wrap_objects.cpp                              |    8 
 tests/loader_validation_tests.cpp                          |  488 +
 tests/run_all_tests.sh                                     |    5 
 tests/run_loader_tests.sh                                  |   25 
 tests/run_wrap_objects_tests.sh                            |  133 
 tests/test_wrap_objects.sh                                 |   30 
 tests/vk_layer_settings.txt                                |    2 
 tests/vkrenderframework.cpp                                |   49 
 tests/vkrenderframework.h                                  |   20 
 tests/vktestframework.cpp                                  |    8 
 update_external_sources.bat                                |    7 
 update_external_sources.sh                                 |   10 
 vk-generate.py                                             |    3 
 vk-layer-generate.py                                       |  190 
 vk.xml                                                     |  402 +
 vk_helper.py                                               |   14 
 vk_layer_documentation_generate.py                         |    8 
 vulkan.py                                                  |   70 
 102 files changed, 9373 insertions(+), 4199 deletions(-)

New commits:
commit af8df5df83387ae847ae36fc4160eea4346a9d14
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Aug 19 00:22:53 2016 +0300

    release to sid

diff --git a/debian/changelog b/debian/changelog
index 37b9b63..72a1a9f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-vulkan (1.0.21.0+dfsg1-1) UNRELEASED; urgency=medium
+vulkan (1.0.21.0+dfsg1-1) unstable; urgency=medium
 
   * New upstream release.
   * copyright: Update excludes.
@@ -15,7 +15,7 @@ vulkan (1.0.21.0+dfsg1-1) UNRELEASED; urgency=medium
     a patch to fix the build on mips64 in case the build is revived
     later. (Closes: #827651)
 
- -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Fri, 19 Aug 2016 00:22:42 +0300
 
 vulkan (1.0.8.0+dfsg1-1) unstable; urgency=medium
 

commit 608d35e80683356d43b90425ba4bed25ec3a2ceb
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Aug 19 00:18:23 2016 +0300

    fix changelog a bit

diff --git a/debian/changelog b/debian/changelog
index 150c078..37b9b63 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,7 +4,7 @@ vulkan (1.0.21.0+dfsg1-1) UNRELEASED; urgency=medium
   * copyright: Update excludes.
   * patches: Refreshed.
   * control: Build only on linux, others are not supported.
-  * Don't build layers, which now depend on SPIR-V. (Closes: #822284)
+  * Don't build layers, which now depend on SPIR-V tools. (Closes: #822284)
   * control: Add multiarch support. (Closes: #834200)
   * control: Fix libvulkan1 description. (Closes: #822283)
   * control: Add Breaks/Replaces against upstream packages. (Closes: #823554)

commit d529a8e12dd7aa4a4e76ccfb7a6653982d46ebd5
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri Aug 19 00:02:17 2016 +0300

    drop B/R: vulkan-sdk-runtime from libvulkan1

diff --git a/debian/control b/debian/control
index 4aedc51..afceef3 100644
--- a/debian/control
+++ b/debian/control
@@ -19,8 +19,8 @@ Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/vulkan.git
 Package: libvulkan1
 Architecture: linux-any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Breaks: vulkan-loader, vulkan-sdk-runtime,
-Replaces: vulkan-loader, vulkan-sdk-runtime
+Breaks: vulkan-loader
+Replaces: vulkan-loader
 Multi-Arch: same
 Description: Vulkan loader library
  The Loader implements the main VK library. It handles layer management and

commit 6ea6b1fc780dd44bcad87cf959b2980c1a3705ef
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:57:24 2016 +0300

    update version, refresh patches

diff --git a/debian/changelog b/debian/changelog
index 477ab31..150c078 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
+vulkan (1.0.21.0+dfsg1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * copyright: Update excludes.
diff --git a/debian/patches/demos-add-install-rule.diff b/debian/patches/demos-add-install-rule.diff
index 0dd3c65..3347402 100644
--- a/debian/patches/demos-add-install-rule.diff
+++ b/debian/patches/demos-add-install-rule.diff
@@ -1,7 +1,7 @@
 Description: Add an install rule for vulkaninfo
 --- a/demos/CMakeLists.txt
 +++ b/demos/CMakeLists.txt
-@@ -89,3 +89,5 @@ endif()
+@@ -114,3 +114,5 @@ endif()
  
  add_executable(vulkaninfo vulkaninfo.c)
  target_link_libraries(vulkaninfo ${LIBRARIES})
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 0a4743f..5c73929 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
-@@ -89,27 +89,3 @@ endif()
+@@ -114,27 +114,3 @@ endif()
  
  add_executable(vulkaninfo vulkaninfo.c)
  target_link_libraries(vulkaninfo ${LIBRARIES})
diff --git a/debian/patches/layers-install-to-cmake-install-libdir.diff b/debian/patches/layers-install-to-cmake-install-libdir.diff
index 36e8116..ddfc3a0 100644
--- a/debian/patches/layers-install-to-cmake-install-libdir.diff
+++ b/debian/patches/layers-install-to-cmake-install-libdir.diff
@@ -6,7 +6,7 @@ Date:   Wed Feb 10 15:11:54 2016 -0500
 
 --- a/layers/CMakeLists.txt
 +++ b/layers/CMakeLists.txt
-@@ -82,7 +82,7 @@ else()
+@@ -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")
@@ -15,7 +15,7 @@ Date:   Wed Feb 10 15:11:54 2016 -0500
      endmacro()
  endif()
  
-@@ -149,7 +149,7 @@ if (WIN32)
+@@ -148,7 +148,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)
diff --git a/debian/patches/loader-add-install-rule.diff b/debian/patches/loader-add-install-rule.diff
index 0c2a516..3be8930 100644
--- a/debian/patches/loader-add-install-rule.diff
+++ b/debian/patches/loader-add-install-rule.diff
@@ -6,9 +6,9 @@ Date:   Wed Feb 10 15:17:06 2016 -0500
 
 --- a/loader/CMakeLists.txt
 +++ b/loader/CMakeLists.txt
-@@ -83,4 +83,5 @@ else()
+@@ -84,4 +84,5 @@ else()
      add_library(vulkan SHARED ${LOADER_SRCS})
-     set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "1.0.17")
+     set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "1.0.21")
      target_link_libraries(vulkan -ldl -lpthread -lm)
 +    install(TARGETS vulkan DESTINATION ${CMAKE_INSTALL_LIBDIR})
  endif()

commit 9d95737306480ef2f039a065857971ac190e38c8
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:51:58 2016 +0300

    use-mxgot-for-mips64.patch: While we don't build layers anymore, add a patch to fix the build on mips64 in case the build is revived later. (Closes: #827651)

diff --git a/debian/changelog b/debian/changelog
index 8332ecd..477ab31 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,9 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
     (LP: #1572114)
   * Drop libvulkan1 postinst/postrm. (Closes: #822286)
   * control: Bump policy to 3.9.8, no changes.
+  * use-mxgot-for-mips64.patch: While we don't build layers anymore, add
+    a patch to fix the build on mips64 in case the build is revived
+    later. (Closes: #827651)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/patches/series b/debian/patches/series
index 0c445fa..d8cfb66 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ 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
diff --git a/debian/patches/use-mxgot-for-mips64.patch b/debian/patches/use-mxgot-for-mips64.patch
new file mode 100644
index 0000000..14b60fd
--- /dev/null
+++ b/debian/patches/use-mxgot-for-mips64.patch
@@ -0,0 +1,18 @@
+Description: use -mxgot flag on mips64
+Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
+
+--- a/layers/CMakeLists.txt
++++ b/layers/CMakeLists.txt
+@@ -104,6 +104,12 @@ else()
+     set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith")
+ endif()
+ 
++if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "mips64")
++    if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
++        set_source_files_properties(core_validation.cpp PROPERTIES COMPILE_FLAGS -mxgot)
++    endif()
++endif()
++
+ add_custom_command(OUTPUT vk_dispatch_table_helper.h
+     COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py ${DisplayServer} dispatch-table-ops layer > vk_dispatch_table_helper.h
+     DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)

commit bc38e87267b2ee1c1d03ca6f93d103ec2aa657cb
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:42:08 2016 +0300

    control: Bump policy to 3.9.8, no changes.

diff --git a/debian/changelog b/debian/changelog
index 0db0636..8332ecd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * control: Add Breaks/Replaces against upstream packages. (Closes: #823554)
     (LP: #1572114)
   * Drop libvulkan1 postinst/postrm. (Closes: #822286)
+  * control: Bump policy to 3.9.8, no changes.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/control b/debian/control
index aaa9823..4aedc51 100644
--- a/debian/control
+++ b/debian/control
@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 9),
  python3,
  python3-lxml,
  quilt,
-Standards-Version: 3.9.7
+Standards-Version: 3.9.8
 Section: libs
 Homepage: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers
 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/lib/vulkan.git

commit 91729d400f374e76bbaaec1db4abb716b13bd7d9
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:41:42 2016 +0300

    Drop libvulkan1 postinst/postrm. (Closes: #822286)

diff --git a/debian/changelog b/debian/changelog
index 26789ac..0db0636 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * control: Fix libvulkan1 description. (Closes: #822283)
   * control: Add Breaks/Replaces against upstream packages. (Closes: #823554)
     (LP: #1572114)
+  * Drop libvulkan1 postinst/postrm. (Closes: #822286)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/libvulkan1.postinst b/debian/libvulkan1.postinst
deleted file mode 100644
index 66c10ff..0000000
--- a/debian/libvulkan1.postinst
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-  configure)
-  ldconfig
-
-esac
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/libvulkan1.postrm b/debian/libvulkan1.postrm
deleted file mode 100644
index 6ebff61..0000000
--- a/debian/libvulkan1.postrm
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-  remove)
-  ldconfig
-
-esac
-
-#DEBHELPER#
-
-exit 0

commit eae0bf66b9a432333dbfa7034120fa2a24d75aef
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:25:03 2016 +0300

    Fix changelog typo, close a bug

diff --git a/debian/changelog b/debian/changelog
index c0b4196..26789ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,7 +4,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * copyright: Update excludes.
   * patches: Refreshed.
   * control: Build only on linux, others are not supported.
-  * Don't build layers, which now depend on SPIRV.
+  * Don't build layers, which now depend on SPIR-V. (Closes: #822284)
   * control: Add multiarch support. (Closes: #834200)
   * control: Fix libvulkan1 description. (Closes: #822283)
   * control: Add Breaks/Replaces against upstream packages. (Closes: #823554)

commit 662f194c230851c188c731fcd0ed1d13f4d14053
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:24:12 2016 +0300

    control: Add Breaks/Replaces against upstream packages. (Closes: #823554) (LP: #1572114)

diff --git a/debian/changelog b/debian/changelog
index ab59598..c0b4196 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * Don't build layers, which now depend on SPIRV.
   * control: Add multiarch support. (Closes: #834200)
   * control: Fix libvulkan1 description. (Closes: #822283)
+  * control: Add Breaks/Replaces against upstream packages. (Closes: #823554)
+    (LP: #1572114)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/control b/debian/control
index 54f0552..aaa9823 100644
--- a/debian/control
+++ b/debian/control
@@ -19,6 +19,8 @@ Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/vulkan.git
 Package: libvulkan1
 Architecture: linux-any
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: vulkan-loader, vulkan-sdk-runtime,
+Replaces: vulkan-loader, vulkan-sdk-runtime
 Multi-Arch: same
 Description: Vulkan loader library
  The Loader implements the main VK library. It handles layer management and
@@ -34,6 +36,8 @@ Architecture: linux-any
 Depends:
  libvulkan1 (= ${binary:Version}),
  ${misc:Depends},
+Breaks: vulkan-sdk-headers
+Replaces: vulkan-sdk-headers
 Multi-Arch: same
 Description: Vulkan loader library -- development files
  The Loader implements the main VK library. It handles layer management and
@@ -48,5 +52,7 @@ Architecture: linux-any
 Section: graphics
 Depends: ${shlibs:Depends}, ${misc:Depends},
  libvulkan1,
+Breaks: vulkan-sdk-runtime
+Replaces: vulkan-sdk-runtime
 Description: Miscellaneous Vulkan utilities
  This package provides utilities for Vulkan, including vulkaninfo.

commit 2ace44786e7e1e227467dc132dad15c3b3ec5f75
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:02:20 2016 +0300

    control: Fix libvulkan1 description. (Closes: #822283)

diff --git a/debian/changelog b/debian/changelog
index d62d809..ab59598 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * control: Build only on linux, others are not supported.
   * Don't build layers, which now depend on SPIRV.
   * control: Add multiarch support. (Closes: #834200)
+  * control: Fix libvulkan1 description. (Closes: #822283)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/control b/debian/control
index ec60731..54f0552 100644
--- a/debian/control
+++ b/debian/control
@@ -26,7 +26,7 @@ Description: Vulkan loader library
  this, it dispatches API calls to the correct driver, and to the correct
  layers, based on the GPU object selected by the application.
  .
- This package includes the loader library and vulkaninfo binary.
+ This package includes the loader library.
 
 Package: libvulkan-dev
 Section: libdevel

commit 77828f842145d67ac421e25e9f32fc59b4c0c67a
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 23:00:31 2016 +0300

    control: Add multiarch support. (Closes: #834200)

diff --git a/debian/changelog b/debian/changelog
index bd34173..d62d809 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * patches: Refreshed.
   * control: Build only on linux, others are not supported.
   * Don't build layers, which now depend on SPIRV.
+  * control: Add multiarch support. (Closes: #834200)
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/control b/debian/control
index b1c6ca4..ec60731 100644
--- a/debian/control
+++ b/debian/control
@@ -19,6 +19,7 @@ Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/lib/vulkan.git
 Package: libvulkan1
 Architecture: linux-any
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: same
 Description: Vulkan loader library
  The Loader implements the main VK library. It handles layer management and
  driver management. The loader fully supports multi-gpu operation. As part of
@@ -33,6 +34,7 @@ Architecture: linux-any
 Depends:
  libvulkan1 (= ${binary:Version}),
  ${misc:Depends},
+Multi-Arch: same
 Description: Vulkan loader library -- development files
  The Loader implements the main VK library. It handles layer management and
  driver management. The loader fully supports multi-gpu operation. As part of

commit 105f1be26f81893cfcd14aa4c5bce0143ee72fb0
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Aug 18 22:40:28 2016 +0300

    Don't build layers, which now depend on SPIRV.

diff --git a/debian/changelog b/debian/changelog
index cc023a0..bd34173 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ vulkan (1.0.17.0+dfsg1-1) UNRELEASED; urgency=medium
   * copyright: Update excludes.
   * patches: Refreshed.
   * control: Build only on linux, others are not supported.
+  * Don't build layers, which now depend on SPIRV.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 30 Jun 2016 13:28:49 +0300
 
diff --git a/debian/libvulkan1.install b/debian/libvulkan1.install
index b90e938..f55d4cf 100644
--- a/debian/libvulkan1.install
+++ b/debian/libvulkan1.install
@@ -1,5 +1,3 @@
 usr/lib/*/lib*.so.*
-usr/lib/*/liblayer_utils.so
-usr/lib/*/libVk*.so
 usr/share/vulkan/explicit_layer.d
 usr/share/vulkan/implicit_layer.d
diff --git a/debian/patches/trim-build.diff b/debian/patches/trim-build.diff
index 6ae20f9..98cd147 100644
--- a/debian/patches/trim-build.diff
+++ b/debian/patches/trim-build.diff
@@ -5,8 +5,9 @@
  
  option(BUILD_LOADER "Build loader" ON)
 -option(BUILD_TESTS "Build tests" ON)
+-option(BUILD_LAYERS "Build layers" ON)
 +option(BUILD_TESTS "Build tests" OFF)
- option(BUILD_LAYERS "Build layers" ON)
++option(BUILD_LAYERS "Build layers" OFF)
  option(BUILD_DEMOS "Build demos" ON)
 -option(BUILD_VKJSON "Build vkjson" ON)
 +option(BUILD_VKJSON "Build vkjson" OFF)

commit 97e3b677d9681aa8d420c314edae96c4bf72246d
Author: Mark Young <marky@lunarg.com>
Date:   Wed Jul 20 11:38:53 2016 -0600

    loader: Clean up some things in the MD file
    
    Clean up some documentation in the LoaderAndLayerInterface
    markdown.  Over the next few weeks, I'll be working on
    cleaning up the format and language of this doc.
    
    Change-Id: I7858981293de9befb34701c31542d88c664cd6d8

diff --git a/loader/LoaderAndLayerInterface.md b/loader/LoaderAndLayerInterface.md
index ca71fae..e5df181 100644
--- a/loader/LoaderAndLayerInterface.md
+++ b/loader/LoaderAndLayerInterface.md
@@ -1,23 +1,27 @@
 # Vulkan Loader Specification and Architecture Overview
 
+<br/>
 
-Goals of this document
+## Goals of this document ##
 ----------------------
 
 Specify necessary functions and expected behavior of interface between the
 loader library and ICDs and layers for Windows, Linux and Android based
 systems. Also describe the application visible behaviors of the loader.
 
-Audience
+<br/>
+
+## Audience ##
 --------
 
-Application, Vulkan driver and Vulkan layer developers.
+This document is primarily targeted at Vulkan application, driver and layer developers.
+However, it can also be used by any developer interested in understanding more about
+how the Vulkan loader and layers interact.
 
-Any developers interested in understanding more about loader and layer behavior
-and architecture.
+<br/>
 
 
-Loader goals
+## Loader goals ##
 ------------
 
 -   Support multiple ICDs (Installable Client Drivers) to co-exist on a system
@@ -29,39 +33,47 @@ developer or the system and have no impact when not enabled.
 -   Negligible performance cost for an application calling through the loader
 to an ICD entry point.
 
-Architectural overview of layers and loader
+<br/>
+
+## Architectural overview of layers and loader ##
 -------------------------------------------
 
-Vulkan is a layered architecture. Layers can hook (intercept) Vulkan commands to
-achieve various functionality that a Vulkan driver (aka ICD) or loader doesn't
-support. Functionality such as Vulkan API tracing and debugging, API usage
-validation, and other tools such as framebuffer overlays are all natural
-candidates for Vulkan layers. Layers are implemented as libraries that are
-inserted between the application and the driver.
-
-Not only is Vulkan a layered architecture but it also supports multiple GPUs
-and their drivers. Vulkan commands called by an application may wind up calling
-into a diverse set of modules: loader, layers, and ICDs. The loader is critical
-to managing the proper dispatching of Vulkan commands to the appropriate set of
-layers and ICDs. The Vulkan object model allows the loader to insert layers
-into a call chain so the layers can process Vulkan commands prior to the
-ICD being called.
+Vulkan is a layered architecture placing the Application on one end, the
+ICDs on the other, and the loader and some number of layers in between.
+
+Layers are implemented as libraries that can be enabled in different ways
+(including by application request) and loaded during CreateInstance.  Each
+layer can chooses to hook (intercept) any Vulkan commands which in turn
+can be ignored, augmented, or simply passed along.  A layer may also
+expose functionality not available in the loader or any ICD.  Some examples
+of this include: the ability to perform Vulkan API tracing and debugging,
+validate API usage, or overlay additional content on the applications surfaces.
+
+The loader is responsible for working with the various layers as well as
+supporting multiple GPUs and their drivers.  Any Vulkan command may
+wind up calling into a diverse set of modules: loader, layers, and ICDs.
+The loader is critical to managing the proper dispatching of Vulkan
+commands to the appropriate set of layers and ICDs. The Vulkan object
+model allows the loader to insert layers into a call chain so that the layers
+can process Vulkan commands prior to the ICD being called.
 
 Vulkan uses an object model to control the scope of a particular action /
 operation.  The object to be acted on is always the first parameter of a Vulkan
 call and is a dispatchable object (see Vulkan specification section 2.3 Object
 Model).  Under the covers, the dispatchable object handle is a pointer to a
-structure that contains a pointer to a dispatch table maintained by the loader.
-This dispatch table contains pointers to the Vulkan functions appropriate to
-that object. There are two types of dispatch tables the loader maintains,
-Instance and Device. I.e. a VkInstance object's dispatch table will point to Vulkan
-functions such as vkEnumeratePhysicalDevices, vkDestroyInstance,
-vkCreateInstance, etc. Instance functions take a VkInstance or VkPhysicalDevice as
-their first argument.
-
-Device objects have a separate dispatch table containing the appropriate
-function pointers. The device dispatch table is used for all functions that
-take a VkDevice, VkQueue or VkCommandBuffer as their first argument.
+structure, which in turn, contains a pointer to a dispatch table maintained by
+the loader.  This dispatch table contains pointers to the Vulkan functions appropriate to
+that object.
+
+There are two types of dispatch tables the loader maintains:
+-  **Instance Dispatch Table**
+  - Contains any function that takes a VkInstance or VkPhysicalDevice as their first parameter
+    - vkEnumeratePhysicalDevices
+    - vkDestroyInstance
+    - vkCreateInstance
+    - ...
+-  **Device Dispatch Table**
+  - Contains any function that takes a VkDevice, VkQueue or VkCommandBuffer as their first parameter
 
 These instance and device dispatch tables are constructed when the application
 calls vkCreateInstance and vkCreateDevice. At that time the application and/or
@@ -90,7 +102,9 @@ the chain. The below diagram also illustrates how layers (either device or
 instance) can skip intercepting any given Vulkan entry point.
 ![Chain skipping layers](chain_skipping_layers.png)
 
-Application interface to loader
+<br/>
+
+## Application interface to loader ##
 -------------------------------
 
 In this section we'll discuss how an application interacts with the loader.
@@ -308,8 +322,10 @@ No!  Most extension functionality only affects a device and not an instance or a
 device.  Thus, the overwhelming majority of extensions will be device extensions rather than
 instance extensions.
 
+<br/>
+
 
-Vulkan Installable Client Driver interface with the loader
+## Vulkan Installable Client Driver interface with the loader ##
 ----------------------------------------------------------
 
 ### ICD discovery
@@ -544,8 +560,9 @@ changed. The loader will load the driver/ICD via hw_get_module with the ID
 of "vulkan". Due to security policies in Android none of this can be modified
 under normal use.
 
+<br/>
 
-ICD interface requirements
+## ICD interface requirements ##
 ----------------------------------------
 
 Generally, for all Vulkan commands issued by an application, the loader can be
@@ -752,7 +769,9 @@ loader queries layer and extension information directly from the
 respective libraries and does not use the json manifest files used
 by the Windows and Linux loaders.
 
-Vulkan layer interface with the loader
+<br/>
+
+## Vulkan layer interface with the loader ##
 --------------------------------------
 
 ### Layer discovery
@@ -1022,7 +1041,9 @@ application would.
 An application enabled for debug has more options. It can enumerate and enable
 layers located in /data/local/vulkan/debug.
 
-Layer interface requirements
+<br/>
+
+## Layer interface requirements ##
 ------------------------------------------------------
 
 #### Architectural interface overview

commit 0e6c3149ca9fb53b00b89bc32c16a0d3c7a2b191
Author: Mark Young <marky@lunarg.com>
Date:   Tue Jul 19 11:49:45 2016 -0600

    loader: Clarify in docs about WSI and inst ext.
    
    Clarify in the LoaderAndLayerInterface markdown file what WSI
    extensions are available by default in the desktop loader.
    Additionally, clarify that instance extensions are not supported
    by the Loader unless they have been specifically added to the
    Loader.
    
    Change-Id: I21bd2a63ed1e4a7e50d27e7a6b136eeeaea4d68c

diff --git a/loader/LoaderAndLayerInterface.md b/loader/LoaderAndLayerInterface.md
index 3f0fef8..ca71fae 100644
--- a/loader/LoaderAndLayerInterface.md
+++ b/loader/LoaderAndLayerInterface.md
@@ -248,6 +248,66 @@ Get\*ProcAddr will often be the only way to access extension API features.
 
 ![Get*ProcAddr efficiency](get_proc_addr.png)
 
+##### WSI Extensions
+
+Khronos approved WSI extensions are available and provide Windows System Integration
+support for various execution environments. It is important to understand that some WSI
+extensions are valid for all targets, but others are particular to a given execution
+environment (and loader). This desktop loader (currently targeting Windows and Linux)
+only enables those WSI extensions that are appropriate to the current environment.
+For the most part, the selection is done in the loader using  compile-time preprocessor
+flags. All versions of the desktop loader currently expose at least the following WSI
+extension support:
+- VK_KHR_surface
+- VK_KHR_swapchain
+- VK_KHR_display
+
+In addition, each of the following OS targets for the loader support target-specific extensions:
+- **Windows** : VK_KHR_win32_surface
+- **Linux (default)** : VK_KHR_xcb_surface and VK_KHR_xlib_surface
+- **Linux (Wayland build)** : VK_KHR_wayland_surface
+- **Linux (Mir build)** : VK_KHR_mir_surface
+
+**NOTE:** Wayland and Mir targets are not fully supported at this time and should be considered
+alpha quality.
+
+It is important to understand that while the loader may support the various entry-points
+for these extensions, there is a hand-shake required to actually use them:
+* At least one physical device must support the extension(s)
+* The application must select such a physical device
+* The application must request the extension(s) be enabled while creating the instance or logical device (This depends on whether or not the given extension works with an instance or a device).
+* The instance and/or logical device creation must succeed.
+
+Only then can you expect to properly use a WSI extension in your Vulkan program.
+
+##### New Extensions
+
+With the ability to expand Vulkan so easily, extensions will be created that the loader knows
+nothing about.  If the extension is a device extension, the loader will pass the unknown
+entry-point down the device call chain ending with the appropriate ICD entry-points.
+However, if the extension is an instance extension, the loader will fail to load it.
+
+*But why doesn't the loader support unknown instance extensions?*
+<br/>
+Let's look again at the Instance call chain:
+![Instance call chain](instance_call_chain.png)
+
+Notice that for a normal instance function call, the loader has to handle passing along the
+function call to the available ICDs.  If the loader has no idea of the parameters or return
+value of the instance call, it can't properly pass information along to the ICDs.
+There may be ways to do this, which will be explored in the future.  However, for now, this
+loader does not support any unknown instance extensions.
+
+Because the device call-chain does not pass through the loader terminator, this is not
+a problem for device extensions.  Instead, device extensions terminate directly in the
+ICD they are associated with.
+
+*Is this a big problem?*
+<br/>
+No!  Most extension functionality only affects a device and not an instance or a physical
+device.  Thus, the overwhelming majority of extensions will be device extensions rather than
+instance extensions.
+
 
 Vulkan Installable Client Driver interface with the loader
 ----------------------------------------------------------

commit f5aa7ebbe3b3916d891eaf041c5bf7d72df81c84
Author: Karl Schultz <karl@lunarg.com>
Date:   Mon Jul 18 16:40:49 2016 -0600

    misc: update spirv tools revision
    
    Change-Id: I8abb31de604ae4a50bb4900e9498de9953c5646b

diff --git a/spirv-tools_revision b/spirv-tools_revision
index d019f66..2df4b89 100644
--- a/spirv-tools_revision
+++ b/spirv-tools_revision
@@ -1 +1 @@
-37e4600c3efad7b1cfdc1df70a977be82eb3c811
+1a9385bbd0e6eae188c14302cf37c415ecc8b698

commit f93e39d823e1edf17d58ce476a8aab0efe1a2e5a
Author: Dustin Graves <dustin@lunarg.com>
Date:   Fri Jul 15 11:40:20 2016 -0600

    tests: Add NV_dedicated_allocation support test
    
    Add a positive test for NV_dedicated_allocation extension structure
    support in the parameter_validation and unique_objects layers.
    
    Change-Id: I332c2383aa663d0368db2dc477160bd0fa4aa012

diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index edff0cf..717ed6d 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -1114,6 +1114,87 @@ TEST_F(VkLayerTest, InvalidStructPNext) {
     vkDestroyDescriptorSetLayout(m_device->device(), ds_layout, NULL);
     vkDestroyDescriptorPool(m_device->device(), ds_pool, NULL);
 
+    // Positive test to check parameter_validation and unique_objects support
+    // for NV_dedicated_allocation
+    uint32_t extension_count = 0;
+    bool supports_nv_dedicated_allocation = false;
+    err = vkEnumerateDeviceExtensionProperties(gpu(), nullptr, &extension_count,
+                                               nullptr);
+    ASSERT_VK_SUCCESS(err);
+
+    if (extension_count > 0) {
+        std::vector<VkExtensionProperties> available_extensions(
+            extension_count);
+
+        err = vkEnumerateDeviceExtensionProperties(
+            gpu(), nullptr, &extension_count, &available_extensions[0]);
+        ASSERT_VK_SUCCESS(err);
+
+        for (const auto &extension_props : available_extensions) {
+            if (strcmp(extension_props.extensionName,
+                       VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME) == 0) {
+                supports_nv_dedicated_allocation = true;
+            }
+        }
+    }
+
+    if (supports_nv_dedicated_allocation) {
+        m_errorMonitor->ExpectSuccess();
+
+        VkDedicatedAllocationBufferCreateInfoNV dedicated_buffer_create_info =
+            {};
+        dedicated_buffer_create_info.sType =
+            VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
+        dedicated_buffer_create_info.pNext = nullptr;
+        dedicated_buffer_create_info.dedicatedAllocation = VK_TRUE;
+
+        uint32_t queue_family_index = 0;
+        VkBufferCreateInfo buffer_create_info = {};
+        buffer_create_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
+        buffer_create_info.pNext = &dedicated_buffer_create_info;
+        buffer_create_info.size = 1024;
+        buffer_create_info.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
+        buffer_create_info.queueFamilyIndexCount = 1;
+        buffer_create_info.pQueueFamilyIndices = &queue_family_index;
+
+        VkBuffer buffer;
+        VkResult err = vkCreateBuffer(m_device->device(), &buffer_create_info,
+                                      NULL, &buffer);
+        ASSERT_VK_SUCCESS(err);
+
+        VkMemoryRequirements memory_reqs;
+        vkGetBufferMemoryRequirements(m_device->device(), buffer, &memory_reqs);
+
+        VkDedicatedAllocationMemoryAllocateInfoNV dedicated_memory_info = {};
+        dedicated_memory_info.sType =
+            VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
+        dedicated_memory_info.pNext = nullptr;
+        dedicated_memory_info.buffer = buffer;
+        dedicated_memory_info.image = VK_NULL_HANDLE;
+
+        VkMemoryAllocateInfo memory_info = {};
+        memory_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
+        memory_info.pNext = &dedicated_memory_info;
+        memory_info.allocationSize = memory_reqs.size;
+
+        bool pass;
+        pass = m_device->phy().set_memory_type(memory_reqs.memoryTypeBits,
+                                               &memory_info, 0);
+        ASSERT_TRUE(pass);
+
+        VkDeviceMemory buffer_memory;
+        err = vkAllocateMemory(m_device->device(), &memory_info, NULL,
+                               &buffer_memory);
+        ASSERT_VK_SUCCESS(err);
+
+        err = vkBindBufferMemory(m_device->device(), buffer, buffer_memory, 0);
+        ASSERT_VK_SUCCESS(err);
+
+        vkDestroyBuffer(m_device->device(), buffer, NULL);
+        vkFreeMemory(m_device->device(), buffer_memory, NULL);
+
+        m_errorMonitor->VerifyNotFound();
+    }
 }
 
 TEST_F(VkLayerTest, UnrecognizedValue) {

commit 15b4845aaf667fa51be8fa910970901da84cc5a9
Author: Dustin Graves <dustin@lunarg.com>
Date:   Thu Jul 14 17:28:11 2016 -0600

    layers: NV_dedicated_allocation support for unique_objects
    
    Add ID substitution support for the
    VkDedicatedAllocationMemoryAllocateInfoNV extension structure to the
    unique_objects layer.  The current implementation is specific to the
    case where the vkAllocateMemory pAllocateInfo parameter references
    a single VkDedicatedAllocationMemoryAllocateInfoNV struct.
    
    Issues-Addressed: GitHub #755
    Change-Id: I33c3f00d32149044694ecafe808673e5d90107b4

diff --git a/layers/unique_objects.h b/layers/unique_objects.h
index 18a07ac..962985e 100644
--- a/layers/unique_objects.h
+++ b/layers/unique_objects.h
@@ -21,10 +21,11 @@
 #include "vk_loader_platform.h"
 #include "vulkan/vulkan.h"
 
+#include <cinttypes>
+#include <memory>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <cinttypes>
 
 #include <unordered_map>


Reply to: