Option to use vulkan

jackun 2 years ago
parent f75e44c1e8
commit 4d8b94c469
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

@ -165,19 +165,24 @@ else
dep_rt = null_dep dep_rt = null_dep
endif endif
vkh_sp = subproject('vulkan-headers') if get_option('use_vulkan')
vk_api_xml = vkh_sp.get_variable('vulkan_api_xml') vkh_sp = subproject('vulkan-headers')
dep_vulkan = vkh_sp.get_variable('vulkan_headers_dep') vk_api_xml = vkh_sp.get_variable('vulkan_api_xml')
dep_vulkan = vkh_sp.get_variable('vulkan_headers_dep')
vk_enum_to_str = custom_target(
'vk_enum_to_str', vk_enum_to_str = custom_target(
input : ['bin/gen_enum_to_str.py', vk_api_xml], 'vk_enum_to_str',
output : ['vk_enum_to_str.c', 'vk_enum_to_str.h'], input : ['bin/gen_enum_to_str.py', vk_api_xml],
command : [ output : ['vk_enum_to_str.c', 'vk_enum_to_str.h'],
prog_python, '@INPUT0@', '--xml', '@INPUT1@', command : [
'--outdir', meson.current_build_dir() prog_python, '@INPUT0@', '--xml', '@INPUT1@',
], '--outdir', meson.current_build_dir()
) ],
)
else
dep_vulkan = null_dep
vk_enum_to_str = []
endif
imgui_options = [ imgui_options = [
'default_library=static', 'default_library=static',

@ -6,6 +6,7 @@ option('with_nvml', type : 'combo', value : 'enabled', choices: ['enabled', 'sys
option('with_xnvctrl', type : 'feature', value : 'enabled', description: 'Enable XNVCtrl support') option('with_xnvctrl', type : 'feature', value : 'enabled', description: 'Enable XNVCtrl support')
option('with_x11', type : 'feature', value : 'enabled') option('with_x11', type : 'feature', value : 'enabled')
option('with_wayland', type : 'feature', value : 'disabled') option('with_wayland', type : 'feature', value : 'disabled')
option('use_vulkan', type : 'boolean', value : 'true')
option('with_dbus', type : 'feature', value : 'enabled') option('with_dbus', type : 'feature', value : 'enabled')
option('loglevel', type: 'combo', choices : ['trace', 'debug', 'info', 'warn', 'err', 'critical', 'off'], value : 'info', description: 'Max log level in non-debug build') option('loglevel', type: 'combo', choices : ['trace', 'debug', 'info', 'warn', 'err', 'critical', 'off'], value : 'info', description: 'Max log level in non-debug build')
option('mangoapp', type: 'boolean', value : false) option('mangoapp', type: 'boolean', value : false)

@ -560,6 +560,7 @@ void HudElements::engine_version(){
ImguiNextColumnFirstItem(); ImguiNextColumnFirstItem();
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::PushFont(HUDElements.sw_stats->font1);
if (HUDElements.is_vulkan) { if (HUDElements.is_vulkan) {
#ifdef HAVE_VULKAN
if ((HUDElements.sw_stats->engine == EngineTypes::DXVK || HUDElements.sw_stats->engine == EngineTypes::VKD3D)){ if ((HUDElements.sw_stats->engine == EngineTypes::DXVK || HUDElements.sw_stats->engine == EngineTypes::VKD3D)){
ImGui::TextColored(HUDElements.colors.engine, ImGui::TextColored(HUDElements.colors.engine,
"%s/%d.%d.%d", HUDElements.sw_stats->engineVersion.c_str(), "%s/%d.%d.%d", HUDElements.sw_stats->engineVersion.c_str(),
@ -573,6 +574,7 @@ void HudElements::engine_version(){
HUDElements.sw_stats->version_vk.minor, HUDElements.sw_stats->version_vk.minor,
HUDElements.sw_stats->version_vk.patch); HUDElements.sw_stats->version_vk.patch);
} }
#endif
} else { } else {
ImGui::TextColored(HUDElements.colors.engine, ImGui::TextColored(HUDElements.colors.engine,
"%d.%d%s", HUDElements.sw_stats->version_gl.major, HUDElements.sw_stats->version_gl.minor, "%d.%d%s", HUDElements.sw_stats->version_gl.major, HUDElements.sw_stats->version_gl.minor,
@ -729,8 +731,10 @@ void HudElements::image(){
HUDElements.image_infos.loaded = true; HUDElements.image_infos.loaded = true;
if (HUDElements.is_vulkan) { if (HUDElements.is_vulkan) {
#ifdef HAVE_VULKAN
if ((HUDElements.image_infos.texture = add_texture(HUDElements.sw_stats, value, &(HUDElements.image_infos.width), &(HUDElements.image_infos.height), maxwidth))) if ((HUDElements.image_infos.texture = add_texture(HUDElements.sw_stats, value, &(HUDElements.image_infos.width), &(HUDElements.image_infos.height), maxwidth)))
HUDElements.image_infos.valid = true; HUDElements.image_infos.valid = true;
#endif
} else { } else {
HUDElements.image_infos.valid = GL_LoadTextureFromFile(value.c_str(), HUDElements.image_infos.valid = GL_LoadTextureFromFile(value.c_str(),
reinterpret_cast<unsigned int*>(&(HUDElements.image_infos.texture)), reinterpret_cast<unsigned int*>(&(HUDElements.image_infos.texture)),
@ -759,8 +763,10 @@ void HudElements::background_image(){
if (HUDElements.background_image_infos.loaded == false) { if (HUDElements.background_image_infos.loaded == false) {
HUDElements.background_image_infos.loaded = true; HUDElements.background_image_infos.loaded = true;
if (HUDElements.is_vulkan) { if (HUDElements.is_vulkan) {
#ifdef HAVE_VULKAN
if ((HUDElements.background_image_infos.texture = add_texture(HUDElements.sw_stats, value, &(HUDElements.background_image_infos.width), &(HUDElements.background_image_infos.height), 0))) if ((HUDElements.background_image_infos.texture = add_texture(HUDElements.sw_stats, value, &(HUDElements.background_image_infos.width), &(HUDElements.background_image_infos.height), 0)))
HUDElements.background_image_infos.valid = true; HUDElements.background_image_infos.valid = true;
#endif
} else { } else {
HUDElements.background_image_infos.valid = GL_LoadTextureFromFile(value.c_str(), HUDElements.background_image_infos.valid = GL_LoadTextureFromFile(value.c_str(),
reinterpret_cast<unsigned int*>(&(HUDElements.background_image_infos.texture)), reinterpret_cast<unsigned int*>(&(HUDElements.background_image_infos.texture)),

@ -41,12 +41,16 @@ vklayer_files = files(
'logging.cpp', 'logging.cpp',
'config.cpp', 'config.cpp',
'gpu.cpp', 'gpu.cpp',
'vulkan.cpp',
'blacklist.cpp', 'blacklist.cpp',
'file_utils.cpp', 'file_utils.cpp',
'intel.cpp', 'intel.cpp',
'load_textures.cpp', 'load_textures.cpp',
) )
if get_option('use_vulkan')
vklayer_files += files('vulkan.cpp')
endif
opengl_files = [] opengl_files = []
if ['windows', 'mingw'].contains(host_machine.system()) if ['windows', 'mingw'].contains(host_machine.system())
vklayer_files += files( vklayer_files += files(
@ -142,6 +146,10 @@ if is_unixy
endif endif
endif endif
if get_option('use_vulkan')
pre_args += '-DHAVE_VULKAN'
endif
link_args = cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro', '-Wl,--exclude-libs,ALL', '-lGL']) link_args = cc.get_supported_link_arguments(['-Wl,-Bsymbolic-functions', '-Wl,-z,relro', '-Wl,--exclude-libs,ALL', '-lGL'])
# meson fails to check version-script so just force add # meson fails to check version-script so just force add
link_args += '-Wl,--version-script,@0@'.format(join_paths(meson.current_source_dir(), 'mangohud.version')) link_args += '-Wl,--version-script,@0@'.format(join_paths(meson.current_source_dir(), 'mangohud.version'))

Loading…
Cancel
Save