Class VkHostImageCopyDevicePerformanceQuery

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkHostImageCopyDevicePerformanceQuery>
org.lwjgl.vulkan.VkHostImageCopyDevicePerformanceQuery
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer
Direct Known Subclasses:
VkHostImageCopyDevicePerformanceQueryEXT

public class VkHostImageCopyDevicePerformanceQuery extends org.lwjgl.system.Struct<VkHostImageCopyDevicePerformanceQuery> implements org.lwjgl.system.NativeResource
Struct containing information about optimality of device access.
Description

The implementation may return FALSE in optimalDeviceAccess if identicalMemoryLayout is FALSE. If identicalMemoryLayout is TRUE, optimalDeviceAccess must be TRUE.

The implementation may return TRUE in optimalDeviceAccess while identicalMemoryLayout is FALSE. In this situation, any device performance impact should not be measurable.

If VkPhysicalDeviceImageFormatInfo2::format is a block-compressed format and GetPhysicalDeviceImageFormatProperties2 returns SUCCESS, the implementation must return TRUE in optimalDeviceAccess.

Note

Applications can make use of optimalDeviceAccess to determine their resource copying strategy. If a resource is expected to be accessed more on device than on the host, and the implementation considers the resource sub-optimally accessed, it is likely better to use device copies instead.

Note

Layout not being identical yet still considered optimal for device access could happen if the implementation has different memory layout patterns, some of which are easier to access on the host.

Note

The most practical reason for optimalDeviceAccess to be FALSE is that host image access may disable framebuffer compression where it would otherwise have been enabled. This represents far more efficient host image access since no compression algorithm is required to read or write to the image, but it would impact device access performance. Some implementations may only set optimalDeviceAccess to FALSE if certain conditions are met, such as specific image usage flags or creation flags.

Valid Usage (Implicit)

Layout


 struct VkHostImageCopyDevicePerformanceQuery {
     VkStructureType sType();
     void * pNext();
     VkBool32 optimalDeviceAccess();
     VkBool32 identicalMemoryLayout();
 }