Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
b6813a0e by Niklas Haas at 2022-07-12T04:57:25+00:00
ci: update images

The newer images include the necessary tools to compile recent versions
of libplacebo.

- - - - -
e9c268a6 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: update vulkan-headers to 1.3.219

This is needed (>=1.2.0) to get newer libplacebo to compile. Pick the
latest release version at time of commit.

- - - - -
3df12ce2 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: update vulkan-loader to 1.3.211

This is needed as a consequence of the update to vulkan-headers, as the
older loader does not compile against too-new headers. Pick the latest
version supported by the MSYS2 patches at the time of commit, and also
update said patches.

Somehow the static library built changed from libVKstatic.a to
libvulkan.dll.a. I have no idea how this mishmash of extensions comes
about, but I've simply adapted the name to get it to compile.

- - - - -
76e86745 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: update libplacebo to 4.192.1

Based on !1374 by Zhao Zhili. We instead update to the newest libplacebo
stable release version.

The new version requires vk.xml, which we need to specify the location
of to have it work on systems in which vulkan-headers are only built
from contribs.

- - - - -
08116743 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: fix libplacebo version check

Match this version check to the configure requirement.

- - - - -
3323fce6 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: disable libplacebo demos and tests

No reason to build them, if we won't use them. Tests are already off by
default but that's no guarantee.

- - - - -
1891ca20 by Niklas Haas at 2022-07-12T04:57:25+00:00
configure: properly check for pl_scale deps

This requires not just new-enough libplacebo, but also libplacebo GL
support. Move the check inside the branch of the latter.

Otherwise, this currently fails compiling on systems with new-enough
libplacebo but no libepoxy.

- - - - -
bb78bc26 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: backport libplacebo macOS compat patch

Needed for the older macOS/iOS versions which VLC targets.

- - - - -
1df15398 by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: backport glslang back compat patch

Needed for the older glslang version which the contribs currently
install.

- - - - -
79f0b7ea by Niklas Haas at 2022-07-12T04:57:25+00:00
contrib: drop libplacebo vulkan linux exception

This logic is non-functional on recent libplacebo, which always builds
vulkan support as long as vulkan headers are available (which it is on
raspbian).

More importantly, excluding linux also breaks android builds, because
android's built-in copy of the vulkan headers (erroneously) omits
vk.xml. So we need to build vulkan-headers ourselves on this platform.

- - - - -


17 changed files:

- configure.ac
- − contrib/src/libplacebo/0001-meson-fix-glslang-search-path.patch
- + 
contrib/src/libplacebo/0001-vulkan-blacklist-metal-structs-from-utils_gen.py.patch
- + contrib/src/libplacebo/0002-pl_thread-use-gettimeofday-for-back-compat.patch
- + contrib/src/libplacebo/0003-glsl-glslang-back-compat.patch
- contrib/src/libplacebo/SHA512SUMS
- contrib/src/libplacebo/rules.mak
- contrib/src/vulkan-headers/SHA512SUMS
- contrib/src/vulkan-headers/rules.mak
- − contrib/src/vulkan-loader/001-build-fix.patch
- contrib/src/vulkan-loader/002-proper-def-files-for-32bit.patch
- − contrib/src/vulkan-loader/003-generate-pkgconfig-files.patch
- + contrib/src/vulkan-loader/004-disable-suffix-in-static-lib.patch
- contrib/src/vulkan-loader/SHA512SUMS
- + contrib/src/vulkan-loader/libvulkan-32.def
- contrib/src/vulkan-loader/rules.mak
- extras/ci/gitlab-ci.yml


Changes:

=====================================
configure.ac
=====================================
@@ -3086,6 +3086,7 @@ AC_ARG_ENABLE([libplacebo],
   AS_HELP_STRING([--disable-libplacebo],
       [disable libplacebo support (default auto)]))
 
+have_libplacebo_glscale="no"
 AS_IF([test "$enable_libplacebo" != "no"], [
   PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 2.72], [
     AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
@@ -3093,6 +3094,10 @@ AS_IF([test "$enable_libplacebo" != "no"], [
     AC_CHECK_HEADER([libplacebo/opengl.h], [
         VLC_ADD_PLUGIN([placebo_gl])
         VLC_ADD_PLUGIN([placebo_gles2])
+        dnl Minimum version that the OpenGL filter pl_scale is compatible with
+        PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 4.167],
+            [have_libplacebo_glscale="yes"],
+            [have_libplacebo_glscale="no"])
     ])
   ], [
     AS_IF([test -n "${enable_libplacebo}"], [
@@ -3102,11 +3107,7 @@ AS_IF([test "$enable_libplacebo" != "no"], [
   ])
 ])
 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
-
-dnl
-dnl  OpenGL filter pl_scale
-dnl
-PKG_HAVE_WITH_MODULES([LIBPLACEBO_SCALE], [libplacebo >= 4.167])
+AM_CONDITIONAL([HAVE_LIBPLACEBO_SCALE], [test "$have_libplacebo_glscale" = 
"yes"])
 
 dnl
 dnl  OpenGL


=====================================
contrib/src/libplacebo/0001-meson-fix-glslang-search-path.patch deleted
=====================================
@@ -1,70 +0,0 @@
-From da0990bf05e3433aa21c50e6a62f33fe6649b417 Mon Sep 17 00:00:00 2001
-From: Niklas Haas <g...@haasn.xyz>
-Date: Fri, 14 Dec 2018 14:16:10 +0100
-Subject: [PATCH] Work-around meson prefix bug
-
-Normally this is inferred from the environment's CFLAGS/LDFLAGS, but old
-meson versions don't do this correctly. So work-around it by explicitly
-including the prefix when searching for glslang.
----
- src/meson.build | 23 +++++++++++++++--------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/src/meson.build b/src/meson.build
-index 411ce2c..bc9214a 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -48,6 +48,11 @@ glslang_combined = disabler()
- glslang_min_ver = 2763
- glslang_req = get_option('glslang')
- 
-+# fix build inside contrib dir (cf. meson issue #4597)
-+prefix_option = get_option('prefix')
-+prefix_lib = prefix_option + '/lib'
-+prefix_include = include_directories(prefix_option + '/include')
-+
- if glslang_req.auto() and shaderc.found()
- 
-   # we only need one or the other, and shaderc is preferred
-@@ -58,12 +63,12 @@ if glslang_req.auto() and shaderc.found()
- else
- 
-   glslang_deps = [
--    cxx.find_library('glslang',     required: glslang_req),
--    cxx.find_library('HLSL',        required: glslang_req),
--    cxx.find_library('OGLCompiler', required: glslang_req),
--    cxx.find_library('OSDependent', required: glslang_req),
--    cxx.find_library('SPIRV',       required: glslang_req),
--    cxx.find_library('SPVRemapper', required: glslang_req),
-+    cxx.find_library('glslang',     dirs: prefix_lib, required: glslang_req),
-+    cxx.find_library('HLSL',        dirs: prefix_lib, required: glslang_req),
-+    cxx.find_library('OGLCompiler', dirs: prefix_lib, required: glslang_req),
-+    cxx.find_library('OSDependent', dirs: prefix_lib, required: glslang_req),
-+    cxx.find_library('SPIRV',       dirs: prefix_lib, required: glslang_req),
-+    cxx.find_library('SPVRemapper', dirs: prefix_lib, required: glslang_req),
-   ]
- 
-   glslang_found = true
-@@ -75,7 +80,8 @@ endif
- 
- if glslang_found
-   glslang_ver = cxx.get_define('GLSLANG_PATCH_LEVEL',
--      prefix: '#include <glslang/Include/revision.h>'
-+      prefix: '#include <glslang/Include/revision.h>',
-+      include_directories : prefix_include
-   ).to_int()
- 
-   if glslang_ver >= glslang_min_ver
-@@ -85,7 +91,8 @@ if glslang_found
-     # -pthread) doesn't work. We actually need -lpthreads for the glslang
-     # object files to link, for whatever weird reason.
-     pthread = cxx.find_library('pthread', required: false)
--    glslang_combined = declare_dependency(dependencies: glslang_deps + 
[pthread])
-+    glslang_combined = declare_dependency(dependencies: glslang_deps + 
[pthread],
-+        include_directories : prefix_include)
-   else
-     error('glslang revision @0@ too old! Must be at least @1@'
-           .format(glslang_ver, glslang_min_ver))
--- 
-2.19.2
-


=====================================
contrib/src/libplacebo/0001-vulkan-blacklist-metal-structs-from-utils_gen.py.patch
=====================================
@@ -0,0 +1,26 @@
+From db794a2fcc8214624c950752b04f6c23f8fc567d Mon Sep 17 00:00:00 2001
+From: Niklas Haas <g...@haasn.dev>
+Date: Thu, 9 Jun 2022 21:32:36 +0200
+Subject: [PATCH] vulkan: blacklist metal structs from utils_gen.py
+
+Fixes https://code.videolan.org/videolan/libplacebo/-/issues/201
+---
+ src/vulkan/utils_gen.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/vulkan/utils_gen.py b/src/vulkan/utils_gen.py
+index da565d45..7c0dad37 100644
+--- a/src/vulkan/utils_gen.py
++++ b/src/vulkan/utils_gen.py
+@@ -158,7 +158,7 @@ def get_vkstructs(registry):
+         # Strings for platform-specific crap we want to blacklist as they will
+         # most likely cause build failures
+         blacklist_strs = [
+-            'ANDROID', 'Surface', 'Win32', 'D3D12', 'GGP', 'FUCHSIA',
++            'ANDROID', 'Surface', 'Win32', 'D3D12', 'GGP', 'FUCHSIA', 'Metal',
+         ]
+ 
+         if any([ str in e.attrib['name'] for str in blacklist_strs ]):
+-- 
+2.36.1
+


=====================================
contrib/src/libplacebo/0002-pl_thread-use-gettimeofday-for-back-compat.patch
=====================================
@@ -0,0 +1,53 @@
+From cce28e17f931c948c37467d9189ed96364691a83 Mon Sep 17 00:00:00 2001
+From: Niklas Haas <g...@haasn.dev>
+Date: Mon, 4 Jul 2022 16:46:08 +0200
+Subject: [PATCH] pl_thread: use gettimeofday() for back-compat
+
+Some older platforms (particularly macOS) do not support
+clock_gettime(). Fortunately, this is identical to gettimeofday in the
+case of CLOCK_REALTIME.
+
+These systems also do not have pthread_condattr_setclock, so we can
+re-use this check.
+
+Also add proper error handling to this function.
+---
+ src/pl_thread_pthread.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/pl_thread_pthread.h b/src/pl_thread_pthread.h
+index e48f50fd..075a8305 100644
+--- a/src/pl_thread_pthread.h
++++ b/src/pl_thread_pthread.h
+@@ -17,7 +17,9 @@
+ 
+ #pragma once
+ 
++#include <errno.h>
+ #include <pthread.h>
++#include <sys/time.h>
+ #include <time.h>
+ 
+ typedef pthread_mutex_t pl_mutex;
+@@ -92,10 +94,16 @@ static inline int pl_cond_timedwait(pl_cond *cond, 
pl_mutex *mutex, uint64_t tim
+ 
+     struct timespec ts;
+ #ifdef PTHREAD_HAS_SETCLOCK
+-    clock_gettime(CLOCK_MONOTONIC, &ts);
++    if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0)
++        return errno;
+ #else
+-    clock_gettime(CLOCK_REALTIME, &ts);
++    struct timeval tv;
++    if (gettimeofday(&tv, NULL) < 0) // equivalent to CLOCK_REALTIME
++        return errno;
++    ts.tv_sec = tv.tv_sec;
++    ts.tv_nsec = tv.tv_usec * 1000;
+ #endif
++
+     ts.tv_sec  += timeout / 1000000000LLU;
+     ts.tv_nsec += timeout % 1000000000LLU;
+ 
+-- 
+2.36.1
+


=====================================
contrib/src/libplacebo/0003-glsl-glslang-back-compat.patch
=====================================
@@ -0,0 +1,41 @@
+From cac77b6674b479788cd688f1aee62a764cfbbb41 Mon Sep 17 00:00:00 2001
+From: Niklas Haas <g...@haasn.dev>
+Date: Fri, 8 Jul 2022 22:41:10 +0200
+Subject: [PATCH] glsl: glslang back compat
+
+This include path randomly changed at some point in time.
+---
+ src/glsl/glslang.cc | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/src/glsl/glslang.cc b/src/glsl/glslang.cc
+index ba16458d..a9b34f64 100644
+--- a/src/glsl/glslang.cc
++++ b/src/glsl/glslang.cc
+@@ -26,15 +26,20 @@ extern "C" {
+ 
+ #include <glslang/Include/ResourceLimits.h>
+ #include <glslang/Public/ShaderLang.h>
+-#include <glslang/SPIRV/GlslangToSpv.h>
+-
+-#include "glslang.h"
+ 
+ #define GLSLANG_VERSION_CHECK(major, minor, patch) \
+     (((major) < GLSLANG_VERSION_MAJOR) || ((major) == GLSLANG_VERSION_MAJOR 
&& \
+     (((minor) < GLSLANG_VERSION_MINOR) || ((minor) == GLSLANG_VERSION_MINOR 
&& \
+      ((patch) <= GLSLANG_VERSION_PATCH)))))
+ 
++#if GLSLANG_VERSION_CHECK(0, 0, 3496)
++#include <glslang/SPIRV/GlslangToSpv.h>
++#else
++#include <SPIRV/GlslangToSpv.h>
++#endif
++
++#include "glslang.h"
++
+ using namespace glslang;
+ 
+ static pthread_mutex_t pl_glslang_mutex = PTHREAD_MUTEX_INITIALIZER;
+-- 
+2.36.1
+


=====================================
contrib/src/libplacebo/SHA512SUMS
=====================================
@@ -1 +1 @@
-a2ca4a8b2bf9e5242c39c704e579575ccbfd0a7dadc4f73fe1994abb6e3f132d19f6d95415704a62e285e3f94e7b0ab8aeed14b4fce466df1ba34952f7127686
  libplacebo-v1.18.0.tar.gz
+780dff60a31a9c7fff47522385235077cc6b1a38be32bc0276c090d89ce25754dd0b910db5be631d0065337fe4700f68adabee06f48a4935d422f09f2e0e5525
  libplacebo-v4.192.1.tar.gz


=====================================
contrib/src/libplacebo/rules.mak
=====================================
@@ -1,15 +1,20 @@
 # libplacebo
 
-PLACEBO_VERSION := 1.18.0
+PLACEBO_VERSION := 4.192.1
 PLACEBO_ARCHIVE = libplacebo-v$(PLACEBO_VERSION).tar.gz
 PLACEBO_URL := 
https://code.videolan.org/videolan/libplacebo/-/archive/v$(PLACEBO_VERSION)/$(PLACEBO_ARCHIVE)
 
+PLACEBOCONF := -Dglslang=enabled \
+       -Dshaderc=disabled \
+       -Ddemos=false \
+       -Dtests=false
+
 DEPS_libplacebo = glslang
 
 ifndef HAVE_WINSTORE
 PKGS += libplacebo
 endif
-ifeq ($(call need_pkg,"libplacebo >= 1.18"),)
+ifeq ($(call need_pkg,"libplacebo >= 2.72"),)
 PKGS_FOUND += libplacebo
 endif
 
@@ -19,15 +24,9 @@ endif
 
 # We don't want vulkan on darwin for now
 ifndef HAVE_DARWIN_OS
-# This should be enabled on Linux too, but it currently fails picking xcb on
-# cross-compilation setup. Test the raspbian build for instance of this issue.
-ifndef HAVE_LINUX
 DEPS_libplacebo += vulkan-loader $(DEPS_vulkan-loader) vulkan-headers 
$(DEPS_vulkan-headers)
+PLACEBOCONF += -Dvulkan-registry=${PREFIX}/share/vulkan/registry/vk.xml
 endif
-endif
-
-PLACEBOCONF := -Dglslang=enabled \
-       -Dshaderc=disabled
 
 $(TARBALLS)/$(PLACEBO_ARCHIVE):
        $(call download_pkg,$(PLACEBO_URL),libplacebo)
@@ -36,7 +35,9 @@ $(TARBALLS)/$(PLACEBO_ARCHIVE):
 
 libplacebo: $(PLACEBO_ARCHIVE) .sum-libplacebo
        $(UNPACK)
-       $(APPLY) $(SRC)/libplacebo/0001-meson-fix-glslang-search-path.patch
+       $(APPLY) 
$(SRC)/libplacebo/0001-vulkan-blacklist-metal-structs-from-utils_gen.py.patch
+       $(APPLY) 
$(SRC)/libplacebo/0002-pl_thread-use-gettimeofday-for-back-compat.patch
+       $(APPLY) $(SRC)/libplacebo/0003-glsl-glslang-back-compat.patch
        $(MOVE)
 
 .libplacebo: libplacebo crossfile.meson


=====================================
contrib/src/vulkan-headers/SHA512SUMS
=====================================
@@ -1 +1 @@
-7472ec31fe74bc3a98303f668eb0c88bf4e4a93b1e3bcf4df2b20fe731cc2efd754d8b64e6507d8ee470841ee575c3092b2b20c4325a44e2e5cd830b7c7dc8ab
  Vulkan-Headers-1.1.127.tar.gz
+b6f4459a55a7a0f83a17f9155cf201f4e832bde45a127efbfb0e1e5805fb813249e8ccb00b81285ff26fffed1fe0f33b14cdf41515c2b649204de54284e7bc60
  Vulkan-Headers-1.3.219.tar.gz


=====================================
contrib/src/vulkan-headers/rules.mak
=====================================
@@ -1,4 +1,4 @@
-VULKAN_HEADERS_VERSION := 1.1.127
+VULKAN_HEADERS_VERSION := 1.3.219
 VULKAN_HEADERS_URL := 
https://github.com/KhronosGroup/Vulkan-Headers/archive/v$(VULKAN_HEADERS_VERSION).tar.gz
 
 DEPS_vulkan-headers =


=====================================
contrib/src/vulkan-loader/001-build-fix.patch deleted
=====================================
@@ -1,43 +0,0 @@
---- a/loader/CMakeLists.txt    2018-05-16 14:05:33.046991100 +0300
-+++ b/loader/CMakeLists.txt    2018-05-16 14:07:39.464013100 +0300
-@@ -86,7 +86,7 @@
- set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} extensions will suffer from a 
corrupted stack.")
- if(WIN32)
-     enable_language(ASM_MASM)
--    if(CMAKE_ASM_MASM_COMPILER_WORKS)
-+    if (MSVC AND CMAKE_ASM_MASM_COMPILER_WORKS)
-         if(NOT CMAKE_CL_64)
-             set(CMAKE_ASM_MASM_FLAGS ${CMAKE_ASM_MASM_FLAGS} /safeseh)
-         endif()
---- a/loader/loader.c  2018-05-16 14:03:52.750814700 +0300
-+++ b/loader/loader.c  2018-05-16 14:04:08.631642600 +0300
-@@ -672,6 +672,10 @@
- //
- // *reg_data contains a string list of filenames as pointer.
- // When done using the returned string list, the caller should free the 
pointer.
-+#ifdef __MINGW32__
-+#define CM_GETIDLIST_FILTER_PRESENT            0x00000100
-+#define CM_GETIDLIST_FILTER_CLASS              0x00000200
-+#endif
- VkResult loaderGetDeviceRegistryFiles(const struct loader_instance *inst, 
char **reg_data, PDWORD reg_data_size,
-                                       LPCSTR value_name) {
-     static const wchar_t *softwareComponentGUID = 
L"{5c4c3332-344d-483c-8739-259e934c9cc8}";
---- a/loader/loader.rc
-+++ b/loader/loader.rc
-@@ -43,8 +43,6 @@
- 
///////////////////////////////////////////////////////////////////////////////
- 
///////////////////////////////////////////////////////////////////////////////
- 
--#include "winres.h"
--
- #define VER_FILE_VERSION            VERSION_MAJOR, VERSION_MINOR, 
VERSION_PATCH, VERSION_BUILDNO
- 
- #define STRINGIZE2(s) #s
-@@ -77,7 +75,6 @@
- #endif
- 
-  FILEOS 0x00000L
-- FILETYPE VFT_DLL
-  FILESUBTYPE 0x0L
- BEGIN
-     BLOCK "StringFileInfo"


=====================================
contrib/src/vulkan-loader/002-proper-def-files-for-32bit.patch
=====================================
@@ -1,80 +1,91 @@
-diff -Naur Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/CMakeLists.txt 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/CMakeLists.txt
---- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/CMakeLists.txt  
2017-04-05 00:36:39.000000000 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/CMakeLists.txt       
2017-06-29 08:34:52.393725000 +0300
-@@ -153,6 +153,16 @@
+diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
+index 8bb10fd..fc38ecc 100644
+--- a/loader/CMakeLists.txt
++++ b/loader/CMakeLists.txt
+@@ -127,7 +127,7 @@ set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG}Note that this may 
be unsafe, as the C co
+ set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} the stack frame for certain calls. If 
the compiler does not do this, then unknown device")
+ set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} extensions will suffer from a 
corrupted stack.")
+ if(WIN32)
+-    if(MINGW)
++    if(NOT MINGW)
+         find_program(JWASM_FOUND jwasm)
+         if (JWASM_FOUND)
+             set(CMAKE_ASM_MASM_COMPILER ${JWASM_FOUND})
+@@ -145,7 +145,7 @@ if(WIN32)
+     if (USE_MASM)
+       enable_language(ASM_MASM)
+     endif ()
+-    if(CMAKE_ASM_MASM_COMPILER_WORKS OR JWASM_FOUND)
++    if(MSVC AND CMAKE_ASM_MASM_COMPILER_WORKS OR JWASM_FOUND)
+         if(MINGW)
+             set(CMAKE_ASM_MASM_FLAGS ${CMAKE_ASM_MASM_FLAGS} ${JWASM_FLAGS})
+         elseif(NOT CMAKE_CL_64 AND NOT JWASM_FOUND)
+@@ -161,12 +161,14 @@ if(WIN32)
+         target_link_libraries(loader-unknown-chain Vulkan::Headers)
+         target_include_directories(loader-unknown-chain PUBLIC 
$<TARGET_PROPERTY:loader_asm_gen_files,BINARY_DIR>)
+         add_dependencies(loader-unknown-chain loader_asm_gen_files)
++        set_target_properties(loader-unknown-chain PROPERTIES DEFINE_SYMBOL 
"VK_BUILDING_DLL")
+     else()
+         message(WARNING "Could not find working MASM 
assebler\n${ASM_FAILURE_MSG}")
+         add_custom_target(loader_asm_gen_files)
+         add_library(loader-unknown-chain OBJECT unknown_ext_chain.c)
+         target_link_libraries(loader-unknown-chain loader_specific_options)
+         set_target_properties(loader-unknown-chain PROPERTIES 
CMAKE_C_FLAGS_DEBUG "${MODIFIED_C_FLAGS_DEBUG}")
++        set_target_properties(loader-unknown-chain PROPERTIES DEFINE_SYMBOL 
"VK_BUILDING_DLL")
      endif()
- endif()
- 
-+if (WIN32)
-+  if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
-+    set(DEFFILE_SUFFIX "")
-+    set(WINBITS Win64)
-+  else()
-+    set(DEFFILE_SUFFIX "-x86")
-+    set(WINBITS Win32)
-+  endif()
-+endif()
-+
- if(MSVC)
-     # /WX: Treat warnings as errors
-     # /GR-: Disable RTTI
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt
---- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt   
2017-06-29 08:19:36.448133100 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt        
2017-06-29 08:42:41.322355600 +0300
-@@ -137,6 +137,7 @@
- set_target_properties(loader_gen_files PROPERTIES FOLDER 
${LOADER_HELPER_FOLDER})
+ elseif(APPLE)
+     # For MacOS, use the C code and force the compiler's tail-call 
optimization instead of using assembly code.
+@@ -261,6 +263,7 @@ endif()
  
  if(WIN32)
+     add_library(loader-opt STATIC ${OPT_LOADER_SRCS})
++    set_target_properties(loader-opt PROPERTIES DEFINE_SYMBOL 
"VK_BUILDING_DLL")
+     target_link_libraries(loader-opt PUBLIC loader_specific_options)
+     add_dependencies(loader-opt loader_asm_gen_files)
+     set_target_properties(loader-opt PROPERTIES CMAKE_C_FLAGS_DEBUG 
"${MODIFIED_C_FLAGS_DEBUG}")
+@@ -237,10 +240,17 @@ if(WIN32)
+     # when adding the suffix the import and runtime library names must be 
consistent
+     # mingw: libvulkan-1.dll.a / libvulkan-1.dll
+     # msvc: vulkan-1.lib / vulkan-1.dll
 +    if(MSVC)
-     # Use static MSVCRT libraries
-     foreach(configuration
-             in
-@@ -156,6 +157,7 @@
-                            "${${configuration}}")
-         endif()
-     endforeach()
+     set_target_properties(vulkan
+                           PROPERTIES
+                           OUTPUT_NAME vulkan-1)
+-
++    else()
++    set_target_properties(vulkan
++                          PROPERTIES
++                          LIBRARY_OUTPUT_NAME vulkan
++                          RUNTIME_OUTPUT_NAME vulkan-1
++                          ARCHIVE_OUTPUT_NAME vulkan)
 +    endif()
- 
-     if(ENABLE_WIN10_ONECORE)
-         # Note: When linking your app or driver to OneCore.lib, be sure to 
remove any links to non-umbrella libs (such as
-@@ -190,24 +192,32 @@
-                     $<TARGET_OBJECTS:loader-opt>
-                     $<TARGET_OBJECTS:loader-norm>
-                     $<TARGET_OBJECTS:loader-unknown-chain>
--                    ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-1.def
-+                    ${CMAKE_CURRENT_SOURCE_DIR}/vulkan-1${DEFFILE_SUFFIX}.def
-                     ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc)
-+        if(MSVC)
-         set_target_properties(vulkan
-                               PROPERTIES LINK_FLAGS_DEBUG
-                                          "/ignore:4098"
-                                          OUTPUT_NAME
-                                          vulkan-1)
-+        else()
-+        set_target_properties(vulkan
-+                              PROPERTIES
-+                              LIBRARY_OUTPUT_NAME vulkan
-+                              RUNTIME_OUTPUT_NAME vulkan-1
-+                              ARCHIVE_OUTPUT_NAME vulkan)
-+        endif()
-         target_link_libraries(vulkan Vulkan::Headers)
-     else()
-         add_library(vulkan
-                     STATIC
-                     $<TARGET_OBJECTS:loader-opt>
-                     $<TARGET_OBJECTS:loader-norm>
-                     $<TARGET_OBJECTS:loader-unknown-chain>)
-         set_target_properties(vulkan PROPERTIES OUTPUT_NAME VKstatic.1)
-     endif()
- 
--    if(ENABLE_WIN10_ONECORE)
-+    if(ENABLE_WIN10_ONECORE AND MSVC)
+     if(MSVC AND ENABLE_WIN10_ONECORE)
          target_link_libraries(vulkan OneCoreUAP.lib LIBCMT.LIB LIBCMTD.LIB 
LIBVCRUNTIME.LIB LIBUCRT.LIB)
          set_target_properties(vulkan PROPERTIES LINK_FLAGS "/NODEFAULTLIB")
-     else()
---- Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0/loader/vulkan-1.def.orig     
2018-05-16 11:55:36.673944400 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0/loader/vulkan-1.def  
2018-05-16 11:55:41.307152500 +0300
-@@ -21,7 +21,7 @@
+diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h
+index 507a901..6b8fc48 100644
+--- a/loader/vk_loader_platform.h
++++ b/loader/vk_loader_platform.h
+@@ -77,7 +77,13 @@
+ #include "vk_layer_dispatch_table.h"
+ #include "vk_loader_extensions.h"
+ 
+-#if defined(__GNUC__) && __GNUC__ >= 4
++#if defined(_WIN32)
++#  if defined (VK_BUILDING_DLL)
++#    define LOADER_EXPORT __declspec(dllexport)
++#  else
++#    define LOADER_EXPORT
++#  endif
++#elif defined(__GNUC__) && __GNUC__ >= 4
+ #define LOADER_EXPORT __attribute__((visibility("default")))
+ #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+ #define LOADER_EXPORT __attribute__((visibility("default")))
+diff --git a/loader/vulkan-1.def b/loader/vulkan-1.def
+index 6a88b55..1d26b1f 100644
+--- a/loader/vulkan-1.def
++++ b/loader/vulkan-1.def
+@@ -22,7 +22,7 @@
  ;
  ;;;;  End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
@@ -83,319 +94,3 @@ diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.
  EXPORTS
     vkCreateInstance
     vkDestroyInstance
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/vulkan-1-x86.def 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/vulkan-1-x86.def
---- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/vulkan-1-x86.def 
1970-01-01 03:00:00.000000000 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/vulkan-1-x86.def      
2017-04-05 00:36:39.000000000 +0300
-@@ -0,0 +1,221 @@
-+
-+;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+;
-+; Copyright (c) 2015-2017 The Khronos Group Inc.
-+; Copyright (c) 2015-2017 Valve Corporation
-+; Copyright (c) 2015-2017 LunarG, Inc.
-+;
-+; Licensed under the Apache License, Version 2.0 (the "License");
-+; you may not use this file except in compliance with the License.
-+; You may obtain a copy of the License at
-+;
-+;     http://www.apache.org/licenses/LICENSE-2.0
-+;
-+; Unless required by applicable law or agreed to in writing, software
-+; distributed under the License is distributed on an "AS IS" BASIS,
-+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+; See the License for the specific language governing permissions and
-+; limitations under the License.
-+;
-+;  Author: Courtney Goeltzenleuchter <court...@lunarg.com>
-+;
-+;;;;  End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+
-+LIBRARY libvulkan-1.dll
-+EXPORTS
-+   vkCreateInstance@12
-+   vkDestroyInstance@8
-+   vkEnumeratePhysicalDevices@12
-+   vkGetPhysicalDeviceFeatures@8
-+   vkGetPhysicalDeviceFormatProperties@12
-+   vkGetPhysicalDeviceImageFormatProperties@28
-+   vkGetPhysicalDeviceProperties@8
-+   vkGetPhysicalDeviceQueueFamilyProperties@12
-+   vkGetPhysicalDeviceMemoryProperties@8
-+   vkGetInstanceProcAddr@8
-+   vkGetDeviceProcAddr@8
-+   vkCreateDevice@16
-+   vkDestroyDevice@8
-+   vkEnumerateInstanceExtensionProperties@12
-+   vkEnumerateDeviceExtensionProperties@16
-+   vkEnumerateInstanceLayerProperties@8
-+   vkEnumerateDeviceLayerProperties@12
-+   vkGetDeviceQueue@16
-+   vkQueueSubmit@20
-+   vkQueueWaitIdle@4
-+   vkDeviceWaitIdle@4
-+   vkAllocateMemory@16
-+   vkFreeMemory@16
-+   vkMapMemory@36
-+   vkUnmapMemory@12
-+   vkFlushMappedMemoryRanges@12
-+   vkInvalidateMappedMemoryRanges@12
-+   vkGetDeviceMemoryCommitment@16
-+   vkBindBufferMemory@28
-+   vkBindImageMemory@28
-+   vkGetBufferMemoryRequirements@16
-+   vkGetImageMemoryRequirements@16
-+   vkGetImageSparseMemoryRequirements@20
-+   vkGetPhysicalDeviceSparseImageFormatProperties@32
-+   vkQueueBindSparse@20
-+   vkCreateFence@16
-+   vkDestroyFence@16
-+   vkResetFences@12
-+   vkGetFenceStatus@12
-+   vkWaitForFences@24
-+   vkCreateSemaphore@16
-+   vkDestroySemaphore@16
-+   vkCreateEvent@16
-+   vkDestroyEvent@16
-+   vkGetEventStatus@12
-+   vkSetEvent@12
-+   vkResetEvent@12
-+   vkCreateQueryPool@16
-+   vkDestroyQueryPool@16
-+   vkGetQueryPoolResults@40
-+   vkCreateBuffer@16
-+   vkDestroyBuffer@16
-+   vkCreateBufferView@16
-+   vkDestroyBufferView@16
-+   vkCreateImage@16
-+   vkDestroyImage@16
-+   vkGetImageSubresourceLayout@20
-+   vkCreateImageView@16
-+   vkDestroyImageView@16
-+   vkCreateShaderModule@16
-+   vkDestroyShaderModule@16
-+   vkCreatePipelineCache@16
-+   vkDestroyPipelineCache@16
-+   vkGetPipelineCacheData@20
-+   vkMergePipelineCaches@20
-+   vkCreateGraphicsPipelines@28
-+   vkCreateComputePipelines@28
-+   vkDestroyPipeline@16
-+   vkCreatePipelineLayout@16
-+   vkDestroyPipelineLayout@16
-+   vkCreateSampler@16
-+   vkDestroySampler@16
-+   vkCreateDescriptorSetLayout@16
-+   vkDestroyDescriptorSetLayout@16
-+   vkCreateDescriptorPool@16
-+   vkDestroyDescriptorPool@16
-+   vkResetDescriptorPool@16
-+   vkAllocateDescriptorSets@12
-+   vkFreeDescriptorSets@20
-+   vkUpdateDescriptorSets@20
-+   vkCreateFramebuffer@16
-+   vkDestroyFramebuffer@16
-+   vkCreateRenderPass@16
-+   vkDestroyRenderPass@16
-+   vkGetRenderAreaGranularity@16
-+   vkCreateCommandPool@16
-+   vkDestroyCommandPool@16
-+   vkResetCommandPool@16
-+   vkAllocateCommandBuffers@12
-+   vkFreeCommandBuffers@20
-+   vkBeginCommandBuffer@8
-+   vkEndCommandBuffer@4
-+   vkResetCommandBuffer@8
-+   vkCmdBindPipeline@16
-+   vkCmdSetViewport@16
-+   vkCmdSetScissor@16
-+   vkCmdSetLineWidth@8
-+   vkCmdSetDepthBias@16
-+   vkCmdSetBlendConstants@8
-+   vkCmdSetDepthBounds@12
-+   vkCmdSetStencilCompareMask@12
-+   vkCmdSetStencilWriteMask@12
-+   vkCmdSetStencilReference@12
-+   vkCmdBindDescriptorSets@36
-+   vkCmdBindIndexBuffer@24
-+   vkCmdBindVertexBuffers@20
-+   vkCmdDraw@20
-+   vkCmdDrawIndexed@24
-+   vkCmdDrawIndirect@28
-+   vkCmdDrawIndexedIndirect@28
-+   vkCmdDispatch@16
-+   vkCmdDispatchIndirect@20
-+   vkCmdCopyBuffer@28
-+   vkCmdCopyImage@36
-+   vkCmdBlitImage@40
-+   vkCmdCopyBufferToImage@32
-+   vkCmdCopyImageToBuffer@32
-+   vkCmdUpdateBuffer@32
-+   vkCmdFillBuffer@32
-+   vkCmdClearColorImage@28
-+   vkCmdClearDepthStencilImage@28
-+   vkCmdClearAttachments@20
-+   vkCmdResolveImage@36
-+   vkCmdSetEvent@16
-+   vkCmdResetEvent@16
-+   vkCmdWaitEvents@44
-+   vkCmdPipelineBarrier@40
-+   vkCmdBeginQuery@20
-+   vkCmdEndQuery@16
-+   vkCmdResetQueryPool@20
-+   vkCmdWriteTimestamp@20
-+   vkCmdCopyQueryPoolResults@48
-+   vkCmdPushConstants@28
-+   vkCmdBeginRenderPass@12
-+   vkCmdNextSubpass@8
-+   vkCmdEndRenderPass@4
-+   vkCmdExecuteCommands@12
-+   vkDestroySurfaceKHR@16
-+   vkGetPhysicalDeviceSurfaceSupportKHR@20
-+   vkGetPhysicalDeviceSurfaceCapabilitiesKHR@16
-+   vkGetPhysicalDeviceSurfaceFormatsKHR@20
-+   vkGetPhysicalDeviceSurfacePresentModesKHR@20
-+   vkCreateSwapchainKHR@16
-+   vkDestroySwapchainKHR@16
-+   vkGetSwapchainImagesKHR@20
-+   vkAcquireNextImageKHR@40
-+   vkQueuePresentKHR@8
-+   vkGetPhysicalDeviceDisplayPropertiesKHR@12
-+   vkGetPhysicalDeviceDisplayPlanePropertiesKHR@12
-+   vkGetDisplayPlaneSupportedDisplaysKHR@16
-+   vkGetDisplayModePropertiesKHR@20
-+   vkCreateDisplayModeKHR@24
-+   vkGetDisplayPlaneCapabilitiesKHR@20
-+   vkCreateDisplayPlaneSurfaceKHR@16
-+   vkCreateSharedSwapchainsKHR@20
-+   vkCreateWin32SurfaceKHR@16
-+   vkGetPhysicalDeviceWin32PresentationSupportKHR@8
-+
-+   vkEnumerateInstanceVersion@4
-+   vkEnumeratePhysicalDeviceGroups@12
-+   vkGetPhysicalDeviceFeatures2@8
-+   vkGetPhysicalDeviceProperties2@8
-+   vkGetPhysicalDeviceFormatProperties2@12
-+   vkGetPhysicalDeviceQueueFamilyProperties2@12
-+   vkGetPhysicalDeviceMemoryProperties2@8
-+   vkGetPhysicalDeviceSparseImageFormatProperties2@16
-+   vkGetPhysicalDeviceExternalBufferProperties@12
-+   vkGetPhysicalDeviceExternalSemaphoreProperties@12
-+   vkGetPhysicalDeviceExternalFenceProperties@12
-+   vkBindBufferMemory2@12
-+   vkBindImageMemory2@12
-+   vkGetDeviceGroupPeerMemoryFeatures@20
-+   vkCmdSetDeviceMask@8
-+   vkCmdDispatchBase@28
-+   vkGetImageMemoryRequirements2@12
-+   vkGetBufferMemoryRequirements2@12
-+   vkTrimCommandPool@16
-+   vkGetDeviceQueue2@12
-+   vkCreateSamplerYcbcrConversion@16
-+   vkDestroySamplerYcbcrConversion@16
-+   vkGetDescriptorSetLayoutSupport@12
-+   vkGetDeviceGroupPresentCapabilitiesKHR@8
-+   vkGetDeviceGroupSurfacePresentModesKHR@16
-+   vkGetPhysicalDevicePresentRectanglesKHR@20
-+   vkAcquireNextImage2KHR@12
-+   vkCreateDescriptorUpdateTemplate@16
-+   vkDestroyDescriptorUpdateTemplate@16
-+   vkUpdateDescriptorSetWithTemplate@24
-+
-+   vkGetPhysicalDeviceDisplayProperties2KHR@12
-+   vkGetPhysicalDeviceDisplayPlaneProperties2KHR@12
-+   vkGetDisplayModeProperties2KHR@20
-+   vkGetDisplayPlaneCapabilities2KHR@12
-+
-+   vkGetImageSparseMemoryRequirements2@16
-+   vkGetPhysicalDeviceImageFormatProperties2@12
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/CMakeLists.txt 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/CMakeLists.txt
---- 
Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0-orig/tests/layers/CMakeLists.txt  
   2017-04-05 00:36:39.000000000 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.1.73.0/tests/layers/CMakeLists.txt  
2017-06-29 08:39:07.115088000 +0300
-@@ -19,12 +19,12 @@
- 
- if(WIN32)
-     macro(AddVkLayer target)
--        file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/VkLayer_${target}.def 
DEF_FILE)
-+        file(TO_NATIVE_PATH 
${CMAKE_CURRENT_SOURCE_DIR}/VkLayer_${target}${DEFFILE_SUFFIX}.def DEF_FILE)
-         add_custom_target(copy-${target}-def-file ALL
--                          COMMAND ${CMAKE_COMMAND} -E copy_if_different 
${DEF_FILE} VkLayer_${target}.def
-+                          COMMAND ${CMAKE_COMMAND} -E copy_if_different 
${DEF_FILE} VkLayer_${target}${DEFFILE_SUFFIX}.def
-                           VERBATIM)
-         set_target_properties(copy-${target}-def-file PROPERTIES FOLDER 
${LOADER_HELPER_FOLDER})
--        add_library(VkLayer_${target} SHARED ${ARGN} VkLayer_${target}.def)
-+        add_library(VkLayer_${target} SHARED ${ARGN} 
VkLayer_${target}${DEFFILE_SUFFIX}.def)
-         target_compile_options(VkLayer_${target} PUBLIC 
${MSVC_LOADER_COMPILE_OPTIONS})
-         add_dependencies(VkLayer_${target} generate_helper_files)
-     endmacro()
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_test-x86.def
 Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_test-x86.def
---- 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_test-x86.def
       1970-01-01 03:00:00.000000000 +0300
-+++ 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_test-x86.def 
   2017-04-05 00:36:39.000000000 +0300
-@@ -0,0 +1,32 @@
-+; THIS FILE IS GENERATED.  DO NOT EDIT.
-+
-+;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+; Vulkan
-+;
-+; Copyright (c) 2015-2016 The Khronos Group Inc.
-+; Copyright (c) 2015-2016 Valve Corporation
-+; Copyright (c) 2015-2016 LunarG, Inc.
-+;
-+; Licensed under the Apache License, Version 2.0 (the "License");
-+; you may not use this file except in compliance with the License.
-+; You may obtain a copy of the License at
-+;
-+;     http://www.apache.org/licenses/LICENSE-2.0
-+;
-+; Unless required by applicable law or agreed to in writing, software
-+; distributed under the License is distributed on an "AS IS" BASIS,
-+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+; See the License for the specific language governing permissions and
-+; limitations under the License.
-+;
-+;  Author: Courtney Goeltzenleuchter <court...@lunarg.com>
-+;;;;  End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+
-+; The following is required on Windows, for exporting symbols from the DLL
-+
-+LIBRARY VkLayer_test
-+EXPORTS
-+vkGetInstanceProcAddr@8
-+vkGetDeviceProcAddr@8
-+vkEnumerateInstanceLayerProperties@8
-+vkEnumerateInstanceExtensionProperties@12
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_wrap_objects-x86.def
 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_wrap_objects-x86.def
---- 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/tests/layers/VkLayer_wrap_objects-x86.def
       1970-01-01 03:00:00.000000000 +0300
-+++ 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/tests/layers/VkLayer_wrap_objects-x86.def
    2017-04-05 00:36:39.000000000 +0300
-@@ -0,0 +1,32 @@
-+; THIS FILE IS GENERATED.  DO NOT EDIT.
-+
-+;;;; Begin Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+; Vulkan
-+;
-+; Copyright (c) 2015-2016 The Khronos Group Inc.
-+; Copyright (c) 2015-2016 Valve Corporation
-+; Copyright (c) 2015-2016 LunarG, Inc.
-+;
-+; Licensed under the Apache License, Version 2.0 (the "License");
-+; you may not use this file except in compliance with the License.
-+; You may obtain a copy of the License at
-+;
-+;     http://www.apache.org/licenses/LICENSE-2.0
-+;
-+; Unless required by applicable law or agreed to in writing, software
-+; distributed under the License is distributed on an "AS IS" BASIS,
-+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+; See the License for the specific language governing permissions and
-+; limitations under the License.
-+;
-+;  Author: Courtney Goeltzenleuchter <court...@lunarg.com>
-+;;;;  End Copyright Notice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-+
-+; The following is required on Windows, for exporting symbols from the DLL
-+
-+LIBRARY VkLayer_wrap_objects
-+EXPORTS
-+vkGetInstanceProcAddr@8
-+vkGetDeviceProcAddr@8
-+vkEnumerateInstanceLayerProperties@8
-+vkEnumerateInstanceExtensionProperties@12


=====================================
contrib/src/vulkan-loader/003-generate-pkgconfig-files.patch deleted
=====================================
@@ -1,18 +0,0 @@
-diff -Naur 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt 
Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt
---- Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0-orig/loader/CMakeLists.txt   
2017-06-29 08:19:36.448133100 +0300
-+++ Vulkan-LoaderAndValidationLayers-sdk-1.0.46.0/loader/CMakeLists.txt        
2017-06-29 08:42:41.322355600 +0300
-@@ -286,6 +286,7 @@
-     if(INSTALL_LVL_FILES)
-         install(TARGETS ${API_LOWERCASE} LIBRARY DESTINATION 
${CMAKE_INSTALL_LIBDIR})
-     endif()
-+endif()
- 
-     if(NOT APPLE)
-         # Generate pkg-config file.
-@@ -302,6 +302,5 @@
-             endif()
-         endif()
-     endif()
--endif()
- 
- 


=====================================
contrib/src/vulkan-loader/004-disable-suffix-in-static-lib.patch
=====================================
@@ -0,0 +1,11 @@
+--- a/loader/CMakeLists.txt
++++ b/loader/CMakeLists.txt
+@@ -398,7 +398,7 @@
+     foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
+         set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
+     endforeach()
+-    if(WIN32)
++    if(MSVC)
+         set(VULKAN_LIB_SUFFIX "-1")
+         # Set libdir path as in cmake's FindVulkan.cmake
+         # https://github.com/KhronosGroup/Vulkan-Loader/issues/668


=====================================
contrib/src/vulkan-loader/SHA512SUMS
=====================================
@@ -1 +1 @@
-59afc74b83050bd21186dc7a58f7d39350796ddd4cfdf9975dcf7c5d525f1e318acd204dc2a796b6286d24c2b928c3ccaa76563ce2bfedcbcfeaf68e70a88116
  Vulkan-Loader-1.1.127.tar.gz
+b4c9716a0cb3d6748f69b91735e43a5fe51599f44c21f9c4d90e69daa05bddcfd354978e53e95d64cb6a6bcca640c48974d61893590ab443b230294d4668f245
  Vulkan-Loader-1.3.211.tar.gz


=====================================
contrib/src/vulkan-loader/libvulkan-32.def
=====================================
@@ -0,0 +1,216 @@
+;
+; Definition file of vulkan-1.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "libvulkan-1.dll"
+EXPORTS
+vkAcquireNextImage2KHR@12
+vkAcquireNextImageKHR@40
+vkAllocateCommandBuffers@12
+vkAllocateDescriptorSets@12
+vkAllocateMemory@16
+vkBeginCommandBuffer@8
+vkBindBufferMemory2@12
+vkBindBufferMemory@28
+vkBindImageMemory2@12
+vkBindImageMemory@28
+vkCmdBeginQuery@20
+vkCmdBeginRenderPass2@12
+vkCmdBeginRenderPass@12
+vkCmdBindDescriptorSets@36
+vkCmdBindIndexBuffer@24
+vkCmdBindPipeline@16
+vkCmdBindVertexBuffers@20
+vkCmdBlitImage@40
+vkCmdClearAttachments@20
+vkCmdClearColorImage@28
+vkCmdClearDepthStencilImage@28
+vkCmdCopyBuffer@28
+vkCmdCopyBufferToImage@32
+vkCmdCopyImage@36
+vkCmdCopyImageToBuffer@32
+vkCmdCopyQueryPoolResults@48
+vkCmdDispatch@16
+vkCmdDispatchBase@28
+vkCmdDispatchIndirect@20
+vkCmdDraw@20
+vkCmdDrawIndexed@24
+vkCmdDrawIndexedIndirect@28
+vkCmdDrawIndexedIndirectCount@44
+vkCmdDrawIndirect@28
+vkCmdDrawIndirectCount@44
+vkCmdEndQuery@16
+vkCmdEndRenderPass2@8
+vkCmdEndRenderPass@4
+vkCmdExecuteCommands@12
+vkCmdFillBuffer@32
+vkCmdNextSubpass2@12
+vkCmdNextSubpass@8
+vkCmdPipelineBarrier@40
+vkCmdPushConstants@28
+vkCmdResetEvent@16
+vkCmdResetQueryPool@20
+vkCmdResolveImage@36
+vkCmdSetBlendConstants@8
+vkCmdSetDepthBias@16
+vkCmdSetDepthBounds@12
+vkCmdSetDeviceMask@8
+vkCmdSetEvent@16
+vkCmdSetLineWidth@8
+vkCmdSetScissor@16
+vkCmdSetStencilCompareMask@12
+vkCmdSetStencilReference@12
+vkCmdSetStencilWriteMask@12
+vkCmdSetViewport@16
+vkCmdUpdateBuffer@32
+vkCmdWaitEvents@44
+vkCmdWriteTimestamp@20
+vkCreateBuffer@16
+vkCreateBufferView@16
+vkCreateCommandPool@16
+vkCreateComputePipelines@28
+vkCreateDescriptorPool@16
+vkCreateDescriptorSetLayout@16
+vkCreateDescriptorUpdateTemplate@16
+vkCreateDevice@16
+vkCreateDisplayModeKHR@24
+vkCreateDisplayPlaneSurfaceKHR@16
+vkCreateEvent@16
+vkCreateFence@16
+vkCreateFramebuffer@16
+vkCreateGraphicsPipelines@28
+vkCreateHeadlessSurfaceEXT@16
+vkCreateImage@16
+vkCreateImageView@16
+vkCreateInstance@12
+vkCreatePipelineCache@16
+vkCreatePipelineLayout@16
+vkCreateQueryPool@16
+vkCreateRenderPass2@16
+vkCreateRenderPass@16
+vkCreateSampler@16
+vkCreateSamplerYcbcrConversion@16
+vkCreateSemaphore@16
+vkCreateShaderModule@16
+vkCreateSharedSwapchainsKHR@20
+vkCreateSwapchainKHR@16
+vkCreateWin32SurfaceKHR@16
+vkDestroyBuffer@16
+vkDestroyBufferView@16
+vkDestroyCommandPool@16
+vkDestroyDescriptorPool@16
+vkDestroyDescriptorSetLayout@16
+vkDestroyDescriptorUpdateTemplate@16
+vkDestroyDevice@8
+vkDestroyEvent@16
+vkDestroyFence@16
+vkDestroyFramebuffer@16
+vkDestroyImage@16
+vkDestroyImageView@16
+vkDestroyInstance@8
+vkDestroyPipeline@16
+vkDestroyPipelineCache@16
+vkDestroyPipelineLayout@16
+vkDestroyQueryPool@16
+vkDestroyRenderPass@16
+vkDestroySampler@16
+vkDestroySamplerYcbcrConversion@16
+vkDestroySemaphore@16
+vkDestroyShaderModule@16
+vkDestroySurfaceKHR@16
+vkDestroySwapchainKHR@16
+vkDeviceWaitIdle@4
+vkEndCommandBuffer@4
+vkEnumerateDeviceExtensionProperties@16
+vkEnumerateDeviceLayerProperties@12
+vkEnumerateInstanceExtensionProperties@12
+vkEnumerateInstanceLayerProperties@8
+vkEnumerateInstanceVersion@4
+vkEnumeratePhysicalDeviceGroups@12
+vkEnumeratePhysicalDevices@12
+vkFlushMappedMemoryRanges@12
+vkFreeCommandBuffers@20
+vkFreeDescriptorSets@20
+vkFreeMemory@16
+vkGetBufferDeviceAddress@8
+vkGetBufferMemoryRequirements2@12
+vkGetBufferMemoryRequirements@16
+vkGetBufferOpaqueCaptureAddress@8
+vkGetDescriptorSetLayoutSupport@12
+vkGetDeviceGroupPeerMemoryFeatures@20
+vkGetDeviceGroupPresentCapabilitiesKHR@8
+vkGetDeviceGroupSurfacePresentModesKHR@16
+vkGetDeviceMemoryCommitment@16
+vkGetDeviceMemoryOpaqueCaptureAddress@8
+vkGetDeviceProcAddr@8
+vkGetDeviceQueue2@12
+vkGetDeviceQueue@16
+vkGetDisplayModeProperties2KHR@20
+vkGetDisplayModePropertiesKHR@20
+vkGetDisplayPlaneCapabilities2KHR@12
+vkGetDisplayPlaneCapabilitiesKHR@20
+vkGetDisplayPlaneSupportedDisplaysKHR@16
+vkGetEventStatus@12
+vkGetFenceStatus@12
+vkGetImageMemoryRequirements2@12
+vkGetImageMemoryRequirements@16
+vkGetImageSparseMemoryRequirements2@16
+vkGetImageSparseMemoryRequirements@20
+vkGetImageSubresourceLayout@20
+vkGetInstanceProcAddr@8
+vkGetPhysicalDeviceDisplayPlaneProperties2KHR@12
+vkGetPhysicalDeviceDisplayPlanePropertiesKHR@12
+vkGetPhysicalDeviceDisplayProperties2KHR@12
+vkGetPhysicalDeviceDisplayPropertiesKHR@12
+vkGetPhysicalDeviceExternalBufferProperties@12
+vkGetPhysicalDeviceExternalFenceProperties@12
+vkGetPhysicalDeviceExternalSemaphoreProperties@12
+vkGetPhysicalDeviceFeatures2@8
+vkGetPhysicalDeviceFeatures@8
+vkGetPhysicalDeviceFormatProperties2@12
+vkGetPhysicalDeviceFormatProperties@12
+vkGetPhysicalDeviceImageFormatProperties2@12
+vkGetPhysicalDeviceImageFormatProperties@28
+vkGetPhysicalDeviceMemoryProperties2@8
+vkGetPhysicalDeviceMemoryProperties@8
+vkGetPhysicalDevicePresentRectanglesKHR@20
+vkGetPhysicalDeviceProperties2@8
+vkGetPhysicalDeviceProperties@8
+vkGetPhysicalDeviceQueueFamilyProperties2@12
+vkGetPhysicalDeviceQueueFamilyProperties@12
+vkGetPhysicalDeviceSparseImageFormatProperties2@16
+vkGetPhysicalDeviceSparseImageFormatProperties@32
+vkGetPhysicalDeviceSurfaceCapabilities2KHR@12
+vkGetPhysicalDeviceSurfaceCapabilitiesKHR@16
+vkGetPhysicalDeviceSurfaceFormats2KHR@16
+vkGetPhysicalDeviceSurfaceFormatsKHR@20
+vkGetPhysicalDeviceSurfacePresentModesKHR@20
+vkGetPhysicalDeviceSurfaceSupportKHR@20
+vkGetPhysicalDeviceWin32PresentationSupportKHR@8
+vkGetPipelineCacheData@20
+vkGetQueryPoolResults@40
+vkGetRenderAreaGranularity@16
+vkGetSemaphoreCounterValue@16
+vkGetSwapchainImagesKHR@20
+vkInvalidateMappedMemoryRanges@12
+vkMapMemory@36
+vkMergePipelineCaches@20
+vkQueueBindSparse@20
+vkQueuePresentKHR@8
+vkQueueSubmit@20
+vkQueueWaitIdle@4
+vkResetCommandBuffer@8
+vkResetCommandPool@16
+vkResetDescriptorPool@16
+vkResetEvent@12
+vkResetFences@12
+vkResetQueryPool@20
+vkSetEvent@12
+vkSignalSemaphore@8
+vkTrimCommandPool@16
+vkUnmapMemory@12
+vkUpdateDescriptorSetWithTemplate@24
+vkUpdateDescriptorSets@20
+vkWaitForFences@24
+vkWaitSemaphores@16


=====================================
contrib/src/vulkan-loader/rules.mak
=====================================
@@ -1,4 +1,4 @@
-VULKAN_LOADER_VERSION := 1.1.127
+VULKAN_LOADER_VERSION := 1.3.211
 VULKAN_LOADER_URL := 
https://github.com/KhronosGroup/Vulkan-Loader/archive/v$(VULKAN_LOADER_VERSION).tar.gz
 
 DEPS_vulkan-loader = vulkan-headers $(DEPS_vulkan-headers)
@@ -25,6 +25,7 @@ endif
 VULKAN_LOADER_CONF := \
        -DENABLE_STATIC_LOADER=ON \
        -DBUILD_SHARED_LIBS=OFF \
+       -DENABLE_WERROR=OFF \
        -DBUILD_TESTS=OFF \
        -DBUILD_LOADER=ON \
        -DCMAKE_ASM_COMPILER="$(AS)"
@@ -38,9 +39,11 @@ vulkan-loader: Vulkan-Loader-$(VULKAN_LOADER_VERSION).tar.gz 
.sum-vulkan-loader
        $(UNPACK)
 # Patches are from msys2 package system
 # https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-vulkan-loader
-       $(APPLY) $(SRC)/vulkan-loader/001-build-fix.patch
        $(APPLY) $(SRC)/vulkan-loader/002-proper-def-files-for-32bit.patch
-       $(APPLY) $(SRC)/vulkan-loader/003-generate-pkgconfig-files.patch
+       $(APPLY) $(SRC)/vulkan-loader/004-disable-suffix-in-static-lib.patch
+ifeq ($(HOST),i686-w64-mingw32)
+       cp -v $(SRC)/vulkan-loader/libvulkan-32.def 
$(UNPACK_DIR)/loader/vulkan-1.def
+endif
        $(MOVE)
 
 # Needed for the loader's cmake script to find the registry files
@@ -55,8 +58,8 @@ VULKAN_LOADER_ENV_CONF = \
 
 ifdef HAVE_WIN32
 # CMake will generate a .pc file with -lvulkan even if the static library
-# generated is libVKstatic.1.a. It also forget to link with libcfgmgr32.
-       cd $< && sed -i.orig -e "s,-lvulkan,-lVKstatic.1 -lcfgmgr32," 
build/loader/vulkan.pc
+# generated is libvulkan.dll.a. It also forget to link with libcfgmgr32.
+       cd $< && sed -i.orig -e "s,-lvulkan,-lvulkan.dll -lcfgmgr32," 
build/loader/vulkan.pc
 endif
 
        $(call pkg_static,"build/loader/vulkan.pc")


=====================================
extras/ci/gitlab-ci.yml
=====================================
@@ -19,14 +19,14 @@ default:
         - amd64
 
 variables:
-    VLC_WIN32_IMAGE: registry.videolan.org/vlc-debian-win32:20220224135804
-    VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64:20220224144130
-    VLC_WIN_LLVM_IMAGE: 
registry.videolan.org/vlc-debian-llvm-mingw:20211020094514
+    VLC_WIN32_IMAGE: registry.videolan.org/vlc-debian-win32:20220505170026
+    VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64:20220505172436
+    VLC_WIN_LLVM_IMAGE: 
registry.videolan.org/vlc-debian-llvm-mingw:20220705072259
     VLC_UWP_LLVM_IMAGE: 
registry.videolan.org/vlc-debian-llvm-uwp:20211020111246
     VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20210803114245
-    VLC_ANDROID_IMAGE: registry.videolan.org/vlc-debian-android:20210730131708
-    VLC_SNAP_IMAGE: registry.videolan.org/vlc-ubuntu-focal:20211020115724
-    VLC_RASPBIAN_IMAGE: 
registry.videolan.org/vlc-ubuntu-raspberry:20211006142322
+    VLC_ANDROID_IMAGE: registry.videolan.org/vlc-debian-android:20220505164734
+    VLC_SNAP_IMAGE: registry.videolan.org/vlc-ubuntu-focal:20220505174948
+    VLC_RASPBIAN_IMAGE: 
registry.videolan.org/vlc-ubuntu-raspberry:20220505175523
     VLC_WASM_EMSCRIPTEN: 
registry.videolan.org/vlc-debian-wasm-emscripten:20210915101305
 
 .variables-debian: &variables-debian



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/4989505a7a283fc4befc11cf21b90c1f481caa1a...79f0b7eab29e2398ce632d38caeee04562897830

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/4989505a7a283fc4befc11cf21b90c1f481caa1a...79f0b7eab29e2398ce632d38caeee04562897830
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to