Make vulkan handles always pointer sized

This commit is contained in:
hodasemi 2025-03-27 11:02:23 +01:00
parent f81cfa413f
commit 4b98e845c4
4 changed files with 58 additions and 76 deletions

View file

@ -1,12 +1,12 @@
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkBuffer(u64); pub struct VkBuffer(usize);
SetupU64Conv!(VkBuffer); SetupUSizeConv!(VkBuffer);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkBufferView(u64); pub struct VkBufferView(usize);
SetupU64Conv!(VkBufferView); SetupUSizeConv!(VkBufferView);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -15,23 +15,23 @@ SetupUSizeConv!(VkCommandBuffer);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkCommandPool(u64); pub struct VkCommandPool(usize);
SetupU64Conv!(VkCommandPool); SetupUSizeConv!(VkCommandPool);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorPool(u64); pub struct VkDescriptorPool(usize);
SetupU64Conv!(VkDescriptorPool); SetupUSizeConv!(VkDescriptorPool);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorSet(u64); pub struct VkDescriptorSet(usize);
SetupU64Conv!(VkDescriptorSet); SetupUSizeConv!(VkDescriptorSet);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorSetLayout(u64); pub struct VkDescriptorSetLayout(usize);
SetupU64Conv!(VkDescriptorSetLayout); SetupUSizeConv!(VkDescriptorSetLayout);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -40,33 +40,33 @@ SetupUSizeConv!(VkDevice);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDeviceMemory(u64); pub struct VkDeviceMemory(usize);
SetupU64Conv!(VkDeviceMemory); SetupUSizeConv!(VkDeviceMemory);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkEvent(u64); pub struct VkEvent(usize);
SetupU64Conv!(VkEvent); SetupUSizeConv!(VkEvent);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkFence(u64); pub struct VkFence(usize);
SetupU64Conv!(VkFence); SetupUSizeConv!(VkFence);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkFramebuffer(u64); pub struct VkFramebuffer(usize);
SetupU64Conv!(VkFramebuffer); SetupUSizeConv!(VkFramebuffer);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkImage(u64); pub struct VkImage(usize);
SetupU64Conv!(VkImage); SetupUSizeConv!(VkImage);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkImageView(u64); pub struct VkImageView(usize);
SetupU64Conv!(VkImageView); SetupUSizeConv!(VkImageView);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -80,23 +80,23 @@ SetupUSizeConv!(VkPhysicalDevice);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipeline(u64); pub struct VkPipeline(usize);
SetupU64Conv!(VkPipeline); SetupUSizeConv!(VkPipeline);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipelineCache(u64); pub struct VkPipelineCache(usize);
SetupU64Conv!(VkPipelineCache); SetupUSizeConv!(VkPipelineCache);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkPipelineLayout(u64); pub struct VkPipelineLayout(usize);
SetupU64Conv!(VkPipelineLayout); SetupUSizeConv!(VkPipelineLayout);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkQueryPool(u64); pub struct VkQueryPool(usize);
SetupU64Conv!(VkQueryPool); SetupUSizeConv!(VkQueryPool);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -105,20 +105,20 @@ SetupUSizeConv!(VkQueue);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkRenderPass(u64); pub struct VkRenderPass(usize);
SetupU64Conv!(VkRenderPass); SetupUSizeConv!(VkRenderPass);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSampler(u64); pub struct VkSampler(usize);
SetupU64Conv!(VkSampler); SetupUSizeConv!(VkSampler);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSemaphore(u64); pub struct VkSemaphore(usize);
SetupU64Conv!(VkSemaphore); SetupUSizeConv!(VkSemaphore);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkShaderModule(u64); pub struct VkShaderModule(usize);
SetupU64Conv!(VkShaderModule); SetupUSizeConv!(VkShaderModule);

View file

@ -1,9 +1,9 @@
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct VkDebugReportCallbackEXT(u64); pub struct VkDebugReportCallbackEXT(usize);
SetupU64Conv!(VkDebugReportCallbackEXT); SetupUSizeConv!(VkDebugReportCallbackEXT);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct VkDebugUtilsMessengerEXT(u64); pub struct VkDebugUtilsMessengerEXT(usize);
SetupU64Conv!(VkDebugUtilsMessengerEXT); SetupUSizeConv!(VkDebugUtilsMessengerEXT);

View file

@ -1,34 +1,34 @@
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDescriptorUpdateTemplateKHR(u64); pub struct VkDescriptorUpdateTemplateKHR(usize);
SetupU64Conv!(VkDescriptorUpdateTemplateKHR); SetupUSizeConv!(VkDescriptorUpdateTemplateKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDisplayKHR(u64); pub struct VkDisplayKHR(usize);
SetupU64Conv!(VkDisplayKHR); SetupUSizeConv!(VkDisplayKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDisplayModeKHR(u64); pub struct VkDisplayModeKHR(usize);
SetupU64Conv!(VkDisplayModeKHR); SetupUSizeConv!(VkDisplayModeKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSurfaceKHR(u64); pub struct VkSurfaceKHR(usize);
SetupU64Conv!(VkSurfaceKHR); SetupUSizeConv!(VkSurfaceKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkSwapchainKHR(u64); pub struct VkSwapchainKHR(usize);
SetupU64Conv!(VkSwapchainKHR); SetupUSizeConv!(VkSwapchainKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkAccelerationStructureKHR(u64); pub struct VkAccelerationStructureKHR(usize);
SetupU64Conv!(VkAccelerationStructureKHR); SetupUSizeConv!(VkAccelerationStructureKHR);
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct VkDeferredOperationKHR(u64); pub struct VkDeferredOperationKHR(usize);
SetupU64Conv!(VkDeferredOperationKHR); SetupUSizeConv!(VkDeferredOperationKHR);

View file

@ -1,21 +1,3 @@
macro_rules! SetupU64Conv {
($name: ident) => {
impl $name {
pub const NULL_HANDLE: $name = $name(0);
pub fn raw(&self) -> u64 {
self.0
}
}
impl From<u64> for $name {
fn from(v: u64) -> Self {
$name(v)
}
}
};
}
macro_rules! SetupUSizeConv { macro_rules! SetupUSizeConv {
($name: ident) => { ($name: ident) => {
impl $name { impl $name {