diff --git c/devel/glslang/Makefile i/devel/glslang/Makefile new file mode 100644 index 000000000000..79739fdd274c --- /dev/null +++ i/devel/glslang/Makefile @@ -0,0 +1,24 @@ +# $FreeBSD$ + +PORTNAME= glslang +DISTVERSION= 6.2.2596-248 +DISTVERSIONSUFFIX= -ge0bc65b +CATEGORIES= devel graphics + +MAINTAINER= greg@unrelenting.technology +COMMENT= OpenGL and OpenGL ES shader front end and validator + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKDIR}/LICENSE + +USES= cmake:outsource compiler:c++11-lang + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= glslang + +post-extract: + ${SED} '/^$$/,$$d' ${WRKSRC}/${PORTNAME}/Include/Types.h \ + >${WRKDIR}/LICENSE + +.include diff --git c/devel/glslang/distinfo i/devel/glslang/distinfo new file mode 100644 index 000000000000..30762cc90de9 --- /dev/null +++ i/devel/glslang/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1533666570 +SHA256 (KhronosGroup-glslang-6.2.2596-248-ge0bc65b_GH0.tar.gz) = 497a18bfe7e102cda61377ca4fd7dbd84478a89b80e4d53420cf94c9a380f2f0 +SIZE (KhronosGroup-glslang-6.2.2596-248-ge0bc65b_GH0.tar.gz) = 2353165 diff --git c/devel/glslang/pkg-descr i/devel/glslang/pkg-descr new file mode 100644 index 000000000000..c27cf43d6558 --- /dev/null +++ i/devel/glslang/pkg-descr @@ -0,0 +1,5 @@ +Glslang is the official reference compiler front end for the OpenGL ES and +OpenGL shading languages. It implements a strict interpretation of the +specifications for these languages. + +WWW: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ diff --git c/devel/glslang/pkg-plist i/devel/glslang/pkg-plist new file mode 100644 index 000000000000..88b25f89ede4 --- /dev/null +++ i/devel/glslang/pkg-plist @@ -0,0 +1,54 @@ +bin/glslangValidator +bin/spirv-remap +include/SPIRV/GLSL.ext.AMD.h +include/SPIRV/GLSL.ext.EXT.h +include/SPIRV/GLSL.ext.KHR.h +include/SPIRV/GLSL.ext.NV.h +include/SPIRV/GLSL.std.450.h +include/SPIRV/GlslangToSpv.h +include/SPIRV/Logger.h +include/SPIRV/SPVRemapper.h +include/SPIRV/SpvBuilder.h +include/SPIRV/bitutils.h +include/SPIRV/disassemble.h +include/SPIRV/doc.h +include/SPIRV/hex_float.h +include/SPIRV/spirv.hpp +include/SPIRV/spvIR.h +include/glslang/Include/BaseTypes.h +include/glslang/Include/Common.h +include/glslang/Include/ConstantUnion.h +include/glslang/Include/InfoSink.h +include/glslang/Include/InitializeGlobals.h +include/glslang/Include/PoolAlloc.h +include/glslang/Include/ResourceLimits.h +include/glslang/Include/ShHandle.h +include/glslang/Include/Types.h +include/glslang/Include/arrays.h +include/glslang/Include/intermediate.h +include/glslang/Include/revision.h +include/glslang/MachineIndependent/Initialize.h +include/glslang/MachineIndependent/LiveTraverser.h +include/glslang/MachineIndependent/ParseHelper.h +include/glslang/MachineIndependent/RemoveTree.h +include/glslang/MachineIndependent/Scan.h +include/glslang/MachineIndependent/ScanContext.h +include/glslang/MachineIndependent/SymbolTable.h +include/glslang/MachineIndependent/Versions.h +include/glslang/MachineIndependent/attribute.h +include/glslang/MachineIndependent/gl_types.h +include/glslang/MachineIndependent/glslang_tab.cpp.h +include/glslang/MachineIndependent/iomapper.h +include/glslang/MachineIndependent/localintermediate.h +include/glslang/MachineIndependent/parseVersions.h +include/glslang/MachineIndependent/preprocessor/PpContext.h +include/glslang/MachineIndependent/preprocessor/PpTokens.h +include/glslang/MachineIndependent/propagateNoContraction.h +include/glslang/MachineIndependent/reflection.h +include/glslang/Public/ShaderLang.h +lib/libHLSL.a +lib/libOGLCompiler.a +lib/libOSDependent.a +lib/libSPIRV.a +lib/libSPVRemapper.a +lib/libglslang.a diff --git c/devel/spirv-tools/Makefile i/devel/spirv-tools/Makefile new file mode 100644 index 000000000000..6fcf6588533f --- /dev/null +++ i/devel/spirv-tools/Makefile @@ -0,0 +1,24 @@ +# $FreeBSD$ + +PORTNAME= spirv-tools +DISTVERSIONPREFIX= v +DISTVERSION= 2018.4 +CATEGORIES= devel graphics + +MAINTAINER= greg@unrelenting.technology +COMMENT= Tools for processing SPIR-V intermediate shader language modules + +LICENSE= APACHE20 + +USES= cmake:outsource compiler:c++11-lib python:build shebangfix +SHEBANG_FILES= tools/lesspipe/spirv-lesspipe.sh + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= SPIRV-Tools +GH_TUPLE= KhronosGroup:SPIRV-Headers:ff684ff:headers/external/spirv-headers + +CMAKE_ARGS+= -DSPIRV_SKIP_TESTS:BOOL=ON \ + -DSPIRV_WERROR:BOOL=OFF + +.include diff --git c/devel/spirv-tools/distinfo i/devel/spirv-tools/distinfo new file mode 100644 index 000000000000..62485abc51bf --- /dev/null +++ i/devel/spirv-tools/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1533666224 +SHA256 (KhronosGroup-SPIRV-Tools-v2018.4_GH0.tar.gz) = e09749d3b9d767cf1cf62ba3cf7d7f992f19681477c434fea214227f3665d8d1 +SIZE (KhronosGroup-SPIRV-Tools-v2018.4_GH0.tar.gz) = 1327904 +SHA256 (KhronosGroup-SPIRV-Headers-ff684ff_GH0.tar.gz) = dbeb5b65b290519b026f3eb280107929901d671a7f29ae536885bb72e6c38ebd +SIZE (KhronosGroup-SPIRV-Headers-ff684ff_GH0.tar.gz) = 280884 diff --git c/devel/spirv-tools/pkg-descr i/devel/spirv-tools/pkg-descr new file mode 100644 index 000000000000..069e3fc4ed73 --- /dev/null +++ i/devel/spirv-tools/pkg-descr @@ -0,0 +1,11 @@ +The SPIR-V Tools project provides an API and commands for processing SPIR-V +modules. + +The project includes an assembler, binary module parser, disassembler, +validator, and optimizer for SPIR-V. Except for the optimizer, all are based +on a common static library. The library contains all of the implementation +details, and is used in the standalone tools whilst also enabling integration +into other code bases directly. The optimizer implementation resides in its own +library, which depends on the core library. + +WWW: https://github.com/KhronosGroup/SPIRV-Tools diff --git c/devel/spirv-tools/pkg-plist i/devel/spirv-tools/pkg-plist new file mode 100644 index 000000000000..8de4753ea38e --- /dev/null +++ i/devel/spirv-tools/pkg-plist @@ -0,0 +1,18 @@ +bin/spirv-as +bin/spirv-cfg +bin/spirv-dis +bin/spirv-lesspipe.sh +bin/spirv-link +bin/spirv-opt +bin/spirv-stats +bin/spirv-val +include/spirv-tools/libspirv.h +include/spirv-tools/libspirv.hpp +include/spirv-tools/linker.hpp +include/spirv-tools/optimizer.hpp +lib/libSPIRV-Tools-link.a +lib/libSPIRV-Tools-opt.a +lib/libSPIRV-Tools-shared.so +lib/libSPIRV-Tools.a +libdata/pkgconfig/SPIRV-Tools-shared.pc +libdata/pkgconfig/SPIRV-Tools.pc diff --git c/devel/vulkan-headers/Makefile i/devel/vulkan-headers/Makefile new file mode 100644 index 000000000000..7afd65892273 --- /dev/null +++ i/devel/vulkan-headers/Makefile @@ -0,0 +1,20 @@ +# $FreeBSD$ + +PORTNAME= vulkan-headers +DISTVERSIONPREFIX=sdk- +DISTVERSION= 1.1.82.0 +CATEGORIES= devel graphics + +MAINTAINER= greg@unrelenting.technology +COMMENT= Headers for the Vulkan graphics API + +LICENSE= APACHE20 + +USES= cmake:outsource +STRIP= # nothing to strip + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= Vulkan-Headers + +.include diff --git c/devel/vulkan-headers/distinfo i/devel/vulkan-headers/distinfo new file mode 100644 index 000000000000..bcd6a2a6c5c6 --- /dev/null +++ i/devel/vulkan-headers/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1533661644 +SHA256 (KhronosGroup-Vulkan-Headers-sdk-1.1.82.0_GH0.tar.gz) = df73da07d547cfbe88a797802401ea8225e4844e13d4fde52a7cb6e00e5179e5 +SIZE (KhronosGroup-Vulkan-Headers-sdk-1.1.82.0_GH0.tar.gz) = 472646 diff --git c/devel/vulkan-headers/pkg-descr i/devel/vulkan-headers/pkg-descr new file mode 100644 index 000000000000..96ee63ffb24c --- /dev/null +++ i/devel/vulkan-headers/pkg-descr @@ -0,0 +1,5 @@ +Vulkan is a low-level cross-platform 3D graphics and compute API. + +This port provides the development headers for Vulkan applications. + +WWW: https://github.com/KhronosGroup/Vulkan-Headers diff --git c/devel/vulkan-headers/pkg-plist i/devel/vulkan-headers/pkg-plist new file mode 100644 index 000000000000..dbd4bff5162c --- /dev/null +++ i/devel/vulkan-headers/pkg-plist @@ -0,0 +1,23 @@ +include/vulkan/vk_icd.h +include/vulkan/vk_layer.h +include/vulkan/vk_platform.h +include/vulkan/vk_sdk_platform.h +include/vulkan/vulkan.h +include/vulkan/vulkan.hpp +include/vulkan/vulkan_android.h +include/vulkan/vulkan_core.h +include/vulkan/vulkan_ios.h +include/vulkan/vulkan_macos.h +include/vulkan/vulkan_mir.h +include/vulkan/vulkan_vi.h +include/vulkan/vulkan_wayland.h +include/vulkan/vulkan_win32.h +include/vulkan/vulkan_xcb.h +include/vulkan/vulkan_xlib.h +include/vulkan/vulkan_xlib_xrandr.h +share/vulkan/registry/cgenerator.py +share/vulkan/registry/generator.py +share/vulkan/registry/genvk.py +share/vulkan/registry/reg.py +share/vulkan/registry/validusage.json +share/vulkan/registry/vk.xml diff --git c/devel/vulkan-tools/Makefile i/devel/vulkan-tools/Makefile new file mode 100644 index 000000000000..fc6698da7014 --- /dev/null +++ i/devel/vulkan-tools/Makefile @@ -0,0 +1,32 @@ +# $FreeBSD$ + +PORTNAME= vulkan-tools +DISTVERSIONPREFIX= sdk- +DISTVERSION= 1.1.82.0 +CATEGORIES= devel graphics + +MAINTAINER= greg@unrelenting.technology +COMMENT= Tools and demos for the Vulkan graphics API + +LICENSE= APACHE20 + +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \ + glslangValidator:devel/glslang +LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader \ + libX11-xcb.so:x11/libX11 \ + libXrandr.so:x11/libXrandr \ + libxcb.so:x11/libxcb + +USES= cmake:outsource compiler:c++11-lib python:3.4+,build pkgconfig + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= Vulkan-Tools + +CMAKE_ARGS+= -DBUILD_TESTS:BOOL=OFF \ + -DBUILD_ICD:BOOL=OFF \ + -DBUILD_WSI_WAYLAND_SUPPORT:BOOL=OFF \ + -DBUILD_WSI_MIR_SUPPORT:BOOL=OFF \ + -DGLSLANG_INSTALL_DIR=${LOCALBASE} + +.include diff --git c/devel/vulkan-tools/distinfo i/devel/vulkan-tools/distinfo new file mode 100644 index 000000000000..9c568bd8f186 --- /dev/null +++ i/devel/vulkan-tools/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1533667375 +SHA256 (KhronosGroup-Vulkan-Tools-sdk-1.1.82.0_GH0.tar.gz) = 22e5e5dfd47535e1664458ee59706abcaace96575d1a3d7fa9ae779a9e83b89c +SIZE (KhronosGroup-Vulkan-Tools-sdk-1.1.82.0_GH0.tar.gz) = 342057 diff --git c/devel/vulkan-tools/files/patch-cube_CMakeLists.txt i/devel/vulkan-tools/files/patch-cube_CMakeLists.txt new file mode 100644 index 000000000000..f8e77a950794 --- /dev/null +++ i/devel/vulkan-tools/files/patch-cube_CMakeLists.txt @@ -0,0 +1,33 @@ +--- cube/CMakeLists.txt.orig 2018-08-07 18:44:03 UTC ++++ cube/CMakeLists.txt +@@ -48,7 +48,7 @@ else() + find_program(GLSLANG_VALIDATOR NAMES ${GLSLANG_VALIDATOR_NAME} HINTS "${PROJECT_SOURCE_DIR}/glslang/bin") + endif() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++if(UNIX AND NOT APPLE) + include(FindPkgConfig) + option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON) + option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON) +@@ -58,10 +58,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + if(BUILD_WSI_XCB_SUPPORT) + find_package(XCB REQUIRED) ++ include_directories(SYSTEM ${XCB_INCLUDE_DIR}) + endif() + + if(BUILD_WSI_XLIB_SUPPORT) + find_package(X11 REQUIRED) ++ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH}) + endif() + + if(BUILD_WSI_WAYLAND_SUPPORT) +@@ -87,7 +89,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + endif() + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) +-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++elseif(UNIX AND NOT APPLE) + if(NOT CUBE_WSI_SELECTION) + set(CUBE_WSI_SELECTION "XCB") + endif() diff --git c/devel/vulkan-tools/files/patch-cube_cube.cpp i/devel/vulkan-tools/files/patch-cube_cube.cpp new file mode 100644 index 000000000000..11817526cb01 --- /dev/null +++ i/devel/vulkan-tools/files/patch-cube_cube.cpp @@ -0,0 +1,11 @@ +--- cube/cube.cpp.orig 2018-08-07 18:51:55 UTC ++++ cube/cube.cpp +@@ -2922,7 +2922,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPre + return (int)msg.wParam; + } + +-#elif __linux__ ++#elif __unix__ + + int main(int argc, char **argv) { + Demo demo; diff --git c/devel/vulkan-tools/files/patch-vulkaninfo_CMakeLists.txt i/devel/vulkan-tools/files/patch-vulkaninfo_CMakeLists.txt new file mode 100644 index 000000000000..cbcb21243dc4 --- /dev/null +++ i/devel/vulkan-tools/files/patch-vulkaninfo_CMakeLists.txt @@ -0,0 +1,24 @@ +--- vulkaninfo/CMakeLists.txt.orig 2018-08-07 18:45:41 UTC ++++ vulkaninfo/CMakeLists.txt +@@ -28,7 +28,7 @@ else() + add_executable(vulkaninfo vulkaninfo.c) + endif() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++if(UNIX AND NOT APPLE) + include(FindPkgConfig) + option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON) + option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON) +@@ -36,10 +36,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + if(BUILD_WSI_XCB_SUPPORT) + find_package(XCB REQUIRED) ++ include_directories(SYSTEM ${XCB_INCLUDE_DIR}) + endif() + + if(BUILD_WSI_XLIB_SUPPORT) + find_package(X11 REQUIRED) ++ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH}) + endif() + + if(VULKANINFO_WSI_SELECTION STREQUAL "XCB") diff --git c/devel/vulkan-tools/pkg-descr i/devel/vulkan-tools/pkg-descr new file mode 100644 index 000000000000..90fa5ef30d14 --- /dev/null +++ i/devel/vulkan-tools/pkg-descr @@ -0,0 +1,5 @@ +Vulkan is a low-level cross-platform 3D graphics and compute API. + +This port provides various tools and demos for Vulkan, e.g. vulkaninfo. + +WWW: https://github.com/KhronosGroup/Vulkan-Tools diff --git c/devel/vulkan-tools/pkg-plist i/devel/vulkan-tools/pkg-plist new file mode 100644 index 000000000000..737367b78660 --- /dev/null +++ i/devel/vulkan-tools/pkg-plist @@ -0,0 +1,3 @@ +bin/cube +bin/cubepp +bin/vulkaninfo diff --git c/devel/vulkan-validation-layers/Makefile i/devel/vulkan-validation-layers/Makefile new file mode 100644 index 000000000000..74d49baf5046 --- /dev/null +++ i/devel/vulkan-validation-layers/Makefile @@ -0,0 +1,32 @@ +# $FreeBSD$ + +PORTNAME= vulkan-validation-layers +DISTVERSIONPREFIX= sdk- +DISTVERSION= 1.1.82.0 +CATEGORIES= devel graphics + +MAINTAINER= greg@unrelenting.technology +COMMENT= Validation layers for the Vulkan graphics API + +LICENSE= APACHE20 + +# NOTE: keep spirv-tools and glslang up to date when updating Vulkan +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \ + ${LOCALBASE}/include/spirv-tools/libspirv.h:devel/spirv-tools \ + ${LOCALBASE}/include/SPIRV/spirv.hpp:devel/glslang + +USES= cmake:outsource compiler:c++11-lib python:3.4+,build pkgconfig + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= Vulkan-ValidationLayers + +# WSI_* in here are leftover from when all of Vulkan SDK was in one repo +CMAKE_ARGS+= -DBUILD_TESTS:BOOL=OFF \ + -DBUILD_WSI_XCB_SUPPORT:BOOL=OFF \ + -DBUILD_WSI_XLIB_SUPPORT:BOOL=OFF \ + -DBUILD_WSI_WAYLAND_SUPPORT:BOOL=OFF \ + -DBUILD_WSI_MIR_SUPPORT:BOOL=OFF \ + -DGLSLANG_INSTALL_DIR=${LOCALBASE} + +.include diff --git c/devel/vulkan-validation-layers/distinfo i/devel/vulkan-validation-layers/distinfo new file mode 100644 index 000000000000..dd1afc6d9441 --- /dev/null +++ i/devel/vulkan-validation-layers/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1533665599 +SHA256 (KhronosGroup-Vulkan-ValidationLayers-sdk-1.1.82.0_GH0.tar.gz) = 6d83d1f7085bcfe67a791fce0bfb500dfb5d4833f062db1fc272bdc86e87eded +SIZE (KhronosGroup-Vulkan-ValidationLayers-sdk-1.1.82.0_GH0.tar.gz) = 962154 diff --git c/devel/vulkan-validation-layers/files/patch-CMakeLists.txt i/devel/vulkan-validation-layers/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..2948c3d9d9d5 --- /dev/null +++ i/devel/vulkan-validation-layers/files/patch-CMakeLists.txt @@ -0,0 +1,23 @@ +--- CMakeLists.txt.orig 2018-07-30 17:53:08 UTC ++++ CMakeLists.txt +@@ -63,9 +63,9 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) + # "Helper" targets that don't have interesting source code should set their FOLDER property to this + set(LAYERS_HELPER_FOLDER "Helper Targets") + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++if(UNIX) + set( +- FALLBACK_CONFIG_DIRS "/etc/xdg" ++ FALLBACK_CONFIG_DIRS "${CMAKE_INSTALL_PREFIX}/etc/xdg:/etc/xdg" + CACHE + STRING + "Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant." +@@ -78,7 +78,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_ + ) + endif() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++if(UNIX AND NOT APPLE) + include(FindPkgConfig) + option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON) + option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON) diff --git c/devel/vulkan-validation-layers/files/patch-layers_CMakeLists.txt i/devel/vulkan-validation-layers/files/patch-layers_CMakeLists.txt new file mode 100644 index 000000000000..67b9c05d8408 --- /dev/null +++ i/devel/vulkan-validation-layers/files/patch-layers_CMakeLists.txt @@ -0,0 +1,20 @@ +--- layers/CMakeLists.txt.orig 2018-07-30 17:53:08 UTC ++++ layers/CMakeLists.txt +@@ -23,7 +23,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(DisplayServer Win32) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR -DVK_USE_PLATFORM_ANDROID_KHX) +-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++elseif(UNIX AND NOT APPLE) + if(BUILD_WSI_XCB_SUPPORT) + add_definitions(-DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XCB_KHX) + endif() +@@ -131,7 +131,7 @@ if(WIN32) + add_custom_target(vk_validation_error_messages ALL COMMAND copy ${src_val_msgs} ${dst_val_msgs} VERBATIM) + set_target_properties(vk_validation_error_messages PROPERTIES FOLDER ${LAYERS_HELPER_FOLDER}) + endif() +-elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") ++ elseif(UNIX AND NOT APPLE) + # extra setup for out-of-tree builds + if(NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)) + foreach(config_file ${LAYER_JSON_FILES}) diff --git c/devel/vulkan-validation-layers/files/patch-layers_vk__loader__platform.h i/devel/vulkan-validation-layers/files/patch-layers_vk__loader__platform.h new file mode 100644 index 000000000000..76c6297e1e96 --- /dev/null +++ i/devel/vulkan-validation-layers/files/patch-layers_vk__loader__platform.h @@ -0,0 +1,11 @@ +--- layers/vk_loader_platform.h.orig 2018-08-07 18:19:43 UTC ++++ layers/vk_loader_platform.h +@@ -31,7 +31,7 @@ + #include "vulkan/vk_platform.h" + #include "vulkan/vk_sdk_platform.h" + +-#if defined(__linux__) || defined(__APPLE__) ++#if defined(__unix__) + /* Linux-specific common code: */ + + // Headers: diff --git c/devel/vulkan-validation-layers/pkg-descr i/devel/vulkan-validation-layers/pkg-descr new file mode 100644 index 000000000000..164b196a815f --- /dev/null +++ i/devel/vulkan-validation-layers/pkg-descr @@ -0,0 +1,6 @@ +Vulkan is a low-level cross-platform 3D graphics and compute API. + +This port provides the official validation layers for Vulkan applications, +which are useful for development and debugging. + +WWW: https://github.com/KhronosGroup/Vulkan-ValidationLayers diff --git c/devel/vulkan-validation-layers/pkg-plist i/devel/vulkan-validation-layers/pkg-plist new file mode 100644 index 000000000000..41645d26c7f6 --- /dev/null +++ i/devel/vulkan-validation-layers/pkg-plist @@ -0,0 +1,35 @@ +include/hash_util.h +include/hash_vk_types.h +include/vk_dispatch_table_helper.h +include/vk_enum_string_helper.h +include/vk_extension_helper.h +include/vk_format_utils.cpp +include/vk_format_utils.h +include/vk_layer_config.cpp +include/vk_layer_config.h +include/vk_layer_data.h +include/vk_layer_dispatch_table.h +include/vk_layer_extension_utils.cpp +include/vk_layer_extension_utils.h +include/vk_layer_logging.h +include/vk_layer_utils.cpp +include/vk_layer_utils.h +include/vk_loader_layer.h +include/vk_loader_platform.h +include/vk_object_types.h +include/vk_safe_struct.cpp +include/vk_safe_struct.h +include/vk_typemap_helper.h +include/vk_validation_error_messages.h +lib/libVkLayer_core_validation.so +lib/libVkLayer_object_tracker.so +lib/libVkLayer_parameter_validation.so +lib/libVkLayer_threading.so +lib/libVkLayer_unique_objects.so +lib/libVkLayer_utils.a +share/vulkan/explicit_layer.d/VkLayer_core_validation.json +share/vulkan/explicit_layer.d/VkLayer_object_tracker.json +share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json +share/vulkan/explicit_layer.d/VkLayer_standard_validation.json +share/vulkan/explicit_layer.d/VkLayer_threading.json +share/vulkan/explicit_layer.d/VkLayer_unique_objects.json diff --git c/emulators/rpcs3/Makefile i/emulators/rpcs3/Makefile index 57954943c75c..249d70766eae 100644 --- c/emulators/rpcs3/Makefile +++ i/emulators/rpcs3/Makefile @@ -48,7 +48,7 @@ LDFLAGS+= -Wl,--as-needed # GLU OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN OPTIONS_DEFAULT=ALSA LLVM VULKAN -.if !exists(${.CURDIR:H:H}/graphics/vulkan-sdk) +.if !exists(${.CURDIR:H:H}/graphics/vulkan-loader) OPTIONS_EXCLUDE=VULKAN # XXX ports/222175 .endif @@ -70,7 +70,7 @@ PULSEAUDIO_LIB_DEPENDS= libpulse-simple.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE VULKAN_DESC= Vulkan renderer -VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-sdk +VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader VULKAN_CMAKE_BOOL= USE_VULKAN post-patch: diff --git c/graphics/vulkan-loader/Makefile i/graphics/vulkan-loader/Makefile new file mode 100644 index 000000000000..6cfe9ba26973 --- /dev/null +++ i/graphics/vulkan-loader/Makefile @@ -0,0 +1,43 @@ +# $FreeBSD$ + +PORTNAME= vulkan-loader +DISTVERSIONPREFIX=sdk- +DISTVERSION= 1.1.82.0 +CATEGORIES= graphics devel + +MAINTAINER= greg@unrelenting.technology +COMMENT= Driver loader for the Vulkan graphics API + +LICENSE= APACHE20 + +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers + +USES= cmake:outsource compiler:c++11-lib python:3.4+,build pkgconfig + +USE_LDCONFIG= yes + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= Vulkan-Loader + +CMAKE_ARGS+= -DBUILD_TESTS:BOOL=OFF \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DBUILD_WSI_MIR_SUPPORT:BOOL=OFF + +OPTIONS_DEFINE= XLIB XCB WAYLAND +OPTIONS_DEFAULT= XLIB XCB WAYLAND + +XLIB_DESC= Build Xlib WSI (Window System Integration) support +XCB_DESC= Build XCB WSI (Window System Integration) support +WAYLAND_DESC= Build Wayland WSI (Window System Integration) support + +XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT +XLIB_LIB_DEPENDS= libX11.so:x11/libX11 \ + libXrandr.so:x11/libXrandr +XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT +XCB_LIB_DEPENDS= libX11-xcb.so:x11/libX11 \ + libxcb.so:x11/libxcb +WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT +WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland + +.include diff --git c/graphics/vulkan-loader/distinfo i/graphics/vulkan-loader/distinfo new file mode 100644 index 000000000000..3c169857e743 --- /dev/null +++ i/graphics/vulkan-loader/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1533664679 +SHA256 (KhronosGroup-Vulkan-Loader-sdk-1.1.82.0_GH0.tar.gz) = 86cd3e93d99cbfbb8550e7f2137cacfdaf9aa6611b814e054b2156b4b4775b0c +SIZE (KhronosGroup-Vulkan-Loader-sdk-1.1.82.0_GH0.tar.gz) = 1341774 diff --git c/graphics/vulkan-loader/files/patch-CMakeLists.txt i/graphics/vulkan-loader/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..e846fa157a4c --- /dev/null +++ i/graphics/vulkan-loader/files/patch-CMakeLists.txt @@ -0,0 +1,36 @@ +--- CMakeLists.txt.orig 2018-08-04 01:10:42.000000000 +0300 ++++ CMakeLists.txt 2018-08-07 21:00:06.045029000 +0300 +@@ -57,9 +57,9 @@ + # "Helper" targets that don't have interesting source code should set their FOLDER property to this + set(LOADER_HELPER_FOLDER "Helper Targets") + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++if(UNIX AND NOT APPLE) + set( +- FALLBACK_CONFIG_DIRS "/etc/xdg" ++ FALLBACK_CONFIG_DIRS "${CMAKE_INSTALL_PREFIX}/etc/xdg:/etc/xdg" + CACHE + STRING + "Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant." +@@ -72,7 +72,7 @@ + ) + endif() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++if(UNIX AND NOT APPLE) + include(FindPkgConfig) + option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON) + option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON) +@@ -81,10 +81,12 @@ + + if(BUILD_WSI_XCB_SUPPORT) + find_package(XCB REQUIRED) ++ include_directories(SYSTEM ${XCB_INCLUDE_DIR}) + endif() + + if(BUILD_WSI_XLIB_SUPPORT) + find_package(X11 REQUIRED) ++ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH}) + endif() + + if(BUILD_WSI_WAYLAND_SUPPORT) diff --git c/graphics/vulkan-loader/files/patch-loader_CMakeLists.txt i/graphics/vulkan-loader/files/patch-loader_CMakeLists.txt new file mode 100644 index 000000000000..e42a905af4e9 --- /dev/null +++ i/graphics/vulkan-loader/files/patch-loader_CMakeLists.txt @@ -0,0 +1,20 @@ +--- loader/CMakeLists.txt.orig 2018-08-04 01:10:42.000000000 +0300 ++++ loader/CMakeLists.txt 2018-08-07 21:01:27.748868000 +0300 +@@ -40,7 +40,7 @@ + endif() + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) +-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++elseif(UNIX AND NOT APPLE) + if(BUILD_WSI_XCB_SUPPORT) + add_definitions(-DVK_USE_PLATFORM_XCB_KHR) + endif() +@@ -223,7 +223,7 @@ + add_dependencies(vulkan generate_helper_files loader_gen_files loader_asm_gen_files) + target_compile_definitions(vulkan PUBLIC -DLOADER_DYNAMIC_LIB) + set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "${VulkanHeaders_VERSION_MAJOR}.${VulkanHeaders_VERSION_MINOR}.${VulkanHeaders_VERSION_PATCH}") +- target_link_libraries(vulkan -ldl -lpthread -lm) ++ target_link_libraries(vulkan ${CMAKE_DL_LIBS} -lpthread -lm) + + if(APPLE) + find_library(COREFOUNDATION_LIBRARY NAMES CoreFoundation) diff --git c/graphics/vulkan-loader/files/patch-loader_loader.c i/graphics/vulkan-loader/files/patch-loader_loader.c new file mode 100644 index 000000000000..f85ed0ec8e65 --- /dev/null +++ i/graphics/vulkan-loader/files/patch-loader_loader.c @@ -0,0 +1,20 @@ +--- loader/loader.c.orig 2018-08-04 01:10:42.000000000 +0300 ++++ loader/loader.c 2018-08-07 21:03:04.814975000 +0300 +@@ -215,7 +215,7 @@ + } + + // Environment variables +-#if defined(__linux__) || defined(__APPLE__) ++#if defined(__unix__) + + static inline char *loader_getenv(const char *name, const struct loader_instance *inst) { + // No allocation of memory necessary for Linux, but we should at least touch +@@ -225,7 +225,7 @@ + } + + static inline char *loader_secure_getenv(const char *name, const struct loader_instance *inst) { +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + // Apple does not appear to have a secure getenv implementation. + // The main difference between secure getenv and getenv is that secure getenv + // returns NULL if the process is being run with elevated privileges by a normal user. diff --git c/graphics/vulkan-loader/files/patch-loader_vk__loader__platform.h i/graphics/vulkan-loader/files/patch-loader_vk__loader__platform.h new file mode 100644 index 000000000000..850b93b83f78 --- /dev/null +++ i/graphics/vulkan-loader/files/patch-loader_vk__loader__platform.h @@ -0,0 +1,11 @@ +--- loader/vk_loader_platform.h.orig 2018-08-07 21:04:13.856591000 +0300 ++++ loader/vk_loader_platform.h 2018-08-07 21:04:14.881279000 +0300 +@@ -31,7 +31,7 @@ + #include "vulkan/vk_platform.h" + #include "vulkan/vk_sdk_platform.h" + +-#if defined(__linux__) || defined(__APPLE__) ++#if defined(__unix__) + /* Linux-specific common code: */ + + // Headers: diff --git c/graphics/vulkan-loader/pkg-descr i/graphics/vulkan-loader/pkg-descr new file mode 100644 index 000000000000..76c001ca27e3 --- /dev/null +++ i/graphics/vulkan-loader/pkg-descr @@ -0,0 +1,6 @@ +Vulkan is a low-level cross-platform 3D graphics and compute API. + +This port provides the Khronos official ICD (Installable Client Driver) loader, +which is necessary for loading Vulkan drivers in a running application. + +WWW: https://github.com/KhronosGroup/Vulkan-Loader diff --git c/graphics/vulkan-loader/pkg-plist i/graphics/vulkan-loader/pkg-plist new file mode 100644 index 000000000000..d52e84595793 --- /dev/null +++ i/graphics/vulkan-loader/pkg-plist @@ -0,0 +1,4 @@ +lib/libvulkan.so +lib/libvulkan.so.1 +lib/libvulkan.so.1.1.82 +libdata/pkgconfig/vulkan.pc