Refactored VK layer handling by changing return type of `use_layers` to `Vec<CString>`, adjusting subsequent usage of layers. Implemented `Display` for `VkPhysicalDevice` for better logging. Enhanced application initialization with detailed window attributes. Transitioned to using `log::info` for consistent logging.
Separated concerns for layer fetching, logging, and selection into distinct functions. This improves readability and maintainability, allowing each function to focus on a single responsibility.