let mut enabled_features: Box<VulkanPhysicalDeviceFeatures> = default();
- enabled_features.set_dynamic_rendering(true);
- enabled_features.set_synchronization2(true);
- enabled_features.set_subgroup_size_control(true);
- enabled_features.set_compute_full_subgroups(true);
- enabled_features.set_maintenance4(true);
enabled_features.set_buffer_device_address(true);
- enabled_features.set_timeline_semaphore(true);
- enabled_features.set_descriptor_indexing(true);
+ enabled_features.set_compute_full_subgroups(true);
enabled_features.set_descriptor_binding_partially_bound(true);
+ enabled_features.set_descriptor_indexing(true);
enabled_features.set_draw_indirect_count(true);
+ enabled_features.set_dynamic_rendering(true);
+ enabled_features.set_maintenance4(true);
+ enabled_features.set_shader_storage_image_read_without_format(true);
+ enabled_features.set_shader_storage_image_write_without_format(true);
+ enabled_features.set_subgroup_size_control(true);
+ enabled_features.set_synchronization2(true);
+ enabled_features.set_timeline_semaphore(true);
enabled_features.set_uniform_buffer_standard_layout(true);
if wsi_support.swapchain_maintenance1() {
}
impl VulkanPhysicalDeviceFeatures {
+ pub fn compute_full_subgroups(&self) -> bool {
+ self.features_13.compute_full_subgroups == vk::Bool32::True
+ }
+
+ pub fn descriptor_binding_partially_bound(&self) -> bool {
+ self.features_12.descriptor_binding_partially_bound == vk::Bool32::True
+ }
+
+ pub fn descriptor_indexing(&self) -> bool {
+ self.features_12.descriptor_indexing == vk::Bool32::True
+ }
+
+ pub fn draw_indirect_count(&self) -> bool {
+ self.features_12.draw_indirect_count == vk::Bool32::True
+ }
+
pub fn dynamic_rendering(&self) -> bool {
self.features_13.dynamic_rendering == vk::Bool32::True
}
self.features_13.maintenance4 == vk::Bool32::True
}
- pub fn compute_full_subgroups(&self) -> bool {
- self.features_13.compute_full_subgroups == vk::Bool32::True
- }
-
pub fn timeline_semaphore(&self) -> bool {
self.features_12.timeline_semaphore == vk::Bool32::True
}
- pub fn descriptor_indexing(&self) -> bool {
- self.features_12.descriptor_indexing == vk::Bool32::True
- }
-
- pub fn descriptor_binding_partially_bound(&self) -> bool {
- self.features_12.descriptor_binding_partially_bound == vk::Bool32::True
+ pub fn uniform_buffer_standard_layout(&self) -> bool {
+ self.features_12.uniform_buffer_standard_layout == vk::Bool32::True
}
- pub fn draw_indirect_count(&self) -> bool {
- self.features_12.draw_indirect_count == vk::Bool32::True
+ pub fn set_buffer_device_address(&mut self, arg: bool) {
+ self.features_12.buffer_device_address = vk::Bool32::from(arg)
}
- pub fn uniform_buffer_standard_layout(&self) -> bool {
- self.features_12.uniform_buffer_standard_layout == vk::Bool32::True
+ pub fn set_compute_full_subgroups(&mut self, arg: bool) {
+ self.features_13.compute_full_subgroups = vk::Bool32::from(arg)
}
- pub fn set_dynamic_rendering(&mut self, arg: bool) {
- self.features_13.dynamic_rendering = vk::Bool32::from(arg)
+ pub fn set_descriptor_binding_partially_bound(&mut self, arg: bool) {
+ self.features_12.descriptor_binding_partially_bound = vk::Bool32::from(arg)
}
- pub fn set_synchronization2(&mut self, arg: bool) {
- self.features_13.synchronization2 = vk::Bool32::from(arg)
+ pub fn set_descriptor_indexing(&mut self, arg: bool) {
+ self.features_12.descriptor_indexing = vk::Bool32::from(arg)
}
- pub fn set_subgroup_size_control(&mut self, arg: bool) {
- self.features_13.subgroup_size_control = vk::Bool32::from(arg)
+ pub fn set_draw_indirect_count(&mut self, arg: bool) {
+ self.features_12.draw_indirect_count = vk::Bool32::from(arg)
}
- pub fn set_compute_full_subgroups(&mut self, arg: bool) {
- self.features_13.compute_full_subgroups = vk::Bool32::from(arg)
+ pub fn set_dynamic_rendering(&mut self, arg: bool) {
+ self.features_13.dynamic_rendering = vk::Bool32::from(arg)
}
pub fn set_maintenance4(&mut self, arg: bool) {
self.features_13.maintenance4 = vk::Bool32::from(arg)
}
- pub fn set_buffer_device_address(&mut self, arg: bool) {
- self.features_12.buffer_device_address = vk::Bool32::from(arg)
+ pub fn set_shader_storage_image_read_without_format(&mut self, arg: bool) {
+ self.features
+ .features
+ .shader_storage_image_read_without_format = vk::Bool32::from(arg)
}
- pub fn set_timeline_semaphore(&mut self, arg: bool) {
- self.features_12.timeline_semaphore = vk::Bool32::from(arg)
+ pub fn set_shader_storage_image_write_without_format(&mut self, arg: bool) {
+ self.features
+ .features
+ .shader_storage_image_write_without_format = vk::Bool32::from(arg)
}
- pub fn set_descriptor_indexing(&mut self, arg: bool) {
- self.features_12.descriptor_indexing = vk::Bool32::from(arg)
+ pub fn set_subgroup_size_control(&mut self, arg: bool) {
+ self.features_13.subgroup_size_control = vk::Bool32::from(arg)
}
- pub fn set_descriptor_binding_partially_bound(&mut self, arg: bool) {
- self.features_12.descriptor_binding_partially_bound = vk::Bool32::from(arg)
+ pub fn set_swapchain_maintenance1(&mut self, arg: bool) {
+ self.features_swapchain_maintenance1.swapchain_maintenance1 = vk::Bool32::from(arg)
}
- pub fn set_draw_indirect_count(&mut self, arg: bool) {
- self.features_12.draw_indirect_count = vk::Bool32::from(arg)
+ pub fn set_synchronization2(&mut self, arg: bool) {
+ self.features_13.synchronization2 = vk::Bool32::from(arg)
}
- pub fn set_uniform_buffer_standard_layout(&mut self, arg: bool) {
- self.features_12.uniform_buffer_standard_layout = vk::Bool32::from(arg)
+ pub fn set_timeline_semaphore(&mut self, arg: bool) {
+ self.features_12.timeline_semaphore = vk::Bool32::from(arg)
}
- pub fn set_swapchain_maintenance1(&mut self, arg: bool) {
- self.features_swapchain_maintenance1.swapchain_maintenance1 = vk::Bool32::from(arg)
+ pub fn set_uniform_buffer_standard_layout(&mut self, arg: bool) {
+ self.features_12.uniform_buffer_standard_layout = vk::Bool32::from(arg)
}
pub fn link(&mut self) -> &mut vk::PhysicalDeviceFeatures2 {
layout (set = 0, binding = 0) uniform sampler samplers[SAMPLER_COUNT];
layout (set = 0, binding = 1) uniform texture3D tony_mc_mapface_lut;
layout (set = 0, binding = 2) uniform texture2D glyph_atlas;
-layout (set = 0, binding = 3, rgba16f) uniform writeonly image2D ui_layer_write;
-layout (set = 0, binding = 3, rgba16f) uniform readonly image2D ui_layer_read;
-layout (set = 0, binding = 4, rgba16f) uniform readonly image2D color_layer;
-layout (set = 0, binding = 5, rgba16f) uniform writeonly image2D composited_output;
+layout (set = 0, binding = 3) uniform writeonly image2D ui_layer_write;
+layout (set = 0, binding = 3) uniform readonly image2D ui_layer_read;
+layout (set = 0, binding = 4) uniform readonly image2D color_layer;
+layout (set = 0, binding = 5) uniform writeonly image2D composited_output;
#endif