mirror of
https://github.com/italicsjenga/portability.git
synced 2025-02-23 17:47:43 +11:00
Surface image usage queries.
Fixed image usage flag conversion. Added push constants limits.
This commit is contained in:
parent
b8383cc28f
commit
87f8175324
2 changed files with 6 additions and 34 deletions
|
@ -16,6 +16,7 @@ pub fn limits_from_hal(limits: Limits) -> VkPhysicalDeviceLimits {
|
||||||
maxFramebufferHeight: limits.max_texture_size as _, //TODO
|
maxFramebufferHeight: limits.max_texture_size as _, //TODO
|
||||||
maxTexelBufferElements: limits.max_texture_size as _, //TODO
|
maxTexelBufferElements: limits.max_texture_size as _, //TODO
|
||||||
maxTessellationPatchSize: limits.max_patch_size as _,
|
maxTessellationPatchSize: limits.max_patch_size as _,
|
||||||
|
maxPushConstantsSize: 0x80, //TODO
|
||||||
maxViewports: limits.max_viewports as _,
|
maxViewports: limits.max_viewports as _,
|
||||||
maxVertexInputAttributes: limits.max_vertex_input_attributes as _,
|
maxVertexInputAttributes: limits.max_vertex_input_attributes as _,
|
||||||
maxVertexInputBindings: limits.max_vertex_input_bindings as _,
|
maxVertexInputBindings: limits.max_vertex_input_bindings as _,
|
||||||
|
@ -238,34 +239,11 @@ pub fn map_image_layout(layout: VkImageLayout) -> image::Layout {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn map_image_usage(usage: VkImageUsageFlags) -> image::Usage {
|
pub fn map_image_usage(usage: VkImageUsageFlags) -> image::Usage {
|
||||||
let mut flags = image::Usage::empty();
|
image::Usage::from_bits_truncate(usage as u32)
|
||||||
|
}
|
||||||
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSFER_SRC_BIT as u32 != 0 {
|
pub fn map_image_usage_from_hal(usage: image::Usage) -> VkImageUsageFlags {
|
||||||
flags |= image::Usage::TRANSFER_SRC;
|
usage.bits()
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSFER_DST_BIT as u32 != 0 {
|
|
||||||
flags |= image::Usage::TRANSFER_DST;
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_SAMPLED_BIT as u32 != 0 {
|
|
||||||
flags |= image::Usage::SAMPLED;
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_STORAGE_BIT as u32 != 0 {
|
|
||||||
flags |= image::Usage::STORAGE;
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT as u32 != 0 {
|
|
||||||
flags |= image::Usage::COLOR_ATTACHMENT;
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT as u32 != 0 {
|
|
||||||
flags |= image::Usage::DEPTH_STENCIL_ATTACHMENT;
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT as u32 != 0 {
|
|
||||||
warn!("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is not supported yet");
|
|
||||||
}
|
|
||||||
if usage & VkImageUsageFlagBits::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT as u32 != 0 {
|
|
||||||
warn!("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT is not supported yet");
|
|
||||||
}
|
|
||||||
|
|
||||||
flags
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn map_image_access(access: VkAccessFlags) -> image::Access {
|
pub fn map_image_access(access: VkAccessFlags) -> image::Access {
|
||||||
|
@ -450,12 +428,6 @@ pub fn map_stage_flags(stages: VkShaderStageFlags) -> pso::ShaderStageFlags {
|
||||||
if stages & VkShaderStageFlagBits::VK_SHADER_STAGE_COMPUTE_BIT as u32 != 0 {
|
if stages & VkShaderStageFlagBits::VK_SHADER_STAGE_COMPUTE_BIT as u32 != 0 {
|
||||||
flags |= pso::ShaderStageFlags::COMPUTE;
|
flags |= pso::ShaderStageFlags::COMPUTE;
|
||||||
}
|
}
|
||||||
if stages & VkShaderStageFlagBits::VK_SHADER_STAGE_ALL_GRAPHICS as u32 != 0 {
|
|
||||||
flags |= pso::ShaderStageFlags::GRAPHICS;
|
|
||||||
}
|
|
||||||
if stages & VkShaderStageFlagBits::VK_SHADER_STAGE_ALL as u32 != 0 {
|
|
||||||
flags |= pso::ShaderStageFlags::ALL;
|
|
||||||
}
|
|
||||||
|
|
||||||
flags
|
flags
|
||||||
}
|
}
|
||||||
|
|
|
@ -3801,7 +3801,7 @@ pub extern "C" fn gfxGetPhysicalDeviceSurfaceCapabilitiesKHR(
|
||||||
currentTransform: VkSurfaceTransformFlagBitsKHR::VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
|
currentTransform: VkSurfaceTransformFlagBitsKHR::VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
|
||||||
supportedCompositeAlpha: VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
|
supportedCompositeAlpha: VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
|
||||||
as _,
|
as _,
|
||||||
supportedUsageFlags: 0,
|
supportedUsageFlags: conv::map_image_usage_from_hal(caps.usage),
|
||||||
};
|
};
|
||||||
|
|
||||||
unsafe { *pSurfaceCapabilities = output };
|
unsafe { *pSurfaceCapabilities = output };
|
||||||
|
|
Loading…
Add table
Reference in a new issue