Enumerations

enum SearchProp
Name Value
INSTANCE_EXT_PROP 0
INSTANCE_LAYER_PROP 1
PHYS_DEVICE_EXT_PROP 2

Defined at line 56 of file ../../src/graphics/examples/vkproto/common/utils.h

Records

Functions

  • std::optional<uint32_t> GetGpuVendorId ()

    This is a default implementation that returns no value. It's weak and can be overridden by

    config_query.cc or other implementations.

    Defined at line 57 of file ../../src/graphics/examples/vkproto/common/physical_device.cc

  • std::optional<vk::UniqueDeviceMemory> TransitionToHostVisibleImage (const vk::PhysicalDevice & physical_device, const vk::Device & device, const vk::Image & src_image, const vk::Extent2D & extent, const vk::CommandPool & command_pool, const vk::Queue & queue, vk::SubresourceLayout * host_image_layout)

    TransitionToHostVisibleImage

    Creates a host visible destination image and transitions |src_image| to it.

    |src_image| layout must be vk::ImageLayout::eTransferSrcOptimal prior to

    calling this function. Transition command submission is synchronous.

    Returns the device memory of the newly created host image and populates

    |host_image_layout| upon success.

    Defined at line 13 of file ../../src/graphics/examples/vkproto/common/readback.cc

  • bool ReadPixels (const vk::PhysicalDevice & physical_device, const vk::Device & device, const vk::Image & src_image, const vk::Extent2D & src_image_size, const vk::CommandPool & command_pool, const vk::Queue & queue, const vk::Extent2D & size, const vk::Offset2D & offset, std::vector<uint32_t> * pixels)

    ReadPixels

    Transitions |src_image| into a host-visible, R8G8B8A8Unorm linear image that can be mapped

    and read. Copies the rectangle of pixels defined by |size| at |offset| pixels from the

    host image buffer into |pixels|. Unmaps the host image memory before returning.

    Resizes |pixels| if |pixels->size()| isn't large enough to accommodate the copied pixels.

    Defined at line 137 of file ../../src/graphics/examples/vkproto/common/readback.cc

  • bool FindRequiredProperties (const std::vector<const char *> & required_props, SearchProp search_prop, const char * layer, vk::PhysicalDevice physical_device, std::vector<std::string> * missing_props_out)

    Using the vkEnumerate* entrypoints, search for all elements of

    |required_props| to look for a match. If all elements are found,

    return true. If any are missing, return false and populate

    |missing_props_out| with the missing properties. If nullptr is

    passed for |missing_props_out|, it will be ignored.

    If |layer| is not nullptr, constrain the property search to the

    specified layer only.

    The type of enumeration entrypoint used is selected using the

    |search_prop| parameter. Those 3 selectable entrypoints are:

    vk::enumerateInstanceExtensionProperties

    vk::enumerateInstanceLayerProperties

    physical_device::enumerateDeviceExtensionProperties

    |physical_device| must be specified for PHYS_DEVICE_EXT_PROP,

    otherwise it should be nullptr.

    Defined at line 83 of file ../../src/graphics/examples/vkproto/common/utils.cc

  • bool FindQueueFamilyIndex (vk::PhysicalDevice phys_device, VkSurfaceKHR surface, vk::QueueFlags queue_flags, uint32_t * queue_family_index)

    Find queue family index from physical device. If |surface| is not nullptr,

    succeed only if queue family has present support. If |queue_family_index| is

    not nullptr, store the queue family index into it if found.

    Defined at line 140 of file ../../src/graphics/examples/vkproto/common/utils.cc

  • vk::Result FindMemoryIndex (const vk::PhysicalDevice & phys_dev, uint32_t memory_type_bits, const vk::MemoryPropertyFlags & memory_prop_flags, uint32_t * memory_type_index)

    Find physical device memory property index for |properties|. Returns

    vk::Result::eErrorFormatNotSupported if a matching memory type is not found.

    Defined at line 162 of file ../../src/graphics/examples/vkproto/common/utils.cc

  • void LogMemoryProperties (const vk::PhysicalDevice & phys_dev)

    Log physical device memory properties.

    Defined at line 180 of file ../../src/graphics/examples/vkproto/common/utils.cc