forked from MoonsideGames/Refresh
add wait API call
parent
540c0985b7
commit
087a60fa52
|
@ -1417,6 +1417,11 @@ REFRESHAPI void REFRESH_Submit(
|
||||||
uint32_t commandBufferCount
|
uint32_t commandBufferCount
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Waits for the previous submission to complete. */
|
||||||
|
REFRESHAPI void REFRESH_Wait(
|
||||||
|
REFRESH_Device *device
|
||||||
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
|
@ -972,4 +972,13 @@ void REFRESH_Submit(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void REFRESH_Wait(
|
||||||
|
REFRESH_Device *device
|
||||||
|
) {
|
||||||
|
NULL_RETURN(device);
|
||||||
|
device->Wait(
|
||||||
|
device->driverData
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/* vim: set noexpandtab shiftwidth=8 tabstop=8: */
|
/* vim: set noexpandtab shiftwidth=8 tabstop=8: */
|
||||||
|
|
|
@ -564,6 +564,10 @@ struct REFRESH_Device
|
||||||
uint32_t commandBufferCount
|
uint32_t commandBufferCount
|
||||||
);
|
);
|
||||||
|
|
||||||
|
void(*Wait)(
|
||||||
|
REFRESH_Renderer *driverData
|
||||||
|
);
|
||||||
|
|
||||||
/* Opaque pointer for the Driver */
|
/* Opaque pointer for the Driver */
|
||||||
REFRESH_Renderer *driverData;
|
REFRESH_Renderer *driverData;
|
||||||
};
|
};
|
||||||
|
@ -622,7 +626,8 @@ struct REFRESH_Device
|
||||||
ASSIGN_DRIVER_FUNC(BindComputeTextures, name) \
|
ASSIGN_DRIVER_FUNC(BindComputeTextures, name) \
|
||||||
ASSIGN_DRIVER_FUNC(AcquireCommandBuffer, name) \
|
ASSIGN_DRIVER_FUNC(AcquireCommandBuffer, name) \
|
||||||
ASSIGN_DRIVER_FUNC(QueuePresent, name) \
|
ASSIGN_DRIVER_FUNC(QueuePresent, name) \
|
||||||
ASSIGN_DRIVER_FUNC(Submit, name)
|
ASSIGN_DRIVER_FUNC(Submit, name) \
|
||||||
|
ASSIGN_DRIVER_FUNC(Wait, name)
|
||||||
|
|
||||||
typedef struct REFRESH_Driver
|
typedef struct REFRESH_Driver
|
||||||
{
|
{
|
||||||
|
|
|
@ -8501,6 +8501,20 @@ static void VULKAN_Submit(
|
||||||
SDL_stack_free(commandBuffers);
|
SDL_stack_free(commandBuffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void VULKAN_Wait(
|
||||||
|
REFRESH_Renderer *driverData
|
||||||
|
) {
|
||||||
|
VulkanRenderer *renderer = (VulkanRenderer*) driverData;
|
||||||
|
|
||||||
|
renderer->vkWaitForFences(
|
||||||
|
renderer->logicalDevice,
|
||||||
|
1,
|
||||||
|
&renderer->inFlightFence,
|
||||||
|
VK_TRUE,
|
||||||
|
UINT64_MAX
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/* Device instantiation */
|
/* Device instantiation */
|
||||||
|
|
||||||
static inline uint8_t VULKAN_INTERNAL_SupportsExtension(
|
static inline uint8_t VULKAN_INTERNAL_SupportsExtension(
|
||||||
|
|
Loading…
Reference in New Issue