mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
Compare commits
3 Commits
vkd3d-1.12
...
vkd3d-1.7.
Author | SHA1 | Date | |
---|---|---|---|
|
154acd2c2b | ||
|
cb2acc35f2 | ||
|
7b9b0179ec |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -10,7 +10,6 @@ Makefile
|
|||||||
Makefile.in
|
Makefile.in
|
||||||
test-suite.log
|
test-suite.log
|
||||||
/vkd3d-compiler
|
/vkd3d-compiler
|
||||||
/vkd3d-dxbc
|
|
||||||
|
|
||||||
vkd3d-*.tar.xz
|
vkd3d-*.tar.xz
|
||||||
|
|
||||||
@@ -23,7 +22,6 @@ vkd3d-*.tar.xz
|
|||||||
*.tab.c
|
*.tab.c
|
||||||
*.tab.h
|
*.tab.h
|
||||||
*.trs
|
*.trs
|
||||||
*.txt
|
|
||||||
*.yy.c
|
*.yy.c
|
||||||
*~
|
*~
|
||||||
|
|
||||||
|
@@ -1,11 +0,0 @@
|
|||||||
stages:
|
|
||||||
- image
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
include:
|
|
||||||
- local: "/gitlab/image.yml"
|
|
||||||
- local: "/gitlab/build.yml"
|
|
||||||
- local: "/gitlab/test.yml"
|
|
||||||
- local: "/gitlab/release.yml"
|
|
2
.mailmap
2
.mailmap
@@ -1,2 +0,0 @@
|
|||||||
Elizabeth Figura <z.figura12@gmail.com>
|
|
||||||
Elizabeth Figura <zfigura@codeweavers.com>
|
|
11
AUTHORS
11
AUTHORS
@@ -1,6 +1,4 @@
|
|||||||
Akihiro Sagawa
|
|
||||||
Alexandre Julliard
|
Alexandre Julliard
|
||||||
Alistair Leslie-Hughes
|
|
||||||
Andrew Eikum
|
Andrew Eikum
|
||||||
Andrey Gusev
|
Andrey Gusev
|
||||||
Atharva Nimbalkar
|
Atharva Nimbalkar
|
||||||
@@ -10,31 +8,24 @@ Chip Davis
|
|||||||
Conor McCarthy
|
Conor McCarthy
|
||||||
David Gow
|
David Gow
|
||||||
Derek Lesho
|
Derek Lesho
|
||||||
Elizabeth Figura
|
|
||||||
Ethan Lee
|
|
||||||
Evan Tang
|
|
||||||
Fabian Maurer
|
Fabian Maurer
|
||||||
Florian Weimer
|
|
||||||
Francisco Casas
|
Francisco Casas
|
||||||
Francois Gouget
|
Francois Gouget
|
||||||
Giovanni Mascellani
|
Giovanni Mascellani
|
||||||
Hans-Kristian Arntzen
|
Hans-Kristian Arntzen
|
||||||
Henri Verbeet
|
Henri Verbeet
|
||||||
Isabella Bosia
|
Isabella Bosia
|
||||||
Jacek Caban
|
|
||||||
Jactry Zeng
|
Jactry Zeng
|
||||||
Jan Sikorski
|
|
||||||
Joshua Ashton
|
Joshua Ashton
|
||||||
JĂłzef Kucia
|
JĂłzef Kucia
|
||||||
Martin Storsjö
|
Martin Storsjö
|
||||||
Matteo Bruni
|
Matteo Bruni
|
||||||
Nikolay Sivov
|
Nikolay Sivov
|
||||||
Petrichor Park
|
|
||||||
Philip Rebohle
|
Philip Rebohle
|
||||||
Rémi Bernon
|
Rémi Bernon
|
||||||
Robin Kertels
|
Robin Kertels
|
||||||
Stefan Dösinger
|
Stefan Dösinger
|
||||||
Sven Hesse
|
Sven Hesse
|
||||||
Victor Chiletto
|
|
||||||
Vinson Lee
|
Vinson Lee
|
||||||
|
Zebediah Figura
|
||||||
Zhiyi Zhang
|
Zhiyi Zhang
|
||||||
|
2
COPYING
2
COPYING
@@ -1,4 +1,4 @@
|
|||||||
Copyright 2016-2024 the Vkd3d project authors (see the file AUTHORS for a
|
Copyright 2016-2023 the Vkd3d project authors (see the file AUTHORS for a
|
||||||
complete list)
|
complete list)
|
||||||
|
|
||||||
Vkd3d is free software; you can redistribute it and/or modify it under
|
Vkd3d is free software; you can redistribute it and/or modify it under
|
||||||
|
1172
ChangeLog.md
1172
ChangeLog.md
File diff suppressed because it is too large
Load Diff
@@ -8,9 +8,6 @@ OUTPUT_DIRECTORY = doc
|
|||||||
JAVADOC_AUTOBRIEF = YES
|
JAVADOC_AUTOBRIEF = YES
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
EXTRACT_STATIC = YES
|
EXTRACT_STATIC = YES
|
||||||
QUIET = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = NO
|
|
||||||
LATEX_BATCHMODE = YES
|
|
||||||
|
|
||||||
INPUT = @srcdir@/include/vkd3d.h \
|
INPUT = @srcdir@/include/vkd3d.h \
|
||||||
@srcdir@/include/vkd3d_shader.h \
|
@srcdir@/include/vkd3d_shader.h \
|
||||||
|
399
Makefile.am
399
Makefile.am
File diff suppressed because it is too large
Load Diff
39
README
39
README
@@ -9,14 +9,14 @@ similar, but not identical, to Direct3D 12.
|
|||||||
Building vkd3d
|
Building vkd3d
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Vkd3d depends on SPIRV-Headers and Vulkan-Headers (>= 1.3.228).
|
Vkd3d depends on SPIRV-Headers and Vulkan-Headers (>= 1.2.139).
|
||||||
|
|
||||||
Vkd3d generates some of its headers from IDL files. If you are using the
|
Vkd3d generates some of its headers from IDL files. If you are using the
|
||||||
release tarballs, then these headers are pre-generated and are included. If
|
release tarballs, then these headers are pre-generated and are included. If
|
||||||
you are building from git, then they will be generated at build-time using
|
you are building from git, then they will be generated at build-time using
|
||||||
widl. By default, vkd3d will use the widl found in `PATH'. If widl is not
|
widl. By default, vkd3d will use the widl found in `PATH'. If widl is not
|
||||||
available or is not recent (>= 3.21), then you can build Wine with `make
|
available or is not recent (>= 3.20), then you can build Wine with `make
|
||||||
tools/widl/widl' to avoid building all of Wine. You can then point vkd3d's
|
tools/widl' to avoid building all of Wine. You can then point vkd3d's
|
||||||
configure at that widl binary with `WIDL="/path/to/widl"'.
|
configure at that widl binary with `WIDL="/path/to/widl"'.
|
||||||
|
|
||||||
For release builds, you may want to define NDEBUG. If you do not need debug log
|
For release builds, you may want to define NDEBUG. If you do not need debug log
|
||||||
@@ -47,8 +47,8 @@ commas or semicolons.
|
|||||||
|
|
||||||
* NO_COLOR - this is an alias of NO_COLOUR.
|
* NO_COLOR - this is an alias of NO_COLOUR.
|
||||||
|
|
||||||
* NO_COLOUR - when set, vkd3d-compiler and vkd3d-dxbc will default to
|
* NO_COLOUR - when set, vkd3d-compiler will default to monochrome output,
|
||||||
monochrome output, even when the output supports colour.
|
even when the output supports colour.
|
||||||
|
|
||||||
* VKD3D_CONFIG - a list of options that change the behavior of libvkd3d.
|
* VKD3D_CONFIG - a list of options that change the behavior of libvkd3d.
|
||||||
* virtual_heaps - Create descriptors for each D3D12 root signature
|
* virtual_heaps - Create descriptors for each D3D12 root signature
|
||||||
@@ -65,11 +65,6 @@ commas or semicolons.
|
|||||||
* VKD3D_DISABLE_EXTENSIONS - a list of Vulkan extensions that libvkd3d should
|
* VKD3D_DISABLE_EXTENSIONS - a list of Vulkan extensions that libvkd3d should
|
||||||
not use even if available.
|
not use even if available.
|
||||||
|
|
||||||
* VKD3D_SHADER_CONFIG - a list of options that change the behavior of
|
|
||||||
libvkd3d-shader.
|
|
||||||
* force_validation - Enable (additional) validation of libvkd3d-shader's
|
|
||||||
internal representation of shaders.
|
|
||||||
|
|
||||||
* VKD3D_SHADER_DEBUG - controls the debug level for log messages produced by
|
* VKD3D_SHADER_DEBUG - controls the debug level for log messages produced by
|
||||||
libvkd3d-shader. See VKD3D_DEBUG for accepted values.
|
libvkd3d-shader. See VKD3D_DEBUG for accepted values.
|
||||||
|
|
||||||
@@ -86,28 +81,4 @@ commas or semicolons.
|
|||||||
platform controls the behavior of todo(), todo_if(), bug_if() and broken()
|
platform controls the behavior of todo(), todo_if(), bug_if() and broken()
|
||||||
conditions in tests.
|
conditions in tests.
|
||||||
|
|
||||||
* VKD3D_TEST_SKIP_DXC - when set, tests requiring the dxcompiler library will
|
|
||||||
be skipped.
|
|
||||||
|
|
||||||
* VKD3D_TEST_BUG - set to 0 to disable bug_if() conditions in tests.
|
* VKD3D_TEST_BUG - set to 0 to disable bug_if() conditions in tests.
|
||||||
|
|
||||||
If the configuration defines 'DXCOMPILER_LIBS=-L/path/to/dxcompiler', Shader
|
|
||||||
Runner attempts to load libdxcompiler.so or dxcompiler.dll to compile test
|
|
||||||
shaders in Shader Model 6. LD_LIBRARY_PATH (linux), WINEPATH (wine) or PATH
|
|
||||||
(native windows) should include the location of dxcompiler if SM 6 shader
|
|
||||||
tests are desired. If dxcompiler is not found, Shader Runner will compile the
|
|
||||||
test shaders only in earlier shader models. The DXC source does not contain
|
|
||||||
code for adding DXBC checksums, so the official release should be installed
|
|
||||||
from:
|
|
||||||
https://github.com/microsoft/DirectXShaderCompiler/releases
|
|
||||||
|
|
||||||
================
|
|
||||||
Developing vkd3d
|
|
||||||
================
|
|
||||||
|
|
||||||
Development of vkd3d happens on the Wine GitLab instance
|
|
||||||
(https://gitlab.winehq.org/wine/vkd3d/). Contributors are encouraged
|
|
||||||
to submit their patches using the merge request tool.
|
|
||||||
|
|
||||||
Each merge request is automatically tested with the GitLab CI
|
|
||||||
system. See gitlab/README in the Git tree for more details.
|
|
||||||
|
34
configure.ac
34
configure.ac
@@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
AC_INIT([vkd3d],[1.12])
|
AC_INIT([vkd3d],[1.7.1])
|
||||||
|
|
||||||
AC_CONFIG_AUX_DIR([bin])
|
AC_CONFIG_AUX_DIR([bin])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
@@ -9,7 +9,6 @@ AC_ARG_VAR([WIDL], [widl IDL compiler])
|
|||||||
AC_ARG_VAR([CROSSCC32], [32-bit Windows cross compiler])
|
AC_ARG_VAR([CROSSCC32], [32-bit Windows cross compiler])
|
||||||
AC_ARG_VAR([CROSSCC64], [64-bit Windows cross compiler])
|
AC_ARG_VAR([CROSSCC64], [64-bit Windows cross compiler])
|
||||||
AC_ARG_WITH([ncurses], AS_HELP_STRING([--with-ncurses], [Build with the ncurses library (default: test)]))
|
AC_ARG_WITH([ncurses], AS_HELP_STRING([--with-ncurses], [Build with the ncurses library (default: test)]))
|
||||||
AC_ARG_WITH([opengl], AS_HELP_STRING([--with-opengl], [Build with the OpenGL library (default: test)]))
|
|
||||||
AC_ARG_WITH([spirv-tools], AS_HELP_STRING([--with-spirv-tools],
|
AC_ARG_WITH([spirv-tools], AS_HELP_STRING([--with-spirv-tools],
|
||||||
[Build with SPIRV-Tools library (default: disabled)]))
|
[Build with SPIRV-Tools library (default: disabled)]))
|
||||||
AC_ARG_WITH([xcb], AS_HELP_STRING([--with-xcb], [Build with XCB library (default: test)]))
|
AC_ARG_WITH([xcb], AS_HELP_STRING([--with-xcb], [Build with XCB library (default: test)]))
|
||||||
@@ -28,7 +27,7 @@ AC_PROG_CC
|
|||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
AC_PROG_SED
|
AC_PROG_SED
|
||||||
AC_PROG_MKDIR_P
|
AC_PROG_MKDIR_P
|
||||||
VKD3D_PROG_WIDL(3, 21)
|
VKD3D_PROG_WIDL(3, 20)
|
||||||
AS_IF([test "x$WIDL" = "xno"], [AC_MSG_WARN([widl is required to build header files.])])
|
AS_IF([test "x$WIDL" = "xno"], [AC_MSG_WARN([widl is required to build header files.])])
|
||||||
|
|
||||||
AC_CHECK_PROGS([FLEX], [flex], [none])
|
AC_CHECK_PROGS([FLEX], [flex], [none])
|
||||||
@@ -55,23 +54,16 @@ gl_LD_VERSION_SCRIPT
|
|||||||
dnl Check compiler specific flags
|
dnl Check compiler specific flags
|
||||||
AC_SUBST([VKD3D_CFLAGS])
|
AC_SUBST([VKD3D_CFLAGS])
|
||||||
AS_IF([test "x${GCC}" = "xyes"],
|
AS_IF([test "x${GCC}" = "xyes"],
|
||||||
[VKD3D_CFLAGS="-Wall -pipe -D_WIN32_WINNT=0x0600"
|
[VKD3D_CFLAGS="-Wall -pipe"
|
||||||
VKD3D_CHECK_CFLAGS([-std=c99])
|
VKD3D_CHECK_CFLAGS([-std=c99])
|
||||||
VKD3D_CHECK_CFLAGS([-flto=auto])
|
|
||||||
VKD3D_CHECK_CFLAGS([-fvisibility=hidden])
|
VKD3D_CHECK_CFLAGS([-fvisibility=hidden])
|
||||||
VKD3D_CHECK_CFLAGS([-Wdeclaration-after-statement])
|
VKD3D_CHECK_CFLAGS([-Wdeclaration-after-statement])
|
||||||
VKD3D_CHECK_CFLAGS([-Wempty-body])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wenum-conversion])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wimplicit-fallthrough])
|
VKD3D_CHECK_CFLAGS([-Wimplicit-fallthrough])
|
||||||
VKD3D_CHECK_CFLAGS([-Winit-self])
|
VKD3D_CHECK_CFLAGS([-Winit-self])
|
||||||
VKD3D_CHECK_CFLAGS([-Wmissing-prototypes])
|
VKD3D_CHECK_CFLAGS([-Wmissing-prototypes])
|
||||||
VKD3D_CHECK_CFLAGS([-Wpointer-arith])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wshadow])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wshift-overflow=2])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wtype-limits])
|
|
||||||
VKD3D_CHECK_CFLAGS([-Wunused-but-set-parameter])
|
VKD3D_CHECK_CFLAGS([-Wunused-but-set-parameter])
|
||||||
VKD3D_CHECK_CFLAGS([-Wvla])
|
VKD3D_CHECK_CFLAGS([-Wvla])
|
||||||
VKD3D_CHECK_CFLAGS([-Wwrite-strings])
|
VKD3D_CHECK_CFLAGS([-Wpointer-arith])
|
||||||
VKD3D_CHECK_CFLAGS([-Wl,--no-undefined])])
|
VKD3D_CHECK_CFLAGS([-Wl,--no-undefined])])
|
||||||
|
|
||||||
dnl Check for cross compilers
|
dnl Check for cross compilers
|
||||||
@@ -91,7 +83,7 @@ AS_IF([test "x$ac_cv_header_spirv_unified1_GLSL_std_450_h" != "xyes" \
|
|||||||
-a "x$ac_cv_header_vulkan_GLSL_std_450_h" != "xyes"],
|
-a "x$ac_cv_header_vulkan_GLSL_std_450_h" != "xyes"],
|
||||||
[AC_MSG_ERROR([GLSL.std.450.h not found.])])
|
[AC_MSG_ERROR([GLSL.std.450.h not found.])])
|
||||||
|
|
||||||
VKD3D_CHECK_VULKAN_HEADER_VERSION([228], [AC_MSG_ERROR([Vulkan headers are too old, 1.3.228 is required.])])
|
VKD3D_CHECK_VULKAN_HEADER_VERSION([139], [AC_MSG_ERROR([Vulkan headers are too old, 1.2.139 is required.])])
|
||||||
|
|
||||||
AC_CHECK_DECL([SpvCapabilityDemoteToHelperInvocationEXT],, [AC_MSG_ERROR([SPIR-V headers are too old.])], [
|
AC_CHECK_DECL([SpvCapabilityDemoteToHelperInvocationEXT],, [AC_MSG_ERROR([SPIR-V headers are too old.])], [
|
||||||
#ifdef HAVE_SPIRV_UNIFIED1_SPIRV_H
|
#ifdef HAVE_SPIRV_UNIFIED1_SPIRV_H
|
||||||
@@ -128,20 +120,10 @@ AS_IF([test "x$SONAME_LIBVULKAN" = "x"],
|
|||||||
[VKD3D_CHECK_VULKAN],
|
[VKD3D_CHECK_VULKAN],
|
||||||
[AC_DEFINE_UNQUOTED([SONAME_LIBVULKAN],["$SONAME_LIBVULKAN"],[Define to the shared object name of the Vulkan library.])])
|
[AC_DEFINE_UNQUOTED([SONAME_LIBVULKAN],["$SONAME_LIBVULKAN"],[Define to the shared object name of the Vulkan library.])])
|
||||||
|
|
||||||
AC_ARG_VAR([SONAME_LIBDXCOMPILER], [shared object name for the dxcompiler library])
|
|
||||||
AC_ARG_VAR([DXCOMPILER_LIBS], [linker flags for the dxcompiler library])
|
|
||||||
AS_IF([test "x$SONAME_LIBDXCOMPILER" = "x"],
|
|
||||||
[VKD3D_CHECK_SONAME([dxcompiler], [DxcCreateInstance], [HAVE_DXCOMPILER=yes], [HAVE_DXCOMPILER=no], [$DXCOMPILER_LIBS])],
|
|
||||||
[AC_DEFINE_UNQUOTED([SONAME_LIBDXCOMPILER],["$SONAME_LIBDXCOMPILER"],[Define to the shared object name of the dxcompiler library.])])
|
|
||||||
|
|
||||||
AS_IF([test "x$with_ncurses" != "xno"],
|
AS_IF([test "x$with_ncurses" != "xno"],
|
||||||
[PKG_CHECK_MODULES([NCURSES], [ncurses],
|
[PKG_CHECK_MODULES([NCURSES], [ncurses],
|
||||||
[AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if you have ncurses.]) with_ncurses=yes],
|
[AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if you have ncurses.]) with_ncurses=yes],
|
||||||
[with_ncurses=no])])
|
[with_ncurses=no])])
|
||||||
AS_IF([test "x$with_opengl" != "xno"],
|
|
||||||
[PKG_CHECK_MODULES([OPENGL], [egl opengl],
|
|
||||||
[AC_DEFINE([HAVE_OPENGL], [1], [Define to 1 if you have OpenGL.]) with_opengl=yes],
|
|
||||||
[with_opengl=no])])
|
|
||||||
AS_IF([test "x$with_spirv_tools" = "xyes"],
|
AS_IF([test "x$with_spirv_tools" = "xyes"],
|
||||||
[PKG_CHECK_MODULES([SPIRV_TOOLS], [SPIRV-Tools-shared],
|
[PKG_CHECK_MODULES([SPIRV_TOOLS], [SPIRV-Tools-shared],
|
||||||
[AC_DEFINE([HAVE_SPIRV_TOOLS], [1], [Define to 1 if you have SPIRV-Tools.])])],
|
[AC_DEFINE([HAVE_SPIRV_TOOLS], [1], [Define to 1 if you have SPIRV-Tools.])])],
|
||||||
@@ -159,9 +141,7 @@ VKD3D_CHECK_FUNC([HAVE_BUILTIN_CLZ], [__builtin_clz], [__builtin_clz(0)])
|
|||||||
VKD3D_CHECK_FUNC([HAVE_BUILTIN_POPCOUNT], [__builtin_popcount], [__builtin_popcount(0)])
|
VKD3D_CHECK_FUNC([HAVE_BUILTIN_POPCOUNT], [__builtin_popcount], [__builtin_popcount(0)])
|
||||||
VKD3D_CHECK_FUNC([HAVE_BUILTIN_ADD_OVERFLOW], [__builtin_add_overflow], [__builtin_add_overflow(0, 0, (int *)0)])
|
VKD3D_CHECK_FUNC([HAVE_BUILTIN_ADD_OVERFLOW], [__builtin_add_overflow], [__builtin_add_overflow(0, 0, (int *)0)])
|
||||||
VKD3D_CHECK_FUNC([HAVE_SYNC_ADD_AND_FETCH], [__sync_add_and_fetch], [__sync_add_and_fetch((int *)0, 0)])
|
VKD3D_CHECK_FUNC([HAVE_SYNC_ADD_AND_FETCH], [__sync_add_and_fetch], [__sync_add_and_fetch((int *)0, 0)])
|
||||||
VKD3D_CHECK_FUNC([HAVE_SYNC_BOOL_COMPARE_AND_SWAP], [__sync_bool_compare_and_swap], [__sync_bool_compare_and_swap((int *)0, 0, 0)])
|
VKD3D_CHECK_FUNC([HAVE_SYNC_SUB_AND_FETCH], [__sync_sub_and_fetch], [__sync_sub_and_fetch((int *)0, 0)])
|
||||||
VKD3D_CHECK_FUNC([HAVE_ATOMIC_EXCHANGE_N], [__atomic_exchange_n], [__atomic_exchange_n((int *)0, 0, 0)])
|
|
||||||
AC_CHECK_FUNCS([gettid])
|
|
||||||
|
|
||||||
dnl Makefiles
|
dnl Makefiles
|
||||||
case $host_os in
|
case $host_os in
|
||||||
@@ -198,10 +178,8 @@ AS_ECHO(["
|
|||||||
widl: ${WIDL}
|
widl: ${WIDL}
|
||||||
|
|
||||||
Have ncurses: ${with_ncurses}
|
Have ncurses: ${with_ncurses}
|
||||||
Have OpenGL: ${with_opengl}
|
|
||||||
Have SPIRV-Tools: ${with_spirv_tools}
|
Have SPIRV-Tools: ${with_spirv_tools}
|
||||||
Have xcb: ${HAVE_XCB}
|
Have xcb: ${HAVE_XCB}
|
||||||
Have dxcompiler: ${HAVE_DXCOMPILER}
|
|
||||||
|
|
||||||
Building demos: ${enable_demos}
|
Building demos: ${enable_demos}
|
||||||
Building tests: ${enable_tests}
|
Building tests: ${enable_tests}
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#define VK_NO_PROTOTYPES
|
#define VK_NO_PROTOTYPES
|
||||||
#define VK_USE_PLATFORM_XCB_KHR
|
#define VK_USE_PLATFORM_XCB_KHR
|
||||||
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_12
|
#define VKD3D_UTILS_API_VERSION VKD3D_API_VERSION_1_7
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <vkd3d.h>
|
#include <vkd3d.h>
|
||||||
#include <vkd3d_utils.h>
|
#include <vkd3d_utils.h>
|
||||||
@@ -113,9 +113,6 @@ struct demo_swapchain
|
|||||||
VkDevice vk_device;
|
VkDevice vk_device;
|
||||||
ID3D12CommandQueue *command_queue;
|
ID3D12CommandQueue *command_queue;
|
||||||
|
|
||||||
ID3D12Fence *present_fence;
|
|
||||||
unsigned long long present_count;
|
|
||||||
|
|
||||||
uint32_t current_buffer;
|
uint32_t current_buffer;
|
||||||
unsigned int buffer_count;
|
unsigned int buffer_count;
|
||||||
ID3D12Resource *buffers[1];
|
ID3D12Resource *buffers[1];
|
||||||
@@ -532,17 +529,6 @@ static inline struct demo_swapchain *demo_swapchain_create(ID3D12CommandQueue *c
|
|||||||
}
|
}
|
||||||
swapchain->buffer_count = image_count;
|
swapchain->buffer_count = image_count;
|
||||||
free(vk_images);
|
free(vk_images);
|
||||||
|
|
||||||
if (FAILED(ID3D12Device_CreateFence(d3d12_device, 0, 0, &IID_ID3D12Fence, (void **)&swapchain->present_fence)))
|
|
||||||
{
|
|
||||||
for (i = 0; i < image_count; ++i)
|
|
||||||
{
|
|
||||||
ID3D12Resource_Release(swapchain->buffers[i]);
|
|
||||||
}
|
|
||||||
free(swapchain);
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
swapchain->present_count = 0;
|
|
||||||
ID3D12Device_Release(d3d12_device);
|
ID3D12Device_Release(d3d12_device);
|
||||||
|
|
||||||
ID3D12CommandQueue_AddRef(swapchain->command_queue = command_queue);
|
ID3D12CommandQueue_AddRef(swapchain->command_queue = command_queue);
|
||||||
@@ -588,12 +574,6 @@ static inline void demo_swapchain_present(struct demo_swapchain *swapchain)
|
|||||||
present_desc.pImageIndices = &swapchain->current_buffer;
|
present_desc.pImageIndices = &swapchain->current_buffer;
|
||||||
present_desc.pResults = NULL;
|
present_desc.pResults = NULL;
|
||||||
|
|
||||||
/* Synchronize vkd3d_acquire_vk_queue() with the Direct3D 12 work
|
|
||||||
* already submitted to the command queue. */
|
|
||||||
++swapchain->present_count;
|
|
||||||
ID3D12CommandQueue_Signal(swapchain->command_queue, swapchain->present_fence, swapchain->present_count);
|
|
||||||
ID3D12Fence_SetEventOnCompletion(swapchain->present_fence, swapchain->present_count, NULL);
|
|
||||||
|
|
||||||
vk_queue = vkd3d_acquire_vk_queue(swapchain->command_queue);
|
vk_queue = vkd3d_acquire_vk_queue(swapchain->command_queue);
|
||||||
vkQueuePresentKHR(vk_queue, &present_desc);
|
vkQueuePresentKHR(vk_queue, &present_desc);
|
||||||
vkd3d_release_vk_queue(swapchain->command_queue);
|
vkd3d_release_vk_queue(swapchain->command_queue);
|
||||||
@@ -609,7 +589,6 @@ static inline void demo_swapchain_destroy(struct demo_swapchain *swapchain)
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
ID3D12CommandQueue_Release(swapchain->command_queue);
|
ID3D12CommandQueue_Release(swapchain->command_queue);
|
||||||
ID3D12Fence_Release(swapchain->present_fence);
|
|
||||||
for (i = 0; i < swapchain->buffer_count; ++i)
|
for (i = 0; i < swapchain->buffer_count; ++i)
|
||||||
{
|
{
|
||||||
ID3D12Resource_Release(swapchain->buffers[i]);
|
ID3D12Resource_Release(swapchain->buffers[i]);
|
||||||
|
@@ -888,9 +888,6 @@ static int cxg_main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* Do not trigger -Wmissing-prototypes. */
|
|
||||||
int wmain(void);
|
|
||||||
|
|
||||||
int wmain(void)
|
int wmain(void)
|
||||||
#else
|
#else
|
||||||
int main(void)
|
int main(void)
|
||||||
|
@@ -401,9 +401,6 @@ static int cxt_main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* Do not trigger -Wmissing-prototypes. */
|
|
||||||
int wmain(void);
|
|
||||||
|
|
||||||
int wmain(void)
|
int wmain(void)
|
||||||
#else
|
#else
|
||||||
int main(void)
|
int main(void)
|
||||||
|
@@ -1,79 +0,0 @@
|
|||||||
=====================
|
|
||||||
vkd3d testing scripts
|
|
||||||
=====================
|
|
||||||
|
|
||||||
These scripts are used by the GitLab CI feature to automatically run
|
|
||||||
the vkd3d tests on each merge request.
|
|
||||||
|
|
||||||
The CI target image-linux, in the file image.yml, builds a Docker
|
|
||||||
image based on Debian bookworm with all the packages required for
|
|
||||||
testing, and uploads it to the GitLab container registry. The Docker
|
|
||||||
script is in the file image.docker. Most of the dependencies are
|
|
||||||
installed directly from the Debian repositories, with a few
|
|
||||||
exceptions:
|
|
||||||
|
|
||||||
* widl is compiled from Wine sources, because installing it from the
|
|
||||||
Debian repositories would carry all the rest of Wine and make the
|
|
||||||
Docker image quite larger;
|
|
||||||
|
|
||||||
* SPIRV-Tools are recompiled from sources, because the packages in
|
|
||||||
Debian do not ship shared objects and are not multiarch-compatible;
|
|
||||||
in order to make the packages multiarch-compatible, the utilities
|
|
||||||
are dropped (they're not used by the CI anyway);
|
|
||||||
|
|
||||||
* llvmpipe from Mesa 24.0.1 is compiled (in addition to version
|
|
||||||
22.3.6 available in Debian bookworm), because some Vulkan features
|
|
||||||
required by vkd3d are not available in Mesa 22.3.6.
|
|
||||||
|
|
||||||
The file build.yml contains the actual testing targets. Currently
|
|
||||||
vkd3d is tested on Linux, on x86-64 and i386, each architecture with
|
|
||||||
two different Vulkan drivers (both from Mesa): llvmpipe (a software
|
|
||||||
implementation) and RADV (a hardware implementation backed by an AMD
|
|
||||||
GPU). vkd3d is also tested on macOS, with an Intel processor, using
|
|
||||||
MoltenVK as the Vulkan driver. The llvmpipe and macOS jobs are
|
|
||||||
currently allowed to fail.
|
|
||||||
|
|
||||||
Additionally, MinGW is used to build PE binaries for both vkd3d and
|
|
||||||
its crosstests, for both 32 and 64 bit. The PE crosstests are executed
|
|
||||||
on Windows 10 to check that behavior imposed by the tests corresponds
|
|
||||||
to Microsoft's D3D12 implementation. The rendering backend is
|
|
||||||
currently Window's WARP software implementation.
|
|
||||||
|
|
||||||
The testing logs are available as CI artifacts, as well as the PE
|
|
||||||
modules built by the crosstest and MinGW jobs.
|
|
||||||
|
|
||||||
Some custom runner configuration is required in order to run the tests
|
|
||||||
on an AMD GPU. Specifically, a runner tagged with `amd-gpu' must be
|
|
||||||
available with the following features:
|
|
||||||
|
|
||||||
* of course a sufficiently recent AMD GPU must be available to the
|
|
||||||
host;
|
|
||||||
|
|
||||||
* the host kernel must have the appropriate driver and firmware
|
|
||||||
installed;
|
|
||||||
|
|
||||||
* the runner must forward the DRI nodes to the guest; this can be
|
|
||||||
configured by adding the line
|
|
||||||
|
|
||||||
devices = ["/dev/dri"]
|
|
||||||
|
|
||||||
to the relevant [runners.docker] section in the config.toml file;
|
|
||||||
|
|
||||||
* the DRI render nodes must be readable and writable by GID 800,
|
|
||||||
either because they belong to that group (e.g. because the group
|
|
||||||
`render', which typically owns those files, has GID 800) or via a
|
|
||||||
FS ACL; such stipulation is needed because in Debian group `render'
|
|
||||||
is created dynamically, therefore has no predictable GID: the use
|
|
||||||
of a fixed GID enables the guest system to be set up so that the
|
|
||||||
user running the tests can access the render nodes.
|
|
||||||
|
|
||||||
A runner on an Intel macOS system tagged with `mac' must also be
|
|
||||||
available to run the macOS tests. Unfortunately a system like Docker
|
|
||||||
is not available in this case to provide an isolated standard
|
|
||||||
environment for running the tests. All the software required to
|
|
||||||
compile and run the tests will therefore have to be installed directly
|
|
||||||
on the host system. Complete instructions to setup the macOS are
|
|
||||||
currently not available.
|
|
||||||
|
|
||||||
Finally, a runner tagged with `win10-21h2' must be available and
|
|
||||||
submit jobs to a Windows 10 virtual machine.
|
|
@@ -1,28 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMIT=$(printf '%03d-%s' $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD))
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_start:`date +%s`:commit_$COMMIT\r\e[0KBuilding commit $COMMIT"
|
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
|
||||||
|
|
||||||
# Building with -Wno-array-bounds because MinGW headers currently emit
|
|
||||||
# a lot of those
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
rm -fr build
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
../configure CROSSCC64="x86_64-w64-mingw32-gcc -Wno-array-bounds -Werror" CROSSCC32="i686-w64-mingw32-gcc -Wno-array-bounds -Werror" && \
|
|
||||||
make -j$(nproc) crosstest || \
|
|
||||||
touch ../pipeline_failed
|
|
||||||
|
|
||||||
mkdir -p ../artifacts/$COMMIT
|
|
||||||
rsync -Rr config.log tests/*.txt tests/*.exe ../artifacts/$COMMIT || true
|
|
||||||
|
|
||||||
# Make the driver easily available to the Windows CI job
|
|
||||||
cp tests/driver.cross64.exe ../artifacts
|
|
||||||
|
|
||||||
git reset --hard
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_end:`date +%s`:commit_$COMMIT\r\e[0K"
|
|
@@ -1,29 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMIT=$(printf '%03d-%s' $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD))
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_start:`date +%s`:commit_$COMMIT\r\e[0KBuilding commit $COMMIT"
|
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
rm -fr build
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
export LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH-}"
|
|
||||||
if ../configure --enable-demos --with-spirv-tools DXCOMPILER_LIBS="-L/usr/local/lib" CFLAGS="-g -O2 -Werror" CPPFLAGS="-DVKD3D_SHADER_UNSUPPORTED_DXIL -DVKD3D_SHADER_UNSUPPORTED_GLSL" && \
|
|
||||||
make -j$(nproc) ; then
|
|
||||||
make -j$(nproc) AM_COLOR_TESTS=always check || \
|
|
||||||
touch ../tests_failed
|
|
||||||
else
|
|
||||||
touch ../build_failed
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat tests/d3d12.log | grep -E 'd3d12: [0-9]+ tests executed' || true
|
|
||||||
|
|
||||||
mkdir -p ../artifacts/$COMMIT
|
|
||||||
rsync -Rr config.log doc/* test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT || true
|
|
||||||
|
|
||||||
git reset --hard
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_end:`date +%s`:commit_$COMMIT\r\e[0K"
|
|
@@ -1,28 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMIT=$(printf '%03d-%s' $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD))
|
|
||||||
|
|
||||||
echo -e "\033[0Ksection_start:`date +%s`:commit_$COMMIT\r\033[0KBuilding commit $COMMIT"
|
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
rm -fr build
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
if ../configure CFLAGS="-g -O2 -Wno-implicit-fallthrough -Werror" && \
|
|
||||||
make -j$(sysctl -n hw.ncpu) ; then
|
|
||||||
make -j$(sysctl -n hw.ncpu) AM_COLOR_TESTS=always check || \
|
|
||||||
touch ../tests_failed
|
|
||||||
else
|
|
||||||
touch ../build_failed
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat tests/d3d12.log | grep -E 'd3d12: [0-9]+ tests executed' || true
|
|
||||||
|
|
||||||
mkdir -p ../artifacts/$COMMIT
|
|
||||||
rsync -Rr config.log test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT || true
|
|
||||||
|
|
||||||
git reset --hard
|
|
||||||
|
|
||||||
echo -e "\033[0Ksection_end:`date +%s`:commit_$COMMIT\r\033[0K"
|
|
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMIT=$(printf '%03d-%s' $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD))
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_start:`date +%s`:commit_$COMMIT\r\e[0KBuilding commit $COMMIT"
|
|
||||||
|
|
||||||
set -Eeuxo pipefail
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
rm -fr build
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
mkdir vulkan-headers
|
|
||||||
cp -r /usr/include/vulkan /usr/include/vk_video /usr/include/spirv vulkan-headers
|
|
||||||
../configure --enable-demos --disable-doxygen-doc --without-ncurses --host=$HOST SONAME_LIBVULKAN="vulkan-1.dll" CPPFLAGS="-I$PWD/vulkan-headers" CFLAGS="-g -O2 -Wno-array-bounds -Werror" LDFLAGS="-static-libgcc" && \
|
|
||||||
make -j$(nproc) && \
|
|
||||||
make -j$(nproc) install DESTDIR="$PWD/destdir" || \
|
|
||||||
touch ../pipeline_failed
|
|
||||||
|
|
||||||
mkdir -p ../artifacts/$COMMIT
|
|
||||||
cp config.log ../artifacts/$COMMIT || true
|
|
||||||
cp destdir/usr/local/bin/* ../artifacts/$COMMIT || true
|
|
||||||
|
|
||||||
git reset --hard
|
|
||||||
|
|
||||||
echo -e "\e[0Ksection_end:`date +%s`:commit_$COMMIT\r\e[0K"
|
|
176
gitlab/build.yml
176
gitlab/build.yml
@@ -1,176 +0,0 @@
|
|||||||
.build-linux:
|
|
||||||
stage: build
|
|
||||||
rules:
|
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
||||||
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
|
|
||||||
interruptible: true
|
|
||||||
needs:
|
|
||||||
- job: image-linux
|
|
||||||
optional: true
|
|
||||||
dependencies: []
|
|
||||||
script:
|
|
||||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
||||||
- git clean -fdx
|
|
||||||
- git reset --hard
|
|
||||||
- rm -fr .git/rebase-merge
|
|
||||||
- mkdir artifacts
|
|
||||||
- cat /proc/cpuinfo > artifacts/cpuinfo.txt
|
|
||||||
- cat /proc/meminfo > artifacts/meminfo.txt
|
|
||||||
- vulkaninfo > artifacts/vulkaninfo.txt
|
|
||||||
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-linux
|
|
||||||
- if [ -f build_failed ] ; then exit 1 ; fi
|
|
||||||
- if [ -f tests_failed ] ; then exit 2 ; fi
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- artifacts
|
|
||||||
|
|
||||||
build-radv-64:
|
|
||||||
extends: .build-linux
|
|
||||||
tags:
|
|
||||||
- amd-gpu
|
|
||||||
variables:
|
|
||||||
VK_LOADER_DRIVERS_SELECT: 'radeon_*'
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
|
|
||||||
build-llvmpipe-64:
|
|
||||||
extends: .build-linux
|
|
||||||
allow_failure:
|
|
||||||
exit_codes:
|
|
||||||
- 2
|
|
||||||
variables:
|
|
||||||
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
|
|
||||||
build-radv-32:
|
|
||||||
extends: .build-linux
|
|
||||||
tags:
|
|
||||||
- amd-gpu
|
|
||||||
variables:
|
|
||||||
VK_LOADER_DRIVERS_SELECT: 'radeon_*'
|
|
||||||
CC: 'i686-linux-gnu-gcc'
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
|
|
||||||
build-llvmpipe-32:
|
|
||||||
extends: .build-linux
|
|
||||||
allow_failure:
|
|
||||||
exit_codes:
|
|
||||||
- 2
|
|
||||||
variables:
|
|
||||||
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
|
|
||||||
CC: 'i686-linux-gnu-gcc'
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
|
|
||||||
build-llvmpipe-64-mesa24:
|
|
||||||
extends: .build-linux
|
|
||||||
allow_failure:
|
|
||||||
exit_codes:
|
|
||||||
- 2
|
|
||||||
variables:
|
|
||||||
VK_DRIVER_FILES: '/opt/mesa24/share/vulkan/icd.d/lvp_icd.x86_64.json'
|
|
||||||
LD_LIBRARY_PATH: '/opt/mesa24/lib/x86_64-linux-gnu'
|
|
||||||
__EGL_VENDOR_LIBRARY_FILENAMES: '/opt/mesa24/share/glvnd/egl_vendor.d/50_mesa.json'
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
|
|
||||||
build-crosstest:
|
|
||||||
stage: build
|
|
||||||
rules:
|
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
||||||
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
|
|
||||||
interruptible: true
|
|
||||||
needs:
|
|
||||||
- job: image-linux
|
|
||||||
optional: true
|
|
||||||
dependencies: []
|
|
||||||
script:
|
|
||||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
||||||
- git clean -fdx
|
|
||||||
- git reset --hard
|
|
||||||
- rm -fr .git/rebase-merge
|
|
||||||
- mkdir artifacts
|
|
||||||
- cat /proc/cpuinfo > artifacts/cpuinfo.txt
|
|
||||||
- cat /proc/meminfo > artifacts/meminfo.txt
|
|
||||||
- vulkaninfo > artifacts/vulkaninfo.txt
|
|
||||||
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-crosstest
|
|
||||||
- if [ -f pipeline_failed ] ; then exit 1 ; fi
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- artifacts
|
|
||||||
|
|
||||||
.build-mingw:
|
|
||||||
stage: build
|
|
||||||
rules:
|
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
||||||
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
|
|
||||||
interruptible: true
|
|
||||||
needs:
|
|
||||||
- job: image-linux
|
|
||||||
optional: true
|
|
||||||
dependencies: []
|
|
||||||
script:
|
|
||||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
||||||
- git clean -fdx
|
|
||||||
- git reset --hard
|
|
||||||
- rm -fr .git/rebase-merge
|
|
||||||
- mkdir artifacts
|
|
||||||
- cat /proc/cpuinfo > artifacts/cpuinfo.txt
|
|
||||||
- cat /proc/meminfo > artifacts/meminfo.txt
|
|
||||||
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mingw
|
|
||||||
- if [ -f pipeline_failed ] ; then exit 1 ; fi
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- artifacts
|
|
||||||
|
|
||||||
build-mingw-64:
|
|
||||||
extends: .build-mingw
|
|
||||||
variables:
|
|
||||||
HOST: "x86_64-w64-mingw32"
|
|
||||||
|
|
||||||
build-mingw-32:
|
|
||||||
extends: .build-mingw
|
|
||||||
variables:
|
|
||||||
HOST: "i686-w64-mingw32"
|
|
||||||
|
|
||||||
build-mac:
|
|
||||||
stage: build
|
|
||||||
rules:
|
|
||||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
||||||
allow_failure:
|
|
||||||
exit_codes:
|
|
||||||
- 2
|
|
||||||
interruptible: true
|
|
||||||
needs:
|
|
||||||
- job: image-mac
|
|
||||||
optional: true
|
|
||||||
dependencies: []
|
|
||||||
tags:
|
|
||||||
- mac
|
|
||||||
script:
|
|
||||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
||||||
- git clean -fdx
|
|
||||||
- git reset --hard
|
|
||||||
- rm -fr .git/rebase-merge
|
|
||||||
# We use a custom ICD which is not marked as a portability driver,
|
|
||||||
# so that test programs are not confused.
|
|
||||||
- ./gitlab/patch_moltenvk_icd.sh
|
|
||||||
- export VK_DRIVER_FILES="$PWD/gitlab/MoltenVK_icd.json"
|
|
||||||
- mkdir artifacts
|
|
||||||
- system_profiler SPSoftwareDataType SPHardwareDataType > artifacts/systeminfo.txt
|
|
||||||
- vulkaninfo > artifacts/vulkaninfo.txt
|
|
||||||
- export PATH="/usr/local/opt/bison/bin:/usr/local/opt/flex/bin:$PATH"
|
|
||||||
- curl -o image.zip https://gitlab.winehq.org/api/v4/projects/wine%2Fvkd3d/jobs/artifacts/master/download?job=image-mac
|
|
||||||
- unzip image.zip
|
|
||||||
- export PATH="$PWD/image/bin:$PATH"
|
|
||||||
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mac
|
|
||||||
- if [ -f build_failed ] ; then exit 1 ; fi
|
|
||||||
- if [ -f tests_failed ] ; then exit 2 ; fi
|
|
||||||
variables:
|
|
||||||
VKD3D_DISABLE_EXTENSIONS: "VK_EXT_descriptor_indexing"
|
|
||||||
VKD3D_SHADER_CONFIG: 'force_validation'
|
|
||||||
MVK_CONFIG_LOG_LEVEL: 1
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- artifacts
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user