pkgsrc/graphics/MesaLib/options.mk
tnn 57cd177d30 MesaLib: update to 21.3.7
Of particular note is this change in Mesa 21.2:
  "32-bit x86 builds now default disable x87 math and use sse2."
  This might need to be revisited in pkgsrc.

Bugfixes omitted from ChangeLog.

New features in Mesa 21.3:
  VK_EXT_color_write_enable on lavapipe
  GL_ARB_texture_filter_anisotropic in llvmpipe
  Anisotropic texture filtering in lavapipe
  VK_EXT_shader_atomic_float2 on Intel and RADV.
  VK_EXT_vertex_input_dynamic_state on RADV.
  VK_KHR_timeline_semaphore on lavapipe
  VK_EXT_external_memory_host on lavapipe
  GL_AMD_pinned_memory on llvmpipe
  GL 4.5 compatibility on llvmpipe
  VK_EXT_primitive_topology_list_restart on RADV and lavapipe.
  ES 3.2 on zink
  VK_KHR_depth_stencil_resolve on lavapipe
  VK_KHR_shader_integer_dot_product on RADV.
  OpenGL FP16 support on llvmpipe
  VK_KHR_shader_float16_int8 on lavapipe
  VK_KHR_shader_subgroup_extended_types on lavapipe
  VK_KHR_spirv_1_4 on lavapipe
  Experimental raytracing support on RADV
  VK_KHR_synchronization2 on Intel
  NGG shader based culling is now enabled by default on GFX10.3 on RADV.
  VK_KHR_maintenance4 on RADV
  VK_KHR_format_feature_flags2 on RADV.
  EGL_EXT_present_opaque on wayland

New features in Mesa 21.2:
  zink supports GL_ARB_texture_filter_minmax, GL_ARB_shader_clock
  VK_EXT_provoking_vertex on RADV.
  VK_EXT_extended_dynamic_state2 on RADV.
  VK_EXT_global_priority_query on RADV.
  VK_EXT_physical_device_drm on RADV.
  VK_KHR_shader_subgroup_uniform_control_flow on Intel and RADV.
  VK_EXT_color_write_enable on RADV.
  32-bit x86 builds now default disable x87 math and use sse2.
  GL ES 3.1 on GT21x hardware.
  VK_EXT_acquire_drm_display on RADV and ANV.
  VK_EXT_vertex_input_dynamic_state on lavapipe
  wideLines on lavapipe
  VK_EXT_line_rasterization on lavapipe
  VK_EXT_multi_draw on ANV, lavapipe, and RADV
  VK_KHR_separate_depth_stencil_layouts on lavapipe
  VK_EXT_separate_stencil_usage on lavapipe
  VK_EXT_extended_dynamic_state2 on lavapipe
  NGG shader based primitive culling is now supported by RADV.
  Panfrost supports OpenGL ES 3.1
  New Asahi driver for the Apple M1
  GL_ARB_sample_locations on zink
  GL_ARB_sparse_buffer on zink
  GL_ARB_shader_group_vote on zink
  DRM format modifiers on zink
  freedreno+turnip: Initial support for a6xx gen4 (a660, a635)

New features in Mesa 21.1:
  VK_KHR_workgroup_memory_explicit_layout on Intel, RADV
  DRM format modifiers for AMD.
  VK_KHR_zero_initialize_workgroup_memory on Intel, RADV
  Zink exposes GL 4.6 and ES 3.1
  GL_EXT_depth_bounds_test on softpipe, zink
  GL_EXT_texture_filter_minmax on nvc0 (gm200+)
  GL_ARB_texture_filter_minmax on nvc0 (gm200+)
  GL_ARB_post_depth_coverage on zink
  VK_KHR_copy_commands2 on lavapipe
  lavapipe exposes Vulkan 1.1
  VRS attachment on RADV

New features in Mesa 21.0:
  GL_EXT_demote_to_helper_invocation on radeonsi
  GL_NV_compute_shader_derivatives on radeonsi
  EGL_MESA_platform_xcb
  Removed GL_NV_point_sprite for classic swrast.
  driconf: remove glx_disable_oml_sync_control, glx_disable_sgi_video_sync, and glx_disable_ext_buffer_age
  Removed support for loading DRI drivers older than Mesa 8.0, including all DRI1 support
  Add support for VK_VALVE_mutable_descriptor_type on RADV
  Removed classic OSMesa in favor of the newly improved gallium OSMesa
  VK_KHR_fragment_shading_rate on RADV (RDNA2 only)
  Freedreno a6xx exposes GL 3.3
  Classic swrast dri driver removed in favor of gallium swrast (llvmpipe or softpipe)
  Panfrost g31/g52/g72 exposes ES 3.0
  Panfrost t760+ exposes GL 3.1 (including on Bifrost)
  Sparse memory support on RADV
  Rapid packed math (16bit-vectorization) on RADV


New features in Mesa 20.3:
  GL 4.5 on llvmpipe
  GL_INTEL_blackhole_render on radeonsi
  GL_NV_copy_depth_to_color for NIR
  GL_NV_half_float
  GL_NV_shader_atomic_int64 on radeonsi
  EGL_KHR_swap_buffers_with_damage on X11 (DRI3)
  VK_PRESENT_MODE_FIFO_RELAXED on X11
  GLX_EXT_swap_control for DRI2 and DRI3
  GLX_EXT_swap_control_tear for DRI3
  VK_KHR_copy_commands2 on RADV
  VK_KHR_shader_terminate_invocation on RADV
  NGG GS support in ACO
  VK_KHR_shader_terminate_invocation on ANV
  driconf: add glx_extension_override
  driconf: add indirect_gl_extension_override
  VK_AMD_mixed_attachment_samples on RADV (GFX6-GFX7).
  GL_MESA_pack_invert on r100 and vieux
  GL_ANGLE_pack_reverse_row_order
  VK_EXT_shader_image_atomic_int64 on RADV

New features in mesa 20.2:
  GL_ARB_compute_variable_group_size on Iris.
  GL_ARB_gpu_shader5 on llvmpipe
  GL_ARB_post_depth_coverage on llvmpipe
  GLES 3.2 on llvmpipe
  GL_EXT_shader_group_vote on GLES3.
  GL_EXT_texture_shadow_lod on llvmpipe
  VK_AMD_texture_gather_bias_lod on RADV.
  VK_AMD_gpu_shader_half_float on RADV/ACO.
  VK_AMD_gpu_shader_int16 on RADV/ACO.
  VK_EXT_extended_dynamic_state on ANV and RADV.
  VK_EXT_image_robustness on RADV.
  VK_EXT_private_data on ANV and RADV.
  VK_EXT_custom_border_color on ANV and RADV.
  VK_EXT_pipeline_creation_cache_control on ANV and RADV.
  VK_EXT_shader_demote_to_helper_invocation on RADV/LLVM.
  VK_EXT_subgroup_size_control on RADV/ACO.
  VK_GOOGLE_user_type on ANV and RADV.
  VK_KHR_shader_subgroup_extended_types on RADV/ACO.
  GL_ARB_gl_spirv on nvc0/nir.
  GL_ARB_spirv_extensions on nvc0/nir.
  RADV now uses ACO per default as backend
  RADV_DEBUG=llvm option to enable LLVM backend for RADV
  VK_EXT_image_robustness for ANV
  VK_EXT_shader_atomic_float on ANV
  VK_EXT_4444_formats on ANV and RADV.
  VK_KHR_memory_model on RADV.
  GL 4.5 on llvmpipe
  EGL_KHR_swap_buffers_with_damage on X11 (DRI3)

New features in mesa 20.1:
  GL_ARB_compute_variable_group_size on i965.
  GL_EXT_depth_bounds_test on Iris.
  GL_EXT_texture_shadow_lod on radeonsi, nvc0.
  GL_NV_alpha_to_coverage_dither_control on radeonsi
  GL_NV_copy_image on all gallium drivers.
  GL_NV_pixel_buffer_object on all gallium drivers, i915, i965, swrast.
  GL_NV_viewport_array2 on nvc0 (GM200+).
  GL_NV_viewport_swizzle on nvc0 (GM200+).
  VK_AMD_memory_overallocation_behavior on RADV.
  VK_KHR_shader_non_semantic_info on Intel, RADV.
  GL_EXT_draw_instanced on gles2
  VK_KHR_8bit_storage for ACO on GFX8+
  VK_KHR_16bit_storage for ACO on GFX8+ (storageInputOutput16 is still unsupported)
  shaderInt16 for ACO on GFX9+
  VK_KHR_shader_float16_int8 for ACO on GFX8+ (shaderFloat16 is still unsupported)
  VK_EXT_robustness2 on Intel, RADV.
  Add Rocket Lake (RKL) support on anvil and iris.
2022-03-13 15:50:05 +00:00

140 lines
3.4 KiB
Makefile

# $NetBSD: options.mk,v 1.83 2022/03/13 15:50:05 tnn Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.MesaLib
.include "features.mk"
PKG_SUPPORTED_OPTIONS+= elf-tls llvm vulkan x11
.if ${MESALIB_SUPPORTS_DRI} == "yes"
PKG_SUPPORTED_OPTIONS+= wayland
. include "../../devel/wayland/platform.mk"
. if ${PLATFORM_SUPPORTS_WAYLAND} == "yes"
PKG_SUGGESTED_OPTIONS+= wayland
. endif
.endif
PKG_SUGGESTED_OPTIONS+= x11
.include "../../mk/bsd.fast.prefs.mk"
# The LLVM option enables JIT accelerated software rendering and is also
# required to support the latest RADEON GPUs.
#
# Enable it by default on platforms where such GPUs might be encountered or
# LLVM-accelerated software rendering might be useful.
.if ${MESALIB_SUPPORTS_DRI} == "yes" && \
${OPSYS} != "SunOS" && \
(${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "x86_64" || \
${MACHINE_ARCH} == "aarch64")
PKG_SUGGESTED_OPTIONS+= llvm
.endif
# ELF TLS is broken in at least the following cases:
# - NetBSD with SDL2 without X11
# - FreeBSD - https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3559
# - Linux with musl libc
#
# https://gitlab.freedesktop.org/mesa/mesa/issues/966
.if ${OPSYS} == "Linux" && !empty(GLIBC_VERSION)
PKG_SUGGESTED_OPTIONS+= elf-tls
.endif
.include "../../mk/bsd.options.mk"
# Gallium drivers requiring LLVM
PLIST_VARS+= r600 radeonsi
# Windowing systems
PLIST_VARS+= glx
# Misc. features
PLIST_VARS+= vdpau
#
# ELF TLS support
#
.if empty(PKG_OPTIONS:Melf-tls)
BUILDLINK_TRANSFORM+= rm:-DUSE_ELF_TLS
.endif
#
# LLVM support
#
.if !empty(PKG_OPTIONS:Mllvm)
MESON_ARGS+= -Dllvm=enabled
. include "../../devel/libelf/buildlink3.mk"
. include "../../lang/libLLVM/buildlink3.mk"
. if ${OPSYS} != "Darwin" && ${OPSYS} != "Cygwin"
# This is the latest libdrm requirement for amdgpu.
BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.107
PLIST.r600= yes
GALLIUM_DRIVERS+= r600
PLIST.radeonsi= yes
GALLIUM_DRIVERS+= radeonsi
. endif
.else
MESON_ARGS+= -Dllvm=disabled
.endif
#
# Vulkan support - experimental
#
PLIST_VARS+= vulkan vulkan_intel
.if !empty(PKG_OPTIONS:Mvulkan)
VULKAN_DRIVERS+= amd
VULKAN_DRIVERS+= swrast
PLIST.vulkan= yes
. if ${MACHINE_ARCH} == "x86_64"
VULKAN_DRIVERS+= intel
PLIST.vulkan_intel= yes
. endif
. if ${MACHINE_ARCH} == "aarch64"
VULKAN_DRIVERS+= broadcom
VULKAN_DRIVERS+= freedreno
. endif
.endif
#
# X11 support
#
.if !empty(PKG_OPTIONS:Mx11)
MESA_PLATFORMS+= x11
PLIST.glx= yes
. if ${MESALIB_SUPPORTS_DRI} == "yes"
MESON_ARGS+= -Dglx=dri
. include "../../multimedia/libvdpau/available.mk"
. if ${VDPAU_AVAILABLE} == "yes"
MESON_ARGS+= -Dgallium-vdpau=true
PLIST.vdpau= yes
. include "../../multimedia/libvdpau/buildlink3.mk"
. else
MESON_ARGS+= -Dgallium-vdpau=false
. endif
. endif
. include "../../x11/libX11/buildlink3.mk"
. include "../../x11/libXdamage/buildlink3.mk"
. include "../../x11/libXext/buildlink3.mk"
. include "../../x11/libXfixes/buildlink3.mk"
. include "../../x11/libXrandr/buildlink3.mk"
. include "../../x11/libXxf86vm/buildlink3.mk"
. include "../../x11/libxcb/buildlink3.mk"
. include "../../x11/libxshmfence/buildlink3.mk"
. include "../../x11/xcb-proto/buildlink3.mk"
. include "../../x11/xorgproto/buildlink3.mk"
.else
MESON_ARGS+= -Dglx=disabled
MESON_ARGS+= -Dgallium-vdpau=false
.endif
#
# Wayland support
#
.if !empty(PKG_OPTIONS:Mwayland)
MESA_PLATFORMS+= wayland
. include "../../devel/wayland/buildlink3.mk"
. include "../../devel/wayland-protocols/buildlink3.mk"
.endif