summaryrefslogtreecommitdiffstats
path: root/video/out/vulkan/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vulkan/common.h')
-rw-r--r--video/out/vulkan/common.h58
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;
};