renderer_vulkan: Include Vulkan memory allocator

This commit is contained in:
emufan
2022-07-03 16:39:23 +03:00
parent 8a2cc15cd1
commit 61932f9a6c
4 changed files with 33 additions and 1 deletions

View File

@@ -199,6 +199,11 @@ if (ENABLE_QT)
endif() endif()
endif() endif()
if (ENABLE_VULKAN)
# Vulkan Memory Allocator
set(VMA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/externals/vma/include)
endif()
# Ensure libusb is properly configured (based on dolphin libusb include) # Ensure libusb is properly configured (based on dolphin libusb include)
if(NOT APPLE) if(NOT APPLE)
include(FindPkgConfig) include(FindPkgConfig)

View File

@@ -79,6 +79,8 @@ add_library(video_core STATIC
renderer_vulkan/vk_format_reinterpreter.h renderer_vulkan/vk_format_reinterpreter.h
renderer_vulkan/vk_instance.cpp renderer_vulkan/vk_instance.cpp
renderer_vulkan/vk_instance.h renderer_vulkan/vk_instance.h
renderer_vulkan/vk_memory.cpp
renderer_vulkan/vk_memory.h
renderer_vulkan/vk_pipeline_builder.cpp renderer_vulkan/vk_pipeline_builder.cpp
renderer_vulkan/vk_pipeline_builder.h renderer_vulkan/vk_pipeline_builder.h
renderer_vulkan/vk_rasterizer_cache.cpp renderer_vulkan/vk_rasterizer_cache.cpp
@@ -180,6 +182,6 @@ if (ARCHITECTURE_x86_64)
endif() endif()
if (ENABLE_VULKAN) if (ENABLE_VULKAN)
target_include_directories(video_core PRIVATE ${Vulkan_INCLUDE_DIRS}) target_include_directories(video_core PRIVATE ${Vulkan_INCLUDE_DIRS} ${VMA_INCLUDE_DIR})
target_link_libraries(video_core PRIVATE ${Vulkan_LIBRARIES} ${SHADERC_DEP}) target_link_libraries(video_core PRIVATE ${Vulkan_LIBRARIES} ${SHADERC_DEP})
endif() endif()

View File

@@ -0,0 +1,6 @@
// Copyright 2022 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#define VMA_IMPLEMENTATION
#include "vk_memory.h"

View File

@@ -0,0 +1,19 @@
// Copyright 2022 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include <vulkan/vulkan.h>
#ifndef VMA_STATIC_VULKAN_FUNCTIONS
#define VMA_STATIC_VULKAN_FUNCTIONS 0
#endif
#ifndef VMA_DYNAMIC_VULKAN_FUNCTIONS
#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
#endif
// Include Vulkan memory allocator
#define VMA_VULKAN_VERSION 1001000 // Vulkan 1.1
#include "vk_mem_alloc.h"