11use super :: conv;
22
33use arrayvec:: ArrayVec ;
4- use ash:: { extensions :: ext , vk } ;
4+ use ash:: vk ;
55
66use std:: { mem, ops:: Range , slice} ;
77
@@ -39,12 +39,6 @@ impl super::Texture {
3939 }
4040}
4141
42- impl super :: DeviceShared {
43- fn debug_messenger ( & self ) -> Option < & ext:: DebugUtils > {
44- Some ( & self . instance . debug_utils . as_ref ( ) ?. extension )
45- }
46- }
47-
4842impl super :: CommandEncoder {
4943 fn write_pass_end_timestamp_if_requested ( & mut self ) {
5044 if let Some ( ( query_set, index) ) = self . end_of_pass_timer_query . take ( ) {
@@ -65,31 +59,23 @@ impl crate::CommandEncoder for super::CommandEncoder {
6559
6660 unsafe fn begin_encoding ( & mut self , label : crate :: Label ) -> Result < ( ) , crate :: DeviceError > {
6761 if self . free . is_empty ( ) {
68- let vk_info = vk:: CommandBufferAllocateInfo :: builder ( )
62+ let vk_info = vk:: CommandBufferAllocateInfo :: default ( )
6963 . command_pool ( self . raw )
70- . command_buffer_count ( ALLOCATION_GRANULARITY )
71- . build ( ) ;
64+ . command_buffer_count ( ALLOCATION_GRANULARITY ) ;
7265 let cmd_buf_vec = unsafe { self . device . raw . allocate_command_buffers ( & vk_info) ? } ;
7366 self . free . extend ( cmd_buf_vec) ;
7467 }
7568 let raw = self . free . pop ( ) . unwrap ( ) ;
7669
7770 // Set the name unconditionally, since there might be a
7871 // previous name assigned to this.
79- unsafe {
80- self . device . set_object_name (
81- vk:: ObjectType :: COMMAND_BUFFER ,
82- raw,
83- label. unwrap_or_default ( ) ,
84- )
85- } ;
72+ unsafe { self . device . set_object_name ( raw, label. unwrap_or_default ( ) ) } ;
8673
8774 // Reset this in case the last renderpass was never ended.
8875 self . rpass_debug_marker_active = false ;
8976
90- let vk_info = vk:: CommandBufferBeginInfo :: builder ( )
91- . flags ( vk:: CommandBufferUsageFlags :: ONE_TIME_SUBMIT )
92- . build ( ) ;
77+ let vk_info = vk:: CommandBufferBeginInfo :: default ( )
78+ . flags ( vk:: CommandBufferUsageFlags :: ONE_TIME_SUBMIT ) ;
9379 unsafe { self . device . raw . begin_command_buffer ( raw, & vk_info) } ?;
9480 self . active = raw;
9581
@@ -145,12 +131,11 @@ impl crate::CommandEncoder for super::CommandEncoder {
145131 dst_stages |= dst_stage;
146132
147133 vk_barriers. push (
148- vk:: BufferMemoryBarrier :: builder ( )
134+ vk:: BufferMemoryBarrier :: default ( )
149135 . buffer ( bar. buffer . raw )
150136 . size ( vk:: WHOLE_SIZE )
151137 . src_access_mask ( src_access)
152- . dst_access_mask ( dst_access)
153- . build ( ) ,
138+ . dst_access_mask ( dst_access) ,
154139 )
155140 }
156141
@@ -192,14 +177,13 @@ impl crate::CommandEncoder for super::CommandEncoder {
192177 dst_stages |= dst_stage;
193178
194179 vk_barriers. push (
195- vk:: ImageMemoryBarrier :: builder ( )
180+ vk:: ImageMemoryBarrier :: default ( )
196181 . image ( bar. texture . raw )
197182 . subresource_range ( range)
198183 . src_access_mask ( src_access)
199184 . dst_access_mask ( dst_access)
200185 . old_layout ( src_layout)
201- . new_layout ( dst_layout)
202- . build ( ) ,
186+ . new_layout ( dst_layout) ,
203187 ) ;
204188 }
205189
@@ -442,7 +426,7 @@ impl crate::CommandEncoder for super::CommandEncoder {
442426 Some ( buffer) => ray_tracing_functions
443427 . buffer_device_address
444428 . get_buffer_device_address (
445- & vk:: BufferDeviceAddressInfo :: builder ( ) . buffer ( buffer. raw ) ,
429+ & vk:: BufferDeviceAddressInfo :: default ( ) . buffer ( buffer. raw ) ,
446430 ) ,
447431 None => panic ! ( "Buffers are required to build acceleration structures" ) ,
448432 }
@@ -469,23 +453,24 @@ impl crate::CommandEncoder for super::CommandEncoder {
469453 for desc in descriptors {
470454 let ( geometries, ranges) = match * desc. entries {
471455 crate :: AccelerationStructureEntries :: Instances ( ref instances) => {
472- let instance_data = vk:: AccelerationStructureGeometryInstancesDataKHR :: builder (
456+ let instance_data = vk:: AccelerationStructureGeometryInstancesDataKHR :: default (
457+ // TODO: Code is so large that rustfmt refuses to treat this... :(
473458 )
474459 . data ( vk:: DeviceOrHostAddressConstKHR {
475460 device_address : get_device_address ( instances. buffer ) ,
476461 } ) ;
477462
478- let geometry = vk:: AccelerationStructureGeometryKHR :: builder ( )
463+ let geometry = vk:: AccelerationStructureGeometryKHR :: default ( )
479464 . geometry_type ( vk:: GeometryTypeKHR :: INSTANCES )
480465 . geometry ( vk:: AccelerationStructureGeometryDataKHR {
481- instances : * instance_data,
466+ instances : instance_data,
482467 } ) ;
483468
484- let range = vk:: AccelerationStructureBuildRangeInfoKHR :: builder ( )
469+ let range = vk:: AccelerationStructureBuildRangeInfoKHR :: default ( )
485470 . primitive_count ( instances. count )
486471 . primitive_offset ( instances. offset ) ;
487472
488- ( smallvec:: smallvec![ * geometry] , smallvec:: smallvec![ * range] )
473+ ( smallvec:: smallvec![ geometry] , smallvec:: smallvec![ range] )
489474 }
490475 crate :: AccelerationStructureEntries :: Triangles ( ref in_geometries) => {
491476 let mut ranges = smallvec:: SmallVec :: <
@@ -496,15 +481,15 @@ impl crate::CommandEncoder for super::CommandEncoder {
496481 > :: with_capacity ( in_geometries. len ( ) ) ;
497482 for triangles in in_geometries {
498483 let mut triangle_data =
499- vk:: AccelerationStructureGeometryTrianglesDataKHR :: builder ( )
484+ vk:: AccelerationStructureGeometryTrianglesDataKHR :: default ( )
500485 . vertex_data ( vk:: DeviceOrHostAddressConstKHR {
501486 device_address : get_device_address ( triangles. vertex_buffer ) ,
502487 } )
503488 . vertex_format ( conv:: map_vertex_format ( triangles. vertex_format ) )
504489 . max_vertex ( triangles. vertex_count )
505490 . vertex_stride ( triangles. vertex_stride ) ;
506491
507- let mut range = vk:: AccelerationStructureBuildRangeInfoKHR :: builder ( ) ;
492+ let mut range = vk:: AccelerationStructureBuildRangeInfoKHR :: default ( ) ;
508493
509494 if let Some ( ref indices) = triangles. indices {
510495 triangle_data = triangle_data
@@ -528,7 +513,7 @@ impl crate::CommandEncoder for super::CommandEncoder {
528513 ray_tracing_functions
529514 . buffer_device_address
530515 . get_buffer_device_address (
531- & vk:: BufferDeviceAddressInfo :: builder ( )
516+ & vk:: BufferDeviceAddressInfo :: default ( )
532517 . buffer ( transform. buffer . raw ) ,
533518 )
534519 } ;
@@ -540,17 +525,17 @@ impl crate::CommandEncoder for super::CommandEncoder {
540525 range = range. transform_offset ( transform. offset ) ;
541526 }
542527
543- let geometry = vk:: AccelerationStructureGeometryKHR :: builder ( )
528+ let geometry = vk:: AccelerationStructureGeometryKHR :: default ( )
544529 . geometry_type ( vk:: GeometryTypeKHR :: TRIANGLES )
545530 . geometry ( vk:: AccelerationStructureGeometryDataKHR {
546- triangles : * triangle_data,
531+ triangles : triangle_data,
547532 } )
548533 . flags ( conv:: map_acceleration_structure_geometry_flags (
549534 triangles. flags ,
550535 ) ) ;
551536
552- geometries. push ( * geometry) ;
553- ranges. push ( * range) ;
537+ geometries. push ( geometry) ;
538+ ranges. push ( range) ;
554539 }
555540 ( geometries, ranges)
556541 }
@@ -562,25 +547,25 @@ impl crate::CommandEncoder for super::CommandEncoder {
562547 [ vk:: AccelerationStructureGeometryKHR ; CAPACITY_INNER ] ,
563548 > :: with_capacity ( in_geometries. len ( ) ) ;
564549 for aabb in in_geometries {
565- let aabbs_data = vk:: AccelerationStructureGeometryAabbsDataKHR :: builder ( )
550+ let aabbs_data = vk:: AccelerationStructureGeometryAabbsDataKHR :: default ( )
566551 . data ( vk:: DeviceOrHostAddressConstKHR {
567552 device_address : get_device_address ( aabb. buffer ) ,
568553 } )
569554 . stride ( aabb. stride ) ;
570555
571- let range = vk:: AccelerationStructureBuildRangeInfoKHR :: builder ( )
556+ let range = vk:: AccelerationStructureBuildRangeInfoKHR :: default ( )
572557 . primitive_count ( aabb. count )
573558 . primitive_offset ( aabb. offset ) ;
574559
575- let geometry = vk:: AccelerationStructureGeometryKHR :: builder ( )
560+ let geometry = vk:: AccelerationStructureGeometryKHR :: default ( )
576561 . geometry_type ( vk:: GeometryTypeKHR :: AABBS )
577562 . geometry ( vk:: AccelerationStructureGeometryDataKHR {
578- aabbs : * aabbs_data,
563+ aabbs : aabbs_data,
579564 } )
580565 . flags ( conv:: map_acceleration_structure_geometry_flags ( aabb. flags ) ) ;
581566
582- geometries. push ( * geometry) ;
583- ranges. push ( * range) ;
567+ geometries. push ( geometry) ;
568+ ranges. push ( range) ;
584569 }
585570 ( geometries, ranges)
586571 }
@@ -593,7 +578,7 @@ impl crate::CommandEncoder for super::CommandEncoder {
593578 ray_tracing_functions
594579 . buffer_device_address
595580 . get_buffer_device_address (
596- & vk:: BufferDeviceAddressInfo :: builder ( ) . buffer ( desc. scratch_buffer . raw ) ,
581+ & vk:: BufferDeviceAddressInfo :: default ( ) . buffer ( desc. scratch_buffer . raw ) ,
597582 )
598583 } ;
599584 let ty = match * desc. entries {
@@ -602,7 +587,7 @@ impl crate::CommandEncoder for super::CommandEncoder {
602587 }
603588 _ => vk:: AccelerationStructureTypeKHR :: BOTTOM_LEVEL ,
604589 } ;
605- let mut geometry_info = vk:: AccelerationStructureBuildGeometryInfoKHR :: builder ( )
590+ let mut geometry_info = vk:: AccelerationStructureBuildGeometryInfoKHR :: default ( )
606591 . ty ( ty)
607592 . mode ( conv:: map_acceleration_structure_build_mode ( desc. mode ) )
608593 . flags ( conv:: map_acceleration_structure_flags ( desc. flags ) )
@@ -618,7 +603,7 @@ impl crate::CommandEncoder for super::CommandEncoder {
618603 . raw ;
619604 }
620605
621- geometry_infos. push ( * geometry_info) ;
606+ geometry_infos. push ( geometry_info) ;
622607 }
623608
624609 for ( i, geometry_info) in geometry_infos. iter_mut ( ) . enumerate ( ) {
@@ -649,10 +634,9 @@ impl crate::CommandEncoder for super::CommandEncoder {
649634 src_stage | vk:: PipelineStageFlags :: TOP_OF_PIPE ,
650635 dst_stage | vk:: PipelineStageFlags :: BOTTOM_OF_PIPE ,
651636 vk:: DependencyFlags :: empty ( ) ,
652- & [ vk:: MemoryBarrier :: builder ( )
637+ & [ vk:: MemoryBarrier :: default ( )
653638 . src_access_mask ( src_access)
654- . dst_access_mask ( dst_access)
655- . build ( ) ] ,
639+ . dst_access_mask ( dst_access) ] ,
656640 & [ ] ,
657641 & [ ] ,
658642 )
@@ -754,17 +738,13 @@ impl crate::CommandEncoder for super::CommandEncoder {
754738 . make_framebuffer ( fb_key, raw_pass, desc. label )
755739 . unwrap ( ) ;
756740
757- let mut vk_info = vk:: RenderPassBeginInfo :: builder ( )
741+ let mut vk_info = vk:: RenderPassBeginInfo :: default ( )
758742 . render_pass ( raw_pass)
759743 . render_area ( render_area)
760744 . clear_values ( & vk_clear_values)
761745 . framebuffer ( raw_framebuffer) ;
762746 let mut vk_attachment_info = if caps. imageless_framebuffers {
763- Some (
764- vk:: RenderPassAttachmentBeginInfo :: builder ( )
765- . attachments ( & vk_image_views)
766- . build ( ) ,
767- )
747+ Some ( vk:: RenderPassAttachmentBeginInfo :: default ( ) . attachments ( & vk_image_views) )
768748 } else {
769749 None
770750 } ;
@@ -859,21 +839,21 @@ impl crate::CommandEncoder for super::CommandEncoder {
859839 }
860840
861841 unsafe fn insert_debug_marker ( & mut self , label : & str ) {
862- if let Some ( ext) = self . device . debug_messenger ( ) {
842+ if let Some ( ext) = self . device . extension_fns . debug_utils . as_ref ( ) {
863843 let cstr = self . temp . make_c_str ( label) ;
864- let vk_label = vk:: DebugUtilsLabelEXT :: builder ( ) . label_name ( cstr) . build ( ) ;
844+ let vk_label = vk:: DebugUtilsLabelEXT :: default ( ) . label_name ( cstr) ;
865845 unsafe { ext. cmd_insert_debug_utils_label ( self . active , & vk_label) } ;
866846 }
867847 }
868848 unsafe fn begin_debug_marker ( & mut self , group_label : & str ) {
869- if let Some ( ext) = self . device . debug_messenger ( ) {
849+ if let Some ( ext) = self . device . extension_fns . debug_utils . as_ref ( ) {
870850 let cstr = self . temp . make_c_str ( group_label) ;
871- let vk_label = vk:: DebugUtilsLabelEXT :: builder ( ) . label_name ( cstr) . build ( ) ;
851+ let vk_label = vk:: DebugUtilsLabelEXT :: default ( ) . label_name ( cstr) ;
872852 unsafe { ext. cmd_begin_debug_utils_label ( self . active , & vk_label) } ;
873853 }
874854 }
875855 unsafe fn end_debug_marker ( & mut self ) {
876- if let Some ( ext) = self . device . debug_messenger ( ) {
856+ if let Some ( ext) = self . device . extension_fns . debug_utils . as_ref ( ) {
877857 unsafe { ext. cmd_end_debug_utils_label ( self . active ) } ;
878858 }
879859 }
0 commit comments