summaryrefslogtreecommitdiffstats
path: root/src/libs/dxvk-native-1.9.2a/Makefile.kmk
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/Makefile.kmk')
-rw-r--r--src/libs/dxvk-native-1.9.2a/Makefile.kmk388
1 files changed, 388 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/Makefile.kmk b/src/libs/dxvk-native-1.9.2a/Makefile.kmk
new file mode 100644
index 00000000..57884173
--- /dev/null
+++ b/src/libs/dxvk-native-1.9.2a/Makefile.kmk
@@ -0,0 +1,388 @@
+# $Id: Makefile.kmk $
+## @file
+# Sub-Makefile for the dxvk-native library.
+#
+
+#
+# Copyright (C) 2022-2023 Oracle and/or its affiliates.
+#
+# This file is part of VirtualBox base platform packages, as
+# available from https://www.virtualbox.org.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, in version 3 of the
+# License.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses>.
+#
+# SPDX-License-Identifier: GPL-3.0-only
+#
+
+SUB_DEPTH = ../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+#
+# Targets.
+#
+LIBRARIES += VBox-DxVkNativeUtil VBox-DxVkNativeDxVk VBox-DxVkNativeD3D11
+DLLS += VBoxDxVk
+
+#
+# Globals.
+#
+VBOX_PATH_DXVK := $(PATH_SUB_CURRENT)
+
+# The HLSL to Spir-V shader compiler
+VBOX_GLSLANGVALIDATOR_PATH ?= $(lastword $(sort $(wildcard $(KBUILD_DEVTOOLS_TRG)/glslang/v11*)))
+ifeq ($(VBOX_GLSLANGVALIDATOR_PATH),)
+ VBOX_GLSLANGVALIDATOR ?= glslangValidator$(HOSTSUFF_EXE)
+else
+ VBOX_GLSLANGVALIDATOR ?= $(VBOX_GLSLANGVALIDATOR_PATH)/glslangValidator$(HOSTSUFF_EXE)
+endif
+
+#
+# Some stuff for compiling shares into header files and making the target depend on these.
+#
+
+## Internal.
+## @param 1 full path to shader source.
+define def_VBoxDxVkCompileShader
+ $(1)/shaders/$(basename $(notdir $(2))).h: $(2) | $$$$(dir $$$$@)
+ $(VBOX_GLSLANGVALIDATOR) -V --vn "$(basename $(notdir $(2)))" "$$<" -o "$$@"
+endef
+
+## Process the VBOX_SHADERS for a target.
+## @param 1 target name
+define def_VBoxDxVkCompilerShaders
+ $$(call KB_FN_DO_PASS0_ON_TARGET,$(1))
+ $(1)_INCS += $$($(1)_0_OUTDIR)/shaders
+ $(1)_BLDDIRS += $$($(1)_0_OUTDIR)/shaders
+ $(1)_INTERMEDIATES := $$(foreach shader,$$($(1)_VBOX_SHADERS) \
+ ,$$($(1)_0_OUTDIR)/shaders/$$(basename $$(notdir $$(shader))).h)
+ $$(foreach shader,$$($(1)_VBOX_SHADERS),$$(evalcall2 def_VBoxDxVkCompileShader,$$($(1)_0_OUTDIR),$$(shader)))
+endef
+
+
+#
+# DXK utilities static library
+#
+VBox-DxVkNativeUtil_TEMPLATE = VBoxR3DllNonPedantic
+VBox-DxVkNativeUtil_DEFS = \
+ DXVK_NATIVE \
+ NOMINMAX \
+ _WIN32_WINNT=0xa00
+VBox-DxVkNativeUtil_DEFS += \
+ DXVK_PLATFORM_LINUX \
+ DXVK_WSI_HEADLESS
+VBox-DxVkNativeUtil_CXXFLAGS.linux += \
+ -std=c++17
+VBox-DxVkNativeUtil_CXXFLAGS.darwin += \
+ -std=c++17
+VBox-DxVkNativeUtil_INCS = \
+ $(VBOX_PATH_DXVK) \
+ $(VBOX_PATH_DXVK)/include/ \
+ $(VBOX_PATH_DXVK)/src/util/ \
+ $(VBOX_PATH_DXVK)/include/native/ \
+ $(VBOX_PATH_DXVK)/include/native/windows \
+ $(VBOX_PATH_DXVK)/include/native/directx
+VBox-DxVkNativeUtil_SOURCES = \
+ src/util/util_env.cpp \
+ src/util/util_fps_limiter.cpp \
+ src/util/util_matrix.cpp \
+ src/util/util_monitor.cpp \
+ src/util/com/com_guid.cpp \
+ src/util/com/com_private_data.cpp \
+ src/util/config/config.cpp \
+ src/util/log/log.cpp \
+ src/util/log/log_debug.cpp \
+ src/util/sha1/sha1.c \
+ src/util/sha1/sha1_util.cpp \
+ src/util/sync/sync_recursive.cpp \
+ src/util/platform/util_luid_linux.cpp \
+ src/util/platform/util_env_linux.cpp \
+ src/util/platform/util_string_linux.cpp \
+ src/util/platform/thread_native.cpp \
+ src/spirv/spirv_code_buffer.cpp \
+ src/spirv/spirv_compression.cpp \
+ src/spirv/spirv_module.cpp \
+ src/vulkan/vulkan_loader.cpp \
+ src/vulkan/vulkan_names.cpp \
+ src/vulkan/vulkan_presenter_headless.cpp \
+ src/dxgi/dxgi_adapter.cpp \
+ src/dxgi/dxgi_enums.cpp \
+ src/dxgi/dxgi_factory.cpp \
+ src/dxgi/dxgi_format.cpp \
+ src/dxgi/dxgi_main.cpp \
+ src/dxgi/dxgi_monitor.cpp \
+ src/dxgi/dxgi_options.cpp \
+ src/dxgi/dxgi_output.cpp \
+ src/dxgi/dxgi_swapchain.cpp \
+ src/dxbc/dxbc_analysis.cpp \
+ src/dxbc/dxbc_chunk_isgn.cpp \
+ src/dxbc/dxbc_chunk_shex.cpp \
+ src/dxbc/dxbc_common.cpp \
+ src/dxbc/dxbc_compiler.cpp \
+ src/dxbc/dxbc_defs.cpp \
+ src/dxbc/dxbc_decoder.cpp \
+ src/dxbc/dxbc_header.cpp \
+ src/dxbc/dxbc_module.cpp \
+ src/dxbc/dxbc_names.cpp \
+ src/dxbc/dxbc_options.cpp \
+ src/dxbc/dxbc_reader.cpp \
+ src/dxbc/dxbc_util.cpp \
+ src/dxso/dxso_common.cpp \
+ src/dxso/dxso_options.cpp \
+ src/dxso/dxso_module.cpp \
+ src/dxso/dxso_reader.cpp \
+ src/dxso/dxso_header.cpp \
+ src/dxso/dxso_ctab.cpp \
+ src/dxso/dxso_util.cpp \
+ src/dxso/dxso_code.cpp \
+ src/dxso/dxso_tables.cpp \
+ src/dxso/dxso_decoder.cpp \
+ src/dxso/dxso_analysis.cpp \
+ src/dxso/dxso_compiler.cpp \
+ src/dxso/dxso_enums.cpp \
+ src/wsi/headless/wsi_mode_headless.cpp \
+ src/wsi/headless/wsi_monitor_headless.cpp \
+ src/wsi/headless/wsi_presenter_headless.cpp \
+ src/wsi/headless/wsi_window_headless.cpp
+
+#
+# Core DXVK library.
+#
+VBox-DxVkNativeDxVk_TEMPLATE = VBoxR3DllNonPedantic
+VBox-DxVkNativeDxVk_DEFS = \
+ DXVK_NATIVE \
+ NOMINMAX \
+ _WIN32_WINNT=0xa00
+VBox-DxVkNativeDxVk_DEFS += \
+ DXVK_PLATFORM_LINUX \
+ DXVK_WSI_HEADLESS
+VBox-DxVkNativeDxVk_CXXFLAGS.linux += \
+ -std=c++17
+VBox-DxVkNativeDxVk_CXXFLAGS.darwin += \
+ -std=c++17
+VBox-DxVkNativeDxVk_INCS = \
+ $(VBOX_PATH_DXVK) \
+ $(VBOX_PATH_DXVK)/include/ \
+ $(VBOX_PATH_DXVK)/src/util/ \
+ $(VBOX_PATH_DXVK)/include/native/ \
+ $(VBOX_PATH_DXVK)/include/native/windows \
+ $(VBOX_PATH_DXVK)/include/native/directx
+VBox-DxVkNativeDxVk_SOURCES = \
+ src/dxvk/dxvk_adapter.cpp \
+ src/dxvk/dxvk_barrier.cpp \
+ src/dxvk/dxvk_buffer.cpp \
+ src/dxvk/dxvk_cmdlist.cpp \
+ src/dxvk/dxvk_compute.cpp \
+ src/dxvk/dxvk_context.cpp \
+ src/dxvk/dxvk_cs.cpp \
+ src/dxvk/dxvk_data.cpp \
+ src/dxvk/dxvk_descriptor.cpp \
+ src/dxvk/dxvk_device.cpp \
+ src/dxvk/dxvk_device_filter.cpp \
+ src/dxvk/dxvk_extensions.cpp \
+ src/dxvk/dxvk_format.cpp \
+ src/dxvk/dxvk_framebuffer.cpp \
+ src/dxvk/dxvk_gpu_event.cpp \
+ src/dxvk/dxvk_gpu_query.cpp \
+ src/dxvk/dxvk_graphics.cpp \
+ src/dxvk/dxvk_image.cpp \
+ src/dxvk/dxvk_instance.cpp \
+ src/dxvk/dxvk_lifetime.cpp \
+ src/dxvk/dxvk_main.cpp \
+ src/dxvk/dxvk_memory.cpp \
+ src/dxvk/dxvk_meta_blit.cpp \
+ src/dxvk/dxvk_meta_clear.cpp \
+ src/dxvk/dxvk_meta_copy.cpp \
+ src/dxvk/dxvk_meta_mipgen.cpp \
+ src/dxvk/dxvk_meta_pack.cpp \
+ src/dxvk/dxvk_meta_resolve.cpp \
+ src/dxvk/dxvk_options.cpp \
+ src/dxvk/dxvk_pipecache.cpp \
+ src/dxvk/dxvk_pipelayout.cpp \
+ src/dxvk/dxvk_pipemanager.cpp \
+ src/dxvk/dxvk_queue.cpp \
+ src/dxvk/dxvk_renderpass.cpp \
+ src/dxvk/dxvk_resource.cpp \
+ src/dxvk/dxvk_sampler.cpp \
+ src/dxvk/dxvk_shader.cpp \
+ src/dxvk/dxvk_shader_key.cpp \
+ src/dxvk/dxvk_signal.cpp \
+ src/dxvk/dxvk_spec_const.cpp \
+ src/dxvk/dxvk_staging.cpp \
+ src/dxvk/dxvk_state_cache.cpp \
+ src/dxvk/dxvk_stats.cpp \
+ src/dxvk/dxvk_swapchain_blitter.cpp \
+ src/dxvk/dxvk_unbound.cpp \
+ src/dxvk/dxvk_util.cpp \
+ src/dxvk/hud/dxvk_hud.cpp \
+ src/dxvk/hud/dxvk_hud_font.cpp \
+ src/dxvk/hud/dxvk_hud_item.cpp \
+ src/dxvk/hud/dxvk_hud_renderer.cpp \
+ src/dxvk/platform/dxvk_headless_exts.cpp
+VBox-DxVkNativeDxVk_VBOX_SHADERS := \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_blit_frag_1d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_blit_frag_2d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_blit_frag_3d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_buffer_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_buffer_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image1d_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image1d_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image1darr_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image1darr_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image2d_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image2d_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image2darr_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image2darr_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image3d_f.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_clear_image3d_u.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_buffer_image.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_color_1d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_color_2d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_color_ms.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_1d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_2d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_ms.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_stencil_1d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_stencil_2d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_copy_depth_stencil_ms.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_fullscreen_geom.geom \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_fullscreen_layer_vert.vert \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_fullscreen_vert.vert \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_pack_d24s8.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_pack_d32s8.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_present_frag.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_present_frag_blit.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_present_frag_ms.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_present_frag_ms_amd.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_present_vert.vert \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_d.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_ds.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_f.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_f_amd.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_i.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_resolve_frag_u.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_unpack_d24s8.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_unpack_d24s8_as_d32s8.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/shaders/dxvk_unpack_d32s8.comp \
+ $(PATH_SUB_CURRENT)/src/dxvk/hud/shaders/hud_line_frag.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/hud/shaders/hud_line_vert.vert \
+ $(PATH_SUB_CURRENT)/src/dxvk/hud/shaders/hud_text_frag.frag \
+ $(PATH_SUB_CURRENT)/src/dxvk/hud/shaders/hud_text_vert.vert
+$(evalcall2 def_VBoxDxVkCompilerShaders,VBox-DxVkNativeDxVk)
+
+
+#
+# DXVK D3D11 interface library
+#
+VBox-DxVkNativeD3D11_TEMPLATE = VBoxR3DllNonPedantic
+VBox-DxVkNativeD3D11_DEFS = \
+ DXVK_NATIVE \
+ NOMINMAX \
+ _WIN32_WINNT=0xa00
+VBox-DxVkNativeD3D11_DEFS += \
+ DXVK_PLATFORM_LINUX \
+ DXVK_WSI_HEADLESS
+VBox-DxVkNativeD3D11_CXXFLAGS.linux += \
+ -std=c++17
+VBox-DxVkNativeD3D11_CXXFLAGS.darwin += \
+ -std=c++17
+VBox-DxVkNativeD3D11_INCS = \
+ $(VBOX_PATH_DXVK) \
+ $(VBOX_PATH_DXVK)/include/ \
+ $(VBOX_PATH_DXVK)/src/util/ \
+ $(VBOX_PATH_DXVK)/include/native/ \
+ $(VBOX_PATH_DXVK)/include/native/windows \
+ $(VBOX_PATH_DXVK)/include/native/directx
+VBox-DxVkNativeD3D11_SOURCES = \
+ src/dxgi/dxgi_format.cpp \
+ src/dxgi/dxgi_monitor.cpp \
+ src/dxgi/dxgi_swapchain.cpp \
+ src/d3d11/d3d11_annotation.cpp \
+ src/d3d11/d3d11_blend.cpp \
+ src/d3d11/d3d11_buffer.cpp \
+ src/d3d11/d3d11_class_linkage.cpp \
+ src/d3d11/d3d11_cmdlist.cpp \
+ src/d3d11/d3d11_context.cpp \
+ src/d3d11/d3d11_context_def.cpp \
+ src/d3d11/d3d11_context_ext.cpp \
+ src/d3d11/d3d11_context_imm.cpp \
+ src/d3d11/d3d11_cuda.cpp \
+ src/d3d11/d3d11_depth_stencil.cpp \
+ src/d3d11/d3d11_device.cpp \
+ src/d3d11/d3d11_enums.cpp \
+ src/d3d11/d3d11_initializer.cpp \
+ src/d3d11/d3d11_input_layout.cpp \
+ src/d3d11/d3d11_interop.cpp \
+ src/d3d11/d3d11_main.cpp \
+ src/d3d11/d3d11_options.cpp \
+ src/d3d11/d3d11_query.cpp \
+ src/d3d11/d3d11_rasterizer.cpp \
+ src/d3d11/d3d11_resource.cpp \
+ src/d3d11/d3d11_sampler.cpp \
+ src/d3d11/d3d11_shader.cpp \
+ src/d3d11/d3d11_state.cpp \
+ src/d3d11/d3d11_state_object.cpp \
+ src/d3d11/d3d11_swapchain.cpp \
+ src/d3d11/d3d11_texture.cpp \
+ src/d3d11/d3d11_util.cpp \
+ src/d3d11/d3d11_video.cpp \
+ src/d3d11/d3d11_view_dsv.cpp \
+ src/d3d11/d3d11_view_rtv.cpp \
+ src/d3d11/d3d11_view_srv.cpp \
+ src/d3d11/d3d11_view_uav.cpp \
+ src/d3d10/d3d10_blend.cpp \
+ src/d3d10/d3d10_buffer.cpp \
+ src/d3d10/d3d10_depth_stencil.cpp \
+ src/d3d10/d3d10_device.cpp \
+ src/d3d10/d3d10_input_layout.cpp \
+ src/d3d10/d3d10_multithread.cpp \
+ src/d3d10/d3d10_query.cpp \
+ src/d3d10/d3d10_rasterizer.cpp \
+ src/d3d10/d3d10_sampler.cpp \
+ src/d3d10/d3d10_texture.cpp \
+ src/d3d10/d3d10_util.cpp \
+ src/d3d10/d3d10_view_dsv.cpp \
+ src/d3d10/d3d10_view_rtv.cpp \
+ src/d3d10/d3d10_view_srv.cpp
+VBox-DxVkNativeD3D11_VBOX_SHADERS := \
+ $(PATH_SUB_CURRENT)/src/d3d11/shaders/d3d11_video_blit_frag.frag \
+ $(PATH_SUB_CURRENT)/src/d3d11/shaders/d3d11_video_blit_vert.vert
+$(evalcall2 def_VBoxDxVkCompilerShaders,VBox-DxVkNativeD3D11)
+
+#
+# VBoxDxVk - Shared Object / DLL version.
+#
+VBoxDxVk_TEMPLATE = VBoxR3DllNonPedantic
+VBoxDxVk_DEFS = \
+ DXVK_NATIVE \
+ NOMINMAX \
+ _WIN32_WINNT=0xa00
+VBoxDxVk_INCS = \
+ $(VBOX_PATH_DXVK) \
+ $(VBOX_PATH_DXVK)/include/ \
+ $(VBOX_PATH_DXVK)/src/util/ \
+ $(VBOX_PATH_DXVK)/include/native/ \
+ $(VBOX_PATH_DXVK)/include/native/windows \
+ $(VBOX_PATH_DXVK)/include/native/directx
+VBoxDxVk_CXXFLAGS.linux += \
+ -std=c++17
+VBoxDxVk_SOURCES = \
+ VBoxDxVkDeps.cpp
+VBoxDxVk_LIBS = \
+ $(PATH_STAGE_LIB)/VBox-DxVkNativeD3D11$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/VBox-DxVkNativeDxVk$(VBOX_SUFF_LIB) \
+ $(PATH_STAGE_LIB)/VBox-DxVkNativeUtil$(VBOX_SUFF_LIB) \
+ $(LIB_RUNTIME)
+
+include $(FILE_KBUILD_SUB_FOOTER)
+