Author SHA1 Message Date
Daemo 42f0d52bfa changed mlx_put_transformed_image_to_window to use float position 2026-08-12 19:25:09 +02:00
DaemoandGitHub 63fe3088bf Fix inconsistencies with the FPS scheduler (#241)
The current Fps manager will sometime skip the intended delay and start
the next frame immediately, I'm not 100% sure why it happens, but I
rewrote most of it to stay consistent and improved the overall precision
by compensating for OS wake delay after sleep and finishing with a busy
wait
I also changed the behavior of mlx_set_fps_goal to allow zero/negative
values and treat them as uncapped (like most graphics libraries)
2026-08-08 15:45:56 +02:00
DaemoandGitHub c9df651a14 Optimized region drawing and fixed incorrect region clipping (#240)
Made small optimizations to Texture's SetRegion, SetLinearRegion,
GetRegion and Clear. They might not be super effective depending on how
the compiler already optimized them. The optimizations mainly focus on
removing the multiplication when transforming a position to an index by
using the row index rather than the y coordinate during iteration.
Also fixed regions not drawing properly when clipping against the sides
of a window and made GetRegion reject any region that isn't fully inside
of the window (previously accepted regions that clipped outside of the
right and bottom side, possibly leading to incorrect reads on the user
end due to desynchronized region dimensions)
2026-08-07 12:31:13 +02:00
DaemoandGitHub 2d0c02ae7e Fix freeze when resizing a window (#239)
Fixed an annoying bug where the application would freeze when resizing
the window
This pull request made it so the SDL window's resizing event now
broadcasts a new event specifically asking the swapchain to recreate
itself, which will in turn broadcast the original event when done. It
also removed the Event enum specific values, as they were irrelevant.
2026-08-07 00:18:52 +02:00
ddfbe32cea Indev (#228)
Co-authored-by: kbJeff-8 <kbJeff-8@users.noreply.github.com>
2026-05-13 14:29:51 +02:00
kbz_8 8b952f14c5 temp fix 2026-05-11 14:05:10 +02:00
kbJeff-8andkbz_8 cfc3fccac4 [BOT] update dependencies 2026-05-11 14:05:10 +02:00
kbJeff-8andkbz_8 f691ce6890 [BOT] update dependencies 2026-05-11 14:05:10 +02:00
kbJeff-8andkbz_8 fb0eecde00 [BOT] update dependencies 2026-05-11 14:05:10 +02:00
kbJeff-8andkbz_8 f65b8a2aef [BOT] update dependencies 2026-05-11 14:05:10 +02:00
0verLighTandkbz_8 59b3a297f9 chore: rm wrap_mode force-fallback
sdl2 warp should be used only if the system does not have sdl2 dependency
2026-03-24 23:14:42 +01:00
kbz_8 790e24ebdb Update meson.build 2026-03-24 23:14:42 +01:00
0verLighTandkbz_8 3a2563a7f5 chore: update meson.build 2026-03-24 23:14:42 +01:00
kbz_8 cf491fc56d fix 2026-03-23 21:45:36 +01:00
kbz_8 492365f6dd swithing to manual surface management 2026-03-23 21:45:36 +01:00
kbz_8 564942ad35 fix 2026-03-23 21:45:36 +01:00
kbJeff-8andkbz_8 2751206578 [BOT] update dependencies 2026-03-23 21:45:36 +01:00
kbJeff-8andkbz_8 002c35ccdb [BOT] update dependencies 2026-03-23 21:45:36 +01:00
kbJeff-8andkbz_8 36e63bbbe7 [BOT] update dependencies 2026-03-08 11:42:50 +01:00
kbz_8 3a11c1d350 fixing file access 2026-03-03 12:10:18 +01:00
kbJeff-8andkbz_8 74613d230f [BOT] update dependencies 2026-03-03 12:10:18 +01:00
kbJeff-8andkbz_8 f1e89ca90e [BOT] update dependencies 2026-02-08 12:13:11 +01:00
kbz_8 1566fbfc00 fixing image resize 2026-02-05 15:18:03 +01:00
kbz_8 6c1400e62c azy, 7h du matin, je sais pas écrire 2026-02-04 07:32:55 +01:00
kbz_8 25fb5285f7 fixed issue with default font loading 2026-02-04 07:32:55 +01:00
Yannisandkbz_8 87059f8ca3 Check if font file exists 2026-02-04 07:32:55 +01:00
39 changed files with 45870 additions and 34901 deletions
+1 -1
View File
@@ -153,7 +153,7 @@ MLX_API void mlx_set_image_region(mlx_context mlx, mlx_image image, int x, int y
* @param scale_y Scale y of the image * @param scale_y Scale y of the image
* @param angle Rotation angle of the image (clockwise) * @param angle Rotation angle of the image (clockwise)
*/ */
MLX_API void mlx_put_transformed_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, int x, int y, float scale_x, float scale_y, float angle); MLX_API void mlx_put_transformed_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, float x, float y, float scale_x, float scale_y, float angle);
/** /**
* @brief Get direct pointers to hidden functions * @brief Get direct pointers to hidden functions
+18 -19
View File
@@ -1,12 +1,15 @@
project('MacroLibX', project('MacroLibX',
['c', 'cpp'], ['c', 'cpp'],
version : '2.2.4', version : '2.3.0',
license : 'MIT', license : 'MIT',
meson_version : '>= 1.9.0', meson_version : '>= 0.63.0',
default_options : ['warning_level=2', 'optimization=3', 'cpp_std=c++20']) default_options : [
'warning_level=2',
'optimization=3',
'cpp_std=c++20',
]
)
add_project_arguments('-Wno-error=', language : 'c')
add_project_arguments('-fPIC', language : 'c')
add_project_arguments('-DSDL_MAIN_HANDLED', language : 'c') add_project_arguments('-DSDL_MAIN_HANDLED', language : 'c')
if get_option('graphics_memory_dump') if get_option('graphics_memory_dump')
@@ -25,15 +28,14 @@ if get_option('disable_all_safeties')
add_project_arguments('-DDISABLE_ALL_SAFETIES', language : 'c') add_project_arguments('-DDISABLE_ALL_SAFETIES', language : 'c')
endif endif
includes_directories = [ includes_directories = include_directories(
include_directories('includes'), 'includes',
include_directories('runtime/Includes'), 'runtime/Includes',
include_directories('runtime/Sources'), 'runtime/Sources',
include_directories('third_party'), 'third_party',
] )
sources = [ sources = files(
files(
'runtime/Sources/Core/Application.cpp', 'runtime/Sources/Core/Application.cpp',
'runtime/Sources/Core/Bridge.cpp', 'runtime/Sources/Core/Bridge.cpp',
'runtime/Sources/Core/EventBus.cpp', 'runtime/Sources/Core/EventBus.cpp',
@@ -66,9 +68,8 @@ sources = [
'runtime/Sources/Renderer/RenderCore.cpp', 'runtime/Sources/Renderer/RenderCore.cpp',
'runtime/Sources/Renderer/Renderer.cpp', 'runtime/Sources/Renderer/Renderer.cpp',
'runtime/Sources/Renderer/SceneRenderer.cpp', 'runtime/Sources/Renderer/SceneRenderer.cpp',
'runtime/Sources/Renderer/Swapchain.cpp' 'runtime/Sources/Renderer/Swapchain.cpp',
) )
]
mlx_headers = [ mlx_headers = [
'includes/mlx.h', 'includes/mlx.h',
@@ -78,9 +79,7 @@ mlx_headers = [
install_headers(mlx_headers) install_headers(mlx_headers)
deps = [ deps = dependency('sdl2')
dependency('sdl2'),
]
libmlx = library('mlx', libmlx = library('mlx',
sources, sources,
+4 -3
View File
@@ -19,9 +19,10 @@ namespace mlx
enum class Event enum class Event
{ {
ResizeEventCode = 56, ResizeEventCode = 1,
FrameBeginEventCode = 57, SwapchainResizeEventCode,
FatalErrorEventCode = 168, FrameBeginEventCode,
FatalErrorEventCode,
EndEnum EndEnum
}; };
+12 -8
View File
@@ -1,26 +1,30 @@
#ifndef __MLX_FPS__ #ifndef __MLX_FPS__
#define __MLX_FPS__ #define __MLX_FPS__
#include <chrono>
namespace mlx namespace mlx
{ {
typedef std::chrono::steady_clock fps_clock;
class FpsManager class FpsManager
{ {
public: public:
FpsManager() = default; FpsManager() = default;
void Init(); void Init();
bool Update(); void WaitUntilNextFrame();
inline void SetMaxFPS(std::uint32_t fps) noexcept { m_max_fps = fps; m_ns = 1000000000.0 / fps; } inline void SetMaxFPS(std::uint32_t fps) noexcept { m_target_delta = fps_clock::duration(std::chrono::seconds(1)) / fps;}
~FpsManager() = default; ~FpsManager() = default;
private: private:
double m_ns = 1000000000.0 / 1'337'000.0; fps_clock::time_point m_current_time;
std::int64_t m_fps_before = 0; fps_clock::time_point m_target_time;
std::int64_t m_fps_now = 0; fps_clock::time_point m_last_time_record;
std::int64_t m_timer = 0; fps_clock::duration m_delta_time = fps_clock::duration().zero();
std::uint32_t m_max_fps = 1'337'000; fps_clock::duration m_target_delta = fps_clock::duration().zero();
std::uint32_t m_fps_elapsed_time = 0; fps_clock::duration m_sleep_margin = std::chrono::microseconds(200);
}; };
} }
+1 -1
View File
@@ -28,7 +28,7 @@ namespace mlx
void PixelPutArray(int x, int y, mlx_color* color, std::size_t pixels_size) noexcept; void PixelPutArray(int x, int y, mlx_color* color, std::size_t pixels_size) noexcept;
void PixelPutRegion(int x, int y, int w, int h, mlx_color* color) noexcept; void PixelPutRegion(int x, int y, int w, int h, mlx_color* color) noexcept;
void StringPut(int x, int y, mlx_color color, std::string str); void StringPut(int x, int y, mlx_color color, std::string str);
void TexturePut(NonOwningPtr<class Texture> texture, int x, int y, float scale_x, float scale_y, float angle); void TexturePut(NonOwningPtr<class Texture> texture, float x, float y, float scale_x, float scale_y, float angle);
inline void TryEraseSpritesInScene(NonOwningPtr<Texture> texture) noexcept; inline void TryEraseSpritesInScene(NonOwningPtr<Texture> texture) noexcept;
-1
View File
@@ -47,7 +47,6 @@ namespace mlx
std::unordered_map<std::string, std::pair<std::size_t, ProfileResult>> m_profile_data; std::unordered_map<std::string, std::pair<std::size_t, ProfileResult>> m_profile_data;
std::ofstream m_output_stream; std::ofstream m_output_stream;
std::mutex m_mutex;
bool m_runtime_session_began = false; bool m_runtime_session_began = false;
}; };
-1
View File
@@ -20,7 +20,6 @@ namespace mlx
void SetInputBinding(std::function<void(SDL_Event*)> functor); void SetInputBinding(std::function<void(SDL_Event*)> functor);
VkSurfaceKHR CreateVulkanSurface(Handle window, VkInstance instance) const noexcept; VkSurfaceKHR CreateVulkanSurface(Handle window, VkInstance instance) const noexcept;
std::vector<const char*> GetRequiredVulkanInstanceExtentions(Handle window) const noexcept;
Vec2ui GetVulkanDrawableSize(Handle window) const noexcept; Vec2ui GetVulkanDrawableSize(Handle window) const noexcept;
void MoveMouseOnWindow(Handle window, int x, int y) const noexcept; void MoveMouseOnWindow(Handle window, int x, int y) const noexcept;
void GetScreenSizeWindowIsOn(Handle window, int* x, int* y) const noexcept; void GetScreenSizeWindowIsOn(Handle window, int* x, int* y) const noexcept;
-1
View File
@@ -35,7 +35,6 @@ namespace mlx
MLX_FORCEINLINE void GetSize(int* x, int* y) { *x = GetWidth(); *y = GetHeight(); } MLX_FORCEINLINE void GetSize(int* x, int* y) { *x = GetWidth(); *y = GetHeight(); }
MLX_FORCEINLINE VkSurfaceKHR CreateVulkanSurface(VkInstance instance) const noexcept { return SDLManager::Get().CreateVulkanSurface(p_window, instance); } MLX_FORCEINLINE VkSurfaceKHR CreateVulkanSurface(VkInstance instance) const noexcept { return SDLManager::Get().CreateVulkanSurface(p_window, instance); }
MLX_FORCEINLINE std::vector<const char*> GetRequiredVulkanInstanceExtentions() const noexcept { return SDLManager::Get().GetRequiredVulkanInstanceExtentions(p_window); }
MLX_FORCEINLINE Vec2ui GetVulkanDrawableSize() const noexcept { return SDLManager::Get().GetVulkanDrawableSize(p_window); } MLX_FORCEINLINE Vec2ui GetVulkanDrawableSize() const noexcept { return SDLManager::Get().GetVulkanDrawableSize(p_window); }
[[nodiscard]] inline Handle GetRawHandle() const noexcept { return p_window; } [[nodiscard]] inline Handle GetRawHandle() const noexcept { return p_window; }
+5 -5
View File
@@ -25,12 +25,12 @@
#error Failed to find SDL2 headers #error Failed to find SDL2 headers
#endif #endif
#if __has_include(<SDL2/SDL_vulkan.h>) #if __has_include(<SDL2/SDL_syswm.h>)
#include <SDL2/SDL_vulkan.h> #include <SDL2/SDL_syswm.h>
#elif __has_include(<SDL_vulkan.h>) #elif __has_include(<SDL_syswm.h>)
#include <SDL_vulkan.h> #include <SDL_syswm.h>
#else #else
#error Failed to find SDL2 Vulkan headers #error Failed to find SDL2 SysWMinfo
#endif #endif
#include <functional> #include <functional>
@@ -123,5 +123,41 @@
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR)
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR)
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR)
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateAndroidSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateXcbSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateXlibSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateWaylandSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateWin32SurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateMetalSurfaceEXT)
#endif
#endif
#endif #endif
#endif #endif
+2 -3
View File
@@ -8,7 +8,7 @@
namespace mlx namespace mlx
{ {
Application::Application() : p_mem_manager(std::make_unique<MemManager>()), p_sdl_manager(std::make_unique<SDLManager>()), m_fps(), m_in() Application::Application() : p_mem_manager(std::make_unique<MemManager>()), p_sdl_manager(std::make_unique<SDLManager>()), m_fps(), m_in()
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
std::srand(std::time(nullptr)); std::srand(std::time(nullptr));
@@ -33,8 +33,7 @@ namespace mlx
while(m_in.IsRunning()) while(m_in.IsRunning())
{ {
if(!m_fps.Update()) m_fps.WaitUntilNextFrame();
continue;
m_in.FetchInputs(); m_in.FetchInputs();
+51 -9
View File
@@ -45,10 +45,9 @@ extern "C"
void mlx_set_fps_goal(mlx_context mlx, int fps) void mlx_set_fps_goal(mlx_context mlx, int fps)
{ {
MLX_CHECK_APPLICATION_POINTER(mlx); MLX_CHECK_APPLICATION_POINTER(mlx);
if(fps < 0) if(fps <= 0)
mlx::Error("You cannot set a negative FPS cap (nice try)"); fps = -1;
else mlx->app->SetFPSCap(static_cast<std::uint32_t>(fps));
mlx->app->SetFPSCap(static_cast<std::uint32_t>(fps));
} }
void mlx_destroy_context(mlx_context mlx) void mlx_destroy_context(mlx_context mlx)
@@ -238,6 +237,15 @@ extern "C"
mlx::Error("Image loader: not a valid file format '%'", filename); mlx::Error("Image loader: not a valid file format '%'", filename);
return nullptr; return nullptr;
} }
{
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("Image loader: failed to open file '%'", filename);
return nullptr;
}
}
return mlx->app->NewStbTexture(filename, width, height); return mlx->app->NewStbTexture(filename, width, height);
} }
@@ -304,12 +312,29 @@ extern "C"
mlx::Error("Font loader: filepath is NULL"); mlx::Error("Font loader: filepath is NULL");
return; return;
} }
std::filesystem::path file(filepath); std::filesystem::path file(filepath);
if(std::strcmp(filepath, "default") != 0 && file.extension() != ".ttf" && file.extension() != ".tte") if (std::strcmp(filepath, "default") != 0 && !std::filesystem::exists(file))
{ {
mlx::Error("TTF loader: not a truetype font file '%'", filepath); mlx::Error("TTF loader: unable to find file '%'", filepath);
return; return;
} }
if(std::strcmp(filepath, "default") != 0)
{
if(file.extension() != ".ttf" && file.extension() != ".tte")
{
mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return;
}
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("TTF loader: failed to open font file '%'", filepath);
return;
}
}
if(std::strcmp(filepath, "default") == 0) if(std::strcmp(filepath, "default") == 0)
mlx->app->LoadFont(file, 6.f); mlx->app->LoadFont(file, 6.f);
else else
@@ -324,12 +349,29 @@ extern "C"
mlx::Error("Font loader: filepath is NULL"); mlx::Error("Font loader: filepath is NULL");
return; return;
} }
std::filesystem::path file(filepath); std::filesystem::path file(filepath);
if(std::strcmp(filepath, "default") != 0 && file.extension() != ".ttf" && file.extension() != ".tte") if (std::strcmp(filepath, "default") != 0 && !std::filesystem::exists(file))
{ {
mlx::Error("TTF loader: not a truetype font file '%'", filepath); mlx::Error("TTF loader: unable to find file '%'", filepath);
return; return;
} }
if(std::strcmp(filepath, "default") != 0)
{
if(file.extension() != ".ttf" && file.extension() != ".tte")
{
mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return;
}
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("TTF loader: failed to open font file '%'", filepath);
return;
}
}
mlx->app->LoadFont(file, scale); mlx->app->LoadFont(file, scale);
} }
@@ -416,7 +458,7 @@ extern "C"
texture->SetRegion(x, y, w, h, pixels); texture->SetRegion(x, y, w, h, pixels);
} }
void mlx_put_transformed_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, int x, int y, float scale_x, float scale_y, float angle) void mlx_put_transformed_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, float x, float y, float scale_x, float scale_y, float angle)
{ {
MLX_CHECK_APPLICATION_POINTER(mlx); MLX_CHECK_APPLICATION_POINTER(mlx);
mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win); mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win);
+23 -16
View File
@@ -1,30 +1,37 @@
#include <PreCompiled.h> #include <PreCompiled.h>
#include <Core/Fps.h> #include <Core/Fps.h>
#ifndef __APPLE__
#include <emmintrin.h>
#endif
namespace mlx namespace mlx
{ {
void FpsManager::Init() void FpsManager::Init()
{ {
m_timer = static_cast<std::uint64_t>(std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now().time_since_epoch()).count()); m_current_time = fps_clock::now();
m_fps_before = m_timer; m_target_time = m_current_time + m_target_delta;
m_fps_now = m_timer;
} }
bool FpsManager::Update() void FpsManager::WaitUntilNextFrame()
{ {
using namespace std::chrono_literals; m_current_time = fps_clock::now();
m_fps_now = static_cast<std::uint64_t>(std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now().time_since_epoch()).count()); if(m_current_time < m_target_time)
if(std::chrono::duration<std::uint64_t>{m_fps_now - m_timer} >= 1s)
m_timer += m_fps_now;
m_fps_elapsed_time = m_fps_now - m_fps_before;
if(m_fps_elapsed_time >= m_ns)
{ {
m_fps_before += m_ns; std::this_thread::sleep_until(m_target_time - m_sleep_margin);
return true; m_current_time = fps_clock::now();
while (m_current_time < m_target_time)
{
#ifndef __APPLE__
_mm_pause(); // reduces CPU usage on x86 without yielding
#endif
m_current_time = fps_clock::now();
}
} }
std::this_thread::sleep_for(std::chrono::duration<double, std::nano>(m_ns - 1)); else if (m_target_time < m_current_time - m_target_delta * 4)
return false; m_target_time = m_current_time;
m_target_time += m_target_delta;
m_delta_time = m_current_time - m_last_time_record;
m_last_time_record = m_current_time;
} }
} }
+3 -3
View File
@@ -136,7 +136,7 @@ namespace mlx
p_scene->BringToDrawLayer(text.Get(), m_draw_layer); p_scene->BringToDrawLayer(text.Get(), m_draw_layer);
} }
void GraphicsSupport::TexturePut(NonOwningPtr<Texture> texture, int x, int y, float scale_x, float scale_y, float angle) void GraphicsSupport::TexturePut(NonOwningPtr<Texture> texture, float x, float y, float scale_x, float scale_y, float angle)
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
NonOwningPtr<Sprite> sprite = p_scene->GetSpriteFromTexturePositionScaleRotation(texture, Vec2f{ static_cast<float>(x), static_cast<float>(y) }, scale_x, scale_y, angle); NonOwningPtr<Sprite> sprite = p_scene->GetSpriteFromTexturePositionScaleRotation(texture, Vec2f{ static_cast<float>(x), static_cast<float>(y) }, scale_x, scale_y, angle);
@@ -146,14 +146,14 @@ namespace mlx
{ {
m_draw_layer++; m_draw_layer++;
m_pixelput_called = false; m_pixelput_called = false;
} }
Sprite& new_sprite = p_scene->CreateSprite(texture); Sprite& new_sprite = p_scene->CreateSprite(texture);
new_sprite.SetCenter(Vec2f{ texture->GetWidth() * 0.5f, texture->GetHeight() * 0.5f }); new_sprite.SetCenter(Vec2f{ texture->GetWidth() * 0.5f, texture->GetHeight() * 0.5f });
new_sprite.SetPosition(Vec2f{ static_cast<float>(x), static_cast<float>(y) }); new_sprite.SetPosition(Vec2f{ static_cast<float>(x), static_cast<float>(y) });
new_sprite.SetScale(Vec2f{ scale_x, scale_y }); new_sprite.SetScale(Vec2f{ scale_x, scale_y });
new_sprite.SetRotation(angle); new_sprite.SetRotation(angle);
} }
else if(!p_scene->IsTextureAtGivenDrawLayer(texture, m_draw_layer)) else if(!p_scene->IsTextureAtGivenDrawLayer(texture, m_draw_layer))
p_scene->BringToDrawLayer(sprite.Get(), m_draw_layer); p_scene->BringToDrawLayer(sprite.Get(), m_draw_layer);
} }
-3
View File
@@ -8,7 +8,6 @@ namespace mlx
void Profiler::BeginRuntimeSession() void Profiler::BeginRuntimeSession()
{ {
std::lock_guard lock(m_mutex);
if(m_runtime_session_began) if(m_runtime_session_began)
return; return;
m_output_stream.open("./runtime_profile.mlx.json", std::ofstream::out | std::ofstream::trunc); m_output_stream.open("./runtime_profile.mlx.json", std::ofstream::out | std::ofstream::trunc);
@@ -22,7 +21,6 @@ namespace mlx
void Profiler::AppendProfileData(ProfileResult&& result) void Profiler::AppendProfileData(ProfileResult&& result)
{ {
std::lock_guard lock(m_mutex);
auto it = m_profile_data.find(result.name); auto it = m_profile_data.find(result.name);
if(it != m_profile_data.end()) if(it != m_profile_data.end())
{ {
@@ -49,7 +47,6 @@ namespace mlx
void Profiler::EndRuntimeSession() void Profiler::EndRuntimeSession()
{ {
std::lock_guard lock(m_mutex);
if(!m_runtime_session_began) if(!m_runtime_session_began)
return; return;
for(auto& [_, pair] : m_profile_data) for(auto& [_, pair] : m_profile_data)
+29 -17
View File
@@ -43,7 +43,7 @@ namespace mlx
Internal::WindowInfos* infos = new Internal::WindowInfos; Internal::WindowInfos* infos = new Internal::WindowInfos;
Verify(infos != nullptr, "SDL: window allocation failed"); Verify(infos != nullptr, "SDL: window allocation failed");
std::uint32_t flags = SDL_WINDOW_VULKAN; std::uint32_t flags = 0;
if(hidden) if(hidden)
flags |= SDL_WINDOW_HIDDEN; flags |= SDL_WINDOW_HIDDEN;
else else
@@ -88,28 +88,38 @@ namespace mlx
VkSurfaceKHR SDLManager::CreateVulkanSurface(Handle window, VkInstance instance) const noexcept VkSurfaceKHR SDLManager::CreateVulkanSurface(Handle window, VkInstance instance) const noexcept
{ {
VkSurfaceKHR surface; SDL_SysWMinfo info;
if(!SDL_Vulkan_CreateSurface(static_cast<Internal::WindowInfos*>(window)->window, instance, &surface)) SDL_VERSION(&info.version);
FatalError("SDL: could not create a Vulkan surface; %", SDL_GetError()); if(SDL_GetWindowWMInfo(static_cast<Internal::WindowInfos*>(window)->window, &info) != SDL_TRUE)
return surface; FatalError("SDL Manager: cannot retrieve window informations");
}
std::vector<const char*> SDLManager::GetRequiredVulkanInstanceExtentions(Handle window) const noexcept switch(info.subsystem)
{ {
std::uint32_t count; #ifdef SDL_VIDEO_DRIVER_WINDOWS
if(!SDL_Vulkan_GetInstanceExtensions(static_cast<Internal::WindowInfos*>(window)->window, &count, nullptr)) case SDL_SYSWM_WINDOWS: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_WINDOWS, static_cast<void*>(info.info.win.hinstance), static_cast<void*>(info.info.win.window));
FatalError("SDL Manager: could not retrieve Vulkan instance extensions"); #endif
std::vector<const char*> extensions(count); #ifdef SDL_VIDEO_DRIVER_X11
if(!SDL_Vulkan_GetInstanceExtensions(static_cast<Internal::WindowInfos*>(window)->window, &count, extensions.data())) case SDL_SYSWM_X11: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_XLIB, static_cast<void*>(info.info.x11.display), static_cast<void*>(&info.info.x11.window));
FatalError("SDL Manager: could not retrieve Vulkan instance extensions"); #endif
extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME); #ifdef SDL_VIDEO_DRIVER_COCOA
return extensions; case SDL_SYSWM_COCOA: FatalError("SDL Manager: Vulkan surfaces over Metal are not supported yet. Please fill an issue here https://github.com/seekrs/MacroLibX/issues/new");
#endif
#ifdef SDL_VIDEO_DRIVER_WAYLAND
case SDL_SYSWM_WAYLAND: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_WAYLAND, static_cast<void*>(info.info.wl.display), static_cast<void*>(info.info.wl.surface));
#endif
#ifdef SDL_VIDEO_DRIVER_ANDROID
case SDL_SYSWM_ANDROID: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_ANDROID, nullptr, static_cast<void*>(info.info.android.window));
#endif
default : FatalError("SDL Manager: unsupported windowing system"); break;
}
return VK_NULL_HANDLE;
} }
Vec2ui SDLManager::GetVulkanDrawableSize(Handle window) const noexcept Vec2ui SDLManager::GetVulkanDrawableSize(Handle window) const noexcept
{ {
Vec2i extent; Vec2i extent;
SDL_Vulkan_GetDrawableSize(static_cast<Internal::WindowInfos*>(window)->window, &extent.x, &extent.y); SDL_GetWindowSize(static_cast<Internal::WindowInfos*>(window)->window, &extent.x, &extent.y);
return Vec2ui{ extent }; return Vec2ui{ extent };
} }
@@ -266,6 +276,7 @@ namespace mlx
case SDL_WINDOWEVENT_LEAVE: functor(MLX_WINDOW_EVENT, id, 6); break; case SDL_WINDOWEVENT_LEAVE: functor(MLX_WINDOW_EVENT, id, 6); break;
case SDL_WINDOWEVENT_FOCUS_LOST: functor(MLX_WINDOW_EVENT, id, 7); break; case SDL_WINDOWEVENT_FOCUS_LOST: functor(MLX_WINDOW_EVENT, id, 7); break;
case SDL_WINDOWEVENT_SIZE_CHANGED: functor(MLX_WINDOW_EVENT, id, 8); break; case SDL_WINDOWEVENT_SIZE_CHANGED: functor(MLX_WINDOW_EVENT, id, 8); break;
case SDL_WINDOWEVENT_RESTORED: functor(MLX_WINDOW_EVENT, id, 11); break;
default : break; default : break;
} }
@@ -284,6 +295,7 @@ namespace mlx
{ {
if(m_drop_sdl_responsability) if(m_drop_sdl_responsability)
return; return;
SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS); SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS);
SDL_Quit(); SDL_Quit();
s_instance = nullptr; s_instance = nullptr;
+3 -3
View File
@@ -8,9 +8,9 @@ namespace mlx
{ {
namespace Internal namespace Internal
{ {
struct ResizeEventBroadcast : public EventBase struct SwapchainResizeEventBroadcast : public EventBase
{ {
Event What() const override { return Event::ResizeEventCode; } Event What() const override { return Event::SwapchainResizeEventCode; }
}; };
} }
@@ -23,7 +23,7 @@ namespace mlx
if(!m_events_hooks.contains(window_id) || m_events_hooks[window_id][event].empty()) if(!m_events_hooks.contains(window_id) || m_events_hooks[window_id][event].empty())
return; return;
if(event == MLX_WINDOW_EVENT && code == 8) if(event == MLX_WINDOW_EVENT && code == 8)
EventBus::SendBroadcast(Internal::ResizeEventBroadcast{}); EventBus::SendBroadcast(Internal::SwapchainResizeEventBroadcast{});
for(const auto& hook : m_events_hooks[window_id][event]) for(const auto& hook : m_events_hooks[window_id][event])
{ {
if(hook.fn) if(hook.fn)
+47 -37
View File
@@ -226,25 +226,34 @@ namespace mlx
void Texture::SetRegion(int x, int y, int w, int h, mlx_color* pixels) noexcept void Texture::SetRegion(int x, int y, int w, int h, mlx_color* pixels) noexcept
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
if(x < 0 || y < 0 || static_cast<std::uint32_t>(x) >= m_width || static_cast<std::uint32_t>(y) >= m_height) if(w < 0 || h < 0 || x < -w || y < -h
return; || x >= static_cast<int>(m_width) || y >= static_cast<int>(m_height))
if(w < 0 || h < 0)
return; return;
if(!m_staging_buffer.has_value()) if(!m_staging_buffer.has_value())
OpenCPUBuffer(); OpenCPUBuffer();
for(std::uint32_t i = 0, moving_x = x, moving_y = y;; i++, moving_x++) const int
start_x = std::max<int>(x, 0),
start_y = std::max<int>(y, 0),
start_row = start_y * m_width,
start_i = (start_y - y) * w + (start_x - x),
end_x = std::min<int>(x + w, m_width),
end_y = std::min<int>(y + h, m_height),
end_row = end_y * m_width,
incr = (x + w) - end_x + (start_x - x);
for(int i = start_i, dx = start_x, row = start_row;; i++, dx++)
{ {
if(moving_x >= static_cast<std::uint32_t>(x + w) || moving_x >= m_width) if(dx >= end_x)
{ {
moving_x = x; i += incr;
moving_y++; dx = start_x;
if(moving_y >= static_cast<std::uint32_t>(y + h) || moving_y >= m_height) row += m_width;
if(row >= end_row)
break; break;
} }
if constexpr(std::endian::native == std::endian::little) if constexpr(std::endian::native == std::endian::little)
m_staging_buffer->GetMap<mlx_color*>()[(moving_y * m_width) + moving_x] = ReverseColor(pixels[i]); m_staging_buffer->GetMap<mlx_color*>()[row + dx] = ReverseColor(pixels[i]);
else else
m_staging_buffer->GetMap<mlx_color*>()[(moving_y * m_width) + moving_x] = pixels[i]; m_staging_buffer->GetMap<mlx_color*>()[row + dx] = pixels[i];
} }
m_has_been_modified = true; m_has_been_modified = true;
} }
@@ -252,23 +261,25 @@ namespace mlx
void Texture::SetLinearRegion(int x, int y, std::size_t len, mlx_color* pixels) noexcept void Texture::SetLinearRegion(int x, int y, std::size_t len, mlx_color* pixels) noexcept
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
if(x < 0 || y < 0 || static_cast<std::uint32_t>(x) >= m_width || static_cast<std::uint32_t>(y) >= m_height) if(x >= static_cast<int>(m_width) || y >= static_cast<int>(m_height))
return; return;
if(!m_staging_buffer.has_value()) if(!m_staging_buffer.has_value())
OpenCPUBuffer(); OpenCPUBuffer();
int
start = y * m_width + x,
dest_start = std::max<int>(start, 0),
src_start = dest_start - start,
dest_end = std::min<int>(start + len, m_width * m_height);
if constexpr(std::endian::native == std::endian::little) if constexpr(std::endian::native == std::endian::little)
{ {
for(std::size_t i = 0; i < len && (y * m_width) + x + i < m_width * m_height; i++) for(int i = dest_start, j = src_start; i < dest_end; i++, j++)
m_staging_buffer->GetMap<mlx_color*>()[(y * m_width) + x + i] = ReverseColor(pixels[i]); m_staging_buffer->GetMap<mlx_color*>()[i] = ReverseColor(pixels[j]);
} }
else else
{ {
std::size_t len_guard; std::memcpy(
if((y * m_width + x + len) < m_width * m_height) &m_staging_buffer->GetMap<mlx_color*>()[dest_start],
len_guard = len; &pixels[src_start], dest_end - dest_start);
else
len_guard = len - (m_width * m_height - (y * m_width + x + len));
std::memcpy(&m_staging_buffer->GetMap<mlx_color*>()[(y * m_width) + x], pixels, len_guard);
} }
m_has_been_modified = true; m_has_been_modified = true;
} }
@@ -289,23 +300,23 @@ namespace mlx
void Texture::GetRegion(int x, int y, int w, int h, mlx_color* dst) noexcept void Texture::GetRegion(int x, int y, int w, int h, mlx_color* dst) noexcept
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
if(x < 0 || y < 0 || static_cast<std::uint32_t>(x) >= m_width || static_cast<std::uint32_t>(y) >= m_height) if(w < 0 || h < 0 || x < 0 || y < 0 || static_cast<std::uint32_t>(x + w) >= m_width || static_cast<std::uint32_t>(y + h) >= m_height)
return; return;
if(!m_staging_buffer.has_value()) if(!m_staging_buffer.has_value())
OpenCPUBuffer(); OpenCPUBuffer();
for(std::uint32_t i = 0, moving_x = x, moving_y = y;; i++, moving_x++) for(std::uint32_t i = 0, dx = x, row = y * m_width;; i++, dx++)
{ {
if(moving_x >= static_cast<std::uint32_t>(x + w) || moving_x >= m_width) if(dx >= m_width)
{ {
moving_x = x; dx = x;
moving_y++; row += m_width;
if(moving_y >= static_cast<std::uint32_t>(y + h) || moving_y >= m_height) if(row >= m_height * m_width)
break; break;
} }
if constexpr(std::endian::native == std::endian::little) if constexpr(std::endian::native == std::endian::little)
dst[i] = ReverseColor(m_staging_buffer->GetMap<mlx_color*>()[(moving_y * m_width) + moving_x]); dst[i] = ReverseColor(m_staging_buffer->GetMap<mlx_color*>()[row + dx]);
else else
dst[i] = m_staging_buffer->GetMap<mlx_color*>()[(moving_y * m_width) + moving_x]; dst[i] = m_staging_buffer->GetMap<mlx_color*>()[row + dx];
} }
} }
@@ -320,16 +331,8 @@ namespace mlx
processed_color.g = static_cast<std::uint8_t>(color.g * 255.f); processed_color.g = static_cast<std::uint8_t>(color.g * 255.f);
processed_color.b = static_cast<std::uint8_t>(color.b * 255.f); processed_color.b = static_cast<std::uint8_t>(color.b * 255.f);
processed_color.a = static_cast<std::uint8_t>(color.a * 255.f); processed_color.a = static_cast<std::uint8_t>(color.a * 255.f);
if(processed_color.r == 0 && processed_color.g == 0 && processed_color.b == 0) for(std::size_t i = 0; i < m_width * m_height; i++)
std::memset(m_staging_buffer->GetMap(), processed_color.a, m_staging_buffer->GetSize()); m_staging_buffer->GetMap<mlx_color*>()[i] = processed_color;
else
{
for(std::size_t y = 0; y < m_height; y++)
{
for(std::size_t x = 0; x < m_width; x++)
m_staging_buffer->GetMap<mlx_color*>()[y * m_width + x] = processed_color;
}
}
} }
} }
@@ -436,13 +439,20 @@ namespace mlx
#endif #endif
if(m_staging_buffer.has_value()) if(m_staging_buffer.has_value())
{
new_texture.OpenCPUBuffer(); new_texture.OpenCPUBuffer();
new_texture.m_staging_buffer->CopyFrom(*m_staging_buffer);
}
// Suboptimal operations, should bake all of them in a single command buffer // Suboptimal operations, should bake all of them in a single command buffer
new_texture.Clear(VK_NULL_HANDLE, Vec4f{ 0.f }); new_texture.Clear(VK_NULL_HANDLE, Vec4f{ 0.f });
CopyTo(new_texture); CopyTo(new_texture);
Swap(new_texture); Swap(new_texture);
#ifdef DEBUG
DebugLog("Texture: resized '%'", m_debug_name);
#endif
} }
void Texture::Swap(Texture& texture) noexcept void Texture::Swap(Texture& texture) noexcept
@@ -127,6 +127,9 @@ namespace mlx
void GraphicPipeline::Destroy() noexcept void GraphicPipeline::Destroy() noexcept
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
if(m_pipeline == VK_NULL_HANDLE)
return;
p_vertex_shader.reset(); p_vertex_shader.reset();
p_fragment_shader.reset(); p_fragment_shader.reset();
for(auto fb : m_framebuffers) for(auto fb : m_framebuffers)
+54 -2
View File
@@ -100,8 +100,25 @@ namespace mlx
info.width = 1; info.width = 1;
info.height = 1; info.height = 1;
window = std::make_unique<Window>(&info, true); window = std::make_unique<Window>(&info, true);
instance_extensions = window->GetRequiredVulkanInstanceExtentions(); instance_extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
#ifdef MLX_PLAT_MACOS #ifdef VK_USE_PLATFORM_XCB_KHR
instance_extensions.push_back(VK_KHR_XCB_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
instance_extensions.push_back(VK_KHR_XLIB_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
instance_extensions.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
instance_extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
instance_extensions.push_back(VK_EXT_METAL_SURFACE_EXTENSION_NAME);
instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
#endif #endif
} }
@@ -185,6 +202,41 @@ namespace mlx
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR);
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR);
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR);
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
MLX_LOAD_FUNCTION(vkCreateAndroidSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
MLX_LOAD_FUNCTION(vkCreateXcbSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
MLX_LOAD_FUNCTION(vkCreateXlibSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
MLX_LOAD_FUNCTION(vkCreateWaylandSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
MLX_LOAD_FUNCTION(vkCreateWin32SurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
MLX_LOAD_FUNCTION(vkCreateMetalSurfaceEXT);
#endif
#endif
kvfPassInstanceVulkanFunctionPointers(&pfns); kvfPassInstanceVulkanFunctionPointers(&pfns);
} }
+2 -2
View File
@@ -15,7 +15,7 @@ namespace mlx
Event What() const override { return Event::ResizeEventCode; } Event What() const override { return Event::ResizeEventCode; }
}; };
} }
std::string VulkanFormatName(VkFormat format) std::string VulkanFormatName(VkFormat format)
{ {
#define STRINGIFY(x) case x: return #x #define STRINGIFY(x) case x: return #x
@@ -161,7 +161,7 @@ namespace mlx
std::function<void(const EventBase&)> functor = [this](const EventBase& event) std::function<void(const EventBase&)> functor = [this](const EventBase& event)
{ {
if(event.What() == Event::ResizeEventCode && !m_resize) if(event.What() == Event::SwapchainResizeEventCode && !m_resize)
m_resize = true; m_resize = true;
}; };
EventBus::RegisterListener({ functor, "mlx_swapchain_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) }); EventBus::RegisterListener({ functor, "mlx_swapchain_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
+209 -2
View File
@@ -55,6 +55,46 @@
#define VK_NO_PROTOTYPES #define VK_NO_PROTOTYPES
#endif #endif
#ifndef KVF_NO_KHR
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#include <vulkan/vulkan_android.h>
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#include <vulkan/vulkan_wayland.h>
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
typedef struct HINSTANCE__* HINSTANCE;
typedef struct HWND__* HWND;
typedef struct HMONITOR__* HMONITOR;
typedef void* HANDLE;
typedef /*_Null_terminated_*/ const wchar_t* LPCWSTR;
typedef unsigned long DWORD;
typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;
#include <vulkan/vulkan_win32.h>
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
struct xcb_connection_t;
typedef uint32_t xcb_window_t;
typedef uint32_t xcb_visualid_t;
#include <vulkan/vulkan_xcb.h>
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#include <vulkan/vulkan_metal.h>
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
typedef struct _XDisplay Display;
typedef unsigned long XID;
typedef XID Window;
typedef unsigned long VisualID;
#include <vulkan/vulkan_xlib.h>
#endif
#endif
#include <vulkan/vulkan_core.h> #include <vulkan/vulkan_core.h>
#include <stdint.h> #include <stdint.h>
@@ -82,6 +122,18 @@ typedef enum
KVF_IMAGE_OTHER = 4, KVF_IMAGE_OTHER = 4,
} KvfImageType; } KvfImageType;
#ifndef KVF_NO_KHR
typedef enum
{
KVF_SURFACE_ANDROID = 0,
KVF_SURFACE_XLIB = 1,
KVF_SURFACE_XCB = 2,
KVF_SURFACE_WAYLAND = 3,
KVF_SURFACE_WINDOWS = 4,
KVF_SURFACE_METAL = 5,
} KvfSurfaceType;
#endif
typedef void (*KvfErrorCallback)(const char* message); typedef void (*KvfErrorCallback)(const char* message);
#ifdef KVF_IMPL_VK_NO_PROTOTYPES #ifdef KVF_IMPL_VK_NO_PROTOTYPES
@@ -148,6 +200,33 @@ void kvfDestroySemaphore(VkDevice device, VkSemaphore semaphore);
uint32_t kvfGetSwapchainMinImagesCount(VkSwapchainKHR swapchain); uint32_t kvfGetSwapchainMinImagesCount(VkSwapchainKHR swapchain);
VkExtent2D kvfGetSwapchainImagesSize(VkSwapchainKHR swapchain); VkExtent2D kvfGetSwapchainImagesSize(VkSwapchainKHR swapchain);
void kvfDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain); void kvfDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain);
/**
* For Windows:
* - instance_handle -> HINSTANCE
* - window_handle -> HWND window handle
*
* For Wayland:
* - instance_handle -> wl_display
* - window_handle -> wl_surface
*
* For XLIB:
* - instance_handle -> Display
* - window_handle -> Window
*
* For XCB:
* - instance_handle -> xcb_connection_t
* - window_handle -> xcb_window_t
*
* For Metal:
* - instance_handle -> ignored
* - window_handle -> CAMetalLayer
*
* For Android:
* - instance_handle -> ignored
* - window_handle -> ANativeWindow
*/
VkSurfaceKHR kvfCreateSurfaceKHR(VkInstance instance, KvfSurfaceType type, void* instance_handle, void* window_handle);
#endif #endif
VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type); VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type);
@@ -272,6 +351,42 @@ int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceFormatsKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceFormatsKHR);
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfacePresentModesKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfacePresentModesKHR);
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceSupportKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceSupportKHR);
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateAndroidSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateXcbSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateXlibSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateWaylandSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateWin32SurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateMetalSurfaceEXT);
#endif
#endif
#endif #endif
}; };
@@ -2093,6 +2208,98 @@ void kvfDestroySemaphore(VkDevice device, VkSemaphore semaphore)
KVF_ASSERT(device != VK_NULL_HANDLE); KVF_ASSERT(device != VK_NULL_HANDLE);
__kvfDestroySwapchain(device, swapchain); __kvfDestroySwapchain(device, swapchain);
} }
VkSurfaceKHR kvfCreateSurfaceKHR(VkInstance instance, KvfSurfaceType type, void* instance_handle, void* window_handle)
{
VkSurfaceKHR surface = VK_NULL_HANDLE;
switch(type)
{
#ifdef VK_USE_PLATFORM_ANDROID_KHR
case KVF_SURFACE_ANDROID:
{
VkAndroidSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.window = (ANativeWindow*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateAndroidSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
case KVF_SURFACE_XLIB:
{
VkXlibSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.dpy = (Display*)instance_handle;
create_info.window = *(Window*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateXlibSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
case KVF_SURFACE_XCB:
{
VkXcbSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.connection = (xcb_connection_t*)instance_handle;
create_info.window = (*xcb_window_t*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateXcbSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
case KVF_SURFACE_WAYLAND:
{
VkWaylandSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.display = (wl_display*)instance_handle;
create_info.surface = (wl_surface*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateWaylandSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
case KVF_SURFACE_WINDOWS:
{
VkWin32SurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.hinstance = (HINSTANCE)instance_handle;
create_info.hwnd = (HWND)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateWin32SurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
case KVF_SURFACE_METAL:
{
VkMetalSurfaceCreateInfoEXT create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.pLayer = (CAMetalLayer*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateMetalSurfaceEXT)(instance, &create_info, NULL, &surface));
break;
}
#endif
default: break;
}
return surface;
}
#endif #endif
VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type) VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type)
@@ -2969,7 +3176,7 @@ void kvfGPipelineBuilderEnableAdditiveBlending(KvfGraphicsPipelineBuilder* build
builder->color_blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE; builder->color_blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE;
builder->color_blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD; builder->color_blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD;
builder->color_blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; builder->color_blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
builder->color_blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; builder->color_blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
builder->color_blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD; builder->color_blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD;
} }
@@ -2982,7 +3189,7 @@ void kvfGPipelineBuilderEnableAlphaBlending(KvfGraphicsPipelineBuilder* builder)
builder->color_blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; builder->color_blend_attachment_state.dstColorBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
builder->color_blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD; builder->color_blend_attachment_state.colorBlendOp = VK_BLEND_OP_ADD;
builder->color_blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; builder->color_blend_attachment_state.srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE;
builder->color_blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; builder->color_blend_attachment_state.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
builder->color_blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD; builder->color_blend_attachment_state.alphaBlendOp = VK_BLEND_OP_ADD;
} }
+95 -9615
View File
File diff suppressed because it is too large Load Diff
+3764 -2254
View File
File diff suppressed because it is too large Load Diff
+2059 -618
View File
File diff suppressed because it is too large Load Diff
+1484 -670
View File
File diff suppressed because it is too large Load Diff
+236 -63
View File
@@ -16,7 +16,13 @@
# include <vulkan/vulkan.hpp> # include <vulkan/vulkan.hpp>
#endif #endif
namespace VULKAN_HPP_NAMESPACE #if defined( VULKAN_HPP_CXX_MODULE )
# define VULKAN_HPP_EXPORT export
#else
# define VULKAN_HPP_EXPORT
#endif
VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
{ {
//====================================== //======================================
//=== Extension inspection functions === //=== Extension inspection functions ===
@@ -44,7 +50,7 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE std::map<std::string, std::string> const & getDeprecatedExtensions() VULKAN_HPP_INLINE std::map<std::string, std::string> const & getDeprecatedExtensions()
{ {
static const std::map<std::string, std::string> deprecatedExtensions = { { "VK_EXT_debug_report", "VK_EXT_debug_utils" }, static std::map<std::string, std::string> const deprecatedExtensions = { { "VK_EXT_debug_report", "VK_EXT_debug_utils" },
{ "VK_NV_glsl_shader", "" }, { "VK_NV_glsl_shader", "" },
{ "VK_NV_dedicated_allocation", "VK_KHR_dedicated_allocation" }, { "VK_NV_dedicated_allocation", "VK_KHR_dedicated_allocation" },
{ "VK_AMD_gpu_shader_half_float", "VK_KHR_shader_float16_int8" }, { "VK_AMD_gpu_shader_half_float", "VK_KHR_shader_float16_int8" },
@@ -69,15 +75,15 @@ namespace VULKAN_HPP_NAMESPACE
{ "VK_EXT_validation_features", "VK_EXT_layer_settings" }, { "VK_EXT_validation_features", "VK_EXT_layer_settings" },
{ "VK_EXT_descriptor_buffer", "VK_EXT_descriptor_heap" }, { "VK_EXT_descriptor_buffer", "VK_EXT_descriptor_heap" },
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
{ "VK_NV_displacement_micromap", "VK_NV_cluster_acceleration_structure" } { "VK_NV_displacement_micromap", "VK_NV_cluster_acceleration_structure" },
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
}; { "VK_NV_per_stage_descriptor_set", "VK_EXT_descriptor_heap" } };
return deprecatedExtensions; return deprecatedExtensions;
} }
VULKAN_HPP_INLINE std::set<std::string> const & getDeviceExtensions() VULKAN_HPP_INLINE std::set<std::string> const & getDeviceExtensions()
{ {
static const std::set<std::string> deviceExtensions = { "VK_KHR_swapchain", static std::set<std::string> const deviceExtensions = { "VK_KHR_swapchain",
"VK_KHR_display_swapchain", "VK_KHR_display_swapchain",
"VK_NV_glsl_shader", "VK_NV_glsl_shader",
"VK_EXT_depth_range_unrestricted", "VK_EXT_depth_range_unrestricted",
@@ -173,6 +179,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_EXT_sampler_filter_minmax", "VK_EXT_sampler_filter_minmax",
"VK_KHR_storage_buffer_storage_class", "VK_KHR_storage_buffer_storage_class",
"VK_AMD_gpu_shader_int16", "VK_AMD_gpu_shader_int16",
"VK_AMD_gpa_interface",
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
"VK_AMDX_shader_enqueue", "VK_AMDX_shader_enqueue",
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -212,6 +219,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_EXT_filter_cubic", "VK_EXT_filter_cubic",
"VK_QCOM_render_pass_shader_resolve", "VK_QCOM_render_pass_shader_resolve",
"VK_QCOM_cooperative_matrix_conversion", "VK_QCOM_cooperative_matrix_conversion",
"VK_QCOM_elapsed_timer_query",
"VK_EXT_global_priority", "VK_EXT_global_priority",
"VK_KHR_shader_subgroup_extended_types", "VK_KHR_shader_subgroup_extended_types",
"VK_KHR_8bit_storage", "VK_KHR_8bit_storage",
@@ -257,7 +265,9 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_fragment_shading_rate", "VK_KHR_fragment_shading_rate",
"VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties2",
"VK_AMD_device_coherent_memory", "VK_AMD_device_coherent_memory",
"VK_KHR_shader_constant_data",
"VK_KHR_dynamic_rendering_local_read", "VK_KHR_dynamic_rendering_local_read",
"VK_KHR_shader_abort",
"VK_EXT_shader_image_atomic_int64", "VK_EXT_shader_image_atomic_int64",
"VK_KHR_shader_quad_control", "VK_KHR_shader_quad_control",
"VK_KHR_spirv_1_4", "VK_KHR_spirv_1_4",
@@ -312,6 +322,10 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_video_encode_queue", "VK_KHR_video_encode_queue",
"VK_NV_device_diagnostics_config", "VK_NV_device_diagnostics_config",
"VK_QCOM_render_pass_store_ops", "VK_QCOM_render_pass_store_ops",
"VK_QCOM_queue_perf_hint",
"VK_QCOM_image_processing3",
"VK_QCOM_shader_multiple_wait_queues",
"VK_EXT_shader_split_barrier",
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
"VK_NV_cuda_kernel_launch", "VK_NV_cuda_kernel_launch",
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -322,6 +336,7 @@ namespace VULKAN_HPP_NAMESPACE
#endif /*VK_USE_PLATFORM_METAL_EXT*/ #endif /*VK_USE_PLATFORM_METAL_EXT*/
"VK_KHR_synchronization2", "VK_KHR_synchronization2",
"VK_EXT_descriptor_buffer", "VK_EXT_descriptor_buffer",
"VK_KHR_device_address_commands",
"VK_EXT_graphics_pipeline_library", "VK_EXT_graphics_pipeline_library",
"VK_AMD_shader_early_and_late_fragment_tests", "VK_AMD_shader_early_and_late_fragment_tests",
"VK_KHR_fragment_shader_barycentric", "VK_KHR_fragment_shader_barycentric",
@@ -443,6 +458,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_NV_low_latency2", "VK_NV_low_latency2",
"VK_KHR_cooperative_matrix", "VK_KHR_cooperative_matrix",
"VK_ARM_data_graph", "VK_ARM_data_graph",
"VK_ARM_data_graph_instruction_set_tosa",
"VK_QCOM_multiview_per_view_render_areas", "VK_QCOM_multiview_per_view_render_areas",
"VK_KHR_compute_shader_derivatives", "VK_KHR_compute_shader_derivatives",
"VK_KHR_video_decode_av1", "VK_KHR_video_decode_av1",
@@ -486,6 +502,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_NV_cluster_acceleration_structure", "VK_NV_cluster_acceleration_structure",
"VK_NV_partitioned_acceleration_structure", "VK_NV_partitioned_acceleration_structure",
"VK_EXT_device_generated_commands", "VK_EXT_device_generated_commands",
"VK_KHR_device_fault",
"VK_KHR_maintenance8", "VK_KHR_maintenance8",
"VK_MESA_image_alignment_control", "VK_MESA_image_alignment_control",
"VK_KHR_shader_fma", "VK_KHR_shader_fma",
@@ -502,31 +519,37 @@ namespace VULKAN_HPP_NAMESPACE
#endif /*VK_USE_PLATFORM_METAL_EXT*/ #endif /*VK_USE_PLATFORM_METAL_EXT*/
"VK_KHR_depth_clamp_zero_one", "VK_KHR_depth_clamp_zero_one",
"VK_ARM_performance_counters_by_region", "VK_ARM_performance_counters_by_region",
"VK_ARM_shader_instrumentation",
"VK_EXT_vertex_attribute_robustness", "VK_EXT_vertex_attribute_robustness",
"VK_ARM_format_pack", "VK_ARM_format_pack",
"VK_VALVE_fragment_density_map_layered", "VK_VALVE_fragment_density_map_layered",
"VK_KHR_robustness2", "VK_KHR_robustness2",
#if defined( VK_ENABLE_BETA_EXTENSIONS )
"VK_NV_present_metering", "VK_NV_present_metering",
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
"VK_EXT_fragment_density_map_offset", "VK_EXT_fragment_density_map_offset",
"VK_EXT_zero_initialize_device_memory", "VK_EXT_zero_initialize_device_memory",
"VK_KHR_present_mode_fifo_latest_ready", "VK_KHR_present_mode_fifo_latest_ready",
"VK_KHR_opacity_micromap",
"VK_EXT_shader_64bit_indexing", "VK_EXT_shader_64bit_indexing",
"VK_EXT_custom_resolve", "VK_EXT_custom_resolve",
"VK_QCOM_data_graph_model", "VK_QCOM_data_graph_model",
"VK_KHR_maintenance10", "VK_KHR_maintenance10",
"VK_ARM_data_graph_optical_flow",
"VK_EXT_shader_long_vector", "VK_EXT_shader_long_vector",
"VK_SEC_pipeline_cache_incremental_mode", "VK_SEC_pipeline_cache_incremental_mode",
"VK_EXT_shader_uniform_buffer_unsized_array", "VK_EXT_shader_uniform_buffer_unsized_array",
"VK_NV_compute_occupancy_priority", "VK_NV_compute_occupancy_priority",
"VK_EXT_shader_subgroup_partitioned" }; "VK_KHR_maintenance11",
"VK_EXT_shader_subgroup_partitioned",
"VK_VALVE_shader_mixed_float_dot_product",
"VK_SEC_throttle_hint",
"VK_ARM_data_graph_neural_accelerator_statistics",
"VK_EXT_primitive_restart_index" };
return deviceExtensions; return deviceExtensions;
} }
VULKAN_HPP_INLINE std::set<std::string> const & getInstanceExtensions() VULKAN_HPP_INLINE std::set<std::string> const & getInstanceExtensions()
{ {
static const std::set<std::string> instanceExtensions = { "VK_KHR_surface", static std::set<std::string> const instanceExtensions = { "VK_KHR_surface",
"VK_KHR_display", "VK_KHR_display",
#if defined( VK_USE_PLATFORM_XLIB_KHR ) #if defined( VK_USE_PLATFORM_XLIB_KHR )
"VK_KHR_xlib_surface", "VK_KHR_xlib_surface",
@@ -596,16 +619,19 @@ namespace VULKAN_HPP_NAMESPACE
"VK_EXT_layer_settings", "VK_EXT_layer_settings",
"VK_NV_display_stereo", "VK_NV_display_stereo",
#if defined( VK_USE_PLATFORM_OHOS ) #if defined( VK_USE_PLATFORM_OHOS )
"VK_OHOS_surface" "VK_OHOS_surface",
#endif /*VK_USE_PLATFORM_OHOS*/ #endif /*VK_USE_PLATFORM_OHOS*/
#if defined( VK_USE_PLATFORM_UBM_SEC )
"VK_SEC_ubm_surface"
#endif /*VK_USE_PLATFORM_UBM_SEC*/
}; };
return instanceExtensions; return instanceExtensions;
} }
VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension ) VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
{ {
static const std::map<std::string, std::vector<std::vector<std::string>>> noDependencies; static std::map<std::string, std::vector<std::vector<std::string>>> const noDependencies;
static const std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = { static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> const dependencies = {
{ "VK_KHR_swapchain", { "VK_KHR_swapchain",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -1088,6 +1114,12 @@ namespace VULKAN_HPP_NAMESPACE
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
, ,
{ "VK_EXT_sampler_filter_minmax", { "VK_EXT_sampler_filter_minmax",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_AMD_gpa_interface",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
@@ -1247,6 +1279,12 @@ namespace VULKAN_HPP_NAMESPACE
{ { { {
"VK_KHR_cooperative_matrix", "VK_KHR_cooperative_matrix",
} } } } }, } } } } },
{ "VK_QCOM_elapsed_timer_query",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", { {} } } } }, { "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_8bit_storage", { "VK_KHR_8bit_storage",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
@@ -1486,12 +1524,24 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } }, { "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_shader_constant_data",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_dynamic_rendering_local_read", { "VK_KHR_dynamic_rendering_local_read",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
"VK_KHR_dynamic_rendering", "VK_KHR_dynamic_rendering",
} } }, } } },
{ "VK_VERSION_1_3", { {} } } } }, { "VK_VERSION_1_3", { {} } } } },
{ "VK_KHR_shader_abort",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_device_fault",
"VK_KHR_shader_constant_data",
} } } } },
{ "VK_EXT_shader_image_atomic_int64", { "VK_EXT_shader_image_atomic_int64",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -1820,6 +1870,30 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_video_queue", "VK_KHR_video_queue",
} } } } }, } } } } },
{ "VK_NV_device_diagnostics_config", { "VK_NV_device_diagnostics_config",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_QCOM_queue_perf_hint",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_QCOM_image_processing3",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_QCOM_shader_multiple_wait_queues",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_EXT_shader_split_barrier",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
@@ -1865,6 +1939,26 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_synchronization2", "VK_KHR_synchronization2",
} } }, } } },
{ "VK_VERSION_1_3", { {} } } } }, { "VK_VERSION_1_3", { {} } } } },
{ "VK_KHR_device_address_commands",
{ { "VK_VERSION_1_0",
{ {
"VK_EXT_extended_dynamic_state",
"VK_KHR_buffer_device_address",
"VK_KHR_get_physical_device_properties2",
"VK_KHR_synchronization2",
} } },
{ "VK_VERSION_1_1",
{ {
"VK_EXT_extended_dynamic_state",
"VK_KHR_buffer_device_address",
"VK_KHR_synchronization2",
} } },
{ "VK_VERSION_1_2",
{ {
"VK_EXT_extended_dynamic_state",
"VK_KHR_synchronization2",
} } },
{ "VK_VERSION_1_3", { {} } } } },
{ "VK_EXT_graphics_pipeline_library", { "VK_EXT_graphics_pipeline_library",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -2618,6 +2712,11 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_deferred_host_operations", "VK_KHR_deferred_host_operations",
"VK_KHR_maintenance5", "VK_KHR_maintenance5",
} } } } }, } } } } },
{ "VK_ARM_data_graph_instruction_set_tosa",
{ { "VK_VERSION_1_0",
{ {
"VK_ARM_data_graph",
} } } } },
{ "VK_QCOM_multiview_per_view_render_areas", { "VK_QCOM_multiview_per_view_render_areas",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -2862,6 +2961,12 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_maintenance5", "VK_KHR_maintenance5",
} } }, } } },
{ "VK_VERSION_1_3", { {} } } } }, { "VK_VERSION_1_3", { {} } } } },
{ "VK_KHR_device_fault",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_maintenance8", { { "VK_VERSION_1_1", { {} } } } }, { "VK_KHR_maintenance8", { { "VK_VERSION_1_1", { {} } } } },
{ "VK_MESA_image_alignment_control", { "VK_MESA_image_alignment_control",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
@@ -2950,6 +3055,12 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } }, { "VK_VERSION_1_1", { {} } } } },
{ "VK_ARM_shader_instrumentation",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_EXT_vertex_attribute_robustness", { "VK_EXT_vertex_attribute_robustness",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -2977,17 +3088,13 @@ namespace VULKAN_HPP_NAMESPACE
{ { { {
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } } { "VK_VERSION_1_1", { {} } } } },
#if defined( VK_ENABLE_BETA_EXTENSIONS )
,
{ "VK_NV_present_metering", { "VK_NV_present_metering",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } } { "VK_VERSION_1_1", { {} } } } },
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
,
{ "VK_EXT_fragment_density_map_offset", { "VK_EXT_fragment_density_map_offset",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -3022,6 +3129,12 @@ namespace VULKAN_HPP_NAMESPACE
{ { { {
"VK_KHR_swapchain", "VK_KHR_swapchain",
} } } } }, } } } } },
{ "VK_KHR_opacity_micromap",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_acceleration_structure",
"VK_KHR_device_address_commands",
} } } } },
{ "VK_EXT_shader_64bit_indexing", { "VK_EXT_shader_64bit_indexing",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
@@ -3045,6 +3158,11 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } }, { "VK_VERSION_1_1", { {} } } } },
{ "VK_ARM_data_graph_optical_flow",
{ { "VK_VERSION_1_0",
{ {
"VK_ARM_data_graph",
} } } } },
{ "VK_EXT_shader_long_vector", { { "VK_VERSION_1_2", { {} } } } }, { "VK_EXT_shader_long_vector", { { "VK_VERSION_1_2", { {} } } } },
{ "VK_SEC_pipeline_cache_incremental_mode", { "VK_SEC_pipeline_cache_incremental_mode",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
@@ -3064,12 +3182,48 @@ namespace VULKAN_HPP_NAMESPACE
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } }, { "VK_VERSION_1_1", { {} } } } },
{ "VK_KHR_maintenance11",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } },
{ "VK_EXT_shader_subgroup_partitioned", { "VK_EXT_shader_subgroup_partitioned",
{ { "VK_VERSION_1_0", { { "VK_VERSION_1_0",
{ { { {
"VK_KHR_get_physical_device_properties2", "VK_KHR_get_physical_device_properties2",
} } }, } } },
{ "VK_VERSION_1_1", { {} } } } } { "VK_VERSION_1_1", { {} } } } }
#if defined( VK_USE_PLATFORM_UBM_SEC )
,
{ "VK_SEC_ubm_surface",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_surface",
} } } } }
#endif /*VK_USE_PLATFORM_UBM_SEC*/
,
{ "VK_VALVE_shader_mixed_float_dot_product",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
"VK_KHR_shader_float16_int8",
} } },
{ "VK_VERSION_1_1",
{ {
"VK_KHR_shader_float16_int8",
},
{} } },
{ "VK_VERSION_1_2",
{ {
"VK_KHR_get_physical_device_properties2",
} } } } },
{ "VK_EXT_primitive_restart_index",
{ { "VK_VERSION_1_0",
{ {
"VK_KHR_get_physical_device_properties2",
} } },
{ "VK_VERSION_1_1", { {} } } } }
}; };
auto depIt = dependencies.find( extension ); auto depIt = dependencies.find( extension );
return ( depIt != dependencies.end() ) ? depIt->second : noDependencies; return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
@@ -3106,13 +3260,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_INLINE std::map<std::string, std::string> const & getObsoletedExtensions() VULKAN_HPP_INLINE std::map<std::string, std::string> const & getObsoletedExtensions()
{ {
static const std::map<std::string, std::string> obsoletedExtensions = { { "VK_AMD_negative_viewport_height", "VK_KHR_maintenance1" } }; static std::map<std::string, std::string> const obsoletedExtensions = { { "VK_AMD_negative_viewport_height", "VK_KHR_maintenance1" } };
return obsoletedExtensions; return obsoletedExtensions;
} }
VULKAN_HPP_INLINE std::map<std::string, std::string> const & getPromotedExtensions() VULKAN_HPP_INLINE std::map<std::string, std::string> const & getPromotedExtensions()
{ {
static const std::map<std::string, std::string> promotedExtensions = { { "VK_KHR_sampler_mirror_clamp_to_edge", "VK_VERSION_1_2" }, static std::map<std::string, std::string> const promotedExtensions = { { "VK_KHR_sampler_mirror_clamp_to_edge", "VK_VERSION_1_2" },
{ "VK_EXT_debug_marker", "VK_EXT_debug_utils" }, { "VK_EXT_debug_marker", "VK_EXT_debug_utils" },
{ "VK_AMD_draw_indirect_count", "VK_KHR_draw_indirect_count" }, { "VK_AMD_draw_indirect_count", "VK_KHR_draw_indirect_count" },
{ "VK_KHR_dynamic_rendering", "VK_VERSION_1_3" }, { "VK_KHR_dynamic_rendering", "VK_VERSION_1_3" },
@@ -3202,6 +3356,7 @@ namespace VULKAN_HPP_NAMESPACE
{ "VK_EXT_image_robustness", "VK_VERSION_1_3" }, { "VK_EXT_image_robustness", "VK_VERSION_1_3" },
{ "VK_KHR_copy_commands2", "VK_VERSION_1_3" }, { "VK_KHR_copy_commands2", "VK_VERSION_1_3" },
{ "VK_EXT_4444_formats", "VK_VERSION_1_3" }, { "VK_EXT_4444_formats", "VK_VERSION_1_3" },
{ "VK_EXT_device_fault", "VK_KHR_device_fault" },
{ "VK_ARM_rasterization_order_attachment_access", { "VK_ARM_rasterization_order_attachment_access",
"VK_EXT_rasterization_order_attachment_access" }, "VK_EXT_rasterization_order_attachment_access" },
{ "VK_VALVE_mutable_descriptor_type", "VK_EXT_mutable_descriptor_type" }, { "VK_VALVE_mutable_descriptor_type", "VK_EXT_mutable_descriptor_type" },
@@ -3209,6 +3364,7 @@ namespace VULKAN_HPP_NAMESPACE
{ "VK_EXT_present_mode_fifo_latest_ready", "VK_KHR_present_mode_fifo_latest_ready" }, { "VK_EXT_present_mode_fifo_latest_ready", "VK_KHR_present_mode_fifo_latest_ready" },
{ "VK_EXT_extended_dynamic_state2", "VK_VERSION_1_3" }, { "VK_EXT_extended_dynamic_state2", "VK_VERSION_1_3" },
{ "VK_EXT_global_priority_query", "VK_KHR_global_priority" }, { "VK_EXT_global_priority_query", "VK_KHR_global_priority" },
{ "VK_EXT_opacity_micromap", "VK_KHR_opacity_micromap" },
{ "VK_EXT_load_store_op_none", "VK_KHR_load_store_op_none" }, { "VK_EXT_load_store_op_none", "VK_KHR_load_store_op_none" },
{ "VK_KHR_maintenance4", "VK_VERSION_1_3" }, { "VK_KHR_maintenance4", "VK_VERSION_1_3" },
{ "VK_KHR_shader_subgroup_rotate", "VK_VERSION_1_4" }, { "VK_KHR_shader_subgroup_rotate", "VK_VERSION_1_4" },
@@ -3316,7 +3472,10 @@ namespace VULKAN_HPP_NAMESPACE
return "VK_NV_cluster_acceleration_structure"; return "VK_NV_cluster_acceleration_structure";
} }
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
if ( extension == "VK_NV_per_stage_descriptor_set" )
{
return "VK_EXT_descriptor_heap";
}
return ""; return "";
} }
@@ -3685,6 +3844,10 @@ namespace VULKAN_HPP_NAMESPACE
{ {
return "VK_VERSION_1_3"; return "VK_VERSION_1_3";
} }
if ( extension == "VK_EXT_device_fault" )
{
return "VK_KHR_device_fault";
}
if ( extension == "VK_ARM_rasterization_order_attachment_access" ) if ( extension == "VK_ARM_rasterization_order_attachment_access" )
{ {
return "VK_EXT_rasterization_order_attachment_access"; return "VK_EXT_rasterization_order_attachment_access";
@@ -3709,6 +3872,10 @@ namespace VULKAN_HPP_NAMESPACE
{ {
return "VK_KHR_global_priority"; return "VK_KHR_global_priority";
} }
if ( extension == "VK_EXT_opacity_micromap" )
{
return "VK_KHR_opacity_micromap";
}
if ( extension == "VK_EXT_load_store_op_none" ) if ( extension == "VK_EXT_load_store_op_none" )
{ {
return "VK_KHR_load_store_op_none"; return "VK_KHR_load_store_op_none";
@@ -3804,7 +3971,7 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
|| ( extension == "VK_NV_displacement_micromap" ) || ( extension == "VK_NV_displacement_micromap" )
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
|| false; || ( extension == "VK_NV_per_stage_descriptor_set" );
} }
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeviceExtension( std::string const & extension ) VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isDeviceExtension( std::string const & extension )
@@ -3859,7 +4026,7 @@ namespace VULKAN_HPP_NAMESPACE
|| ( extension == "VK_ANDROID_external_memory_android_hardware_buffer" ) || ( extension == "VK_ANDROID_external_memory_android_hardware_buffer" )
#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
|| ( extension == "VK_EXT_sampler_filter_minmax" ) || ( extension == "VK_KHR_storage_buffer_storage_class" ) || || ( extension == "VK_EXT_sampler_filter_minmax" ) || ( extension == "VK_KHR_storage_buffer_storage_class" ) ||
( extension == "VK_AMD_gpu_shader_int16" ) ( extension == "VK_AMD_gpu_shader_int16" ) || ( extension == "VK_AMD_gpa_interface" )
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
|| ( extension == "VK_AMDX_shader_enqueue" ) || ( extension == "VK_AMDX_shader_enqueue" )
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -3879,7 +4046,8 @@ namespace VULKAN_HPP_NAMESPACE
|| ( extension == "VK_NV_shading_rate_image" ) || ( extension == "VK_NV_ray_tracing" ) || ( extension == "VK_NV_representative_fragment_test" ) || || ( extension == "VK_NV_shading_rate_image" ) || ( extension == "VK_NV_ray_tracing" ) || ( extension == "VK_NV_representative_fragment_test" ) ||
( extension == "VK_KHR_maintenance3" ) || ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_filter_cubic" ) || ( extension == "VK_KHR_maintenance3" ) || ( extension == "VK_KHR_draw_indirect_count" ) || ( extension == "VK_EXT_filter_cubic" ) ||
( extension == "VK_QCOM_render_pass_shader_resolve" ) || ( extension == "VK_QCOM_cooperative_matrix_conversion" ) || ( extension == "VK_QCOM_render_pass_shader_resolve" ) || ( extension == "VK_QCOM_cooperative_matrix_conversion" ) ||
( extension == "VK_EXT_global_priority" ) || ( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) || ( extension == "VK_QCOM_elapsed_timer_query" ) || ( extension == "VK_EXT_global_priority" ) ||
( extension == "VK_KHR_shader_subgroup_extended_types" ) || ( extension == "VK_KHR_8bit_storage" ) ||
( extension == "VK_EXT_external_memory_host" ) || ( extension == "VK_AMD_buffer_marker" ) || ( extension == "VK_KHR_shader_atomic_int64" ) || ( extension == "VK_EXT_external_memory_host" ) || ( extension == "VK_AMD_buffer_marker" ) || ( extension == "VK_KHR_shader_atomic_int64" ) ||
( extension == "VK_KHR_shader_clock" ) || ( extension == "VK_AMD_pipeline_compiler_control" ) || ( extension == "VK_EXT_calibrated_timestamps" ) || ( extension == "VK_KHR_shader_clock" ) || ( extension == "VK_AMD_pipeline_compiler_control" ) || ( extension == "VK_EXT_calibrated_timestamps" ) ||
( extension == "VK_AMD_shader_core_properties" ) || ( extension == "VK_KHR_video_decode_h265" ) || ( extension == "VK_KHR_global_priority" ) || ( extension == "VK_AMD_shader_core_properties" ) || ( extension == "VK_KHR_video_decode_h265" ) || ( extension == "VK_KHR_global_priority" ) ||
@@ -3900,12 +4068,12 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_GOOGLE_hlsl_functionality1" ) || ( extension == "VK_GOOGLE_decorate_string" ) || ( extension == "VK_GOOGLE_hlsl_functionality1" ) || ( extension == "VK_GOOGLE_decorate_string" ) ||
( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_fragment_shading_rate" ) || ( extension == "VK_EXT_subgroup_size_control" ) || ( extension == "VK_KHR_fragment_shading_rate" ) ||
( extension == "VK_AMD_shader_core_properties2" ) || ( extension == "VK_AMD_device_coherent_memory" ) || ( extension == "VK_AMD_shader_core_properties2" ) || ( extension == "VK_AMD_device_coherent_memory" ) ||
( extension == "VK_KHR_dynamic_rendering_local_read" ) || ( extension == "VK_EXT_shader_image_atomic_int64" ) || ( extension == "VK_KHR_shader_constant_data" ) || ( extension == "VK_KHR_dynamic_rendering_local_read" ) || ( extension == "VK_KHR_shader_abort" ) ||
( extension == "VK_KHR_shader_quad_control" ) || ( extension == "VK_KHR_spirv_1_4" ) || ( extension == "VK_EXT_memory_budget" ) || ( extension == "VK_EXT_shader_image_atomic_int64" ) || ( extension == "VK_KHR_shader_quad_control" ) || ( extension == "VK_KHR_spirv_1_4" ) ||
( extension == "VK_EXT_memory_priority" ) || ( extension == "VK_NV_dedicated_allocation_image_aliasing" ) || ( extension == "VK_EXT_memory_budget" ) || ( extension == "VK_EXT_memory_priority" ) ||
( extension == "VK_KHR_separate_depth_stencil_layouts" ) || ( extension == "VK_EXT_buffer_device_address" ) || ( extension == "VK_NV_dedicated_allocation_image_aliasing" ) || ( extension == "VK_KHR_separate_depth_stencil_layouts" ) ||
( extension == "VK_EXT_tooling_info" ) || ( extension == "VK_EXT_separate_stencil_usage" ) || ( extension == "VK_KHR_present_wait" ) || ( extension == "VK_EXT_buffer_device_address" ) || ( extension == "VK_EXT_tooling_info" ) || ( extension == "VK_EXT_separate_stencil_usage" ) ||
( extension == "VK_NV_cooperative_matrix" ) || ( extension == "VK_NV_coverage_reduction_mode" ) || ( extension == "VK_KHR_present_wait" ) || ( extension == "VK_NV_cooperative_matrix" ) || ( extension == "VK_NV_coverage_reduction_mode" ) ||
( extension == "VK_EXT_fragment_shader_interlock" ) || ( extension == "VK_EXT_ycbcr_image_arrays" ) || ( extension == "VK_EXT_fragment_shader_interlock" ) || ( extension == "VK_EXT_ycbcr_image_arrays" ) ||
( extension == "VK_KHR_uniform_buffer_standard_layout" ) || ( extension == "VK_EXT_provoking_vertex" ) ( extension == "VK_KHR_uniform_buffer_standard_layout" ) || ( extension == "VK_EXT_provoking_vertex" )
#if defined( VK_USE_PLATFORM_WIN32_KHR ) #if defined( VK_USE_PLATFORM_WIN32_KHR )
@@ -3924,7 +4092,8 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_KHR_pipeline_library" ) || ( extension == "VK_NV_present_barrier" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) || ( extension == "VK_KHR_pipeline_library" ) || ( extension == "VK_NV_present_barrier" ) || ( extension == "VK_KHR_shader_non_semantic_info" ) ||
( extension == "VK_KHR_present_id" ) || ( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) || ( extension == "VK_KHR_present_id" ) || ( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) ||
( extension == "VK_KHR_video_encode_queue" ) || ( extension == "VK_NV_device_diagnostics_config" ) || ( extension == "VK_KHR_video_encode_queue" ) || ( extension == "VK_NV_device_diagnostics_config" ) ||
( extension == "VK_QCOM_render_pass_store_ops" ) ( extension == "VK_QCOM_render_pass_store_ops" ) || ( extension == "VK_QCOM_queue_perf_hint" ) || ( extension == "VK_QCOM_image_processing3" ) ||
( extension == "VK_QCOM_shader_multiple_wait_queues" ) || ( extension == "VK_EXT_shader_split_barrier" )
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
|| ( extension == "VK_NV_cuda_kernel_launch" ) || ( extension == "VK_NV_cuda_kernel_launch" )
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
@@ -3932,12 +4101,12 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_USE_PLATFORM_METAL_EXT ) #if defined( VK_USE_PLATFORM_METAL_EXT )
|| ( extension == "VK_EXT_metal_objects" ) || ( extension == "VK_EXT_metal_objects" )
#endif /*VK_USE_PLATFORM_METAL_EXT*/ #endif /*VK_USE_PLATFORM_METAL_EXT*/
|| ( extension == "VK_KHR_synchronization2" ) || ( extension == "VK_EXT_descriptor_buffer" ) || ( extension == "VK_EXT_graphics_pipeline_library" ) || || ( extension == "VK_KHR_synchronization2" ) || ( extension == "VK_EXT_descriptor_buffer" ) || ( extension == "VK_KHR_device_address_commands" ) ||
( extension == "VK_AMD_shader_early_and_late_fragment_tests" ) || ( extension == "VK_KHR_fragment_shader_barycentric" ) || ( extension == "VK_EXT_graphics_pipeline_library" ) || ( extension == "VK_AMD_shader_early_and_late_fragment_tests" ) ||
( extension == "VK_KHR_shader_subgroup_uniform_control_flow" ) || ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_KHR_fragment_shader_barycentric" ) || ( extension == "VK_KHR_shader_subgroup_uniform_control_flow" ) ||
( extension == "VK_NV_fragment_shading_rate_enums" ) || ( extension == "VK_NV_ray_tracing_motion_blur" ) || ( extension == "VK_EXT_mesh_shader" ) || ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_NV_fragment_shading_rate_enums" ) ||
( extension == "VK_EXT_ycbcr_2plane_444_formats" ) || ( extension == "VK_EXT_fragment_density_map2" ) || ( extension == "VK_NV_ray_tracing_motion_blur" ) || ( extension == "VK_EXT_mesh_shader" ) || ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) ||
( extension == "VK_QCOM_rotated_copy_commands" ) || ( extension == "VK_EXT_image_robustness" ) || ( extension == "VK_EXT_fragment_density_map2" ) || ( extension == "VK_QCOM_rotated_copy_commands" ) || ( extension == "VK_EXT_image_robustness" ) ||
( extension == "VK_KHR_workgroup_memory_explicit_layout" ) || ( extension == "VK_KHR_copy_commands2" ) || ( extension == "VK_KHR_workgroup_memory_explicit_layout" ) || ( extension == "VK_KHR_copy_commands2" ) ||
( extension == "VK_EXT_image_compression_control" ) || ( extension == "VK_EXT_attachment_feedback_loop_layout" ) || ( extension == "VK_EXT_image_compression_control" ) || ( extension == "VK_EXT_attachment_feedback_loop_layout" ) ||
( extension == "VK_EXT_4444_formats" ) || ( extension == "VK_EXT_device_fault" ) || ( extension == "VK_EXT_4444_formats" ) || ( extension == "VK_EXT_device_fault" ) ||
@@ -3997,12 +4166,13 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) || ( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) ||
( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_KHR_internally_synchronized_queues" ) || ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_KHR_internally_synchronized_queues" ) ||
( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_ARM_data_graph" ) || ( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_ARM_data_graph" ) ||
( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_KHR_compute_shader_derivatives" ) || ( extension == "VK_ARM_data_graph_instruction_set_tosa" ) || ( extension == "VK_QCOM_multiview_per_view_render_areas" ) ||
( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_encode_av1" ) || ( extension == "VK_KHR_video_decode_vp9" ) || ( extension == "VK_KHR_compute_shader_derivatives" ) || ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_encode_av1" ) ||
( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) || ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_KHR_video_decode_vp9" ) || ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) ||
( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) ||
( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) ||
( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_unified_image_layouts" ) || ( extension == "VK_KHR_shader_float_controls2" ) ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) ||
( extension == "VK_KHR_unified_image_layouts" ) || ( extension == "VK_KHR_shader_float_controls2" )
#if defined( VK_USE_PLATFORM_SCREEN_QNX ) #if defined( VK_USE_PLATFORM_SCREEN_QNX )
|| ( extension == "VK_QNX_external_memory_screen_buffer" ) || ( extension == "VK_QNX_external_memory_screen_buffer" )
#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
@@ -4017,25 +4187,25 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_EXT_shader_replicated_composites" ) || ( extension == "VK_EXT_shader_float8" ) || ( extension == "VK_EXT_shader_replicated_composites" ) || ( extension == "VK_EXT_shader_float8" ) ||
( extension == "VK_NV_ray_tracing_validation" ) || ( extension == "VK_NV_cluster_acceleration_structure" ) || ( extension == "VK_NV_ray_tracing_validation" ) || ( extension == "VK_NV_cluster_acceleration_structure" ) ||
( extension == "VK_NV_partitioned_acceleration_structure" ) || ( extension == "VK_EXT_device_generated_commands" ) || ( extension == "VK_NV_partitioned_acceleration_structure" ) || ( extension == "VK_EXT_device_generated_commands" ) ||
( extension == "VK_KHR_maintenance8" ) || ( extension == "VK_MESA_image_alignment_control" ) || ( extension == "VK_KHR_shader_fma" ) || ( extension == "VK_KHR_device_fault" ) || ( extension == "VK_KHR_maintenance8" ) || ( extension == "VK_MESA_image_alignment_control" ) ||
( extension == "VK_NV_push_constant_bank" ) || ( extension == "VK_EXT_ray_tracing_invocation_reorder" ) || ( extension == "VK_KHR_shader_fma" ) || ( extension == "VK_NV_push_constant_bank" ) || ( extension == "VK_EXT_ray_tracing_invocation_reorder" ) ||
( extension == "VK_EXT_depth_clamp_control" ) || ( extension == "VK_KHR_maintenance9" ) || ( extension == "VK_KHR_video_maintenance2" ) || ( extension == "VK_EXT_depth_clamp_control" ) || ( extension == "VK_KHR_maintenance9" ) || ( extension == "VK_KHR_video_maintenance2" ) ||
( extension == "VK_HUAWEI_hdr_vivid" ) || ( extension == "VK_NV_cooperative_matrix2" ) || ( extension == "VK_ARM_pipeline_opacity_micromap" ) ( extension == "VK_HUAWEI_hdr_vivid" ) || ( extension == "VK_NV_cooperative_matrix2" ) || ( extension == "VK_ARM_pipeline_opacity_micromap" )
#if defined( VK_USE_PLATFORM_METAL_EXT ) #if defined( VK_USE_PLATFORM_METAL_EXT )
|| ( extension == "VK_EXT_external_memory_metal" ) || ( extension == "VK_EXT_external_memory_metal" )
#endif /*VK_USE_PLATFORM_METAL_EXT*/ #endif /*VK_USE_PLATFORM_METAL_EXT*/
|| ( extension == "VK_KHR_depth_clamp_zero_one" ) || ( extension == "VK_ARM_performance_counters_by_region" ) || || ( extension == "VK_KHR_depth_clamp_zero_one" ) || ( extension == "VK_ARM_performance_counters_by_region" ) ||
( extension == "VK_EXT_vertex_attribute_robustness" ) || ( extension == "VK_ARM_format_pack" ) || ( extension == "VK_ARM_shader_instrumentation" ) || ( extension == "VK_EXT_vertex_attribute_robustness" ) || ( extension == "VK_ARM_format_pack" ) ||
( extension == "VK_VALVE_fragment_density_map_layered" ) || ( extension == "VK_KHR_robustness2" ) ( extension == "VK_VALVE_fragment_density_map_layered" ) || ( extension == "VK_KHR_robustness2" ) || ( extension == "VK_NV_present_metering" ) ||
#if defined( VK_ENABLE_BETA_EXTENSIONS ) ( extension == "VK_EXT_fragment_density_map_offset" ) || ( extension == "VK_EXT_zero_initialize_device_memory" ) ||
|| ( extension == "VK_NV_present_metering" ) ( extension == "VK_KHR_present_mode_fifo_latest_ready" ) || ( extension == "VK_KHR_opacity_micromap" ) ||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ ( extension == "VK_EXT_shader_64bit_indexing" ) || ( extension == "VK_EXT_custom_resolve" ) || ( extension == "VK_QCOM_data_graph_model" ) ||
|| ( extension == "VK_EXT_fragment_density_map_offset" ) || ( extension == "VK_EXT_zero_initialize_device_memory" ) || ( extension == "VK_KHR_maintenance10" ) || ( extension == "VK_ARM_data_graph_optical_flow" ) || ( extension == "VK_EXT_shader_long_vector" ) ||
( extension == "VK_KHR_present_mode_fifo_latest_ready" ) || ( extension == "VK_EXT_shader_64bit_indexing" ) || ( extension == "VK_SEC_pipeline_cache_incremental_mode" ) || ( extension == "VK_EXT_shader_uniform_buffer_unsized_array" ) ||
( extension == "VK_EXT_custom_resolve" ) || ( extension == "VK_QCOM_data_graph_model" ) || ( extension == "VK_KHR_maintenance10" ) || ( extension == "VK_NV_compute_occupancy_priority" ) || ( extension == "VK_KHR_maintenance11" ) ||
( extension == "VK_EXT_shader_long_vector" ) || ( extension == "VK_SEC_pipeline_cache_incremental_mode" ) || ( extension == "VK_EXT_shader_subgroup_partitioned" ) || ( extension == "VK_VALVE_shader_mixed_float_dot_product" ) ||
( extension == "VK_EXT_shader_uniform_buffer_unsized_array" ) || ( extension == "VK_NV_compute_occupancy_priority" ) || ( extension == "VK_SEC_throttle_hint" ) || ( extension == "VK_ARM_data_graph_neural_accelerator_statistics" ) ||
( extension == "VK_EXT_shader_subgroup_partitioned" ); ( extension == "VK_EXT_primitive_restart_index" );
} }
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension ) VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
@@ -4100,6 +4270,9 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_USE_PLATFORM_OHOS ) #if defined( VK_USE_PLATFORM_OHOS )
|| ( extension == "VK_OHOS_surface" ) || ( extension == "VK_OHOS_surface" )
#endif /*VK_USE_PLATFORM_OHOS*/ #endif /*VK_USE_PLATFORM_OHOS*/
#if defined( VK_USE_PLATFORM_UBM_SEC )
|| ( extension == "VK_SEC_ubm_surface" )
#endif /*VK_USE_PLATFORM_UBM_SEC*/
; ;
} }
@@ -4149,13 +4322,13 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) || ( extension == "VK_KHR_synchronization2" ) || ( extension == "VK_EXT_private_data" ) || ( extension == "VK_EXT_pipeline_creation_cache_control" ) || ( extension == "VK_KHR_synchronization2" ) ||
( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) || ( extension == "VK_KHR_zero_initialize_workgroup_memory" ) || ( extension == "VK_EXT_ycbcr_2plane_444_formats" ) ||
( extension == "VK_EXT_image_robustness" ) || ( extension == "VK_KHR_copy_commands2" ) || ( extension == "VK_EXT_4444_formats" ) || ( extension == "VK_EXT_image_robustness" ) || ( extension == "VK_KHR_copy_commands2" ) || ( extension == "VK_EXT_4444_formats" ) ||
( extension == "VK_ARM_rasterization_order_attachment_access" ) || ( extension == "VK_VALVE_mutable_descriptor_type" ) || ( extension == "VK_EXT_device_fault" ) || ( extension == "VK_ARM_rasterization_order_attachment_access" ) ||
( extension == "VK_KHR_format_feature_flags2" ) || ( extension == "VK_EXT_present_mode_fifo_latest_ready" ) || ( extension == "VK_VALVE_mutable_descriptor_type" ) || ( extension == "VK_KHR_format_feature_flags2" ) ||
( extension == "VK_EXT_extended_dynamic_state2" ) || ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_EXT_present_mode_fifo_latest_ready" ) || ( extension == "VK_EXT_extended_dynamic_state2" ) ||
( extension == "VK_EXT_load_store_op_none" ) || ( extension == "VK_KHR_maintenance4" ) || ( extension == "VK_KHR_shader_subgroup_rotate" ) || ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_EXT_opacity_micromap" ) || ( extension == "VK_EXT_load_store_op_none" ) ||
( extension == "VK_EXT_depth_clamp_zero_one" ) || ( extension == "VK_QCOM_fragment_density_map_offset" ) || ( extension == "VK_KHR_maintenance4" ) || ( extension == "VK_KHR_shader_subgroup_rotate" ) || ( extension == "VK_EXT_depth_clamp_zero_one" ) ||
( extension == "VK_NV_copy_memory_indirect" ) || ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_QCOM_fragment_density_map_offset" ) || ( extension == "VK_NV_copy_memory_indirect" ) ||
( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) ||
( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) ||
( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_shader_float_controls2" ) || ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_shader_float_controls2" ) || ( extension == "VK_KHR_index_type_uint8" ) ||
( extension == "VK_KHR_line_rasterization" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) || ( extension == "VK_KHR_line_rasterization" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) ||
+109 -30
View File
@@ -8,7 +8,11 @@
#ifndef VULKAN_FORMAT_TRAITS_HPP #ifndef VULKAN_FORMAT_TRAITS_HPP
#define VULKAN_FORMAT_TRAITS_HPP #define VULKAN_FORMAT_TRAITS_HPP
#include <vulkan/vulkan.hpp> #if defined( VULKAN_HPP_CXX_MODULE )
# define VULKAN_HPP_EXPORT export
#else
# include <vulkan/vulkan.hpp>
#endif
namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_NAMESPACE
{ {
@@ -19,92 +23,92 @@ namespace VULKAN_HPP_NAMESPACE
//=== Function Declarations === //=== Function Declarations ===
// The three-dimensional extent of a texel block. // The three-dimensional extent of a texel block.
VULKAN_HPP_CONSTEXPR_14 std::array<uint8_t, 3> blockExtent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 std::array<uint8_t, 3> blockExtent( Format format );
// The texel block size in bytes. // The texel block size in bytes.
VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( Format format );
// The class of the format (can't be just named "class"!) // The class of the format (can't be just named "class"!)
VULKAN_HPP_CONSTEXPR_14 char const * compatibilityClass( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 char const * compatibilityClass( Format format );
// The number of bits in this component, if not compressed, otherwise 0. // The number of bits in this component, if not compressed, otherwise 0.
VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( Format format, uint8_t component ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( Format format, uint8_t component );
// The number of components of this format. // The number of components of this format.
VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( Format format );
// The name of the component // The name of the component
VULKAN_HPP_CONSTEXPR_14 char const * componentName( Format format, uint8_t component ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 char const * componentName( Format format, uint8_t component );
// The numeric format of the component // The numeric format of the component
VULKAN_HPP_CONSTEXPR_14 char const * componentNumericFormat( Format format, uint8_t component ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 char const * componentNumericFormat( Format format, uint8_t component );
// The plane this component lies in. // The plane this component lies in.
VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( Format format, uint8_t component ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( Format format, uint8_t component );
// True, if the components of this format are compressed, otherwise false. // True, if the components of this format are compressed, otherwise false.
VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( Format format );
// A textual description of the compression scheme, or an empty string if it is not compressed // A textual description of the compression scheme, or an empty string if it is not compressed
VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( Format format );
// Get all formats // Get all formats
std::vector<Format> const & getAllFormats(); VULKAN_HPP_EXPORT std::vector<Format> const & getAllFormats();
// Get all color with a color component // Get all color with a color component
std::vector<Format> const & getColorFormats(); VULKAN_HPP_EXPORT std::vector<Format> const & getColorFormats();
// Get all formats with a depth component // Get all formats with a depth component
std::vector<Format> const & getDepthFormats(); VULKAN_HPP_EXPORT std::vector<Format> const & getDepthFormats();
// Get all formats with a depth and a stencil component // Get all formats with a depth and a stencil component
std::vector<Format> const & getDepthStencilFormats(); VULKAN_HPP_EXPORT std::vector<Format> const & getDepthStencilFormats();
// Get all formats with a stencil component // Get all formats with a stencil component
std::vector<Format> const & getStencilFormats(); VULKAN_HPP_EXPORT std::vector<Format> const & getStencilFormats();
// True, if this format has an alpha component // True, if this format has an alpha component
VULKAN_HPP_CONSTEXPR_14 bool hasAlphaComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasAlphaComponent( Format format );
// True, if this format has a blue component // True, if this format has a blue component
VULKAN_HPP_CONSTEXPR_14 bool hasBlueComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasBlueComponent( Format format );
// True, if this format has a depth component // True, if this format has a depth component
VULKAN_HPP_CONSTEXPR_14 bool hasDepthComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasDepthComponent( Format format );
// True, if this format has a green component // True, if this format has a green component
VULKAN_HPP_CONSTEXPR_14 bool hasGreenComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasGreenComponent( Format format );
// True, if this format has a red component // True, if this format has a red component
VULKAN_HPP_CONSTEXPR_14 bool hasRedComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasRedComponent( Format format );
// True, if this format has a stencil component // True, if this format has a stencil component
VULKAN_HPP_CONSTEXPR_14 bool hasStencilComponent( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool hasStencilComponent( Format format );
// True, if the format is a color // True, if the format is a color
VULKAN_HPP_CONSTEXPR_14 bool isColor( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool isColor( Format format );
// True, if this format is a compressed one. // True, if this format is a compressed one.
VULKAN_HPP_CONSTEXPR_14 bool isCompressed( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 bool isCompressed( Format format );
// The number of bits into which the format is packed. A single image element in this format can be stored in the same space as a scalar type of this bit // The number of bits into which the format is packed. A single image element in this format can be stored in the same space as a scalar type of this bit
// width. // width.
VULKAN_HPP_CONSTEXPR_14 uint8_t packed( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t packed( Format format );
// The single-plane format that this plane is compatible with. // The single-plane format that this plane is compatible with.
VULKAN_HPP_CONSTEXPR_14 Format planeCompatibleFormat( Format format, uint8_t plane ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 Format planeCompatibleFormat( Format format, uint8_t plane );
// The number of image planes of this format. // The number of image planes of this format.
VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( Format format );
// The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format. // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format.
VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( Format format, uint8_t plane ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( Format format, uint8_t plane );
// The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format. // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format.
VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( Format format, uint8_t plane ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( Format format, uint8_t plane );
// The number of texels in a texel block. // The number of texels in a texel block.
VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( Format format ); VULKAN_HPP_EXPORT VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( Format format );
//=== Function Definitions === //=== Function Definitions ===
@@ -516,6 +520,9 @@ namespace VULKAN_HPP_NAMESPACE
case Format::eAstc6x6x6SrgbBlockEXT : return 16; case Format::eAstc6x6x6SrgbBlockEXT : return 16;
case Format::eAstc6x6x6SfloatBlockEXT : return 16; case Format::eAstc6x6x6SfloatBlockEXT : return 16;
case Format::eR8BoolARM : return 1; case Format::eR8BoolARM : return 1;
case Format::eR16SfloatFpencodingBfloat16ARM : return 2;
case Format::eR8SfloatFpencodingFloat8E4M3ARM : return 1;
case Format::eR8SfloatFpencodingFloat8E5M2ARM : return 1;
case Format::eR16G16Sfixed5NV : return 4; case Format::eR16G16Sfixed5NV : return 4;
case Format::eR10X6UintPack16ARM : return 2; case Format::eR10X6UintPack16ARM : return 2;
case Format::eR10X6G10X6Uint2Pack16ARM : return 4; case Format::eR10X6G10X6Uint2Pack16ARM : return 4;
@@ -820,6 +827,9 @@ namespace VULKAN_HPP_NAMESPACE
case Format::eAstc6x6x6SrgbBlockEXT : return "ASTC_6x6x6"; case Format::eAstc6x6x6SrgbBlockEXT : return "ASTC_6x6x6";
case Format::eAstc6x6x6SfloatBlockEXT : return "ASTC_6x6x6"; case Format::eAstc6x6x6SfloatBlockEXT : return "ASTC_6x6x6";
case Format::eR8BoolARM : return "8-bit"; case Format::eR8BoolARM : return "8-bit";
case Format::eR16SfloatFpencodingBfloat16ARM : return "16-bit";
case Format::eR8SfloatFpencodingFloat8E4M3ARM : return "8-bit";
case Format::eR8SfloatFpencodingFloat8E5M2ARM : return "8-bit";
case Format::eR16G16Sfixed5NV : return "32-bit"; case Format::eR16G16Sfixed5NV : return "32-bit";
case Format::eR10X6UintPack16ARM : return "16-bit"; case Format::eR10X6UintPack16ARM : return "16-bit";
case Format::eR10X6G10X6Uint2Pack16ARM : return "32-bit"; case Format::eR10X6G10X6Uint2Pack16ARM : return "32-bit";
@@ -2237,6 +2247,24 @@ namespace VULKAN_HPP_NAMESPACE
case 0 : return 8; case 0 : return 8;
default: VULKAN_HPP_ASSERT( false ); return 0; default: VULKAN_HPP_ASSERT( false ); return 0;
} }
case Format::eR16SfloatFpencodingBfloat16ARM:
switch ( component )
{
case 0 : return 16;
default: VULKAN_HPP_ASSERT( false ); return 0;
}
case Format::eR8SfloatFpencodingFloat8E4M3ARM:
switch ( component )
{
case 0 : return 8;
default: VULKAN_HPP_ASSERT( false ); return 0;
}
case Format::eR8SfloatFpencodingFloat8E5M2ARM:
switch ( component )
{
case 0 : return 8;
default: VULKAN_HPP_ASSERT( false ); return 0;
}
case Format::eR16G16Sfixed5NV: case Format::eR16G16Sfixed5NV:
switch ( component ) switch ( component )
{ {
@@ -2637,6 +2665,9 @@ namespace VULKAN_HPP_NAMESPACE
case Format::eAstc6x6x6SrgbBlockEXT : return 4; case Format::eAstc6x6x6SrgbBlockEXT : return 4;
case Format::eAstc6x6x6SfloatBlockEXT : return 4; case Format::eAstc6x6x6SfloatBlockEXT : return 4;
case Format::eR8BoolARM : return 1; case Format::eR8BoolARM : return 1;
case Format::eR16SfloatFpencodingBfloat16ARM : return 1;
case Format::eR8SfloatFpencodingFloat8E4M3ARM : return 1;
case Format::eR8SfloatFpencodingFloat8E5M2ARM : return 1;
case Format::eR16G16Sfixed5NV : return 2; case Format::eR16G16Sfixed5NV : return 2;
case Format::eR10X6UintPack16ARM : return 1; case Format::eR10X6UintPack16ARM : return 1;
case Format::eR10X6G10X6Uint2Pack16ARM : return 2; case Format::eR10X6G10X6Uint2Pack16ARM : return 2;
@@ -4956,6 +4987,24 @@ namespace VULKAN_HPP_NAMESPACE
case 0 : return "R"; case 0 : return "R";
default: VULKAN_HPP_ASSERT( false ); return ""; default: VULKAN_HPP_ASSERT( false ); return "";
} }
case Format::eR16SfloatFpencodingBfloat16ARM:
switch ( component )
{
case 0 : return "R";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR8SfloatFpencodingFloat8E4M3ARM:
switch ( component )
{
case 0 : return "R";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR8SfloatFpencodingFloat8E5M2ARM:
switch ( component )
{
case 0 : return "R";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR16G16Sfixed5NV: case Format::eR16G16Sfixed5NV:
switch ( component ) switch ( component )
{ {
@@ -7371,6 +7420,24 @@ namespace VULKAN_HPP_NAMESPACE
case 0 : return "BOOL"; case 0 : return "BOOL";
default: VULKAN_HPP_ASSERT( false ); return ""; default: VULKAN_HPP_ASSERT( false ); return "";
} }
case Format::eR16SfloatFpencodingBfloat16ARM:
switch ( component )
{
case 0 : return "SFLOAT";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR8SfloatFpencodingFloat8E4M3ARM:
switch ( component )
{
case 0 : return "SFLOAT";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR8SfloatFpencodingFloat8E5M2ARM:
switch ( component )
{
case 0 : return "SFLOAT";
default: VULKAN_HPP_ASSERT( false ); return "";
}
case Format::eR16G16Sfixed5NV: case Format::eR16G16Sfixed5NV:
switch ( component ) switch ( component )
{ {
@@ -8214,6 +8281,9 @@ namespace VULKAN_HPP_NAMESPACE
Format::eAstc6x6x6SrgbBlockEXT, Format::eAstc6x6x6SrgbBlockEXT,
Format::eAstc6x6x6SfloatBlockEXT, Format::eAstc6x6x6SfloatBlockEXT,
Format::eR8BoolARM, Format::eR8BoolARM,
Format::eR16SfloatFpencodingBfloat16ARM,
Format::eR8SfloatFpencodingFloat8E4M3ARM,
Format::eR8SfloatFpencodingFloat8E5M2ARM,
Format::eR16G16Sfixed5NV, Format::eR16G16Sfixed5NV,
Format::eR10X6UintPack16ARM, Format::eR10X6UintPack16ARM,
Format::eR10X6G10X6Uint2Pack16ARM, Format::eR10X6G10X6Uint2Pack16ARM,
@@ -8507,6 +8577,9 @@ namespace VULKAN_HPP_NAMESPACE
Format::eAstc6x6x6SrgbBlockEXT, Format::eAstc6x6x6SrgbBlockEXT,
Format::eAstc6x6x6SfloatBlockEXT, Format::eAstc6x6x6SfloatBlockEXT,
Format::eR8BoolARM, Format::eR8BoolARM,
Format::eR16SfloatFpencodingBfloat16ARM,
Format::eR8SfloatFpencodingFloat8E4M3ARM,
Format::eR8SfloatFpencodingFloat8E5M2ARM,
Format::eR16G16Sfixed5NV, Format::eR16G16Sfixed5NV,
Format::eR10X6UintPack16ARM, Format::eR10X6UintPack16ARM,
Format::eR10X6G10X6Uint2Pack16ARM, Format::eR10X6G10X6Uint2Pack16ARM,
@@ -9496,6 +9569,9 @@ namespace VULKAN_HPP_NAMESPACE
case Format::eAstc6x6x6SrgbBlockEXT: case Format::eAstc6x6x6SrgbBlockEXT:
case Format::eAstc6x6x6SfloatBlockEXT: case Format::eAstc6x6x6SfloatBlockEXT:
case Format::eR8BoolARM: case Format::eR8BoolARM:
case Format::eR16SfloatFpencodingBfloat16ARM:
case Format::eR8SfloatFpencodingFloat8E4M3ARM:
case Format::eR8SfloatFpencodingFloat8E5M2ARM:
case Format::eR16G16Sfixed5NV: case Format::eR16G16Sfixed5NV:
case Format::eR10X6UintPack16ARM: case Format::eR10X6UintPack16ARM:
case Format::eR10X6G10X6Uint2Pack16ARM: case Format::eR10X6G10X6Uint2Pack16ARM:
@@ -10552,6 +10628,9 @@ namespace VULKAN_HPP_NAMESPACE
case Format::eAstc6x6x6SrgbBlockEXT : return 216; case Format::eAstc6x6x6SrgbBlockEXT : return 216;
case Format::eAstc6x6x6SfloatBlockEXT : return 216; case Format::eAstc6x6x6SfloatBlockEXT : return 216;
case Format::eR8BoolARM : return 1; case Format::eR8BoolARM : return 1;
case Format::eR16SfloatFpencodingBfloat16ARM : return 1;
case Format::eR8SfloatFpencodingFloat8E4M3ARM : return 1;
case Format::eR8SfloatFpencodingFloat8E5M2ARM : return 1;
case Format::eR16G16Sfixed5NV : return 1; case Format::eR16G16Sfixed5NV : return 1;
case Format::eR10X6UintPack16ARM : return 1; case Format::eR10X6UintPack16ARM : return 1;
case Format::eR10X6G10X6Uint2Pack16ARM : return 1; case Format::eR10X6G10X6Uint2Pack16ARM : return 1;
+6369 -5486
View File
File diff suppressed because it is too large Load Diff
+2924 -1821
View File
File diff suppressed because it is too large Load Diff
+1257 -80
View File
File diff suppressed because it is too large Load Diff
+34 -15
View File
@@ -87,6 +87,23 @@
# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
#endif #endif
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) && !defined( VULKAN_HPP_CXX_MODULE )
# include <dlfcn.h>
# elif defined( _WIN32 ) && !defined( VULKAN_HPP_NO_WIN32_PROTOTYPES )
using HINSTANCE = struct HINSTANCE__ *;
# if defined( _WIN64 )
# include <cstdint>
using FARPROC = int64_t( __stdcall * )();
# else
using FARPROC = int( __stdcall * )();
# endif
extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, char const * lpProcName );
# endif
#endif
#if !defined( __has_include ) #if !defined( __has_include )
# define __has_include( x ) false # define __has_include( x ) false
#endif #endif
@@ -99,6 +116,12 @@
# define VULKAN_HPP_SUPPORT_SPAN # define VULKAN_HPP_SUPPORT_SPAN
#endif #endif
#if defined( VULKAN_HPP_CXX_MODULE )
# define VULKAN_HPP_EXPORT export
#else
# define VULKAN_HPP_EXPORT
#endif
#if defined( VULKAN_HPP_CXX_MODULE ) && !( defined( __cpp_modules ) && defined( __cpp_lib_modules ) ) #if defined( VULKAN_HPP_CXX_MODULE ) && !( defined( __cpp_modules ) && defined( __cpp_lib_modules ) )
VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ named modules and the standard library module." ) VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ named modules and the standard library module." )
#endif #endif
@@ -175,7 +198,7 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# else # else
# define VULKAN_HPP_CONSTEXPR_17 # define VULKAN_HPP_CONSTEXPR_17
# endif # endif
# if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) ) # if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 120000 <= GCC_VERSION ) )
# define VULKAN_HPP_CONSTEXPR_20 constexpr # define VULKAN_HPP_CONSTEXPR_20 constexpr
# else # else
# define VULKAN_HPP_CONSTEXPR_20 # define VULKAN_HPP_CONSTEXPR_20
@@ -233,6 +256,14 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
#endif #endif
#if 17 <= VULKAN_HPP_CPP_VERSION
# define VULKAN_HPP_MAYBE_UNUSED [[maybe_unused]]
# define VULKAN_HPP_UNUSED( var )
#else
# define VULKAN_HPP_MAYBE_UNUSED
# define VULKAN_HPP_UNUSED( var ) ( (void)( var ) )
#endif
#if !defined( VULKAN_HPP_NAMESPACE ) #if !defined( VULKAN_HPP_NAMESPACE )
# define VULKAN_HPP_NAMESPACE vk # define VULKAN_HPP_NAMESPACE vk
#endif #endif
@@ -268,20 +299,6 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# endif # endif
#endif #endif
namespace VULKAN_HPP_NAMESPACE
{
namespace detail
{
class DispatchLoaderDynamic;
#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
# endif
#endif
} // namespace detail
} // namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE ) #if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE )
# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic # define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic
#endif #endif
@@ -312,6 +329,8 @@ namespace VULKAN_HPP_NAMESPACE
# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::detail::getDispatchLoaderStatic() # define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::detail::getDispatchLoaderStatic()
# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE # define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
# endif # endif
#else
# define VULKAN_HPP_DEFAULT_DISPATCHER_HANDLED
#endif #endif
#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
+3687 -2201
View File
File diff suppressed because it is too large Load Diff
+55 -34
View File
@@ -8,13 +8,12 @@
#ifndef VULKAN_SHARED_HPP #ifndef VULKAN_SHARED_HPP
#define VULKAN_SHARED_HPP #define VULKAN_SHARED_HPP
#include <vulkan/vulkan.hpp>
#if !defined( VULKAN_HPP_CXX_MODULE ) #if !defined( VULKAN_HPP_CXX_MODULE )
# include <atomic> // std::atomic_size_t # include <atomic> // std::atomic_size_t
# include <vulkan/vulkan.hpp>
#endif #endif
namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
{ {
#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
template <typename HandleType> template <typename HandleType>
@@ -113,8 +112,8 @@ namespace VULKAN_HPP_NAMESPACE
{ {
} }
ReferenceCounter( const ReferenceCounter & ) = delete; ReferenceCounter( ReferenceCounter const & ) = delete;
ReferenceCounter & operator=( const ReferenceCounter & ) = delete; ReferenceCounter & operator=( ReferenceCounter const & ) = delete;
public: public:
size_t addRef() VULKAN_HPP_NOEXCEPT size_t addRef() VULKAN_HPP_NOEXCEPT
@@ -148,7 +147,7 @@ namespace VULKAN_HPP_NAMESPACE
{ {
} }
SharedHandleBase( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT SharedHandleBase( SharedHandleBase const & o ) VULKAN_HPP_NOEXCEPT
{ {
o.addRef(); o.addRef();
m_handle = o.m_handle; m_handle = o.m_handle;
@@ -163,7 +162,7 @@ namespace VULKAN_HPP_NAMESPACE
o.m_control = nullptr; o.m_control = nullptr;
} }
SharedHandleBase & operator=( const SharedHandleBase & o ) VULKAN_HPP_NOEXCEPT SharedHandleBase & operator=( SharedHandleBase const & o ) VULKAN_HPP_NOEXCEPT
{ {
SharedHandleBase( o ).swap( *this ); SharedHandleBase( o ).swap( *this );
return *this; return *this;
@@ -213,7 +212,7 @@ namespace VULKAN_HPP_NAMESPACE
} }
# endif # endif
const HandleType * operator->() const VULKAN_HPP_NOEXCEPT HandleType const * operator->() const VULKAN_HPP_NOEXCEPT
{ {
return &m_handle; return &m_handle;
} }
@@ -235,25 +234,25 @@ namespace VULKAN_HPP_NAMESPACE
} }
template <typename T = HandleType> template <typename T = HandleType>
typename std::enable_if<HasDestructor<T>::value, const SharedHandle<DestructorTypeOf<HandleType>> &>::type getDestructorType() const VULKAN_HPP_NOEXCEPT typename std::enable_if<HasDestructor<T>::value, SharedHandle<DestructorTypeOf<HandleType>> const &>::type getDestructorType() const VULKAN_HPP_NOEXCEPT
{ {
return getHeader().parent; return getHeader().parent;
} }
protected: protected:
template <typename T = HandleType> template <typename T = HandleType>
static typename std::enable_if<!HasDestructor<T>::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT static typename std::enable_if<!HasDestructor<T>::value, void>::type internalDestroy( HeaderType const & control, HandleType handle ) VULKAN_HPP_NOEXCEPT
{ {
control.deleter.destroy( handle ); control.deleter.destroy( handle );
} }
template <typename T = HandleType> template <typename T = HandleType>
static typename std::enable_if<HasDestructor<T>::value, void>::type internalDestroy( const HeaderType & control, HandleType handle ) VULKAN_HPP_NOEXCEPT static typename std::enable_if<HasDestructor<T>::value, void>::type internalDestroy( HeaderType const & control, HandleType handle ) VULKAN_HPP_NOEXCEPT
{ {
control.deleter.destroy( control.parent.get(), handle ); control.deleter.destroy( control.parent.get(), handle );
} }
const HeaderType & getHeader() const VULKAN_HPP_NOEXCEPT HeaderType const & getHeader() const VULKAN_HPP_NOEXCEPT
{ {
return m_control->m_header; return m_control->m_header;
} }
@@ -295,7 +294,7 @@ namespace VULKAN_HPP_NAMESPACE
explicit SharedHandle( HandleType handle, explicit SharedHandle( HandleType handle,
SharedHandle<DestructorTypeOf<HandleType>> parent, SharedHandle<DestructorTypeOf<HandleType>> parent,
SharedHandle<typename GetPoolType<HandleType>::type> pool, SharedHandle<typename GetPoolType<HandleType>::type> pool,
const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT Dispatcher const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
: BaseType( handle, std::move( parent ), DeleterType{ std::move( pool ), dispatch } ) : BaseType( handle, std::move( parent ), DeleterType{ std::move( pool ), dispatch } )
{ {
} }
@@ -329,13 +328,13 @@ namespace VULKAN_HPP_NAMESPACE
using DestroyFunctionPointerType = using DestroyFunctionPointerType =
typename std::conditional<HasDestructor<HandleType>::value, typename std::conditional<HasDestructor<HandleType>::value,
void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const, void ( DestructorType::* )( HandleType, AllocationCallbacks const *, Dispatcher const & ) const,
void ( HandleType::* )( const AllocationCallbacks *, const Dispatcher & ) const>::type; void ( HandleType::* )( AllocationCallbacks const *, Dispatcher const & ) const>::type;
using SelectorType = typename std::conditional<HasDestructor<HandleType>::value, DestructorType, HandleType>::type; using SelectorType = typename std::conditional<HasDestructor<HandleType>::value, DestructorType, HandleType>::type;
ObjectDestroyShared( Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ASSIGNMENT( nullptr ), ObjectDestroyShared( Optional<AllocationCallbacks const> allocationCallbacks VULKAN_HPP_DEFAULT_ASSIGNMENT( nullptr ),
const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) Dispatcher const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
: m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &SelectorType::destroy ) ) ) : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &SelectorType::destroy ) ) )
, m_dispatch( &dispatch ) , m_dispatch( &dispatch )
, m_allocationCallbacks( allocationCallbacks ) , m_allocationCallbacks( allocationCallbacks )
@@ -359,8 +358,8 @@ namespace VULKAN_HPP_NAMESPACE
private: private:
DestroyFunctionPointerType m_destroy = nullptr; DestroyFunctionPointerType m_destroy = nullptr;
const Dispatcher * m_dispatch = nullptr; Dispatcher const * m_dispatch = nullptr;
Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr; Optional<AllocationCallbacks const> m_allocationCallbacks = nullptr;
}; };
template <typename HandleType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> template <typename HandleType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -369,10 +368,10 @@ namespace VULKAN_HPP_NAMESPACE
public: public:
using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType; using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const AllocationCallbacks *, const Dispatcher & ) const; using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, AllocationCallbacks const *, Dispatcher const & ) const;
ObjectFreeShared( Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ASSIGNMENT( nullptr ), ObjectFreeShared( Optional<AllocationCallbacks const> allocationCallbacks VULKAN_HPP_DEFAULT_ASSIGNMENT( nullptr ),
const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) Dispatcher const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
: m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::free ) ) ) : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::free ) ) )
, m_dispatch( &dispatch ) , m_dispatch( &dispatch )
, m_allocationCallbacks( allocationCallbacks ) , m_allocationCallbacks( allocationCallbacks )
@@ -388,8 +387,8 @@ namespace VULKAN_HPP_NAMESPACE
private: private:
DestroyFunctionPointerType m_destroy = nullptr; DestroyFunctionPointerType m_destroy = nullptr;
const Dispatcher * m_dispatch = nullptr; Dispatcher const * m_dispatch = nullptr;
Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr; Optional<AllocationCallbacks const> m_allocationCallbacks = nullptr;
}; };
template <typename HandleType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> template <typename HandleType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -398,9 +397,9 @@ namespace VULKAN_HPP_NAMESPACE
public: public:
using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType; using DestructorType = typename SharedHandleTraits<HandleType>::DestructorType;
using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, const Dispatcher & ) const; using DestroyFunctionPointerType = void ( DestructorType::* )( HandleType, Dispatcher const & ) const;
ObjectReleaseShared( const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) ObjectReleaseShared( Dispatcher const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
: m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::release ) ) ), m_dispatch( &dispatch ) : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::release ) ) ), m_dispatch( &dispatch )
{ {
} }
@@ -414,7 +413,7 @@ namespace VULKAN_HPP_NAMESPACE
private: private:
DestroyFunctionPointerType m_destroy = nullptr; DestroyFunctionPointerType m_destroy = nullptr;
const Dispatcher * m_dispatch = nullptr; Dispatcher const * m_dispatch = nullptr;
}; };
template <typename HandleType, typename PoolType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> template <typename HandleType, typename PoolType, typename Dispatcher = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -427,11 +426,11 @@ namespace VULKAN_HPP_NAMESPACE
using ReturnType = decltype( std::declval<DestructorType>().free( PoolType(), 0u, nullptr, Dispatcher() ) ); using ReturnType = decltype( std::declval<DestructorType>().free( PoolType(), 0u, nullptr, Dispatcher() ) );
using DestroyFunctionPointerType = ReturnType ( DestructorType::* )( PoolType, uint32_t, const HandleType *, const Dispatcher & ) const; using DestroyFunctionPointerType = ReturnType ( DestructorType::* )( PoolType, uint32_t, HandleType const *, Dispatcher const & ) const;
PoolFreeShared() = default; PoolFreeShared() = default;
PoolFreeShared( SharedHandle<PoolType> pool, const Dispatcher & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) PoolFreeShared( SharedHandle<PoolType> pool, Dispatcher const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT )
: m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::free ) ) ) : m_destroy( reinterpret_cast<decltype( m_destroy )>( static_cast<DestroyFunctionPointerType>( &DestructorType::free ) ) )
, m_dispatch( &dispatch ) , m_dispatch( &dispatch )
, m_pool( std::move( pool ) ) , m_pool( std::move( pool ) )
@@ -447,7 +446,7 @@ namespace VULKAN_HPP_NAMESPACE
private: private:
DestroyFunctionPointerType m_destroy = nullptr; DestroyFunctionPointerType m_destroy = nullptr;
const Dispatcher * m_dispatch = nullptr; Dispatcher const * m_dispatch = nullptr;
SharedHandle<PoolType> m_pool{}; SharedHandle<PoolType> m_pool{};
}; };
@@ -825,6 +824,17 @@ namespace VULKAN_HPP_NAMESPACE
using SharedDebugUtilsMessengerEXT = SharedHandle<DebugUtilsMessengerEXT>; using SharedDebugUtilsMessengerEXT = SharedHandle<DebugUtilsMessengerEXT>;
//=== VK_AMD_gpa_interface ===
template <>
class SharedHandleTraits<GpaSessionAMD>
{
public:
using DestructorType = Device;
using deleter = detail::ObjectDestroyShared<GpaSessionAMD>;
};
using SharedGpaSessionAMD = SharedHandle<GpaSessionAMD>;
//=== VK_EXT_descriptor_heap === //=== VK_EXT_descriptor_heap ===
template <> template <>
class SharedHandleTraits<TensorARM> class SharedHandleTraits<TensorARM>
@@ -1036,6 +1046,17 @@ namespace VULKAN_HPP_NAMESPACE
using SharedIndirectExecutionSetEXT = SharedHandle<IndirectExecutionSetEXT>; using SharedIndirectExecutionSetEXT = SharedHandle<IndirectExecutionSetEXT>;
//=== VK_ARM_shader_instrumentation ===
template <>
class SharedHandleTraits<ShaderInstrumentationARM>
{
public:
using DestructorType = Device;
using deleter = detail::ObjectDestroyShared<ShaderInstrumentationARM>;
};
using SharedShaderInstrumentationARM = SharedHandle<ShaderInstrumentationARM>;
// a number of SharedHandle specializations // a number of SharedHandle specializations
enum class SwapchainOwns enum class SwapchainOwns
{ {
@@ -1075,7 +1096,7 @@ namespace VULKAN_HPP_NAMESPACE
} }
protected: protected:
static void internalDestroy( const ImageHeader & control, Image handle ) VULKAN_HPP_NOEXCEPT static void internalDestroy( ImageHeader const & control, Image handle ) VULKAN_HPP_NOEXCEPT
{ {
if ( control.swapchainOwned == SwapchainOwns::no ) if ( control.swapchainOwned == SwapchainOwns::no )
{ {
@@ -1120,7 +1141,7 @@ namespace VULKAN_HPP_NAMESPACE
} }
public: public:
const SharedHandle<SurfaceKHR> & getSurface() const VULKAN_HPP_NOEXCEPT SharedHandle<SurfaceKHR> const & getSurface() const VULKAN_HPP_NOEXCEPT
{ {
return getHeader().surface; return getHeader().surface;
} }
@@ -1135,13 +1156,13 @@ namespace VULKAN_HPP_NAMESPACE
public: public:
using SharedHandleBase<HandleType, DestructorType>::SharedHandleBase; using SharedHandleBase<HandleType, DestructorType>::SharedHandleBase;
const DestructorType & getDestructorType() const VULKAN_HPP_NOEXCEPT DestructorType const & getDestructorType() const VULKAN_HPP_NOEXCEPT
{ {
return SharedHandleBase<HandleType, DestructorType>::getHeader(); return SharedHandleBase<HandleType, DestructorType>::getHeader();
} }
protected: protected:
static void internalDestroy( const DestructorType &, HandleType ) VULKAN_HPP_NOEXCEPT {} static void internalDestroy( DestructorType const &, HandleType ) VULKAN_HPP_NOEXCEPT {}
}; };
//=== VK_VERSION_1_0 === //=== VK_VERSION_1_0 ===
File diff suppressed because it is too large Load Diff
+20886 -10020
View File
File diff suppressed because it is too large Load Diff
+1157 -498
View File
File diff suppressed because it is too large Load Diff
+54 -304
View File
@@ -8,315 +8,65 @@ module;
#define VULKAN_HPP_CXX_MODULE 1 #define VULKAN_HPP_CXX_MODULE 1
#if __has_include( <vk_video/vulkan_video_codecs_common.h> )
# include <vk_video/vulkan_video_codecs_common.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std.h> )
# include <vk_video/vulkan_video_codec_h264std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std_decode.h> )
# include <vk_video/vulkan_video_codec_h264std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std_encode.h> )
# include <vk_video/vulkan_video_codec_h264std_encode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std.h> )
# include <vk_video/vulkan_video_codec_h265std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std_decode.h> )
# include <vk_video/vulkan_video_codec_h265std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std_encode.h> )
# include <vk_video/vulkan_video_codec_h265std_encode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_vp9std.h> )
# include <vk_video/vulkan_video_codec_vp9std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_vp9std_decode.h> )
# include <vk_video/vulkan_video_codec_vp9std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std.h> )
# include <vk_video/vulkan_video_codec_av1std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std_decode.h> )
# include <vk_video/vulkan_video_codec_av1std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std_encode.h> )
# include <vk_video/vulkan_video_codec_av1std_encode.h>
#endif
// clang-format off
#include <vulkan/vulkan_hpp_macros.hpp> #include <vulkan/vulkan_hpp_macros.hpp>
// clang-format on
#if !defined( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING ) export module vulkan_video;
# define VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING \
"\n\tThe Vulkan-Hpp C++ named module is experimental. It is subject to change without prior notice.\n" \
"\tTo silence this warning, define the VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING macro.\n" \
"\tFor feedback, go to: https://github.com/KhronosGroup/Vulkan-Hpp/issues"
VULKAN_HPP_COMPILE_WARNING( VULKAN_HPP_CXX_MODULE_EXPERIMENTAL_WARNING ) import vulkan;
#if defined( _MSC_VER )
# pragma warning( push )
# pragma warning( disable : 5244 )
#elif defined( __clang__ )
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Winclude-angled-in-module-purview"
#elif defined( __GNUC__ )
#endif #endif
#include <vulkan/vulkan_video.hpp> #include <vulkan/vulkan_video.hpp>
export module vulkan:video; #if defined( _MSC_VER )
# pragma warning( pop )
export namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE #elif defined( __clang__ )
{ # pragma clang diagnostic pop
//================= #elif defined( __GNUC__ )
//=== CONSTANTs ===
//=================
#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ )
//=== vulkan_video_codec_h264std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CpbCntListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxChromaPlanes;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxNumListRef;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264NoReferencePicture;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumLists;
#endif #endif
#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ )
//=== vulkan_video_codec_h264std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCountListSize;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ )
//=== vulkan_video_codec_h265std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileColsListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileRowsListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265CpbCntListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxChromaPlanes;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDeltaPoc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDpbSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermPics;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermRefPicsSps;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxNumListRef;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxShortTermRefPicSets;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265NoReferencePicture;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteCompEntriesListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteComponentsListSize;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumElements;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SublayersListSize;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ )
//=== vulkan_video_codec_h265std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265RefPicSetListSize;
#endif
#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ )
//=== vulkan_video_codec_vp9std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9LoopFilterAdjustments;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxRefFrames;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationPredProb;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationTreeProbs;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegments;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9NumRefFrames;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9RefsPerFrame;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9SegLvlMax;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ )
//=== vulkan_video_codec_av1std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1GlobalMotionParams;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1LoopFilterAdjustments;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxCdefFilterStrengths;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxLoopFilterStrengths;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCbPoints;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCrPoints;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPlanes;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosChroma;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosLuma;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumYPoints;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxSegments;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileCols;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileRows;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1NumRefFrames;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1PrimaryRefNone;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1RefsPerFrame;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SegLvlMax;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectIntegerMv;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectScreenContentTools;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SkipModeFrames;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1TotalRefsPerFrame;
#endif
//=============
//=== ENUMs ===
//=============
#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ )
//=== vulkan_video_codec_h264std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264LevelIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ModificationOfPicNumsIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264NonVclNaluType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PocType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc;
#endif
#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ )
//=== vulkan_video_codec_h264std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ )
//=== vulkan_video_codec_h265std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType;
#endif
#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ )
//=== vulkan_video_codec_vp9std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorSpace;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9FrameType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9InterpolationFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Level;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Profile;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ReferenceName;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ )
//=== vulkan_video_codec_av1std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode;
#endif
//===============
//=== STRUCTS ===
//===============
#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ )
//=== vulkan_video_codec_h264std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ )
//=== vulkan_video_codec_h264std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ )
//=== vulkan_video_codec_h264std_encode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefPicMarkingEntry;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ )
//=== vulkan_video_codec_h265std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LongTermRefPicsSps;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevelFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSetVui;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSetFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsVuiFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VideoParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VpsFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ )
//=== vulkan_video_codec_h265std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ )
//=== vulkan_video_codec_h265std_encode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ )
//=== vulkan_video_codec_vp9std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfigFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ )
//=== vulkan_video_codec_vp9std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ )
//=== vulkan_video_codec_av1std ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ )
//=== vulkan_video_codec_av1std_decode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ )
//=== vulkan_video_codec_av1std_encode ===
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags;
#endif
} // namespace VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE
+413 -831
View File
File diff suppressed because it is too large Load Diff