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