builds

Change-Id: Ifd61455343de2a7a7b5849b29b9bb46d825a35de
diff --git a/src/ui/examples/flatland-view-provider/src/vulkan.rs b/src/ui/examples/flatland-view-provider/src/vulkan.rs
index 00f1ea5..9f10498 100644
--- a/src/ui/examples/flatland-view-provider/src/vulkan.rs
+++ b/src/ui/examples/flatland-view-provider/src/vulkan.rs
@@ -7,7 +7,7 @@
 //     // khr::{Surface, Swapchain},
 };
 use ash::{self, vk};
-// use std::borrow::Cow;
+use std::borrow::Cow;
 // use std::cell::RefCell;
 // use std::default::Default;
 use std::ffi::CStr;
@@ -230,6 +230,8 @@
     }
 }
 
+*/
+
 unsafe extern "system" fn vulkan_debug_callback(
     message_severity: vk::DebugUtilsMessageSeverityFlagsEXT,
     message_type: vk::DebugUtilsMessageTypeFlagsEXT,
@@ -263,21 +265,21 @@
     vk::FALSE
 }
 
-pub fn find_memorytype_index(
-    memory_req: &vk::MemoryRequirements,
-    memory_prop: &vk::PhysicalDeviceMemoryProperties,
-    flags: vk::MemoryPropertyFlags,
-) -> Option<u32> {
-    memory_prop.memory_types[..memory_prop.memory_type_count as _]
-        .iter()
-        .enumerate()
-        .find(|(index, memory_type)| {
-            (1 << index) & memory_req.memory_type_bits != 0
-                && memory_type.property_flags & flags == flags
-        })
-        .map(|(index, _memory_type)| index as _)
-}
-*/
+// pub fn find_memorytype_index(
+//     memory_req: &vk::MemoryRequirements,
+//     memory_prop: &vk::PhysicalDeviceMemoryProperties,
+//     flags: vk::MemoryPropertyFlags,
+// ) -> Option<u32> {
+//     memory_prop.memory_types[..memory_prop.memory_type_count as _]
+//         .iter()
+//         .enumerate()
+//         .find(|(index, memory_type)| {
+//             (1 << index) & memory_req.memory_type_bits != 0
+//                 && memory_type.property_flags & flags == flags
+//         })
+//         .map(|(index, _memory_type)| index as _)
+// }
+
 pub struct VkRender {
     pub entry: ash::Entry,
     pub instance: ash::Instance,
@@ -380,77 +382,84 @@
                 .enabled_extension_names(&extension_names)
                 .build();
 
-            let _instance: ash::Instance = entry
+            let instance: ash::Instance = entry
                 .create_instance(&create_info, None)
                 .expect("Instance creation error");
 
-        //     let debug_info = vk::DebugUtilsMessengerCreateInfoEXT::default()
-        //         .message_severity(
-        //             vk::DebugUtilsMessageSeverityFlagsEXT::ERROR
-        //                 | vk::DebugUtilsMessageSeverityFlagsEXT::WARNING
-        //                 | vk::DebugUtilsMessageSeverityFlagsEXT::INFO,
-        //         )
-        //         .message_type(
-        //             vk::DebugUtilsMessageTypeFlagsEXT::GENERAL
-        //                 | vk::DebugUtilsMessageTypeFlagsEXT::VALIDATION
-        //                 | vk::DebugUtilsMessageTypeFlagsEXT::PERFORMANCE,
-        //         )
-        //         .pfn_user_callback(Some(vulkan_debug_callback));
+            let debug_info = vk::DebugUtilsMessengerCreateInfoEXT::builder()
+                .message_severity(
+                    vk::DebugUtilsMessageSeverityFlagsEXT::ERROR
+                        | vk::DebugUtilsMessageSeverityFlagsEXT::WARNING
+                        | vk::DebugUtilsMessageSeverityFlagsEXT::INFO,
+                )
+                .message_type(
+                    vk::DebugUtilsMessageTypeFlagsEXT::GENERAL
+                        | vk::DebugUtilsMessageTypeFlagsEXT::VALIDATION
+                        | vk::DebugUtilsMessageTypeFlagsEXT::PERFORMANCE,
+                )
+                .pfn_user_callback(Some(vulkan_debug_callback));
 
-        //     let debug_utils_loader = DebugUtils::new(&entry, &instance);
-        //     let debug_call_back = debug_utils_loader
-        //         .create_debug_utils_messenger(&debug_info, None)
-        //         .unwrap();
-        //     let surface = ash_window::create_surface(&entry, &instance, &window, None).unwrap();
-        //     let pdevices = instance
-        //         .enumerate_physical_devices()
-        //         .expect("Physical device error");
-        //     let surface_loader = Surface::new(&entry, &instance);
-        //     let (pdevice, queue_family_index) = pdevices
-        //         .iter()
-        //         .find_map(|pdevice| {
-        //             instance
-        //                 .get_physical_device_queue_family_properties(*pdevice)
-        //                 .iter()
-        //                 .enumerate()
-        //                 .find_map(|(index, info)| {
-        //                     let supports_graphic_and_surface =
-        //                         info.queue_flags.contains(vk::QueueFlags::GRAPHICS)
-        //                             && surface_loader
-        //                                 .get_physical_device_surface_support(
-        //                                     *pdevice,
-        //                                     index as u32,
-        //                                     surface,
-        //                                 )
-        //                                 .unwrap();
-        //                     if supports_graphic_and_surface {
-        //                         Some((*pdevice, index))
-        //                     } else {
-        //                         None
-        //                     }
-        //                 })
-        //         })
-        //         .expect("Couldn't find suitable device.");
-        //     let queue_family_index = queue_family_index as u32;
-        //     let device_extension_names_raw = [Swapchain::name().as_ptr()];
-        //     let features = vk::PhysicalDeviceFeatures {
-        //         shader_clip_distance: 1,
-        //         ..Default::default()
-        //     };
-        //     let priorities = [1.0];
+            let debug_utils_loader = DebugUtils::new(&entry, &instance);
+            let _debug_call_back = debug_utils_loader
+                .create_debug_utils_messenger(&debug_info, None)
+                .unwrap();
+            // let surface = ash_window::create_surface(&entry, &instance, &window, None).unwrap();
+            let pdevices = instance
+                .enumerate_physical_devices()
+                .expect("Physical device error");
+            assert!(pdevices.len() > 0);
+            let pdevice_index = 0;
+            let pdevice = pdevices[pdevice_index];
+            // let surface_loader = Surface::new(&entry, &instance);
+            // let (pdevice, queue_family_index) = pdevices
+            //     .iter()
+            //     .find_map(|pdevice| {
+            //         instance
+            //             .get_physical_device_queue_family_properties(*pdevice)
+            //             .iter()
+            //             .enumerate()
+            //             .find_map(|(index, info)| {
+            //                 let supports_graphic_and_surface =
+            //                     info.queue_flags.contains(vk::QueueFlags::GRAPHICS)
+            //                         && surface_loader
+            //                             .get_physical_device_surface_support(
+            //                                 *pdevice,
+            //                                 index as u32,
+            //                                 surface,
+            //                             )
+            //                             .unwrap();
+            //                 if supports_graphic_and_surface {
+            //                     Some((*pdevice, index))
+            //                 } else {
+            //                     None
+            //                 }
+            //             })
+            //     })
+            //     .expect("Couldn't find suitable device.");
+            // let queue_family_index = queue_family_index as u32;
+            let queue_family_index = 0;
+            // let device_extension_names_raw = [Swapchain::name().as_ptr()];
+            let features = vk::PhysicalDeviceFeatures::builder()
+                .shader_clip_distance(true).
+                build();
+            //     shader_clip_distance: 1,
+            //     ..Default::default()
+            // };
+            let priorities = [1.0];
 
-        //     let queue_info = vk::DeviceQueueCreateInfo::default()
-        //         .queue_family_index(queue_family_index)
-        //         .queue_priorities(&priorities);
+            let queue_info = vk::DeviceQueueCreateInfo::builder()
+                .queue_family_index(queue_family_index)
+                .queue_priorities(&priorities)
+                .build();
 
-        //     let device_create_info = vk::DeviceCreateInfo::default()
-        //         .queue_create_infos(std::slice::from_ref(&queue_info))
-        //         .enabled_extension_names(&device_extension_names_raw)
-        //         .enabled_features(&features);
+            let device_create_info = vk::DeviceCreateInfo::builder()
+                .queue_create_infos(std::slice::from_ref(&queue_info))
+                // .enabled_extension_names(&device_extension_names_raw)
+                .enabled_features(&features)
+                .build();
 
-        //     let device: Device = instance
-        //         .create_device(pdevice, &device_create_info, None)
-        //         .unwrap();
+            let _device = instance
+                .create_device(pdevice, &device_create_info, None)?;
 
         //     let present_queue = device.get_device_queue(queue_family_index as u32, 0);