Kompute
Core.hpp
1 // SPDX-License-Identifier: Apache-2.0
2 #pragma once
3 
4 #include <vulkan/vulkan.hpp>
5 
6 // Typedefs to simplify interaction with core types
7 namespace kp {
8 typedef std::array<uint32_t, 3> Workgroup;
9 typedef std::vector<float> Constants;
10 }
11 
12 // Must be after vulkan is included
13 #ifndef KOMPUTE_VK_API_VERSION
14 #ifndef KOMPUTE_VK_API_MAJOR_VERSION
15 #define KOMPUTE_VK_API_MAJOR_VERSION 1
16 #endif // KOMPUTE_VK_API_MAJOR_VERSION
17 #ifndef KOMPUTE_VK_API_MINOR_VERSION
18 #define KOMPUTE_VK_API_MINOR_VERSION 1
19 #endif // KOMPUTE_VK_API_MINOR_VERSION
20 #define KOMPUTE_VK_API_VERSION \
21  VK_MAKE_VERSION( \
22  KOMPUTE_VK_API_MAJOR_VERSION, KOMPUTE_VK_API_MINOR_VERSION, 0)
23 #endif // KOMPUTE_VK_API_VERSION
24 
25 #if defined(KOMPUTE_BUILD_PYTHON)
26 #include <pybind11/pybind11.h>
27 namespace py = pybind11;
28 // from python/src/main.cpp
29 extern py::object kp_trace, kp_debug, kp_info, kp_warning, kp_error;
30 #endif