Print this page
rev 54883 : JDK-8220154 Improve java2d rendering performance on macOS by using Metal framework

Split Close
Expand all
Collapse all
          --- old/make/lib/Awt2dLibraries.gmk
          +++ new/make/lib/Awt2dLibraries.gmk
↓ open down ↓ 238 lines elided ↑ open up ↑
 239  239          -delayload:winspool.drv -delayload:imm32.dll \
 240  240          -delayload:ole32.dll -delayload:comdlg32.dll \
 241  241          -delayload:comctl32.dll -delayload:shlwapi.dll, \
 242  242      LIBS_unix := -ljvm -ljava $(LIBM), \
 243  243      LIBS_linux :=  $(LIBDL), \
 244  244      LIBS_solaris := $(LIBDL), \
 245  245      LIBS_aix := $(LIBDL),\
 246  246      LIBS_macosx := -lmlib_image \
 247  247          -framework Cocoa \
 248  248          -framework OpenGL \
      249 +        -framework Metal \
      250 +        -framework MetalKit \
 249  251          -framework JavaNativeFoundation \
 250  252          -framework JavaRuntimeSupport \
 251  253          -framework ApplicationServices \
 252  254          -framework AudioToolbox, \
 253  255      LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
 254  256          imm32.lib ole32.lib uuid.lib shell32.lib \
 255  257          comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
 256  258          delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
 257  259      VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
 258  260      RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \
↓ open down ↓ 559 lines elided ↑ open up ↑
 818  820    endif
 819  821  
 820  822    LIBSPLASHSCREEN_LIBS :=
 821  823  
 822  824    ifeq ($(call isTargetOs, macosx), true)
 823  825      LIBSPLASHSCREEN_LIBS += \
 824  826          $(LIBM) -lpthread -liconv -losxapp \
 825  827          -framework ApplicationServices \
 826  828          -framework Foundation \
 827  829          -framework Cocoa \
      830 +        -framework Metal \
      831 +        -framework MetalKit \
 828  832          -framework JavaNativeFoundation
 829  833    else ifeq ($(call isTargetOs, windows), true)
 830  834      LIBSPLASHSCREEN_LIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib $(WIN_JAVA_LIB) jvm.lib
 831  835    else
 832  836      LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread -ldl
 833  837    endif
 834  838  
 835  839    LIBSPLASHSCREEN_HEADER_DIRS += \
 836  840        libosxapp \
 837  841        java.base:include \
↓ open down ↓ 42 lines elided ↑ open up ↑
 880  884        $(TOPDIR)/src/$(MODULE)/unix/native/common/awt \
 881  885        $(TOPDIR)/src/$(MODULE)/share/native/common/font \
 882  886        $(TOPDIR)/src/$(MODULE)/share/native/common/java2d \
 883  887        #
 884  888  
 885  889    LIBAWT_LWAWT_EXTRA_HEADER_DIRS := \
 886  890        $(LIBAWT_DEFAULT_HEADER_DIRS) \
 887  891        libawt_lwawt/awt \
 888  892        libawt_lwawt/font \
 889  893        libawt_lwawt/java2d/opengl \
      894 +      libawt_lwawt/java2d/metal \
 890  895        include \
 891  896        common/awt/debug \
 892  897        common/java2d/opengl \
 893  898        libosxapp \
 894  899        #
 895  900  
 896  901    LIBAWT_LWAWT_CFLAGS := $(X_CFLAGS) $(X_LIBS)
 897  902  
 898  903    LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
 899  904    LIBAWT_LWAWT_EXCLUDES := $(TOPDIR)/src/$(MODULE)/unix/native/common/awt/medialib
↓ open down ↓ 15 lines elided ↑ open up ↑
 915  920            pointer-arith, \
 916  921        LDFLAGS := $(LDFLAGS_JDKLIB) \
 917  922            $(call SET_SHARED_LIBRARY_ORIGIN) \
 918  923            -L$(INSTALL_LIBRARIES_HERE), \
 919  924        LIBS := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \
 920  925            -framework Accelerate \
 921  926            -framework ApplicationServices \
 922  927            -framework AudioToolbox \
 923  928            -framework Carbon \
 924  929            -framework Cocoa \
      930 +          -framework Metal \
      931 +          -framework MetalKit \
 925  932            -framework Security \
 926  933            -framework ExceptionHandling \
 927  934            -framework JavaNativeFoundation \
 928  935            -framework JavaRuntimeSupport \
 929  936            -framework OpenGL \
 930  937            -framework QuartzCore -ljava, \
 931  938    ))
 932  939  
 933  940    TARGETS += $(BUILD_LIBAWT_LWAWT)
 934  941  
↓ open down ↓ 3 lines elided ↑ open up ↑
 938  945  
 939  946    $(BUILD_LIBAWT_LWAWT): $(call FindLib, $(MODULE), osxapp)
 940  947  
 941  948    $(BUILD_LIBAWT_LWAWT): $(call FindLib, java.base, java)
 942  949  
 943  950  endif
 944  951  
 945  952  ################################################################################
 946  953  
 947  954  ifeq ($(call isTargetOs, macosx), true)
      955 +  XCODE_PATH := $(shell /usr/bin/xcode-select -p)
      956 +  CompileMetalShaders :
      957 +        $(XCODE_PATH)/Platforms/MacOSX.platform/usr/bin/metal -O2 -std=osx-metal1.1 -o $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxui/shaders.air $(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt/shaders.metal
      958 +        $(XCODE_PATH)/Platforms/MacOSX.platform/usr/bin/metal-ar r $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxui/shaders.metal-ar $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxui/shaders.air
      959 +        $(XCODE_PATH)/Platforms/MacOSX.platform/usr/bin/metallib -o $(INSTALL_LIBRARIES_HERE)/shaders.metallib $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxui/shaders.metal-ar
 948  960  
 949  961    $(eval $(call SetupJdkLibrary, BUILD_LIBOSXUI, \
 950  962        NAME := osxui, \
 951  963        OPTIMIZATION := LOW, \
 952  964        CFLAGS := $(CFLAGS_JDKLIB), \
 953  965        EXTRA_HEADER_DIRS := \
 954  966            libawt_lwawt/awt \
 955  967            libosxapp, \
 956  968        DISABLED_WARNINGS_clang := deprecated-declarations sign-compare, \
 957  969        LDFLAGS := $(LDFLAGS_JDKLIB) \
 958  970            $(call SET_SHARED_LIBRARY_ORIGIN) \
 959  971            -Wl$(COMMA)-rpath$(COMMA)@loader_path \
 960  972            -L$(INSTALL_LIBRARIES_HERE), \
 961  973        LIBS := -lawt -losxapp -lawt_lwawt \
 962  974            -framework Cocoa \
      975 +          -framework Metal \
      976 +          -framework MetalKit \
      977 +          -framework OpenGL \
 963  978            -framework Carbon \
 964  979            -framework ApplicationServices \
 965  980            -framework JavaNativeFoundation \
 966  981            -framework JavaRuntimeSupport \
 967  982            -ljava -ljvm, \
 968  983    ))
 969  984  
 970  985    TARGETS += $(BUILD_LIBOSXUI)
      986 +  $(BUILD_LIBOSXUI): CompileMetalShaders
 971  987  
 972  988    $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
 973  989  
 974  990    $(BUILD_LIBOSXUI): $(call FindLib, $(MODULE), osxapp)
 975  991  
 976  992    $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
 977  993  
 978  994  endif
 979  995  
 980  996  ################################################################################
 981  997  
 982  998  # Hook to include the corresponding custom file, if present.
 983  999  $(eval $(call IncludeCustomExtension, lib/Awt2dLibraries.gmk))
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX