--- /dev/null +++ i/devel/glslang/Makefile @@ -0,0 +1,24 @@ +# $FreeBSD$ + +PORTNAME= glslang +DISTVERSION= 2.3-1838 +DISTVERSIONSUFFIX= -g2651ccaec8 +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 --- /dev/null +++ i/devel/glslang/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1519685681 +SHA256 (KhronosGroup-glslang-2.3-1838-g2651ccaec8_GH0.tar.gz) = 343e5541a716074e57b9264362c53077d12b3eca78ecadac3315522b57e6f2bd +SIZE (KhronosGroup-glslang-2.3-1838-g2651ccaec8_GH0.tar.gz) = 1986074 --- /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/ --- /dev/null +++ i/devel/glslang/pkg-plist @@ -0,0 +1,53 @@ +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/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 --- /dev/null +++ i/devel/spirv-tools/Makefile @@ -0,0 +1,25 @@ +# $FreeBSD$ + +PORTNAME= spirv-tools +DISTVERSIONPREFIX= v +DISTVERSION= 2018.0-6 +DISTVERSIONSUFFIX= -g9e19fc0 +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:ce309203d:headers/external/spirv-headers + +CMAKE_ARGS+= -DSPIRV_SKIP_TESTS:BOOL=ON \ + -DSPIRV_WERROR:BOOL=OFF + +.include --- /dev/null +++ i/devel/spirv-tools/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1519686387 +SHA256 (KhronosGroup-SPIRV-Tools-v2018.0-6-g9e19fc0_GH0.tar.gz) = 54892d2a47a68179a9e51f9d648302db6ef77e11bc909acef37097d7823d6827 +SIZE (KhronosGroup-SPIRV-Tools-v2018.0-6-g9e19fc0_GH0.tar.gz) = 955907 +SHA256 (KhronosGroup-SPIRV-Headers-ce309203d_GH0.tar.gz) = f07b35c2e63dd0c8bcbb7fb50185e79a2a067ac1878dc49353196a688b025583 +SIZE (KhronosGroup-SPIRV-Headers-ce309203d_GH0.tar.gz) = 269780 --- /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 --- /dev/null +++ i/devel/spirv-tools/pkg-plist @@ -0,0 +1,16 @@ +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.a +libdata/pkgconfig/SPIRV-Tools.pc --- /dev/null +++ i/graphics/vulkan-sdk/Makefile @@ -0,0 +1,52 @@ +# $FreeBSD$ + +PORTNAME= vulkan-sdk +DISTVERSIONPREFIX= sdk- +DISTVERSION= 1.0.68.0 +CATEGORIES= graphics devel + +MAINTAINER= greg@unrelenting.technology +COMMENT= Vulkan SDK (headers, driver loader, validation layers) + +LICENSE= APACHE20 + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ + ${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 \ + -DBUILD_ICD:BOOL=OFF \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DBUILD_WSI_MIR_SUPPORT:BOOL=OFF + +OPTIONS_DEFINE= XLIB XCB WAYLAND DEMOS +OPTIONS_DEFAULT= XLIB XCB WAYLAND 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 --- /dev/null +++ i/graphics/vulkan-sdk/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1519684412 +SHA256 (KhronosGroup-Vulkan-LoaderAndValidationLayers-sdk-1.0.68.0_GH0.tar.gz) = d046cf7c69338c7217b70f19bed6844865aaac36205607c63891dffe8bcfafd8 +SIZE (KhronosGroup-Vulkan-LoaderAndValidationLayers-sdk-1.0.68.0_GH0.tar.gz) = 4029972 --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-CMakeLists.txt @@ -0,0 +1,42 @@ +--- CMakeLists.txt.orig 2018-02-08 21:01:02.000000000 +0300 ++++ CMakeLists.txt 2018-02-27 02:24:21.988361000 +0300 +@@ -28,8 +28,8 @@ + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + set(LVL_TARGET_FOLDER lvl_cmake_targets) + +-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.") +@@ -43,10 +43,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) +@@ -357,7 +359,14 @@ + run_vk_xml_generate(helper_file_generator.py vk_object_types.h) + run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h) +-run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h) ++file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/spirv_tools_commit_id.h " ++#pragma once ++#define SPIRV_TOOLS_COMMIT_ID \"9e19fc0f31ceaf1f6bc907dbf17dcfded85f2ce8\" ++") ++file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/spirv_tools_commit_id.h " ++#pragma once ++#define SPIRV_TOOLS_COMMIT_ID \"9e19fc0f31ceaf1f6bc907dbf17dcfded85f2ce8\" ++") + + + --- /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() --- /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; --- /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) --- /dev/null +++ i/graphics/vulkan-sdk/files/patch-icd_CMakeLists.txt @@ -0,0 +1,11 @@ +--- icd/CMakeLists.txt.orig 2017-12-26 00:43:06.217312000 +0300 ++++ icd/CMakeLists.txt 2017-12-26 00:43:14.226028000 +0300 +@@ -4,7 +4,7 @@ + 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() --- /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() --- /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}) --- /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 --- /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: --- /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() --- /dev/null +++ i/graphics/vulkan-sdk/pkg-descr @@ -0,0 +1,7 @@ +Vulkan is a low-level cross-platform 3D graphics and compute API. + +This port provides the Khronos official ICD loader and validation layers for +Vulkan applications. The ICD (Installable Client Driver) loader is necessary +for loading Vulkan drivers. + +WWW: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers --- /dev/null +++ i/graphics/vulkan-sdk/pkg-plist @@ -0,0 +1,25 @@ +%%DEMOS%%bin/smoketest +%%DEMOS%%bin/vulkaninfo +etc/vulkan/explicit_layer.d/VkLayer_core_validation.json +etc/vulkan/explicit_layer.d/VkLayer_object_tracker.json +etc/vulkan/explicit_layer.d/VkLayer_parameter_validation.json +etc/vulkan/explicit_layer.d/VkLayer_standard_validation.json +etc/vulkan/explicit_layer.d/VkLayer_threading.json +etc/vulkan/explicit_layer.d/VkLayer_unique_objects.json +include/vulkan/vk_icd.h +include/vulkan/vk_layer.h +include/vulkan/vk_layer_dispatch_table.h +include/vulkan/vk_platform.h +include/vulkan/vk_sdk_platform.h +include/vulkan/vulkan.h +include/vulkan/vulkan.hpp +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.so +lib/libvulkan.so +lib/libvulkan.so.1 +lib/libvulkan.so.1.0.68 +libdata/pkgconfig/vulkan.pc