diff options
Diffstat (limited to 'video/out/vulkan/common.h')
-rw-r--r-- | video/out/vulkan/common.h | 58 |
1 files changed, 7 insertions, 51 deletions
diff --git a/video/out/vulkan/common.h b/video/out/vulkan/common.h index a4284f9055..b085fb462c 100644 --- a/video/out/vulkan/common.h +++ b/video/out/vulkan/common.h @@ -23,58 +23,14 @@ #define VK_USE_PLATFORM_WIN32_KHR #endif -#include <vulkan/vulkan.h> - -// Vulkan allows the optional use of a custom allocator. We don't need one but -// mark this parameter with a better name in case we ever decide to change this -// in the future. (And to make the code more readable) -#define MPVK_ALLOCATOR NULL - -// A lot of things depend on streaming resources across frames. Depending on -// how many frames we render ahead of time, we need to pick enough to avoid -// any conflicts, so make all of these tunable relative to this constant in -// order to centralize them. -#define MPVK_MAX_STREAMING_DEPTH 8 +#include <libplacebo/vulkan.h> // Shared struct used to hold vulkan context information struct mpvk_ctx { - struct mp_log *log; - VkInstance inst; - VkPhysicalDevice physd; - VkDebugReportCallbackEXT dbg; - VkDevice dev; - - // Surface, must be initialized fter the context itself - VkSurfaceKHR surf; - VkSurfaceFormatKHR surf_format; // picked at surface initialization time - - struct vk_malloc *alloc; // memory allocator for this device - struct spirv_compiler *spirv; // GLSL -> SPIR-V compiler - struct vk_cmdpool **pools; // command pools (one per queue family) - int num_pools; - struct vk_cmd *last_cmd; // most recently submitted command - - // Queued/pending commands. These are shared for the entire mpvk_ctx to - // ensure submission and callbacks are FIFO - struct vk_cmd **cmds_queued; // recorded but not yet submitted - struct vk_cmd **cmds_pending; // submitted but not completed - int num_cmds_queued; - int num_cmds_pending; - - // Pointers into *pools - struct vk_cmdpool *pool_graphics; // required - struct vk_cmdpool *pool_compute; // optional - struct vk_cmdpool *pool_transfer; // optional - - // Common pool of signals, to avoid having to re-create these objects often - struct vk_signal **signals; - int num_signals; - - // Cached capabilities - VkPhysicalDeviceLimits limits; - VkPhysicalDeviceFeatures features; - - // Extension availability - bool has_ext_external_memory; - bool has_ext_external_memory_export; + struct mp_log *pl_log; + struct pl_context *ctx; + const struct pl_vk_inst *vkinst; + const struct pl_vulkan *vulkan; + const struct pl_gpu *gpu; // points to vulkan->gpu for convenience + VkSurfaceKHR surface; }; |