diff --git c/devel/glslang/Makefile i/devel/glslang/Makefile new file mode 100644 index 000000000000..90473ac8ce1e --- /dev/null +++ i/devel/glslang/Makefile @@ -0,0 +1,24 @@ +# $FreeBSD$ + +PORTNAME= glslang +DISTVERSION= 3.0-1516 +DISTVERSIONSUFFIX= -gd5aedc19 +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..10224ad79ac4 --- /dev/null +++ i/devel/glslang/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1505748698 +SHA256 (KhronosGroup-glslang-3.0-1516-gd5aedc19_GH0.tar.gz) = e4ef7e75e3446d67636707d8963ebf6705afd5fa7f109f56f95b78c5b4dc3fdc +SIZE (KhronosGroup-glslang-3.0-1516-gd5aedc19_GH0.tar.gz) = 1858265 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..4a8998983108 --- /dev/null +++ i/devel/glslang/pkg-plist @@ -0,0 +1,52 @@ +bin/glslangValidator +bin/spirv-remap +include/SPIRV/GLSL.ext.AMD.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/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..6d39d26a9302 --- /dev/null +++ i/devel/spirv-tools/Makefile @@ -0,0 +1,25 @@ +# $FreeBSD$ + +PORTNAME= spirv-tools +DISTVERSIONPREFIX= v +DISTVERSION= 2016.6-155 +DISTVERSIONSUFFIX= -gf0fe601 +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:2bb92e6f: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..53818bd69bb8 --- /dev/null +++ i/devel/spirv-tools/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1505748790 +SHA256 (KhronosGroup-SPIRV-Tools-v2016.6-155-gf0fe601_GH0.tar.gz) = b3348b3e6aa7ec3ffd82ed01d295a91ab3e6e800f10b8303ef722f103f6b35e0 +SIZE (KhronosGroup-SPIRV-Tools-v2016.6-155-gf0fe601_GH0.tar.gz) = 538566 +SHA256 (KhronosGroup-SPIRV-Headers-2bb92e6f_GH0.tar.gz) = 08dd4f8b4adbda3c863579dcec29c0eeccc30ed7eb05dc931152df60f7d0861c +SIZE (KhronosGroup-SPIRV-Headers-2bb92e6f_GH0.tar.gz) = 154892 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..cd9c85ce3aa8 --- /dev/null +++ i/devel/spirv-tools/pkg-plist @@ -0,0 +1,14 @@ +bin/spirv-as +bin/spirv-cfg +bin/spirv-dis +bin/spirv-lesspipe.sh +bin/spirv-markv +bin/spirv-opt +bin/spirv-stats +bin/spirv-val +include/spirv-tools/libspirv.h +include/spirv-tools/libspirv.hpp +include/spirv-tools/optimizer.hpp +lib/libSPIRV-Tools-comp.a +lib/libSPIRV-Tools-opt.a +lib/libSPIRV-Tools.a diff --git c/graphics/vulkan-sdk/Makefile i/graphics/vulkan-sdk/Makefile new file mode 100644 index 000000000000..1e8919045c5a --- /dev/null +++ i/graphics/vulkan-sdk/Makefile @@ -0,0 +1,51 @@ +# $FreeBSD$ + +PORTNAME= vulkan-sdk +DISTVERSIONPREFIX= sdk- +DISTVERSION= 1.0.57.0 +CATEGORIES= graphics devel + +MAINTAINER= greg@unrelenting.technology +COMMENT= Vulkan SDK (Headers, ICD Loader, Validation Layers) + +LICENSE= APACHE20 + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml \ + ${LOCALBASE}/include/spirv-tools/libspirv.h:devel/spirv-tools \ + glslangValidator:devel/glslang + +USES= cmake:outsource compiler:c++11-lib python:build pkgconfig + +USE_LDCONFIG= yes + +USE_GITHUB= yes +GH_ACCOUNT= KhronosGroup +GH_PROJECT= Vulkan-LoaderAndValidationLayers + +CMAKE_ARGS+= -DBUILD_TESTS:BOOL=OFF \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DBUILD_WSI_MIR_SUPPORT:BOOL=OFF + +OPTIONS_DEFINE= XLIB XCB WAYLAND DEMOS +OPTIONS_DEFAULT= XLIB XCB DEMOS +OPTIONS_SUB= yes + +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 +DEMOS_DESC= Build demos (including vulkaninfo) + +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-client.so:graphics/wayland \ + libwayland-server.so:graphics/wayland \ + libwayland-cursor.so:graphics/wayland \ + libwayland-egl.so:graphics/mesa-libs +DEMOS_CMAKE_BOOL= BUILD_DEMOS + +.include diff --git c/graphics/vulkan-sdk/files/patch-CMakeLists.txt i/graphics/vulkan-sdk/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..b89384c1c613 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-CMakeLists.txt @@ -0,0 +1,26 @@ +--- CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ CMakeLists.txt +@@ -15,8 +15,8 @@ string(TOLOWER ${API_NAME} API_LOWERCASE) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + find_package(PythonInterp 3 REQUIRED) + +-if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- set(FALLBACK_CONFIG_DIRS "/etc/xdg" CACHE STRING ++if(UNIX AND NOT APPLE) ++ set(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.") + set(FALLBACK_DATA_DIRS "/usr/local/share:/usr/share" CACHE STRING + "Search path to use when XDG_DATA_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant.") +@@ -30,10 +30,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) diff --git c/graphics/vulkan-sdk/files/patch-demos_CMakeLists.txt i/graphics/vulkan-sdk/files/patch-demos_CMakeLists.txt new file mode 100644 index 000000000000..f3e7388f1134 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-demos_CMakeLists.txt @@ -0,0 +1,11 @@ +--- demos/CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ demos/CMakeLists.txt +@@ -3,7 +3,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(DisplayServer Win32) + 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 DEMOS_WSI_SELECTION) + set(DEMOS_WSI_SELECTION "XCB") + endif() diff --git c/graphics/vulkan-sdk/files/patch-demos_cube.cpp i/graphics/vulkan-sdk/files/patch-demos_cube.cpp new file mode 100644 index 000000000000..c38944cbaa21 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-demos_cube.cpp @@ -0,0 +1,11 @@ +--- demos/cube.cpp.orig 2017-08-10 15:50:41 UTC ++++ demos/cube.cpp +@@ -2948,7 +2948,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPre + return (int)msg.wParam; + } + +-#elif __linux__ ++#elif defined(__unix__) + + int main(int argc, char **argv) { + Demo demo; diff --git c/graphics/vulkan-sdk/files/patch-demos_smoke_CMakeLists.txt i/graphics/vulkan-sdk/files/patch-demos_smoke_CMakeLists.txt new file mode 100644 index 000000000000..94ec46319487 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-demos_smoke_CMakeLists.txt @@ -0,0 +1,14 @@ +--- demos/smoke/CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ demos/smoke/CMakeLists.txt +@@ -61,7 +61,10 @@ if(WIN32) + + list(APPEND sources ShellWin32.cpp ShellWin32.h) + else() +- list(APPEND libraries PRIVATE -ldl -lrt) ++ if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") ++ list(APPEND libraries PRIVATE -lrt) ++ endif() ++ list(APPEND libraries PRIVATE ${CMAKE_DL_LIBS}) + + if(BUILD_WSI_XCB_SUPPORT AND DEMOS_WSI_SELECTION STREQUAL "XCB") + find_package(XCB REQUIRED) diff --git c/graphics/vulkan-sdk/files/patch-layers_CMakeLists.txt i/graphics/vulkan-sdk/files/patch-layers_CMakeLists.txt new file mode 100644 index 000000000000..31ec22ccaee3 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-layers_CMakeLists.txt @@ -0,0 +1,11 @@ +--- layers/CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ layers/CMakeLists.txt +@@ -4,7 +4,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() diff --git c/graphics/vulkan-sdk/files/patch-loader_CMakeLists.txt i/graphics/vulkan-sdk/files/patch-loader_CMakeLists.txt new file mode 100644 index 000000000000..dd5028165226 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-loader_CMakeLists.txt @@ -0,0 +1,20 @@ +--- loader/CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ loader/CMakeLists.txt +@@ -25,7 +25,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(DisplayServer Win32) + 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() +@@ -186,7 +186,7 @@ else() + add_library(${API_LOWERCASE} SHARED ${NORMAL_LOADER_SRCS} ${OPT_LOADER_SRCS}) + add_dependencies(${API_LOWERCASE} generate_helper_files loader_gen_files loader_asm_gen_files) + set_target_properties(${API_LOWERCASE} PROPERTIES SOVERSION "1" VERSION "1.0.${vk_header_version}") +- target_link_libraries(${API_LOWERCASE} -ldl -lpthread -lm) ++ target_link_libraries(${API_LOWERCASE} -lpthread -lm ${CMAKE_DL_LIBS}) + + if(INSTALL_LVL_FILES) + install(TARGETS ${API_LOWERCASE} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git c/graphics/vulkan-sdk/files/patch-loader_loader.c i/graphics/vulkan-sdk/files/patch-loader_loader.c new file mode 100644 index 000000000000..1926351d75cb --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-loader_loader.c @@ -0,0 +1,11 @@ +--- loader/loader.c.orig 2017-08-10 15:50:41 UTC ++++ loader/loader.c +@@ -204,7 +204,7 @@ void *loader_device_heap_realloc(const struct loader_d + } + + // Environment variables +-#if defined(__linux__) ++#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 diff --git c/graphics/vulkan-sdk/files/patch-loader_vk__loader__platform.h i/graphics/vulkan-sdk/files/patch-loader_vk__loader__platform.h new file mode 100644 index 000000000000..0162b675b98c --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-loader_vk__loader__platform.h @@ -0,0 +1,11 @@ +--- loader/vk_loader_platform.h.orig 2017-08-10 15:50:41 UTC ++++ loader/vk_loader_platform.h +@@ -30,7 +30,7 @@ + #include "vulkan/vk_platform.h" + #include "vulkan/vk_sdk_platform.h" + +-#if defined(__linux__) ++#if defined(__unix__) + /* Linux-specific common code: */ + + // Headers: diff --git c/graphics/vulkan-sdk/files/patch-tests_CMakeLists.txt i/graphics/vulkan-sdk/files/patch-tests_CMakeLists.txt new file mode 100644 index 000000000000..683e3dfbd491 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-tests_CMakeLists.txt @@ -0,0 +1,11 @@ +--- tests/CMakeLists.txt.orig 2017-08-10 15:50:41 UTC ++++ tests/CMakeLists.txt +@@ -5,7 +5,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(DisplayServer Win32) + 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()