mirror of
https://github.com/vulkano-rs/vulkano.git
synced 2025-02-16 17:12:29 +00:00
Support a number of SPIRV capability related features. (#1382)
This commit is contained in:
parent
737016c047
commit
cf669bb6be
@ -1,5 +1,12 @@
|
||||
# Unreleased
|
||||
|
||||
- Added support for:
|
||||
+ `PhysicalDeviceVariablePointersFeatures`
|
||||
+ `PhysicalDeviceShaderAtomicInt64Features`
|
||||
+ `PhysicalDevice8BitStorageFeatures`
|
||||
+ `PhysicalDevice16BitStorageFeatures`
|
||||
+ `PhysicalDeviceShaderFloat16Int8Features`
|
||||
|
||||
# Version 0.5.2 (2020-06-01)
|
||||
|
||||
- Added support for the physical storage buffer access.
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Unreleased
|
||||
|
||||
- Added a `properties` method to `Format`.
|
||||
- Added additional device feature flags for enabling SPIR-V related capabilities.
|
||||
|
||||
# Version 0.19.0 (2020-06-01)
|
||||
|
||||
|
@ -198,6 +198,11 @@ pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: u32 = 100014600
|
||||
pub const STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: u32 = 1000255000;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: u32 = 1000244000;
|
||||
pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: u32 = 1000244001;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: u32 = 1000120000;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: u32 = 1000180000;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: u32 = 1000177000;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: u32 = 1000083000;
|
||||
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: u32 = 1000082000;
|
||||
|
||||
pub type SystemAllocationScope = u32;
|
||||
pub const SYSTEM_ALLOCATION_SCOPE_COMMAND: u32 = 0;
|
||||
@ -2599,6 +2604,49 @@ pub struct PhysicalDeviceBufferAddressFeaturesEXT {
|
||||
pub bufferDeviceAddressMultiDevice: Bool32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct PhysicalDeviceVariablePointersFeatures {
|
||||
pub sType: StructureType,
|
||||
pub pNext: *const c_void,
|
||||
pub variablePointersStorageBuffer: Bool32,
|
||||
pub variablePointers: Bool32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct PhysicalDeviceShaderAtomicInt64Features {
|
||||
pub sType: StructureType,
|
||||
pub pNext: *const c_void,
|
||||
pub shaderBufferInt64Atomics: Bool32,
|
||||
pub shaderSharedInt64Atomics: Bool32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct PhysicalDevice8BitStorageFeatures {
|
||||
pub sType: StructureType,
|
||||
pub pNext: *const c_void,
|
||||
pub storageBuffer8BitAccess: Bool32,
|
||||
pub uniformAndStorageBuffer8BitAccess: Bool32,
|
||||
pub storagePushConstant8: Bool32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct PhysicalDevice16BitStorageFeatures {
|
||||
pub sType: StructureType,
|
||||
pub pNext: *const c_void,
|
||||
pub storageBuffer16BitAccess: Bool32,
|
||||
pub uniformAndStorageBuffer16BitAccess: Bool32,
|
||||
pub storagePushConstant16: Bool32,
|
||||
pub storageInputOutput16: Bool32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct PhysicalDeviceShaderFloat16Int8Features {
|
||||
pub sType: StructureType,
|
||||
pub pNext: *const c_void,
|
||||
pub shaderFloat16: Bool32,
|
||||
pub shaderInt8: Bool32,
|
||||
}
|
||||
|
||||
pub type ViSurfaceCreateFlagsNN = Flags;
|
||||
|
||||
#[repr(C)]
|
||||
|
@ -262,12 +262,35 @@ pub struct Features {
|
||||
pub buffer_device_address: bool,
|
||||
pub buffer_device_address_capture_replay: bool,
|
||||
pub buffer_device_address_multi_device: bool,
|
||||
|
||||
pub variable_pointers_storage_buffer: bool,
|
||||
pub variable_pointers: bool,
|
||||
|
||||
pub shader_buffer_int64_atomics: bool,
|
||||
pub shader_shared_int64_atomics: bool,
|
||||
|
||||
pub storage_buffer_8bit: bool,
|
||||
pub storage_uniform_8bit: bool,
|
||||
pub storage_push_constant_8bit: bool,
|
||||
|
||||
pub storage_buffer_16bit: bool,
|
||||
pub storage_uniform_16bit: bool,
|
||||
pub storage_push_constant_16bit: bool,
|
||||
pub storage_input_output_16bit: bool,
|
||||
|
||||
pub shader_float16: bool,
|
||||
pub shader_int8: bool,
|
||||
}
|
||||
|
||||
pub(crate) struct FeaturesFfi {
|
||||
_pinned: PhantomPinned,
|
||||
pub(crate) main: vk::PhysicalDeviceFeatures2KHR,
|
||||
phys_dev_buf_addr: vk::PhysicalDeviceBufferAddressFeaturesEXT,
|
||||
variable_pointers: vk::PhysicalDeviceVariablePointersFeatures,
|
||||
shader_atomic_i64: vk::PhysicalDeviceShaderAtomicInt64Features,
|
||||
i8_storage: vk::PhysicalDevice8BitStorageFeatures,
|
||||
i16_storage: vk::PhysicalDevice16BitStorageFeatures,
|
||||
f16_i8: vk::PhysicalDeviceShaderFloat16Int8Features,
|
||||
}
|
||||
|
||||
macro_rules! features {
|
||||
@ -483,4 +506,52 @@ features! {
|
||||
buffer_device_address_multi_device => bufferDeviceAddressMultiDevice,
|
||||
],
|
||||
},
|
||||
extension {
|
||||
ty: vk::PhysicalDeviceVariablePointersFeatures,
|
||||
ffi_name: variable_pointers,
|
||||
sType: vk::STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
||||
fields: [
|
||||
variable_pointers_storage_buffer => variablePointersStorageBuffer,
|
||||
variable_pointers => variablePointers,
|
||||
],
|
||||
},
|
||||
extension {
|
||||
ty: vk::PhysicalDeviceShaderAtomicInt64Features,
|
||||
ffi_name: shader_atomic_i64,
|
||||
sType: vk::STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
|
||||
fields: [
|
||||
shader_buffer_int64_atomics => shaderBufferInt64Atomics,
|
||||
shader_shared_int64_atomics => shaderSharedInt64Atomics,
|
||||
],
|
||||
},
|
||||
extension {
|
||||
ty: vk::PhysicalDevice8BitStorageFeatures,
|
||||
ffi_name: i8_storage,
|
||||
sType: vk::STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
|
||||
fields: [
|
||||
storage_buffer_8bit => storageBuffer8BitAccess,
|
||||
storage_uniform_8bit => uniformAndStorageBuffer8BitAccess,
|
||||
storage_push_constant_8bit => storagePushConstant8,
|
||||
],
|
||||
},
|
||||
extension {
|
||||
ty: vk::PhysicalDevice16BitStorageFeatures,
|
||||
ffi_name: i16_storage,
|
||||
sType: vk::STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
|
||||
fields: [
|
||||
storage_buffer_16bit => storageBuffer16BitAccess,
|
||||
storage_uniform_16bit => uniformAndStorageBuffer16BitAccess,
|
||||
storage_push_constant_16bit => storagePushConstant16,
|
||||
storage_input_output_16bit => storageInputOutput16,
|
||||
],
|
||||
},
|
||||
extension {
|
||||
ty: vk::PhysicalDeviceShaderFloat16Int8Features,
|
||||
ffi_name: f16_i8,
|
||||
sType: vk::STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
|
||||
fields: [
|
||||
shader_float16 => shaderFloat16,
|
||||
shader_int8 => shaderInt8,
|
||||
],
|
||||
},
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user