Class VkPastPresentationTimingGOOGLE
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
The results for a given swapchain and presentID are only returned once from vkGetPastPresentationTimingGOOGLE.
The application can use the VkPastPresentationTimingGOOGLE values to occasionally adjust its timing. For example, if actualPresentTime is later than expected (e.g. one refreshDuration late), the application may increase its target IPD to a higher multiple of refreshDuration (e.g. decrease its frame rate from 60Hz to 30Hz). If actualPresentTime and earliestPresentTime are consistently different, and if presentMargin is consistently large enough, the application may decrease its target IPD to a smaller multiple of refreshDuration (e.g. increase its frame rate from 30Hz to 60Hz). If actualPresentTime and earliestPresentTime are same, and if presentMargin is consistently high, the application may delay the start of its input-render-present loop in order to decrease the latency between user input and the corresponding present (always leaving some margin in case a new image takes longer to render than the previous image). An application that desires its target IPD to always be the same as refreshDuration, can also adjust features until actualPresentTime is never late and presentMargin is satisfactory.
See Also
GetPastPresentationTimingGOOGLE
Layout
struct VkPastPresentationTimingGOOGLE {
uint32_t presentID();
uint64_t desiredPresentTime();
uint64_t actualPresentTime();
uint64_t earliestPresentTime();
uint64_t presentMargin();
}-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn array ofVkPastPresentationTimingGOOGLEstructs.Nested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct member offsets.static final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkPastPresentationTimingGOOGLE(ByteBuffer container) Creates aVkPastPresentationTimingGOOGLEinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionlongthe time when the image of theswapchainwas actually displayed.calloc()Returns a newVkPastPresentationTimingGOOGLEinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLEinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.Deprecated.callocStack(int capacity) Deprecated.callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.create()Returns a newVkPastPresentationTimingGOOGLEinstance allocated withBufferUtils.create(int capacity) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withBufferUtils.create(long address) Returns a newVkPastPresentationTimingGOOGLEinstance for the specified memory address.create(long address, int capacity) Create aVkPastPresentationTimingGOOGLE.Bufferinstance at the specified memory.static @Nullable VkPastPresentationTimingGOOGLEcreateSafe(long address) static @Nullable VkPastPresentationTimingGOOGLE.BuffercreateSafe(long address, int capacity) longan application-provided value that was given to a previousQueuePresentKHRcommand viaVkPresentTimeGOOGLE::desiredPresentTime.longthe time when the image of theswapchaincould have been displayed.malloc()Returns a newVkPastPresentationTimingGOOGLEinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated on the specifiedMemoryStack.malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLEinstance allocated on the specifiedMemoryStack.Deprecated.mallocStack(int capacity) Deprecated.mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static longnactualPresentTime(long struct) Unsafe version ofactualPresentTime().static longndesiredPresentTime(long struct) Unsafe version ofdesiredPresentTime().static longnearliestPresentTime(long struct) Unsafe version ofearliestPresentTime().static intnpresentID(long struct) Unsafe version ofpresentID().static longnpresentMargin(long struct) Unsafe version ofpresentMargin().intan application-provided value that was given to a previousvkQueuePresentKHRcommand viaVkPresentTimeGOOGLE::presentID(see below).longan indication of how early thevkQueuePresentKHRcommand was processed compared to how soon it needed to be processed, and still be presented atearliestPresentTime.intsizeof()Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
PRESENTID
public static final int PRESENTIDThe struct member offsets. -
DESIREDPRESENTTIME
public static final int DESIREDPRESENTTIMEThe struct member offsets. -
ACTUALPRESENTTIME
public static final int ACTUALPRESENTTIMEThe struct member offsets. -
EARLIESTPRESENTTIME
public static final int EARLIESTPRESENTTIMEThe struct member offsets. -
PRESENTMARGIN
public static final int PRESENTMARGINThe struct member offsets.
-
-
Constructor Details
-
VkPastPresentationTimingGOOGLE
Creates aVkPastPresentationTimingGOOGLEinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkPastPresentationTimingGOOGLE>
-
presentID
public int presentID()an application-provided value that was given to a previousvkQueuePresentKHRcommand viaVkPresentTimeGOOGLE::presentID(see below). It can be used to uniquely identify a previous present with theQueuePresentKHRcommand. -
desiredPresentTime
public long desiredPresentTime()an application-provided value that was given to a previousQueuePresentKHRcommand viaVkPresentTimeGOOGLE::desiredPresentTime. If non-zero, it was used by the application to indicate that an image not be presented any sooner thandesiredPresentTime. -
actualPresentTime
public long actualPresentTime()the time when the image of theswapchainwas actually displayed. -
earliestPresentTime
public long earliestPresentTime()the time when the image of theswapchaincould have been displayed. This may differ fromactualPresentTimeif the application requested that the image be presented no sooner thanVkPresentTimeGOOGLE::desiredPresentTime. -
presentMargin
public long presentMargin()an indication of how early thevkQueuePresentKHRcommand was processed compared to how soon it needed to be processed, and still be presented atearliestPresentTime. -
malloc
Returns a newVkPastPresentationTimingGOOGLEinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkPastPresentationTimingGOOGLEinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkPastPresentationTimingGOOGLEinstance allocated withBufferUtils. -
create
Returns a newVkPastPresentationTimingGOOGLEinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkPastPresentationTimingGOOGLE.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
public static @Nullable VkPastPresentationTimingGOOGLE.Buffer createSafe(long address, int capacity) -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
@Deprecated public static VkPastPresentationTimingGOOGLE mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
@Deprecated public static VkPastPresentationTimingGOOGLE callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkPastPresentationTimingGOOGLE.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkPastPresentationTimingGOOGLE.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkPastPresentationTimingGOOGLEinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkPastPresentationTimingGOOGLEinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkPastPresentationTimingGOOGLE.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkPastPresentationTimingGOOGLE.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPastPresentationTimingGOOGLE.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
npresentID
public static int npresentID(long struct) Unsafe version ofpresentID(). -
ndesiredPresentTime
public static long ndesiredPresentTime(long struct) Unsafe version ofdesiredPresentTime(). -
nactualPresentTime
public static long nactualPresentTime(long struct) Unsafe version ofactualPresentTime(). -
nearliestPresentTime
public static long nearliestPresentTime(long struct) Unsafe version ofearliestPresentTime(). -
npresentMargin
public static long npresentMargin(long struct) Unsafe version ofpresentMargin().
-